In this article, we will describe how to set up a custom domain within the server Google Tag Manager container. The main advantage of using a custom domain for sGTM is that it helps increase cookie lifetime by setting first-party cookies instead of third-party cookies.
The essential benefit of server-side tagging lies in setting first-party cookies, though this isn't enabled by default. To leverage this capability, it's necessary to implement a custom domain in your server-side GTM.
Since Chrome is the last browser that supports third-party cookies and will phase out cookies in early 2025, now is the time to begin using first-party cookies instead of third parties.
The stability and longevity of cookies set by sGTM depend on how a custom domain is implemented. There are three types of custom domain configurations within sGTM.
You can use a custom tagging server URL to set up first-party cookies. Custom tagging server URL or custom domain should share the same domain as your website. For example, if your website domain is example.com, then the tagging server URL should look like ss.example.com.
There are three ways to set up a custom domain:
First of all, you need to create and set up the Google Tag Manager server container. If you don’t have a server container follow this instruction.
We will show two ways of mapping a custom domain for the server Google Tag Manager container:
1. Open your sGTM container on Stape, scroll down to “Domains” and click Add custom domain.
2. Select if you want to use CDN and what type.
3. Write a custom domain.
You will see DNS records that you should add.
The DNS record depends on the server location and CDN option you choose.
The DNS records you should configure vary depending on the server location and your selected CDN settings. You will see DNS records that you should add inside your stape.io container.
4. Log in to your DNS account and add records you see in your stape.io account. Below is an example of DNS setup for CloudFlare. Open the DNS setting of the required domain and click Add record.
Then, write the records you see in your stape.io account. Ensure that the proxy is turned off.
Usually, it takes 2-3 hours to verify the custom domain. For some DNS providers, verifying records might take up to 72 hours. We will email you once the custom domain is verified or any error is detected. If there is an error with the verification, please follow this instruction on how to verify custom domain verification.
5. Once the custom domain is verified, go back to the Google Tag Manager Server container → Choose your server container → Admin → container settings → paste tagging server URL.
6. If you use a custom domain, updating the Web GTM script on your website is highly recommended. This tweak will load gtm.js from your domain. To do so, replace the default domain googletagmanager.com with the custom domain you set up in the previous step.
Let's say your tagging server URL is sgtm.example.com. You should create A and AAAA DNS records to verify the domain on Stape. If Shopify manages your domain, creating both A and AAAA records for the same subdomain is impossible. Thus, you can't verify a custom domain on Stape.
To handle this issue, do not enable the checkbox Use A records instead of CNAME record.
You must set CNAME record if you do not use Global CDN.
You must set two CNAME records, if you use Global CDN.
7. Navigate to your DNS provider; for instance:
8. The below example will show how to add DNS setting in Cloudflare. Login to your account -> click on your site’s domain -> Click DNS -> Add record
9. Add these settings (FOR EXAMPLE):
Type: A
Name: ss (or any other subdomain you prefer)
IPv4 address: IP address depends on the location of the servers. You can find the custom domain IP address in your stape.io account.
TTL: Auto
Proxy status: disable
Your settings should look like this:
CDN
10. Once you have done, click Save.
11. Once DNS records are created, it might take up to 72 hours to validate the custom domain inside the stape admin. Once a domain is validated, it will have status ready. If it’s been more than 72 hours and the domain is still not verified, follow this guide on troubleshooting custom domain verification.
12. Go back to the Google Tag Manager Server container -> Choose your server container -> Admin -> container settings -> paste tagging server URL.
Updating the Web GTM script on your website is highly recommended if you use a custom domain. This tweak will make gtm.js load from your domain. To do so, replace the default domain googletagmanager.com with the custom domain you set up in the previous step.
13. Inside the Web container, create a new tag of the tag Type Google Tag. Add your Google Tag ID.
In the section Configuration settings add the following parameters:
Add trigger to GA4 tag. Normally it should trigger on all page views.
You can also create a Google tag: Configuration settings variable that will predefine Google Tag settings if you need to use multiple Google Tags on your website and do not want to add settings for each of the tags manually.
These parameters can be, for example, a setting that defines whether you want to send a page view event every time a Google Tag triggers, set UTM parameters, client ID, etc. There is a list of standard Google Tags configuration parameters.
14. To set up the GA4 event, go to the tags section and create a new tag with the tag type Google Analytics: GA4 Event. Add your GA4 ID and the event name; there is a list of standard event names.
You can create a Google Tag: Event Settings variable that will help to share event parameters across several GA4 event tags or Google Tags. It can be, for example, user or product properties, and there is also a list of standard parameters for event settings.
15. Open Google Tag Manager Server container -> click Client -> create GA4 client and save it -> go to Tags and set up GA4 tag. Remember that GA4 automatically sends not only pageview but some other events. Inside Event Name choose variable {{Event Name}}. -> add trigger Client Name equals GA4.
16. Open the Server container preview mode and check that you see GA4 requests. Publish updated inside server and web Google Tag Manager containers.
That’s it! Now your GTM server container runs from your subdomain.
The prerequisites to configure the same origin custom domain:
We will show you 2 examples of configuring the same origin custom domain for sGTM using Cloudflare or nginx.
For this option to work all your site traffic must be proxied through CloudFlare. Thus, the functionality of CF Workers will allow you to proxy sGTM requests as well.
a. Create a worker in Cloudflare.
b. Add worker name.
c. Create js similar to the one below, where:
/metrics/ - is a path you choose for your server container.
https://sgtm.stape.video/ - is your tagging server URL. There are two scenarios:
export default {
async fetch(request, env, ctx) {
let {pathname, search, host} = new URL(request.url);
pathname = pathname.replace('/metrics/', '/');
const domain = 'sgtm.stape.video';
let newRequest = new Request((`https://` + domain + pathname + search), request);
newRequest.headers.set('Host', domain);
return fetch(newRequest);
},
};
d. Go to the Workers Route and create a new Route. Add the URL you use for server GTM ending with *. In my case, it’s stape.video/metrics* and select the worker you’ve created on the previous steps.
Add to your server config, where:
/metrics - path you selected for server GTM.
https://gtm.mysimple.name - custom domain of your sGTM.
location = /metrics { return 302 /metrics/; }
location ~ ^/metrics(.*) {
resolver 8.8.8.8 valid=3600s;
proxy_pass https://gtm.mysimple.name$1$is_args$args;
proxy_set_header Host gtm.mysimple.name;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
Adding a custom domain to a Google Tag Manager (GTM) server container can significantly impact the effectiveness and flexibility of your server-side tracking. In this article, we have provided two methods of custom domain implementation.
A same-origin approach offers increased security and simpler cookie management, ideal for singular, focused domains. A subdomain setup provides flexibility and performance optimization, suitable for complex or multiple domain structures. Each has its trade-offs in complexity, performance, and management. Carefully consider your technical requirements, security needs, and tracking objectives to select the most appropriate configuration for your server-side tracking.
If you have any questions, visit our helpdesk or write a ticket. Our team of experts will be happy to help you with any questions regarding Stape’s hosting and server-side tracking.
You can do it for free at Stape! Click Try for free and explore the advantages!