> Site index: https://usehardal.com/llms.txt
> Every content route also serves markdown at <url>.md

# 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.

Source: https://usehardal.com/server-side-gtm-with-azure-app-service
Published: 2024-09-15
Updated: 2024-09-15
Author: Mert Enercan

---

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/).

![](https://imge.usehardal.com/cdn/post-contents/server-side-gtm-with-azure-app-service/cmzw48ra6hvmpfxt0rzm.png)

![](https://imge.usehardal.com/cdn/post-contents/server-side-gtm-with-azure-app-service/vlhiy0vb9kquqet3rety.png)

-  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.

![](https://imge.usehardal.com/cdn/post-contents/server-side-gtm-with-azure-app-service/zcxa5uctksztg62vjkxs.png)

As always, let's start with the basics of server-side GTM infrastructure. This diagram is from the official [Google documentation.](https://developers.google.com/tag-platform/tag-manager/server-side/manual-setup-guide) 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=''`
`

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: `

`Type: TXT`
`Name: asuid.www or asuid.{subdomain}`
`Value: `

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!
