The short answer
Use the final URL suffix for standard UTM and landing-page parameters. Use a tracking template when you need a third-party click tracker, redirects, or a URL structure built with ValueTrack. Use custom parameters for reusable values you define, such as a campaign label.
The hard part is not writing the string. It is choosing the right level, preserving existing values, and proving the resolved click URL still works. Google Ads applies the most specific tracking template, so an ad-level setting can silently override an account, campaign, or ad-group convention.
A safe AI workflow therefore has six moves: inspect every relevant level, choose one owner for the rule, draft the exact change, get human approval, read back the saved values, and test the real click route.
Know which URL field you are changing
These fields solve different problems. Treating them as interchangeable is how tidy-looking tracking plans turn into untidy data.
Field | Best use | Example | Biggest mistake |
Final URL | The landing-page destination | Putting centrally managed tracking into every ad URL | |
Tracking template | Third-party redirects or ValueTrack URL construction | {lpurl}?utm_source=google&utm_campaign={campaignid} | Omitting {lpurl} at account, campaign, or ad-group level |
Final URL suffix | Standard UTM and landing-page parameters | utm_source=google&utm_medium=cpc&utm_campaign={campaignid} | Including a leading ? |
Custom parameters | Reusable business-defined values | Set campaign=brand; reference it as {_campaign} | Replacing the full set and losing existing keys |
How inheritance works

For tracking templates, Google Ads uses the most specific setting available: keyword, then ad, ad group, campaign, and account. HireOtto’s supported workflow focuses on account, campaign, ad-group, and supported ad levels. A lower-level override wins until it is cleared.
That means changing an account-level template may not change every click. An old ad-group or ad template can keep winning. It also means clearing a lower-level value does not necessarily remove tracking; Google Ads may fall back to a higher-level setting.
A simple ownership rule
Put the broadest stable convention at the highest sensible level. Add a lower-level override only when the business requirement is genuinely different.
Account: the default convention that should apply widely.
Campaign: a campaign-specific tracker, source taxonomy, or naming value.
Ad group: a deliberate exception that should not affect the whole campaign.
Ad: a surgical override. Use sparingly because it is easy to forget.
Before you edit: define the tracking contract
Do not start by asking AI to “add UTMs.” First decide what the analytics destination expects. A tracking contract is a short specification for parameter names, allowed values, ownership, and validation.
Which parameters must reach the landing page?
Which values are fixed, and which use ValueTrack placeholders?
Does a third-party click tracker require a redirect?
Which level owns the default?
Which existing overrides are intentional?
Who will test the resolved URL and downstream analytics?
For a straightforward UTM scheme without a redirect, the final URL suffix is usually easier to maintain. Enter the suffix as query parameters without a leading question mark. For example: utm_source=google&utm_medium=cpc&utm_campaign={campaignid}.
If you use a tracking template at account, campaign, or ad-group level, include a landing-page insertion parameter such as {lpurl}. Google’s current guidance also requires tracking templates and redirect URLs to use HTTPS.
A safe six-step AI workflow
1. Inventory the current setup without changing anything
Start at the account and campaign that should own the rule. Inspect lower levels when you suspect an override. Capture entity IDs, final URLs, templates, suffixes, custom parameters, and any values that appear inherited.
Copy-paste prompt
For Google Ads customer [CUSTOMER_ID], review the current URL tracking setup for campaign [CAMPAIGN_ID]. Include the account, campaign, ad-group, and supported ad levels wherever available. Show tracking templates, final URL suffixes, custom parameters, final URLs, inherited values, and exact entity IDs. Do not change anything.Do not treat a missing field in the response as proof that no value exists. Confirm any unresolved level in Google Ads before approving a write.
2. Choose one owner for each rule
Map every parameter to the level that should own it. A stable source/medium convention may belong at account level. A campaign taxonomy value may belong at campaign level. A one-off landing-page experiment may justify an ad-level suffix.
Avoid copying the same suffix to every level. Duplication makes later changes harder and creates drift.
3. Prepare the complete intended state
Ask AI to show the before and after values—not merely the instruction it plans to send. This matters most for custom parameters because an update replaces the complete set at that entity. If you submit one new key, existing keys at the same level can disappear.
Copy-paste prompt
For Search campaign [CAMPAIGN_ID] in customer [CUSTOMER_ID], prepare a change that sets the final URL suffix to utm_source=google&utm_medium=cpc&utm_campaign={campaignid}. Preserve the current tracking template and every existing custom parameter. Leave all non-URL campaign settings unchanged. Show the exact before-and-after diff and wait for my approval.For custom parameters, use keys without the leading underscore when setting them, then reference them as {_key}. HireOtto validates up to eight custom parameters per supported entity; keys must be alphanumeric and unique regardless of capitalization.
4. Approve one scoped write
Change one level at a time. Name the customer and entity IDs, say which fields must change, and explicitly preserve everything else. If the assistant cannot show the current value, stop and verify it in Google Ads.
Copy-paste prompt
Apply only the approved final URL suffix to campaign [CAMPAIGN_ID] in customer [CUSTOMER_ID]. Leave the tracking template, custom parameters, budget, bidding, targeting, dates, networks, status, and every other setting unchanged. Return the saved entity ID and the fields Google Ads accepted.Omitting a URL field should leave it unchanged. Passing an empty string clears a tracking template or suffix. Passing an empty object or list removes all custom parameters at that level. Those are materially different instructions.
5. Read back the saved configuration
An accepted API request proves only that Google Ads saved the mutation. It does not prove the final click route is correct.
Copy-paste prompt
Verify the URL tracking change for customer [CUSTOMER_ID] and campaign [CAMPAIGN_ID]. Read the affected campaign and its supported ads, restate the saved tracking template, final URL suffix, and custom parameters wherever available, identify inherited or overriding values, and flag anything that differs from the approved change. Do not make another change.The expected output is a reviewable diff: entity ID, prior value, saved value, inherited or overriding values, and any field the assistant could not verify.
6. Test the runtime click path
Finish in Google Ads. Use the Test action in URL options, open a real landing page, and confirm the final host, path, redirects, and query parameters. Then check that analytics and any third-party tracker receive the expected values.
The final URL reaches the intended page.
The tracking template includes {lpurl} where required.
The suffix has no leading ? and resolves with valid separators.
ValueTrack placeholders resolve as expected for the campaign type.
Existing custom parameters are still present.
A lower-level setting is not overriding the new value.
Analytics receives the final UTM and click identifiers you expect.

Common failure patterns
The landing page breaks
A tracking template at account, campaign, or ad-group level is missing a supported landing-page insertion parameter such as {lpurl}, or a redirect is malformed. Restore the last known-good value and test again.
The suffix is rejected
Remove the leading question mark. Check ampersands, braces, percent encoding, and whether each ValueTrack parameter is supported for that campaign type.
A parameter disappears
A custom-parameter update replaced the full set. Rebuild the intended complete set from the pre-change inventory, then review the diff before saving.
The new value never appears
A more specific template or parameter may be overriding the level you changed. Inspect ad, ad group, campaign, and account values in that order.
A Demand Gen carousel card keeps the old destination
HireOtto’s direct Demand Gen ad update changes top-level URL fields and preserves the ad ID. It does not change URLs inside carousel cards. Review those card destinations separately.
Everything saved, but attribution is still wrong
URL configuration does not install tags, repair consent behavior, fix cross-domain measurement, or validate an analytics property. If the resolved URL is correct but measurement is not, inspect the tracking stack separately.
How HireOtto helps with this workflow
HireOtto lets a PPC operator inspect and update supported Google Ads URL-tracking fields from an AI client. It can work at account, Search campaign, Search ad-group, supported Search ad, Demand Gen campaign, and Demand Gen ad levels, depending on the field.
That makes it useful for the repetitive parts of the job: gathering the current configuration, drafting an exact diff, applying one approved change, and reading the saved values back. It can also clear a template or suffix deliberately and replace custom parameters when you provide the complete intended set.
The human review gates remain important. You choose the tracking contract and scope, approve every write, test the resolved URL in Google Ads, follow a real landing-page route, and confirm analytics receives the expected values. HireOtto does not edit your website, analytics property, or Google Tag Manager container as part of this workflow. Account-level custom parameters are not supported. Demand Gen carousel-card destinations are outside the direct top-level URL update.
For the supported scopes, prompts, clearing behavior, and verification checklist, read Manage Google Ads tracking templates and URL suffixes and the Google Ads MCP tools reference. When you are ready to try the workflow, connect HireOtto to Google Ads.
FAQ
Should I use a tracking template or a final URL suffix for UTMs?
If you only need standard parameters appended to the landing page, use the final URL suffix. Use a tracking template when a third-party tracker, redirect, or ValueTrack-based URL construction requires it.
Do I include a question mark in the final URL suffix?
No. Enter the suffix as query parameters without a leading ?. Google Ads attaches it to the landing-page URL.
Can a lower-level setting override an account template?
Yes. Google Ads uses the most specific tracking template. An ad, ad-group, or campaign template can override the account-level template.
Can AI verify that attribution works end to end?
It can inspect supported configuration and read back saved fields, but a person still needs to test the URL in Google Ads, follow a real route, and confirm the analytics or third-party system received the expected values.
Will changing a campaign-level tracking setting resubmit ads for review?
Google says account-, campaign-, and ad-group-level URL option updates do not require ad resubmission. Ad-, keyword-, and sitelink-level changes may trigger review.
How quickly do tracking-template changes take effect?
Google’s current ValueTrack guidance says tracking-template changes can take 24–48 hours to be reflected in ad serving. Validate the saved configuration immediately, then allow for that propagation window when monitoring live traffic.
About Me
I’m Suyash – badminton junkie, ex‑GroupM ad‑ops grunt, first marketer at a B2B SaaS startup, and creator of Hiretto: MCP servers for performance marketers.
My mission: less clicking, more thinking.
Let’s build leverage together.

