Skip to content

Step-by-step deployment guide

How to deploy server-side GTM in under 5 minutes without Google Cloud or DevOps

Skip the 15-step Cloud Run setup, the IAM roles and the unpredictable cloud bill. Paste one value from Google Tag Manager, pick a region, add a CNAME. Your container runs on your own domain.

  • Free: 1 container, 15,000 requests a month
  • Live in minutes, not days
  • No Google Cloud account required

Two ways to get there

The hard way vs the SGTM.space way

Google’s own docs assume you have a cloud engineer on hand. You do not need one.

The hard way: manual Google Cloud or AWS

  1. 01 Create a Google Cloud account and attach a credit card
  2. 02 Create a project and enable the Cloud Run API
  3. 03 Configure IAM permissions and service accounts
  4. 04 Build and deploy the Docker container, then the preview server
  5. 05 Set up a load balancer, mapping and SSL certificates
  6. 06 Watch the bill, patch the image, repeat every few months

What it costs

Typically $80 to $150+ a month for two always-on services, plus the risk of a bill spike the day a bot decides to hit your endpoint.

The SGTM.space way

  1. 1 Copy the Container Config from Google Tag Manager
  2. 2 Paste it into SGTM.space and pick Europe, US East or Asia
  3. 3 Add a CNAME record at your DNS provider

What it costs

Free up to 15,000 requests a month, then from $9.80 a month with the current 30% code ($14.00 after). Nothing to maintain, and every add-on comes with every paid plan.

The 3-step guide

Deploy your server container in three steps

This is the whole process. No terminal, no YAML, no cloud console.

  1. Step 1

    Copy the Container Config from Google Tag Manager

    In Google Tag Manager, create a container of type Server (or open the one you have). Choose “Manually provision tagging server”, then open Admin and Container Settings. Copy the long Container Config string. That is the only thing you need from Google.

    Google Tag Manager

    Admin › Container Settings

    Manually provision tagging server

    Container Config

    aWQ9R1RNLVhYWFhYWFgmZW52PTEmYXV0aD1hYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ejEyMzQ1Ng… Copy

    One long string, starting with aWQ9R1RN…

  2. Step 2

    Paste it into SGTM.space and pick a region

    Create a free account, click “New container”, type the subdomain you want your tracking to live on and choose the server location closest to your visitors. Paste the config, or choose “I will connect it later” if you have no server container yet: the DNS records, Better Loader and the website audit do not need it. Click “Create container”. Once the config is in, we build the container, the GTM preview server and the health checks for you.

    SGTM.space › Create container

    Name

    Shop tracking

    Subdomain

    k7q2x.yourstore.com

    Container Config

    aWQ9R1RNLVhYWFhYWFgmZW52PTEmYXV0aD0…

    Region

    Europe US East Asia
    Create container Deploying…
  3. Step 3

    Add a CNAME at your domain provider

    The DNS page shows the exact records: the subdomain you chose and its loader hostname, both pointed at our endpoint for your region. Add them at your registrar or DNS provider; on Cloudflare, set them to DNS only (gray cloud). The HTTPS certificate is issued automatically. The loader record is there from the start, so switching on Better Loader later needs no DNS change.

    SGTM.space › DNS
    TypeHostTarget
    CNAMEk7q2x.yourstore.comeu.sgtm.space
    CNAMEload.k7q2x.yourstore.comSame target, for Better Loader
    Verified HTTPS certificate: automatic

Done. Your container runs on your own domain.

With a Container Config, your server-side GTM and the GTM preview server are live: paste your new subdomain as the server URL in your web container’s Google tag, publish, and your events start flowing through your own domain, with debugging working from the first request. Chose “I will connect it later”? Better Loader serves GTM from your own domain once it is on, its DNS record is verified and your site uses the snippet from the Better Loader tab. Leave the Google tag as it is until the server runs: before that, events sent to the subdomain are lost.

Deploy a free container Next: send GA4 through it, step by step in the Academy

What about ad blockers and cookies?

A raw cloud server is where the work starts. Here it is where it ends.

Google Cloud gives you a container and nothing else. Every SGTM.space container comes with the tools that make server-side tracking worth having.

Every plan, free included

Better Loader

Serves gtm.js from your own loader hostname under a random script name, with no GTM id in the URL. Ad blockers that match on googletagmanager.com have nothing to match.

Every paid plan

Cookie Extender

Re-issues the analytics and ads cookies your tags set, from your own domain, so browsers keep them for up to a year instead of the few days they would otherwise get.

Every paid plan

Bot Filtering

Recognises clearly automated traffic at the edge and turns it away before it reaches your container, your reports or your request quota.

Every paid plan

Request Proxy

Disguises the paths of the tracking requests and scripts your site sends, so blocklists cannot match them by URL either.

Every plan, free included

Preview Mode

Debug real visitor traffic in the GTM preview panel for 60 minutes at a time, filtered by path or IP, without touching your site’s code.

Every add-on is included in every paid plan. Nothing is held back for a higher tier.

See all add-ons

Before you start

Questions people ask before deploying

Do I need to know how to code or use a cloud console?

No. The whole setup is pasting one value copied from Google Tag Manager and adding two CNAME records at your domain provider. There is no terminal, no Docker and no Google Cloud project.

Does GTM preview and debug mode work?

Yes. Every container is deployed together with its own GTM preview server, so the Preview button in your server container works from the first request. The Preview Mode add-on goes further and lets you debug live visitor traffic for 60 minutes at a time.

Is this GDPR-compliant? Where do the servers run?

You choose the region per container. Pick Europe and your container runs in Google Cloud’s Belgium region, so its processing stays in the EU. US East and Asia are there for teams with visitors elsewhere. A Data Processing Agreement is available for every account.

Do I need a credit card to start?

No. The free plan gives you one active container and 15,000 requests a month, with no card and no time limit. Add a card only when you need more volume.

Can I migrate from Stape or from my own Google Cloud setup?

Yes. You paste the same Container Config, so your server container, tags and triggers do not change. If you already use a first-party loader, Better Loader lets you keep your existing script name, so only the DNS record changes.

What happens when I pass the free limit?

Requests above the monthly limit are turned away until the next period, and you see a usage bar well before that. Moving up to a paid plan takes one click and starts from $9.80 a month.

Can I start before I have a server container?

Yes. Create the container without the Container Config and paste it on the container’s overview later. The DNS records, Better Loader and the website audit are available from the start: you add the records, run the audit and, once the loader’s record is verified, paste the Better Loader snippet on your site. Until the server runs, your page keeps sending its data straight to Google. The tagging server starts once the config is in. Better Loader’s script loads count toward the monthly requests.

Create a free account and deploy your container in minutes

One container, 15,000 requests a month, your own domain. No card, no time limit.

Deploy a free container