Should this replace Google Ads auto-tagging?
No. Auto-tagging is often the stronger primary setup. This page is for the common cases where you still want a readable manual UTM link for reporting, testing, or landing-page handoffs.
Will it keep existing landing-page query params?
Yes. Existing non-UTM query params stay in place while old UTM parameters are replaced by the values you enter in the builder.
Does this run locally?
Yes. URL building, validation, and copy flow all stay in the browser.
Should I use UTMs if Google Ads auto-tagging is enabled?
Auto-tagging adds a gclid, which GA4 uses for Google Ads attribution ahead of manual UTMs. So UTMs will not change your GA4 Google Ads reporting. They are still worth adding when other tools in your stack read UTMs and cannot resolve a gclid.
Where do the UTMs actually go in Google Ads?
The final URL suffix, which exists at account, campaign, ad group and ad level. Paste the parameters there without the leading question mark, and Google appends them to every final URL. That beats editing hundreds of individual ad URLs.
Why are the braces in {campaignid} not encoded?
Because Google Ads has to see them literally in order to substitute the value at click time. This builder detects single-brace ValueTrack placeholders, double-brace macros and __MACRO__ style tokens, and leaves them intact while encoding everything else.
Why did my value get lowercased?
Deliberately. GA4 is case-sensitive on UTM values, so Summer_Sale and summer-sale become two separate campaigns in a report. Normalising everything to lowercase hyphenated text is the single cheapest way to stop your reports fragmenting.
What happens to the parameters already on my landing page?
Non-UTM query parameters are preserved and so is the URL fragment. Existing utm_ parameters are replaced by the ones you set here, and the tool warns you when it is about to do that.
What is the difference between a tracking template and a final URL suffix?
A tracking template can redirect the click through a third-party server and uses {lpurl} to hold the landing page. A final URL suffix only appends parameters to the landing page you already set. For plain UTM tracking, the suffix is what you want.