← All resources Guide

Google Ads conversion tracking through your server container

Google Ads conversions depend on one thing surviving from the click to the purchase: the click ID. Measuring from your own domain keeps the _gcl_aw cookie first-party, lets the server container send the conversion where ad blockers would have stopped the browser tag, and gives you one place to add hashed customer data for enhanced conversions. This guide sets that up with the Measurebase import.

What you need

Step 1 · Add it to your measurement setup

Open the domain in your dashboard, go to its Settings page and find Measurement setup. Tick the destination card and fill in the IDs below. Tokens and API keys are stored encrypted, outside the setup itself. The setup sends nothing on its own: it is the reference the tracking audit and the template builder work from, so what you fill in here is what the audit expects to find in your containers.

Step 2 · Generate and import the containers

Go to Resources → GTM templates in the dashboard. Under Destinations, tick the platform (Google Analytics 4 and the e-commerce events are on by default; pick the Shopify, WordPress or Shopware data layer if your site runs one of our plugins). Fill in the same IDs on the next step, choose Web + server under Containers and download the two JSON files.

In Google Tag Manager, open each container, go to Admin → Import Container, choose the matching file, pick a new workspace and Merge. The import only adds: new tags, triggers and variables with their own names, plus the gallery templates they need. Check the result in Preview, then publish.

Step 3 · What the import contains

Web container: Ads - Conversion Linker on every page with URL passthrough on, so the click ID is written to a first-party cookie and survives a redirect, and Ads - Purchase conversion with value, currency and order ID from the data layer.

Server container: a server-side Conversion Linker and the conversion tags Ads - add_to_cart, Ads - begin_checkout and Ads - purchase, firing on the GA4 events with value and currency from the event data. Each has a label placeholder (REPLACE_WITH_PURCHASE_LABEL and so on) to replace with the real label from Google Ads. With Profit Tracking on, the purchase tag sends profit instead of revenue as the value.

Step 4 · Count each conversion once

Google Ads deduplicates purchases on the order ID, but only within one conversion action. Decide per action whether the browser tag or the server tag counts, not both. The simplest setup: let the server tags count and leave the browser purchase tag paused, or import the server container only. If you also import GA4 key events into Google Ads, keep those as secondary conversions, otherwise every purchase counts twice in your bidding.

Step 5 · Enhanced conversions

The server tags send the hashed email, phone and address they find on the event as user data. The Shopify app, the WordPress plugin and the Shopware plugin push those fields already hashed on purchases and leads; on a custom site, push user_data with the purchase. In Google Ads, accept the customer data terms and switch enhanced conversions on for the action, with Google Tag Manager as the method.

The imported tags carry the consent settings of the reference containers they were copied from. Check them against your own consent setup before you publish: a browser pixel should require ad_storage under Additional consent checks or fire on your consent tool's event, and the server tags should only send when the hit carries ad consent. The audit's consent checks and the guide on tags that fire before consent show how to verify both.

Step 6 · Test it

Make a test purchase with a gclid in the URL. In Google Ads → Goals → Conversions, the action's status moves to Recording conversions within a few hours and the diagnostics tab shows whether enhanced conversions data arrives.

On the Measurebase side, open the domain's Request logs: a browse through your site should show GA4 events arriving at your server container with a green 200. Open the server container's Preview mode to see the server tag fire on those events, with the event ID and the user data it picked up.

Click IDs

Safari and Brave strip gclid from landing URLs. Click ID Restorer gets it back: set a Final URL suffix such as backup_gclid={gclid} in Google Ads and Measurebase restores the real parameter on every request before your container sees it. gbraid and wbraid are restored the same way.

What the tracking audit checks

Every night the tracking audit compares your measurement setup with your live containers and your site. For every destination it checks that the tags exist in the container your setup expects, that the ID in the container matches the one in your setup, that a browser pixel and its server tag share an event ID, and which of the platform's cookies are still set after a visitor rejects. Findings open an alert the first time they appear; what the audit can fix, it proposes as a change in a separate Measurebase workspace in your container.

Accounts with the Google Ads connection switched on can link the Ads account under Connections. The audit then reads the account itself: auto-tagging, conversion actions whose only tag is paused or missing, primary actions that double count, counting types, purchase values, upload diagnostics and the audiences your tags feed, and whether the GA4 property you measure with is linked to the Ads account. It proposes the fixes it can make, including a missing conversion tag in the right container.

Frequently asked questions

Browser tag, server tag or GA4 import?

Pick one primary per action. Server-side conversion tags are the most complete, GA4 key events are the easiest, the browser tag is what you probably have today. Mixing them as primaries is the most common cause of inflated conversion counts.

Do remarketing audiences still work?

Yes. The server-side Conversion Linker and conversion tags carry the click and cookie IDs Google needs for audiences, and the audit checks which audiences your tags populate.

Continue reading

Ready to move your tagging to Europe?

Start free, no credit card required. Live in about 15 minutes.

Start free