Guide
Where do UTM parameters go in Google Ads?
In the final URL suffix, not the tracking template. Why, which template Google uses when several are set, and what a ? in a template does to your landing page.
The manual way comes first, in Google Ads itself. Then the same problem as Goldbeater finds it, every day, without anyone asking.
- UTM parameters go in the final URL suffix, the field whose parameters Google adds to the end of your landing page URL.
- Google sends people straight from the ad to the final URL and loads the tracking template in the background, so its developer documentation says parameters your landing page needs belong in the suffix, not the template.
- A template that starts {lpurl}? is safe on a final URL that already has a question mark: Google replaces the template's ? with & itself.
- Only the most specific template applies to a click: a keyword's, then an ad's, ad group's, campaign's and the account's. Templates set at different levels aren't combined, and neither are suffixes.
- When a template and a suffix both set utm_source, the landing page gets it twice, and which one counts is up to your analytics tool, not Google Ads. Set each parameter in one place.
- Goldbeater reads every level's template, suffix and custom parameters every day, and raises a custom parameter that arrives empty, auto-tagging switched off while your conversions rely on it, and a click ID pasted into a final URL.
- 01UTM parameters belong in the final URL suffix.
- 02A ? in the template is safe, even when the final URL has one.
- 03Only the most specific template applies, and it replaces the rest.
- 04A custom parameter no level gives a value arrives empty.
- 05How to find every template and suffix in an account
- 06When a template and a suffix both set a parameter, your analytics decides which counts.
- 07Move UTM parameters to the final URL suffix
- 08What Goldbeater shows you
- 09Questions
UTM parameters belong in the final URL suffix.
Each ad’s URL options have two fields for tracking, and they do different jobs:
- Final URL suffix. Parameters Google adds to the end of your landing page URL, where your analytics reads them.
- Tracking template. Tracking information for click measurement, with {lpurl} where your final URL goes. Google calls it an advanced feature for advertisers who use a third-party click tracker, and says most advertisers won’t need one.
The difference is where each one goes after a click. Google sends people straight from the ad to your final URL and loads the tracking template in the background. It calls this parallel tracking, and it’s mandatory for Search, Shopping, Display, Video and Performance Max campaigns.
So Google’s developer documentation says parameters your landing page needs must go in the final URL suffix, or in the final URL itself, rather than the tracking template. UTM parameters are read on the landing page, so they belong in the suffix.
| Field | Value |
|---|---|
| Final URL | https://example.com/sofas |
| Final URL suffix | utm_source=google&utm_medium=cpc |
| Landing page | https://example.com/sofas?utm_source=google&utm_medium=cpc |
A template full of UTM parameters isn’t broken. Google’s own examples show a template that begins {lpurl}? carrying its parameters to the landing page. It’s in the field meant for something else, though, and it can collide with a suffix, as the fifth section shows.
A ? in the template is safe, even when the final URL has one.
The usual worry is a product page whose final URL already has a question mark, such as /sofas?color=oak, under a template that adds another. Two question marks in one address would break the parameters after the second.
Google prevents it. In its words: “If your final URL already contains a question mark, Google Ads will replace the question mark in your tracking template with an ampersand (&).”
| Field | Value |
|---|---|
| Final URL | https://example.com/sofas?color=oak |
| Tracking template | {lpurl}?utm_source=google |
| Landing page | https://example.com/sofas?color=oak&utm_source=google |
That holds for a template that begins with {lpurl}, which Google says to follow with a ?. Where {lpurl} sits inside a click tracker’s address instead, Google escapes your final URL, and what follows it is %3F. Your tracker’s own instructions give its exact format.
Two things do break a landing page, by Google’s account:
- A template without {lpurl} at the account, campaign or ad group level. Google says a template there must insert your final URL, or your landing page URL will break.
- A final URL with an anchor (#). When a template adds parameters to the end of a final URL with an anchor, Google says all the tracking parameters must go in the final URL itself.
Only the most specific template applies, and it replaces the rest.
A template can be set on the account, a campaign, an ad group, an ad or a keyword. Google uses one for each click, the most specific: the keyword’s, then the ad’s, the ad group’s, the campaign’s, and last the account’s.
It doesn’t combine them. Google’s developer documentation says the template and the final URL suffix are each taken from the lowest level that has one, separately. Whatever is set higher up doesn’t reach that click.
So a level with its own template or suffix has to carry everything. An ad group whose suffix sets only utm_content sends none of the account suffix’s parameters.
| Field | Value |
|---|---|
| Account suffix | utm_source=google&utm_medium=cpc |
| Ad group suffix | utm_content=oak |
| Landing page | https://example.com/sofas?utm_content=oak |
A custom parameter no level gives a value arrives empty.
A custom parameter is a name and a value you set, such as campaign and sofas, and use in a template, suffix or final URL as {_campaign}. Google lets you set up to 8 on a campaign, an ad group, an ad or a keyword, and none on the account.
Unlike templates, custom parameters from different levels combine. Google looks each name up on its own and takes the value from the lowest level that sets it: if an ad group sets {_color} to red and one of its ads sets it to blue, that ad’s clicks carry blue.
A name that no level sets doesn’t break the address. Google puts nothing in its place, so the parameter it fills arrives with no value. So does one whose lowest level sets it to nothing, since that value wins over any above it.
| Field | Value |
|---|---|
| Final URL | https://example.com/sofas |
| Campaign suffix | utm_source=google&utm_campaign={_campaign} |
| Landing page | https://example.com/sofas?utm_source=google&utm_campaign= |
How to find every template and suffix in an account
Templates and suffixes can sit at any of those levels, so read each one.
- Go to Admin › Account settings and open the Tracking section. Note the account’s tracking template and final URL suffix.
- Go to Campaigns › Campaigns and select the Settings tab. Add the Tracking template column: select the columns icon above the table, then Modify columns, expand Attributes, select Tracking template and Apply. A campaign with its own template shows it there.
- Do the same on Campaigns › Ad groups and on Campaigns › Audiences, keywords, and content › Search keywords.
- Hover over an entry in the column and select the pencil. The Final URL suffix field is in the same place as the template.
- For ads, go to Campaigns › Ads, hover over an ad, select the pencil, then Edit, and expand Ad URL options.
- Custom parameters sit beside them: a campaign’s under Campaign URL options in its settings, an ad group’s in the Custom parameter column, and an ad’s under Ad URL options.
- Select Test beside a template. Google combines your final URL with the tracking you set up and shows the landing page it leads to.
Google’s help also points to a Tracking template source column, which shows which template applies. Then look for four things:
- UTM parameters in a template rather than a suffix.
- A template or suffix lower down that leaves out parameters the account sets. Clicks under it arrive without them.
- A {_name} in a template or suffix with no custom parameter of that name at any level that reaches the ad. It arrives empty.
- The same UTM parameter set in a template and in a suffix that apply to the same ad. That’s the next section.
When a template and a suffix both set a parameter, your analytics decides which counts.
Take a campaign whose template is {lpurl}?utm_source=google, and an ad in it with its own suffix, utm_source=sale. Google applies both, because it chooses the template and the suffix separately: it adds the suffix to the final URL, then puts that address where {lpurl} is in the template.
| Field | Value |
|---|---|
| Final URL | https://example.com/sofas |
| Campaign template | {lpurl}?utm_source=google |
| Ad suffix | utm_source=sale |
| Landing page | https://example.com/sofas?utm_source=sale&utm_source=google |
Google Ads has built the address the way it documents. Which utm_source counts is up to whatever reads the address on your site:
- Google Analytics, with auto-tagging on. Google turns auto-tagging on by default for new accounts. When a click carries auto-tagging and UTM parameters together, Google Analytics takes source, medium and the other traffic-source dimensions from auto-tagging, and Google says it has no option to put the UTM values first.
- Google Analytics, where it can’t use the click’s GCLID, the identifier auto-tagging adds. It then takes every source dimension from the UTM parameters. Its help doesn’t say which copy of a repeated parameter it reads.
- Anything else that reads the address, such as another analytics tool, or a form on your site that saves UTM values with each lead. Each follows its own rule.
So don’t leave it to the tool. Keep each UTM parameter in one place, which is what the next section does.
Move UTM parameters to the final URL suffix
Leave a click tracker’s template where it is. Move only the UTM parameters.
- Write the parameters once, without a ? in front, joined by &: utm_source=google&utm_medium=cpc. ValueTrack parameters work in a suffix as they do in a final URL, so utm_id={campaignid} records each campaign’s ID.
- Put them in the account’s suffix: Admin › Account settings, the Tracking section, the Final URL suffix field, then Save. Google doesn’t send ads back to review for a change at the account, campaign or ad group level. A change on an ad, keyword or sitelink does go through review.
- Take the UTM parameters out of every template you found. If a template held nothing else, clear it.
- Where a campaign or ad needs its own values, give it its own suffix with the whole set, because it replaces the account’s rather than adding to it.
- Select Test on each template you changed. Google says template changes take 24 to 48 hours to reach your ads, so read your analytics after that.
What Goldbeater shows you
Every day Goldbeater reads the tracking template, final URL suffix and custom parameters at every level: the account, each campaign, ad group and ad, each Performance Max asset group, and each keyword’s own. It raises three things, each read from the account’s settings:
- A custom parameter that arrives empty. A {_name} in the template, suffix or final URL an ad or asset group uses that no level gives a value. Medium where it sits above the ad and reaches many, low on one ad.
- Auto-tagging switched off while a conversion action your bidding counts relies on the click ID: high for a Google Analytics import or an offline import, which Google says need auto-tagging, and medium for website tags alone, which it says need it to record on all browsers.
- A click ID pasted into a final URL. A gclid, srsltid or fbclid copied in with an address, so every click on the ad carries one old click’s ID. Low: it’s cleanup.
Each finding says where the parameter or the address is, and what to change. Before auto-tagging goes on, the finding gives Google’s test for whether your site accepts the click ID, since a small share of sites show an error page when it arrives.
{_campaign} in the final URL suffix of Sofas — Phrase arrives empty on 6 of its 9 ads
Sofas — Phrase
it fills utm_campaign · no custom parameter named campaign on the ad, its ad group or its campaign, so Google puts nothing in its place
Auto-tagging switched off while conversions your bidding counts rely on it, a custom parameter your tracking uses that nothing gives a value, so it arrives empty, or one click's ID pasted into a final URL, so every click carries it. The spend is real, and the record of where it came from is lost or wrong.
Add a custom parameter named campaign with a value: on the campaign, under Campaign URL options in its settings, it reaches everything in the campaign, and a lower level's own value overrides it. Or take {_campaign} out of the final URL suffix.
No single setting fixes this, so Goldbeater drafts no change. The steps under What to do are the fix.
Questions
- What’s the difference between a tracking template and a final URL suffix?
- The suffix holds parameters Google adds to the end of your landing page URL. The template holds tracking information for click measurement, which Google loads in the background while the visitor goes straight to your page.
- Does a tracking template break a final URL that already has a question mark?
- No. When the final URL already contains a question mark, Google replaces the one in your template with an ampersand.
- Which tracking template does Google use when several are set?
- The most specific: the keyword’s, then the ad’s, the ad group’s, the campaign’s and the account’s. The others don’t apply to that click at all, and the final URL suffix works the same way.
- Should UTM parameters go in the tracking template?
- Put them in the final URL suffix. Google’s developer documentation says parameters your landing page needs belong there, or in the final URL, rather than in the template.
- What happens to a custom parameter that isn’t set?
- Google puts nothing in its place, so the parameter it fills arrives empty. Set it on the campaign to reach every ad in it, or take it out of the template or suffix.
- What happens if utm_source is set twice?
- The landing page gets both copies, and whatever reads the address decides which counts. Google Analytics’ help doesn’t say which it reads, so set each parameter in one place.
How Goldbeater checks this
This check runs every day, and whenever you ask.
Each finding carries its evidence and, where the problem costs money, an estimate of how much a month. Where a setting can fix it, Goldbeater drafts the change, and it reaches your account when you approve it and press Apply.
Clicks arriving untracked
Google's own pages
Where the manual method comes from.
- Set up tracking with ValueTrack parameters (opens in a new tab)
- Create custom parameters for advanced tracking (opens in a new tab)
- Create Google Ads conversions based on Google Analytics key events (opens in a new tab)
- Add a Final URL suffix (opens in a new tab)
- About tracking in Google Ads (opens in a new tab)
- Set up your tracking template (opens in a new tab)
- About parallel tracking (opens in a new tab)
- About URL parameters (opens in a new tab)
- About auto-tagging (opens in a new tab)
- Upgraded URL fields (Google Ads API) (opens in a new tab)
- Serving URL expansion rules (Google Ads API) (opens in a new tab)
- Add URL parameters to a Final URL suffix (Search Ads 360 Help) (opens in a new tab)
- Traffic-source dimensions, manual tagging, and auto-tagging (Analytics Help) (opens in a new tab)
- About auto-tagging (Merchant Center Help) (opens in a new tab)
More guides
Other things worth checking by hand.
- How do I audit a Google Ads account?A Google Ads audit checklist: 33 things to check, what to look for in each, and where to find it in Google Ads, menu by menu.
- How do I find and remove duplicate keywords in Google Ads?Google serves one copy of a duplicated keyword and picks which. How to find duplicates across ad groups, decide which copy to keep, and remove the rest.
- How do I find the search terms wasting my Google Ads budget?Find the search terms that cost money and never convert, add them as negative keywords without blocking your own keywords, and check what changed.
- How do I check that my Google Ads conversion tracking is right?How to test Google Ads conversion tracking: find the actions that stopped recording, the conversions counted twice, and the settings bidding reads.
7-day trial · nothing charged until day 7