Server-side GTM With Azure App Service

Explore implementing server-side Google Tag Manager using Azure App Service, using Hardal for improved performance, better data accuracy, and enhanced user privacy.

ME
Mert Enercan
Developer
15.09.2024

Hello, everyone!

Explore implementing server-side Google Tag Manager using Azure App Service, using Hardal for improved performance, better data accuracy, and enhanced user privacy.

We create a container registry and a [container app](https://azure.microsoft.com/en-us/products/container-apps) on Azure. After that, we map the container app to our desired custom domain. You can accomplish this with a single click on [Hardal](https://usehardal.com/).

- Create a server-side GTM and obtain a configuration key. - Set up a server-side GTM [container registry](https://azure.microsoft.com/en-us/products/container-registry) on Azure. - Create a container app on Azure that runs the server-side GTM registry. - Map a custom domain to the server-side GTM container app.

As always, let's start with the basics of server-side GTM infrastructure. This diagram is from the official Google documentation. I won't go into the details of how it works, but it's essential to understand the framework of what we are doing.

We need to focus on two important topics when deploying our container:
  1. We need to set the Ingress value to "enabled" to access our Container App with a domain.
  2. We need two container apps: one for the preview server and one for the tagging server. Environment values vary depending on the container type.

Preview Server Environment Variables

  • CONTAINER_CONFIG='<config string>'
  • RUN_AS_PREVIEW_SERVER=true

Tagging Server Environment Variables

  • CONTAINER_CONFIG='<config string>'
  • PREVIEW_SERVER_URL='<HTTPS preview server url>' `
For the final step, we need to configure our domain to point to the container app. By selecting "Managed Certificate," we need to add two DNS records to our domain.

Type: CNAME Name: www or {subdomain} Value: <DNS VALUE THAT AZURE PROVIDES>

Type: TXT Name: asuid.www or asuid.{subdomain} Value: <DNS VALUE THAT AZURE PROVIDES>

After a short delay, our container will be accessible via our custom domain!

With everything set up, you're now ready to leverage server-side GTM on Microsoft Azure with your custom domain. This setup not only enhances your tracking capabilities but also ensures better performance and flexibility.

Happy tracking!