UTM tags
Every utm_source and utm_medium pair your landings carried, how Intelligence/Ads read each one, and the rules your site can set to correct that reading.
Updated October 26, 2026
UTM tags lists every utm_source and utm_medium pair a landing on your site carried in the period, with the sessions each pair brought, how Intelligence/Ads read the tag, and why. A click id always outranks a tag. Owners and admins can correct a reading with a rule, which applies to every period, past ones included.
The screen
UTM tags is the third entry of the rail's Sources group, right after Campaigns: a campaign's network is this reading, so a tag read wrong is a campaign filed under the wrong network, or under none. The header carries the period control (see Time periods) and a button to read again. The page is open on every plan; the plan's window bounds what the period can reach, and on Free the month's event allowance can stop the read early. There is no comparison with a previous period here.
Top to bottom: four figures, then the Tagged pairs table with the Built-in lists panel under it, beside a Setup column holding Your rules and, for owners and admins, a Next steps line.
The figures
| Figure | What it counts |
|---|---|
| Tagged pairs | Every distinct pair in the period. |
| Tagged sessions | The sessions listed below, summed. A session counts once, on its landing. |
| Proven by a click id | Of those sessions, the ones whose landing carried a click id. |
| Read from the tag alone | Of those sessions, the ones only the tag attributed. |
A landing with neither a utm_source nor a utm_medium never counts here. The list stops at the 500 pairs with the most sessions; past that, the three session labels add "over the N pairs listed" and a line under the table says how many pairs the period held and that the rest carried fewer.
Tagged pairs
One row per pair, grouped by what the tag reads as. A find-in-list above the table matches the source and the medium only, ignoring case and accents, and narrows the rows on screen. At rest it states the list's size ("9 pairs"); while narrowing, "3 of 9 pairs shown". A query that matches nothing leaves one line saying so.
The blocks. Each block has a header with the network's mark (Not paid draws an empty dashed tile), its name, its pairs and its sessions in the period. The order is fixed:
- Other Paid first: a paid medium whose source names no network Intelligence/Ads knows.
- Then each named network, most sessions first.
- Not paid last: pairs whose medium is not a paid one, or that carry no medium.
A pair is filed by its tag, not by its click ids.
| Column | What it shows |
|---|---|
| Source | The utm_source value exactly as received, in monospace, or a dash when the landing carried none. Google and google are two rows. |
| Medium | The utm_medium value, the same way. |
| Sessions | Landings with this pair in the period. |
| Click id | Of those, the ones a click id attributed. When the click id proved a network other than the block's, that network is named beside the count. |
| Tag alone | Of those, the ones only the tag attributed. |
| Why | A badge, Built-in or Your rule, saying who decided the reading, then one sentence saying what was decided. |
A zero prints faint: an observation that did not happen, not a grade. On a phone each row becomes a card.
The Why sentence takes one of these forms, with the values in monospace:
- "No utm_medium — a tag without one is never paid".
- "
socialis not a paid medium". - "
cpcis a paid medium ·googleis Google Ads". - "
cpcis a paid medium", then a clause sayinglnkdnames no network Intelligence/Ads knows: the pair is Other Paid. - "
cpcis a paid medium · no utm_source to name a network".
When every landing of the pair carried a click id, the sentence ends with "every landing carried a click id, which outranks it": the tag still reads as stated, it simply decided none of these sessions.
The footnote reads: "Values exactly as received; a rule matches any case. Sessions are landings in this window."
A period with no tagged landing says "No tagged landing in this period." and that a pair appears as soon as a landing arrives carrying a utm_source or a utm_medium. A read that failed says "The tags could not be read just now" and that nothing has changed.
The reading
Why a pair reads the way it does follows one fixed order, the same on every screen that files traffic by network. The Why column names the step that decided.
- A click id. If the landing carried one, its network is the reading, whatever the tag says. No rule changes this step.
- The medium. A site rule on the
utm_mediumvalue decides paid or not paid; without one, the built-in list of paid mediums does. A medium that is not paid ends the reading: the pair is Not paid and the source is not read. - The source. A site rule on the
utm_sourcevalue names the network; without one, the built-in source lists do; when no list names it, the pair is Other Paid.
Both rules compare the value lowercased, which is why one rule covers Google and google. A source rule only acts under a paid medium, and no rule can make a pair with no medium paid. A rule saved now applies to every period, past ones included.
Changing a reading
Owners and admins see a pencil at the end of each row that carries a medium; members see no pencil. A pair with no medium gets no pencil. See Members and roles.
The pencil opens one small form with the rules the pair can meet — the medium, and the source when the pair carries one:
- Medium. A three-way choice: Built-in, Paid, Not paid. A hint says what the built-in list reads this medium as, and how far the rule reaches in the period on screen: "The built-in list reads
socialas not paid. Every pair taggedsocialfollows — 2 pairs, 9 sessions in this window". - Source. A list: "Built-in · " followed by the network the lists give this source (Other Paid when none does), then the networks a rule may name: Google Ads, Meta, TikTok, Microsoft Ads, LinkedIn, X and Other Paid. The hint says the source is read only while the medium is paid, and how many pairs and sessions from this source follow.
A rule is on a value, not on a row: the rule lands on every pair carrying that value. The footer says so: "Shared with the workspace · re-reads past windows too." Save stays disabled until something changed. A save the page refuses prints its reason in the footer:
- "This site already holds 100 rules — remove one first."
- "Rules take plain ASCII values, and this one isn't."
- "Only owners and admins change a reading."
- "That didn't save. Try again."
Values are lowercased and not trimmed: " cpc" and "cpc" are two values.
Your rules
The Setup column holds a panel titled "Your rules", with "N of 100". The footer reads: read before the built-in lists, on this site only; owners and admins set them. One row per value a rule sits on, sorted by what it applies to, then by value.
| Column | What it shows |
|---|---|
| Value | The value the rule sits on, lowercased, in monospace. |
| Applies to | Medium or Source. |
| Reads as | Paid or Not paid for a medium; the network with its mark for a source. |
| Updated | The day of the last change, as a UTC day stamp ("Oct 5"), or a dash. |
Owners and admins see a remove control at the end of each row. Removing puts the value back on the built-in lists, with no confirmation; the table re-reads at once. If it did not go through: "That rule wasn’t removed. Try again."
With no rule, the panel says "No rules yet." and that every pair above is read with the built-in lists; an owner or admin also reads that a pair's pencil adds one, for every window, past ones included; a member reads that owners and admins can change a pair's reading. If the rules could not be read, the panel says "The rules could not be read just now" and that nothing has changed; the Built-in lists panel and the pencils are then absent, and the pairs still list.
When a pair reads as Other Paid, owners and admins get a Next steps line: "Name the network of N pairs", which jumps to the Other Paid block.
Built-in lists
The "Built-in lists" panel, "read after your rules", prints the lists the reading falls back to when no rule applies.
| Row | What it holds |
|---|---|
| Click ids | Per network, the URL parameters whose presence proves it. |
| Paid mediums | The utm_medium values read as paid. |
| Sources | Per network, the utm_source values that name it, read only under a paid medium. |
| Anything else | A paid medium whose source no list names reads as Other Paid. |
The lists as they stand:
| List | Values |
|---|---|
| Click ids → Google Ads | gclid, gbraid, wbraid |
| Click ids → Meta | fbclid |
| Click ids → TikTok | ttclid |
| Click ids → Microsoft Ads | msclkid |
| Click ids → LinkedIn | li_fat_id |
| Click ids → ChatGPT Ads | oppref |
| Paid mediums | cpc, ppc, paid, paidsearch, paid_search, paidsocial, paid_social, sponsored, display, affiliate |
| Sources → Google Ads | google, adwords, googleads, google-ads |
| Sources → Meta | facebook, meta, instagram, fb, ig |
| Sources → TikTok | tiktok |
| Sources → Microsoft Ads | microsoft, bing, msn |
| Sources → LinkedIn | linkedin |
| Sources → ChatGPT Ads | chatgpt, openai |
| Sources → X | twitter, x |
Tag your ad links covers what to put in the link.
A rule and the Campaigns screen
A campaign's row on Campaigns is a network and a utm_campaign. A source rule that moves a source to another network therefore files that source's campaigns under new rows; the old rows stop receiving clicks and read as dormant, and their name and star stay on them.
What this screen does not do
- It is not a UTM builder. This page shows what was observed and how it was read, and lets the workspace correct the reading.
- It never shows a session, a path or a visitor. A pair carries counts only. Every tagged pair shows, paid or not; untagged landings never appear.
- It passes no verdict.
chatgpt.com / —reads as Not paid and the row says so. Whether that is right is your call, and the pencil is how you make it. - No rule outranks a click id, and no rule makes a pair with no medium paid.
- It does not sort on demand. The filter narrows the rows; the order is stated in each block.
- It does not compare periods. Nothing here is gated by plan beyond the window: the pairs, the rules and the editor are open on every plan.
Questions
- A pair reads as Google Ads, but its Why line says every landing carried a click id. Which decided?
- The click id. A click id outranks the tag on every landing that carries one. The tag's own reading is still printed, because it is what a rule can change; the extra clause says it decided none of those sessions.
- Why are Google / cpc and google / cpc two rows?
- Values print exactly as received, and those are two different strings someone typed into a link. One rule covers both, because a rule matches any case.
- Can a member change a reading?
- No. Owners and admins see the pencil and the remove control; members see the same page without them. A rule changes how the whole workspace reads the site.
- Does a rule change past periods?
- Yes. A rule applies to every period, past ones included, on every screen that files traffic by network — Campaigns among them.
- Why can I not set a rule on an accented value?
- Rules take plain ASCII values, 1 to 200 characters. The form says so when a value does not qualify, and the pair keeps its built-in reading.