Recently Updated: 15 min read

A UTM Glossary for Ad Links: utm_id and Source Platform

A UTM Glossary for Ad Links: utm_id and Source Platform

A UTM glossary for ad links is one shared sheet that fixes which value each parameter takes, how it is spelled and who may change it. The Google Analytics help page on collecting campaign data with custom URLs (Opens in a new tab) says that when you add parameters to a URL you should always use utm_source, utm_medium and utm_campaign, and it strongly recommends also setting utm_id and utm_source_platform. It adds that parameter values are case sensitive, so Meta and meta are different values. If you run one campaign across several publishers with several creatives, the glossary is what lets you report the whole campaign on one line.

One shared sheet instead of memory

With one publisher and one creative, a person can remember every tag. Add a second publisher, a third creative and a second flight, and the number of links multiplies. When different people type links by hand, one publisher turns into three source names and one report row turns into three.

Example scenario: A trekking guide company promotes a multi-day mountain route on three outdoor magazines and a hiking club newsletter, each with several banners. The marketer writes some links and the agency writes the rest. By the end of the season GA4 shows the same magazine under two source names, and someone has to merge rows by hand before the season review. A glossary removes that merge step before it is needed.

The nine parameters at a glance

The definitions come from the Google Analytics page and refer to the parameters in a campaign URL. Dimension names inside the reports can look different.

Table: UTM parameters and what each one means

ParameterMeaning according to the help pageRole in your glossary
utm_idIdentifies a specific campaign or promotion; use the same IDs you use when uploading campaign dataCampaign ID
utm_sourceThe referrer, such as a site, newsletter or billboardPublisher name
utm_mediumThe marketing channel, such as cost-per-click, banner or emailChannel type
utm_campaignThe product, slogan or promo code behind the campaignCampaign name
utm_source_platformThe platform that directs traffic to a property, such as Search Ads 360 or Display & Video 360Buying platform
utm_termThe paid keywordSearch keyword
utm_contentDifferentiates creatives, such as two call-to-action links in the same emailCreative code
utm_creative_formatThe type of creative, such as display, native, video or search; not currently reported in Google Analytics propertiesCreative format
utm_marketing_tacticThe targeting criteria applied, such as remarketing or prospecting; not currently reported in Google Analytics propertiesTargeting type

Because the last two parameters are not currently reported in GA4, adding them does not enrich a GA4 report. Practical suggestion: include them only if you pass data to another tool.

Google's help pages and the list of reported parameters can change; check the current page before you finalize your sheet.

The help page does not label any single parameter as strictly required. It does say you should always use utm_source, utm_medium and utm_campaign, and it strongly recommends setting every relevant parameter, naming utm_source, utm_medium, utm_campaign, utm_id and utm_source_platform in particular.

Table: link tiers

TierParametersRule
Every linkutm_source, utm_medium, utm_campaignThe three the help page says to always use
Strongly recommendedutm_id, utm_source_platformMake them mandatory in the glossary for multi-publisher campaigns
Situationalutm_term, utm_contentKeyword on search campaigns, creative code on multi-creative ones
Not reported in GA4 todayutm_creative_format, utm_marketing_tacticOnly when another tool needs them

Source versus source platform

According to the help page, utm_source is the referrer, such as a site, newsletter or billboard, and utm_source_platform is the platform that directs traffic to the property, with Search Ads 360 and Display & Video 360 as examples. They are not interchangeable. A banner can appear on a publisher's site while being delivered through a buying platform. In that case the publisher goes in the source and the platform goes in the source platform field.

A sheet rule that settles it

Practical suggestion: if you bought the placement directly from the publisher, utm_source carries the publisher and the source platform follows whatever rule the sheet sets for direct buys. If you bought through a platform, utm_source carries the publisher and utm_source_platform carries the platform. Write both cases into the sheet, because an unwritten rule becomes a personal interpretation.

Naming rules per field

The rules in this section are practical suggestions for a team.

The utm_id value

utm_id identifies a specific campaign or promotion and should match the IDs you use when uploading campaign data. Practical suggestion: tie it to the row number or code in your campaign calendar or budget sheet. A short code with no words in it stays valid even when the campaign name is rewritten.

  • Give every campaign row one ID that never changes.
  • Write the ID exactly as it appears in the system you upload to.
  • Keep the ID identical across all publishers for the same campaign; the source parameter carries the publisher.

The source value

Pick one spelling per publisher and add it to the sheet before the first link uses it. Use the shortest stable name, such as the domain without the extension. When one organization runs several sites, each site is its own source.

The medium value

Keep a closed list of channel types: banner, email, social. A value that is not on the list does not appear in a link. If a new channel is needed, update the sheet first.

The campaign value

Build the name from the product, the promotion and the period. If you include a date, write it in one format only. When the name changes, the ID stays the same.

Case sensitivity: Meta is not meta

The help page states that utm_source=google is different from utm_source=Google. Its best practice section recommends lowercase as the standard, because values such as Meta and meta are treated as different values. Put the standard in the first row of the glossary.

Table: one source, three spellings

Written in the linkShown in the reportResult
utm_source=Peak-JournalPeak-JournalSeparate row
utm_source=peak-journalpeak-journalSeparate row
utm_source=PEAK-JOURNALPEAK-JOURNALSeparate row

Where case does not matter

The custom channel groups help page (Opens in a new tab) says channel definitions are not case sensitive. A channel rule can therefore treat Meta and meta as one match, while the raw source dimension still lists them as two values. A channel group that tolerates case does not make the lowercase standard unnecessary.

Where (not set) comes from

The help page says missing UTM parameters result in (not set) values in reporting. If a link has utm_source but no utm_campaign, the campaign dimension shows (not set). That is a sign of an incomplete link and not of a broken property.

Why UTMs hide in the landing page report

The same page notes that UTM parameters are omitted from the Landing page + query string and Page path + query string dimensions, and that this information appears in the Page location dimension instead. Do not look for UTM values in a landing page report that is built on those two dimensions.

To reduce (not set) rows, confirm before launch that every mandatory field in the sheet is filled. For other causes of unassigned traffic, see GA4 unassigned traffic: causes and fixes.

The working form of the glossary is a table where every row is a link. Its columns make the builder choose a value instead of typing free text.

Table: link builder layout

ColumnContentControl
Campaign IDutm_id valueMatches the calendar row
Publisherutm_source valuePicked from the sheet's list
Platformutm_source_platform valueList value or blank by rule
Channelutm_medium valueClosed list
Campaign nameutm_campaign valueLowercase, one format
Creativeutm_content valueCreative code
Landing pageBase addressLive page
Final linkAssembled addressNever typed by hand

Example scenario: The trekking guide company builds twelve rows for three publishers and four banners. Each final link is assembled from the other columns, and nobody types a link by hand. The delivery list sent to the publisher includes the final link column.

The same logic works for sponsored articles; for tagging a single sponsored post, see sponsored post reporting with UTM, GA4 and Search Console. That article covers one placement, while the sheet here handles many placements and many creatives at once.

Custom channel groups and the glossary

According to the custom channel groups page, the supported fields include Campaign id, Campaign name, Default channel group, Manual ad content, Medium, Source and Source platform. So the utm_id and utm_source_platform values in your glossary can serve as conditions in a custom channel group rule. Traffic is placed in the first channel whose definition it matches, so channel order matters.

  • Standard properties get 2 custom channel groups and 360 properties get 5.
  • Each group can hold 50 channels.
  • Custom channel groups can be applied retroactively.
  • Deleting a custom channel group cannot be undone.

A sample glossary for a route campaign

Example scenario: The company launches a spring route campaign. All values in the sample glossary are invented and only show the layout. They are not tied to any real publisher, and the same layout works whether the company runs three placements or thirty. What matters is that each value in the sample is the only accepted spelling for its row, which is the property that keeps a season of reports readable.

Table: spring route glossary

FieldDefinition ruleSample value
utm_idCalendar code, never changestr-spring-01
utm_sourcePublisher's single spelling, lowercasepeak-journal
utm_mediumFrom the closed list: banner, email, socialbanner
utm_campaignProduct and period, joined with hyphensalpine-route-spring
utm_source_platformBuying platform, blank rule written in the sheetdv360
utm_contentCreative size and version300x250-v2

The final link is the landing page address followed by a question mark and six name and value pairs joined with ampersands. Example: ?utm_id=tr-spring-01&utm_source=peak-journal&utm_medium=banner&utm_campaign=alpine-route-spring&utm_source_platform=dv360&utm_content=300x250-v2. The values contain no spaces and no capital letters.

The hand-off note for each publisher

The note should say three things: the complete final link, which creative it belongs to, and that the link must be pasted unchanged. If a publisher shortens the link or strips the parameters, the visits show up as direct or without a source. After launch, click the ad yourself and confirm the parameters survive in the address bar.

As creatives pile up

As creatives multiply, the utm_content value grows. Keep size, version and message variant in a single code and explain the code in the sheet, so a person reading the report three months later can decode 300x250-v2. Give each message variant one letter or digit from a short list kept in the sheet.

Maintaining the glossary

A glossary written once and forgotten drifts within a season. Assign an owner and define the only route for adding a new value.

Table: glossary roles

RoleResponsibilityWhen it acts
Glossary ownerSets value lists and spelling rulesWhen a new publisher, channel or creative type is added
Link builderAssembles final links from the sheet and sends themWith each new creative delivery
Report readerScans the source and campaign report for stray valuesMonthly and at the end of each campaign

Columns worth adding

Beyond the parameters, keep three more facts on each row: the date the link went live, who built it and which version was sent to the publisher. When a source jumps or drops, the live date tells you when to look. When a stray value appears, the builder's name tells you whom to ask. When a publisher keeps using an old link, the version tells you that.

Onboarding a new channel

If the company starts sponsoring a hiking podcast, the sheet gets a new medium value and a new source entry first, and links come afterward. Reversing the order leaves a value in the live report that the sheet does not define.

Wrapping up a campaign

Do not delete rows when a campaign ends. Mark them closed. Closed rows show the past spelling when you work with the same publisher again, explain an old ID that surfaces in a report, and give you a reference when you decide whether a relaunch reuses the ID.

Working with agencies and publishers

If the glossary stays internal, links built by an agency or publisher will drift. Share the current version at the start of every campaign and write into the agreement that links follow it. Ask publishers who use their own link tools which fields they leave free, so that when a stray value appears you can tell who built the link.

Launch-day testing

The pre-launch checklist covers the link itself. After the link reaches the publisher it can still change, so run a short verification the day the ad goes live.

  1. Find the ad on the publisher's page and click it.
  2. Confirm that all six parameters are present in the address bar of the landing page.
  3. In the GA4 realtime report, confirm the source appears with the spelling in the sheet.
  4. If the source name differs, take a screenshot and send the publisher the link again.
  5. Record the test date and result on the sheet row.

Reviewing week one

During the first week, open the source report and search for any source, medium or campaign value that is not in the sheet. An unexpected row has two possible causes: the link was built wrongly, or the publisher created a new link with its own tool. The fix is the same in both cases. Rebuild the link from the sheet, send it, and confirm the old link was removed.

Example scenario: In the second week the company sees Peak-Journal next to peak-journal in the report. Few sessions reach the second spelling, but its conversions sit on a separate row, so the publisher looks split in two. The marketer asks the publisher to switch to the lowercase link, writes the change date into the sheet and shows both rows side by side until that date. At the season's end the totals are combined with that note attached.

Table: link errors and how to prevent them

ErrorWhat the report showsPrevention
Two spellings of one publisherTwo source rowsPublisher list in the sheet, link built from the sheet
Capital letters in a valueA separate row from the lowercase valueLowercase rule in the sheet
Missing utm_campaign(not set) in the campaign dimensionMandatory field check
Two IDs for one campaignGrouping by ID splitsID comes from the calendar
Publisher strips parametersDirect or sourceless trafficFirst-click test
Misspelled mediumA channel not on the listMedium chosen from the list

The fix-it rule

Two options exist: correct the link at the publisher or reconcile the rows in the report. Practical suggestion: correct the link, and because traffic before the correction date keeps the old value, leave a note in the report that explains which two values were merged and for which date range.

Decision rule: reuse or create a value?

Practical suggestion: when a link request arrives, walk through three steps before you create a value.

  1. If the sheet already holds a value with the same meaning, use it.
  2. If a near spelling exists, do not invent a new one; map the request to the existing spelling.
  3. If the source, channel or campaign is new, tell the glossary owner, who adds the value and writes the date.

Example scenario: the outdoor magazine asks for a link for its newsletter. The magazine site is already defined as peak-journal and email is on the closed medium list. Step one settles it: the source stays the same, only utm_medium becomes email, and no new row is added.

Pre-launch checklist

  • Are utm_source, utm_medium and utm_campaign filled in?
  • Does utm_id match the ID in the campaign calendar?
  • Is utm_source_platform filled in for ads delivered through a buying platform?
  • Do all values follow the lowercase spelling in the sheet?
  • Is the source name defined in the sheet, or was a new spelling invented?
  • Were spaces and special characters replaced with the separator the sheet defines?
  • Was the final link assembled from the sheet and not typed by hand?
  • Does the landing page open, and do the parameters survive in the address bar?

Easily confused points

utm_source versus utm_source_platform

The first names the referring site or newsletter. The second names the platform that directs the traffic. Filling both with the same value treats the platform as the publisher.

utm_id versus utm_campaign

utm_campaign is the readable name. utm_id is the identifier that should match the IDs you use when uploading campaign data. A rename does not require a new ID.

Case tolerance in channel groups versus raw values

The channel rule ignores case, but the source and campaign dimensions do not. The channel table can look tidy while the source table is scattered.

Looking for parameters that GA4 does not report

utm_creative_format and utm_marketing_tactic are not currently reported in Google Analytics properties, so adding them does not add a GA4 dimension.

Expecting the sheet to repair reports

The sheet decides how links are written from now on. It does not merge rows that GA4 already holds. If a link with a stray spelling has gone live, one of the two correction options applies, and the sheet takes effect from the next link onward.

Frequently Asked Questions

It says to always use utm_source, utm_medium and utm_campaign, and it strongly recommends utm_id and utm_source_platform as well.

Does letter case change a UTM value?

Yes. According to the help page, utm_source=google is different from utm_source=Google, and the page recommends lowercase as the standard.

What is utm_id for?

It identifies a specific campaign or promotion. The page says to use the same IDs you use when uploading campaign data.

What separates utm_source_platform from utm_source?

utm_source is the referrer, such as a site, newsletter or billboard. utm_source_platform is the platform that directs traffic to your property, such as Search Ads 360 or Display & Video 360.

Where does (not set) in my report come from?

The help page says missing UTM parameters result in (not set) values in reporting.

Are utm_creative_format and utm_marketing_tactic worth adding?

The help page says neither is currently reported in Google Analytics properties. Practical suggestion: add them only when another tool needs the data.

Conclusion

A UTM glossary lets a multi-publisher campaign roll up on one row. Every link carries utm_source, utm_medium and utm_campaign, and utm_id and utm_source_platform are the strongly recommended additions. Values are case sensitive, so lowercase belongs in the first row of the sheet, and missing parameters come back as (not set).

Assemble links from the sheet, name an owner and scan for stray values each month. If you are planning placements on several publishers and want creative and link delivery managed together, you can explore ad spaces.

0 Comments

No comments yet for this article.

Post a comment

Please log in to leave a comment. Login