Tag your ad links
Which URL parameters the tracker reads, how a landing is resolved to a network, what happens to untagged clicks, and how a site corrects the reading of its own tags.
Updated October 26, 2026
The screens of the app are read over paid landings. A landing is paid when the URL it arrived on carries a click id, or a utm_medium on the paid list — then utm_source names the network. Untagged landings are ingested and kept, not shown; the UTM tags screen shows how each tag was read and lets owners and admins correct it.
The parameters the tracker reads
The tracker reads the parameters below from the page's URL on every event. The network is never inferred from a referrer or a cookie: the referrer says that a landing arrived by referrer and where an ad ran, never which network bought the click. A session's tags are the ones its first page view carried — the landing — and a session with no page view is not counted at all.
Click ids are appended by the ad platform itself, so their presence proves who served the click:
| Parameter | Reads as | Note |
|---|---|---|
gclid | Google Ads | Appended by the platform when auto-tagging is on. |
gbraid, wbraid | Google Ads | Google's click ids on iOS, sent instead of a gclid. |
fbclid | Meta | Meta also appends it to links shared organically; a landing carrying one still reads as Meta. |
ttclid | TikTok | |
msclkid | Microsoft Ads | Appended by the platform when auto-tagging is on. |
li_fat_id | LinkedIn's click id, including its Audience Network on other sites. | |
oppref | ChatGPT Ads | OpenAI's click id, appended to the landing URL on every click on an ad in ChatGPT. |
UTM parameters are typed into the link by you, so they are a declaration, read against the lists below:
| Parameter | Role |
|---|---|
utm_medium | Decides whether the click was bought — read against the paid list, or your site's rule. |
utm_source | Names the network, read only once the medium is paid. |
utm_campaign | The campaign's key: a campaign on the Campaigns screen is the pair of a network and a utm_campaign, exactly as received. |
utm_content, utm_term | Kept on the session and printed beside a click — utm_term as the searched term, utm_content as the ad — and offered as tag groups on the Visitors screen. |
utm_id, utm_source_platform, utm_creative_format, utm_marketing_tactic | Recorded and kept; no screen reads them. |
The order of resolution
The same rules, in the same order, give every count in the app and every row of the Realtime screen:
- A click id. The first one present, tested in this order:
gclid,fbclid,ttclid,msclkid,gbraid,wbraid,li_fat_id,oppref. Its presence settles the network; nothing else is read, and no rule can move it. - Is the medium paid? Your site's rule on the
utm_mediumvalue if there is one, else the built-in list:cpc,ppc,paid,paidsearch,paid_search,paidsocial,paid_social,sponsored,display,affiliate. A landing with noutm_mediumis never paid by its tags. - Which network? Your site's rule on the
utm_sourcevalue if there is one, else the built-in lists below, else Other Paid — paid, naming no network. - Otherwise, not paid. The landing has no network and sits outside every paid lens.
Built-in sources, by the network they name:
| Network | utm_source values |
|---|---|
| Google Ads | google, adwords, googleads, google-ads |
| Meta | facebook, meta, instagram, fb, ig |
| TikTok | tiktok |
| Microsoft Ads | microsoft, bing, msn |
linkedin | |
| ChatGPT Ads | chatgpt, openai |
| X | twitter, x |
Values are lowercased before they are compared, never trimmed: CPC matches cpc, and a value with a leading space matches no built-in value — only a rule set on it, space included. The UTM tags screen shows how each landing was attributed, as sessions proven by a click id against sessions read from the tag alone.
A change to a rule applies to every window, past ones included.
Untagged landings
A landing that carries neither a click id nor a utm_medium read as paid has no network. It is still collected, on every plan, and nothing is deleted. What changes is where it shows:
- The lenses are read over paid landings only, so it has no row on Overview, Networks or Campaigns.
- The Events screen counts every row the site received, paid or not, and says how many were paid beside the total.
- The Realtime screen shows an arrival only once its landing resolves to a network.
A paid landing with no utm_campaign is a different case. It has a network, so it is in your site and network totals; it has no campaign, so it gets no row on the Campaigns screen and reads as Untagged where a feed names the campaign — and Untagged is not a lens you can select. Missing campaign tagging costs you a name, never a number.
The UTM tags screen
In the rail, under Sources, right after Campaigns. It shows what Intelligence/Ads observed on the site's landings and how it read each tag, on every plan, for the period the picker sets. As on every screen, the plan governs the readable window. Column by column it is on its own page, UTM tags; the short version:
- A filter above the blocks narrows the pairs by their values and always says how many are listed.
- The figures — Tagged pairs, Tagged sessions, Proven by a click id, Read from the tag alone. Sessions are landings in the window.
- Tagged pairs — one row per
utm_sourceandutm_mediumpair, values exactly as received (Googleandgoogleare two rows), grouped by what the tag reads as: Other Paid first, then the networks by sessions, Not paid last. Each block is headed by what it reads as, with its pairs and sessions in the window. Each row splits its sessions into Click id — a click id proved them, and no rule can move those — and Tag alone — only the tag attributed them. A Why line says which list or which rule decided, with aBuilt-inorYour rulebadge. The 500 pairs with the most sessions are listed; past that, the page says how many pairs the window held. - A period with no tagged landing says "No tagged landing in this period." A read that fails says the tags, or the rules, could not be read just now.
- Untagged landings never appear here, and a pair carries counts only — never a session, a path or a visitor.
Rules on this site
A rule corrects how Intelligence/Ads reads one value on one site. Two kinds exist:
| Rule | Set on | Reads as |
|---|---|---|
| Medium | a utm_medium value | Paid, or Not paid |
| Source | a utm_source value | one network: Google Ads, Meta, TikTok, Microsoft Ads, LinkedIn, X, or Other Paid |
Each control also offers Built-in, which removes the rule and puts the value back on the built-in lists.
Owners and admins set them from the pencil at the end of a pair's row; a member sees the reading, not the pencil. The editor states each control's reach in the window before you save — every pair tagged with that value follows, with the pairs and sessions it touches — because a rule is per value, not per pair. A pair with no medium gets no pencil: no rule can make it paid.
What a rule can and cannot do:
- A click id always outranks it. Rules act on the tag only.
- A source rule is read only while the medium is paid, by the built-in list or by your rule. A source alone never classifies.
- It matches any case and is never trimmed. Values are plain ASCII, 1 to 200 characters; the editor refuses anything else up front.
- One rule per value: a medium is never both paid and not paid, and a source never names two networks. A site holds at most 100 rules.
- It is shared with the workspace and applies to past windows too.
Rules on this site lists them — Value, Applies to, Reads as, Updated — with a remove control that puts the value back on the built-in lists. Its footnote counts the rules against the cap ("N of 100 rules on this site"); with none, it says every pair is read with the built-in lists. Built-in lists beside it prints what applies when no rule does: the click ids per network, the paid mediums, the sources per network, and the Other Paid fallback.
What tagging does not do
- It is not a UTM builder. The screen shows what was observed and how it was read; the links are yours to write.
- It passes no verdict on a tag. A pair read as not paid is stated as such. Whether that is right is your call, and the pencil is how you make it.
- A rule never outranks a click id, never reaches another site, and never classifies on a source alone.
- Nothing to wait for. A rule shows in every window as soon as it is saved.
- The four GA4-era parameters —
utm_id,utm_source_platform,utm_creative_format,utm_marketing_tactic— are kept with the event and read by no screen. - It never shows a session, a path or a visitor. A pair is its counts; the drill screens are elsewhere.
Questions
- My links carry a gclid. Do I still need UTM parameters?
- A gclid alone attributes the landing to Google Ads, and the click counts in your site and network totals. Without a utm_campaign the click has no row on the Campaigns screen and reads as Untagged where a feed names the campaign, so add utm_campaign if you want your campaigns told apart.
- My utm_medium is paid-social and the landing reads as not paid. Why?
- paid-social is not on the built-in list of paid mediums (paidsocial and paid_social are). On the UTM tags screen, an owner or admin can set a rule that reads paid-social as paid. Every pair tagged with it follows, in every window.
- Are Google and google the same source?
- The classifier compares lowercased, so both read as Google Ads and one rule covers both. The UTM tags screen lists them as two rows, because it prints values exactly as received.
- Does changing a rule reprocess my history?
- A rule applies to past windows the moment it is saved. Changing the links themselves only changes what new landings carry.
- What is Other Paid?
- A landing whose utm_medium is paid but whose utm_source names no network Intelligence/Ads knows. It is still paid, so it stays in your totals under Other Paid instead of disappearing.