Skip to main content

How to Track Google Ads Campaigns

Sealmetrics reads the UTM parameters located in your URLs.

By incorporating these URL tracking templates into your Google Ads campaigns, SEAL can track campaigns, terms/keywords, placements, or product IDs from Google Ads.

Because Sealmetrics is cookieless, the landing URL is the only place attribution data can come from: UTM tags and ad click IDs are extracted server-side from the page URL the visitor actually lands on. If a parameter is not in that URL, it cannot be reported.


Google Search & Display (GDN)

{lpurl}?utm_medium=cpc&utm_source=google&utm_campaign={Campaignid}&utm_term={ifsearch:{keyword}\{matchtype}}{ifcontent:{placement}}

Google Shopping

{lpurl}?utm_medium=cpc&utm_source=google&utm_campaign={Campaignid}&utm_term={_term}

What the template does

Everything in {curly braces} is a Google Ads ValueTrack parameter. Google replaces it at click time, before the visitor reaches your site, so Sealmetrics only ever sees the final resolved values.

PlaceholderReplaced byLands in Sealmetrics as
{lpurl}The ad's final URLThe landing page
{Campaignid}The campaign's numeric IDCampaign in the Campaigns tab
{keyword}The keyword that triggered the adPart of Term
{matchtype}The keyword's match type (e exact, p phrase, b broad)Part of Term
{placement}The site or app where a Display ad was shownTerm, for Display clicks
{_term}A custom parameter you define in Google AdsTerm, for Shopping clicks

The two conditional wrappers are what let a single template cover both networks:

  • {ifsearch:…} resolves only when the click came from the Search network. Everything else is dropped.
  • {ifcontent:…} resolves only when the click came from the Display network.

So utm_term={ifsearch:{keyword}\{matchtype}}{ifcontent:{placement}} produces a utm_term that holds the keyword and its match type on Search clicks, and the placement domain on Display clicks — never both, and never an empty tag on either network. Sealmetrics then reports whichever value arrived as the TERM.

utm_medium=cpc and utm_source=google are fixed values, not ValueTrack. They are what keep these visits classified as paid: a hit carrying utm_ parameters or a gclid is never counted as organic search. See How Sealmetrics Calculates SEO Traffic.

note

{_term} in the Shopping template is a custom parameter, not a built-in one. Google only fills it if you have defined a custom parameter named term in your Google Ads account, campaign, or ad group. If it is undefined, the value arrives empty and the Terms tab shows (not set).


You can add this code directly at the Account level following these Google Ads instructions.

When configured at the account level, Google Ads will automatically append all value-track parameters to every campaign — including new ones — ensuring reliable attribution in Sealmetrics.


How to verify it works

You do not have to wait for a real click. Sealmetrics processes hits in seconds, not hours, so you can confirm the setup end to end in a couple of minutes.

1. Test the resolved URL first. In Google Ads, use the Test button next to the tracking template. Google shows you the final URL a click would produce. Check that the UTM parameters are present and filled in — not left as literal {keyword} text.

2. Land on your own site with a tagged URL. Paste that resolved URL into a browser and load the page. Any URL with the same parameters works for a smoke test, for example:

https://yoursite.com/landing?utm_medium=cpc&utm_source=google&utm_campaign=123456789&utm_term=running+shoes

3. Confirm the hit arrived. Open the Overview report and check the Last hit timestamp at the top right — it should read "seconds ago". If it does not move, the hit never arrived and the problem is with your tracking installation, not the template. See Data Delay.

4. Confirm the values landed in the right tabs. Open the Sources report and check:

TabWhat you should see
Mediumscpc
Sourcesgoogle
CampaignsYour campaign ID (the numeric value {Campaignid} resolved to)
TermsYour keyword and match type, or the placement for Display clicks

Troubleshooting

Terms show (not set), or campaigns show numeric IDs you can't read.
(not set) means the parameter never reached the landing URL. {Campaignid} resolves to Google's numeric campaign ID, not the campaign name, so numbers in the Campaigns tab are expected behaviour rather than a fault. See Understanding the "(not set)" Value.

A redirect sits between the ad and the landing page.
Redirect chains frequently strip query parameters. Because Sealmetrics reads UTMs from the URL of the page where the pixel fires, anything dropped in a redirect is gone for good. Load the ad URL and inspect the address bar after all redirects settle — the parameters must still be there.

Your marketing stack uses different parameter names.
If your team standardises on names like campaign_id instead of utm_campaign, map them in Settings → Sites → UTM Mappings rather than editing the template. See How to Change UTM Parameters.

Medium shows (none) instead of (not set).
That is specific to a missing utm_medium, and is aligned with GA4's behaviour. It means utm_medium=cpc did not survive to the landing URL.