Free tool
Paste your landing page, pick where the link will run, and copy the tagged URL. The presets fill in a source and medium that land in the right GA4 channel, and they add each ad platform's own dynamic values so every ad reports its campaign and keyword without typing them.
Where will the link run?
Your tagged URL
Final URL suffix
Paste this into the Final URL suffix field at account or campaign level in Google Ads.
The values in curly brackets are dynamic. The ad platform swaps them for the real campaign, ad or keyword at the moment of the click, so one suffix covers every ad in the account.
| Preset | Source | Medium | Dynamic values |
|---|---|---|---|
| Google Ads | cpc | {campaignid} {keyword} {creative} | |
| Meta | paid_social | {{campaign.name}} {{adset.name}} {{ad.name}} | |
| Microsoft Ads | bing | cpc | {Campaign} {keyword:default} {AdId} |
| paid_social | none, type the campaign name | ||
| newsletter | none, type the campaign name |
Google's ValueTrack list is in the Google Ads help centre, and Meta's dynamic parameters are in the Meta Business help centre. Microsoft lists its own in the Microsoft Advertising help.
Meta can also add a source of Facebook or Instagram and a medium of paid to your ad traffic by itself. If you set your own utm_source and utm_medium, check GA4 once to see which values arrive.
GA4 sorts every visit into a channel using the source and the medium. Get the medium wrong and paid traffic shows up as Unassigned or Referral, and your paid social report comes out empty. These are the rules from Google's default channel group that matter for ads:
| GA4 channel | Source | Medium |
|---|---|---|
| Paid Search | google, bing | cpc, ppc, paid... |
| Paid Social | facebook, linkedin | cpc, ppc, paid... |
| Display | any | display, banner, cpm |
| any | ||
| Organic Social | facebook, linkedin | social, or no paid medium |
So utm_medium=paid_social with a Facebook source is Paid Social, and utm_medium=social with the same source is Organic Social. One word moves the whole budget into the wrong report.
Tagging tells you which ad sent the visit. Whether the visit turned into a lead depends on the page. My conversion tracking guide covers the other half, and Postclick audits the landing page behind the ad.
A UTM builder adds tracking tags to the end of a link, such as utm_source=facebook and utm_medium=paid_social. When someone clicks the link, your analytics tool reads the tags and records where the visit came from. This one also gives you a Final URL suffix for Google Ads and Microsoft Ads.
Google Analytics needs utm_source, utm_medium and utm_campaign to attribute a visit properly. utm_term, utm_content and utm_id are optional. Use utm_content to tell two ads or two links in one email apart.
Not for Google Analytics. With auto-tagging on, GA4 reads the gclid and reports the campaign, ad group and keyword for you. Add UTMs as well when a CRM, a form tool or another analytics tool needs to see the source, and put them in the Final URL suffix.
Yes. GA4 treats Facebook and facebook as two different sources, so one campaign can split into two rows. Pick lowercase and stick to it. The lowercase option in this builder does that for you.
No. A UTM on a link from your own homepage to your own pricing page starts a new session in Google Analytics and wipes the real source. Use UTMs only on links that bring people to your site from somewhere else.
Both live in Google Ads. A tracking template wraps the whole URL and is for third-party click trackers. A Final URL suffix is only the parameters, which Google adds to the end of your landing page URL. For UTMs, the Final URL suffix is the simpler choice.