Skip to main content

Paid search

UTM builder for Google Ads campaigns.

Google Ads already tags clicks with gclid, so UTMs are for everything that isn't Google Analytics: your CRM, your attribution tool, your BI warehouse. This builder starts from the google / cpc convention GA4 expects and keeps ValueTrack macros intact so one final URL suffix covers every ad.

Quick start:
Custom parameters (optional)Any key=value pair beyond utm_ — promo codes, partner IDs, experiment flags.
Common:

Your campaign URL

Enter a destination URL.

How EndFrame parses this

utm_source
google
utm_medium
cpc
utm_campaign
brand-search-us
utm_term
{keyword}
utm_content
{creative}
utm_source_platform
google-ads

The Google Ads convention

What each parameter should say for Google Ads.

ParameterValueWhy
utm_sourcegoogleMatches the source GA4 assigns from auto-tagging, so manually tagged and gclid-tagged sessions land in the same row.
utm_mediumcpccpc, ppc, and paid are all grouped into Paid Search by GA4, but cpc is the value auto-tagging uses.
utm_campaignbrand-search-usValueTrack has no campaign-name macro (only {campaignid}), so name it by hand or use the numeric ID.
utm_term{keyword}ValueTrack fills in the keyword that matched. Add {matchtype} in utm_content if you report by match type.
utm_content{creative}The ad ID, so you can compare creatives without reading the ad platform.

Example tagged link

https://www.example.com/landing-page?utm_source=google&utm_medium=cpc&utm_campaign=brand-search-us&utm_term={keyword}&utm_content={creative}&utm_source_platform=google-ads

What to know before you paste it into Google Ads

Put it in the final URL suffix, not each ad

Set the tagged query string once as the account-level Final URL suffix. Every campaign, ad group, and ad inherits it, and a naming change is one edit instead of hundreds.

Auto-tagging still wins in GA4

GA4 uses gclid for Google Ads attribution. Leave auto-tagging on; your UTMs feed the tools that cannot read gclid. If you turn on manual-tag override in GA4, the UTM values replace the auto-tagged ones.

Macros must stay unencoded

Google reads {keyword} literally. If a builder encodes the braces to %7Bkeyword%7D the macro never expands and your reports fill with the literal text. This builder restores the braces after encoding.

Frequently asked

Do I need UTM parameters if Google Ads auto-tagging is on?

For GA4 alone, no. gclid carries campaign, ad group, keyword, and creative. You need UTMs the moment another system (a CRM, an attribution platform, a data warehouse, or a server-side tracker) has to know the visit came from a Google Ads campaign.

Which ValueTrack parameters can I use in UTMs?

The common ones are {keyword}, {creative}, {campaignid}, {adgroupid}, {matchtype}, {network}, {device}, and {placement}. Each expands at click time. There is no campaign-name macro, so utm_campaign is usually typed by hand.

Why does GA4 show google / cpc twice?

Usually because one set of sessions came through auto-tagging and another through manual UTMs with slightly different values, such as Google with a capital G or medium=ppc. Match the auto-tagging values exactly (google, cpc) and the rows merge.

Build UTMs for another channel

The full parameter reference, naming-convention table, and custom parameter guide live on the main UTM builder page, and our UTM naming convention template covers how to roll one out across a team.

Free tools, free trial

UTMs are step one. Attribution is the payoff.

EndFrame reads these exact parameters and credits each server-side conversion to its campaign and source — so the campaigns you tag here report conversions, even when iOS and ad blockers hide the click.

No credit card required