Tracking guide · Google Ads
Google Ads tracking template and final URL suffix
By the AdZoom team · Last updated 14 November 2026
This guide is named after the Google Ads tracking template, but for a Shopify store the setting that matters is the final URL suffix. Google's documentation puts the parameters a landing page needs in the suffix, and UTM parameters are exactly that.
Set it once for the whole account, in Google Ads under Admin › Account settings › Tracking.
utm_source=google &utm_medium=cpc &utm_campaign={campaignid} &utm_term={adgroupid}{assetgroupid} &utm_content={creative}
{campaignid} gives every campaign its own UTM set. Orders aren't split. A final URL suffix set on a campaign, ad group, or ad replaces this one.
To change a field, use the free UTM builder. For Meta ads, see the Meta tracking guide.
Tracking template or final URL suffix
Both are URL options in Google Ads. They do different jobs.
Tracking template
A tracking template is a URL for measuring the click. It is built around {lpurl}, which Google replaces with your final URL. A template set on the account, a campaign, or an ad group has to contain it.
Final URL suffix
A final URL suffix is a list of parameters. Google adds them to your final URL, the page the shopper lands on.
Why the suffix carries your UTMs
Google Ads Help says: "Parallel tracking is mandatory for Search, Shopping, Display, Video, and Performance Max campaigns." (source) With parallel tracking the shopper goes straight to the final URL while the click is measured in the background. Google's developer documentation says that parameters the landing page needs go in the final URL suffix.
Shopify reads UTM values from the address the shopper lands on. So the suffix is where AdZoom recommends you put them.
Where each is set, and which one wins
Google's documentation lists the levels that can hold a tracking template or a final URL suffix: the account, a campaign, an ad group, an asset group, an ad, a keyword, and a sitelink.
When more than one level sets a tracking template, the most specific one is used: the keyword's first, then the ad's, the ad group's, the campaign's, and the account's last. A final URL suffix works the same way: one set lower down overrides one set higher up.
The lower level replaces the higher one. Google's documentation describes no merging of the two. So:
- An account suffix reaches every campaign that has no suffix of its own.
- A campaign, ad group, or ad with its own suffix stops using the account's. If its own suffix has no UTM parameters, its clicks get none from the suffix.
- A keyword with its own suffix or template overrides the ad's and that of the ad group it belongs to.
ValueTrack parameters by campaign type
ValueTrack parameters are the values in single braces. Google replaces them on each click, and not every campaign type fills every one. The limits below come from Google's ValueTrack parameter list, read on 12 November 2026.
| Parameter | Google inserts | Campaign types |
|---|---|---|
{campaignid} | The campaign's id | No limit listed for any campaign type |
{adgroupid} | The ad group's id | Not on Google's Performance Max lists |
{assetgroupid} | The asset group's id | Performance Max, the one type with asset groups |
{creative} | The ad's id | Listed for Search, Display, and Video. Not on Google's Performance Max lists |
{keyword} | The keyword that matched | Blank on Performance Max. Not supported on Demand Gen |
{matchtype} | The keyword's match type | No limit listed for any campaign type |
{network} | A code for where the ad ran | x on Performance Max. Not supported on Demand Gen |
{device} | The device | No limit listed for any campaign type |
{placement} | The placement the ad ran on | Not supported on Demand Gen |
{product_id} | The id of the product clicked | Shopping. Limited support on Performance Max |
{gclid} | Google's click id | Limited support on Performance Max |
{lpurl} | Your final URL | Tracking templates only |
No ValueTrack parameter inserts a name. A campaign name in a UTM value is text you typed yourself.
Performance Max
A Performance Max campaign has asset groups in place of ad groups and ads. Google's lists for it include {campaignid} and {assetgroupid} and leave out {adgroupid} and {creative}. So {campaignid} is the value that tells Performance Max campaigns apart. The recommended suffix writes both group ids in one field, {adgroupid}{assetgroupid}.
Shopping
Shopping campaigns can fill product values such as {product_id}. Google lists {creative} for Search, Display, and Video, not for Shopping, so use {campaignid} to tell Shopping campaigns apart.
Auto-tagging and the gclid
Auto-tagging is an account setting that adds a gclid parameter, Google's click id, to the address a click lands on. It works beside UTM parameters on the same address, so you don't have to turn it off.
On its own it does not attribute an order in AdZoom. Shopify passes apps the UTM values of a visit and drops the rest of the landing address, so the gclid never reaches AdZoom. An ad with auto-tagging and no UTM parameters brings an order with nothing to match.
Shopping feeds and sag_organic
Shopping ads and the product ads of Performance Max have no final URL you typed. They use the product links in your Merchant Center feed.
If Shopify's Google & YouTube app syncs your products, those links may already carry UTM values. Neither Shopify nor Google documents which. A Shopify Community thread from November 2024 reports these on paid Shopping clicks: utm_source=google, utm_medium=product_sync, utm_campaign=sag_organic, and utm_content=sag_organic.
Values like these are the same on every product link, whichever campaign showed the product. An order that arrives with utm_campaign=sag_organic names no campaign.
Mistakes that break attribution
Auto-tagging only
With no UTM parameter in the final URL or in the suffix, the campaign's orders can't be matched to it.
UTMs only in the tracking template
If your UTMs sit after {lpurl} in a tracking template, move them to the final URL suffix, the place Google's documentation gives for landing page parameters.
The same typed values on several campaigns
Typed text such as utm_campaign=sale on two campaigns gives both the same UTM set, and AdZoom splits their orders equally between them. {campaignid} keeps them apart.
Values a campaign type may not fill
Google's Performance Max lists leave out {adgroupid} and {creative}, and {keyword} is blank there. A suffix that tells campaigns apart only through those values may give a Performance Max campaign nothing to be told apart by. Add {campaignid}.
A suffix lower down that replaces the account's
A campaign, ad group, ad, or keyword with its own suffix ignores the account's. Keyword suffixes are the easiest to miss. Check for them before you rely on the account suffix.