📢 Marketing

GA4 UTM Naming Convention SOP That Lands Every Campaign in the Right Default Channel Group

Write a UTM taxonomy for a marketing team that maps each source and medium value to the GA4 default channel group it will land in, flags values that fall into Unassigned, and ships a builder sheet layout and QA checklist.

0.0
0Reviews
P
October 5, 2026

Prompt

Act as a marketing operations analyst who audits GA4 properties and writes UTM naming standards that survive handoffs between agencies, in-house teams, and email tools. You know GA4 assigns the default channel group from source, medium, and campaign rules, and that inconsistent casing or a stray medium value sends sessions to Unassigned.

Inputs:
- Channels and platforms the team actually runs (paid social, newsletters, partners, podcasts, SMS): [ChannelList]
- Current messy UTM values exported from GA4 Traffic acquisition or a link sheet: [CurrentUtms]
- Campaign naming parts the team needs to filter by (quarter, product line, region, offer): [CampaignParts]
- Tools that add their own UTMs automatically (email platform, link shortener, ad auto-tagging such as gclid): [AutoTagging]
- Who builds links (agency, interns, one ops person): [LinkBuilders]
- Output format: [Format]
- Language: [Lang]

Generate:
1. Diagnosis of CurrentUtms. Group the pasted values, show the casing and spelling variants that split one channel, and say which default channel group each one currently lands in (for example Paid Social needs a social source plus a paid-pattern medium such as cpc or paid_social; Email matches email in source or medium; Referral needs medium referral; anything unmatched becomes Unassigned).
2. Controlled vocabulary. One table per parameter: utm_source, utm_medium, utm_campaign, utm_content, utm_term, and utm_id if the team needs campaign IDs. For each allowed value, give the intended GA4 default channel group, and list the forbidden variants it replaces.
3. utm_campaign pattern built from CampaignParts with a fixed order, lowercase, underscore or hyphen chosen once, and two worked examples.
4. AutoTagging conflicts. Explain where tools already tag (for example Google Ads auto-tagging with gclid should not get manual UTMs on the same link), and where the email platform appends its own values that must match the vocabulary.
5. Link builder sheet layout for LinkBuilders: column order, dropdown validation lists from the vocabulary, a concatenation formula idea, and a final URL column.
6. QA checklist and a monthly review step in GA4 (Traffic acquisition report by Session source / medium, filter for Unassigned) with an owner.

Constraints:
- Lowercase only for every value; say so explicitly because GA4 reports treat casing variants as separate rows.
- Do not invent channels the team does not run or traffic numbers of any kind.
- If a value could land in two channel groups, pick the one the team intends and explain the rule that decides it.
- No em dashes.

Instructions

Replace every [bracket] with your details before running. Works on ChatGPT, Claude, and Gemini.

Generated Output

This image was generated using the prompt above.

GA4 UTM Naming Convention SOP That Lands Every Campaign in the Right Default Channel Group - Result

Examples

Example Input

ChannelList: Meta paid ads, LinkedIn paid ads, organic LinkedIn posts, weekly newsletter, partner webinars with two co-hosts, podcast sponsorship reads
CurrentUtms: Facebook / Paid; facebook / cpc; fb / paidsocial; LinkedIn / social; linkedin / Paid-Social; newsletter / email; Newsletter / Email; partner-webinar / webinar; podcast / audio_ad
CampaignParts: quarter, product line (core or teams), offer (trial, demo, webinar)
AutoTagging: Google Ads auto-tagging on; newsletter tool appends utm_source=newsletter and utm_medium=email by default
LinkBuilders: one agency for paid, in-house content team for organic and newsletter
Format: diagnosis, tables, SOP
Lang: English

Example Output

1. Diagnosis
- Meta paid is split across Facebook / Paid, facebook / cpc, fb / paidsocial. Casing alone makes Facebook and facebook separate rows. 'Paid' with a capital P is still a separate value in reports. Standardize on facebook / paid_social.
- LinkedIn paid and organic are mixed: LinkedIn / social is organic intent, linkedin / Paid-Social is paid intent. Split by medium.
- Newsletter appears as newsletter / email and Newsletter / Email; both reach the Email group but split rows. Keep the tool default newsletter / email.
- partner-webinar / webinar matches no default rule, so it lands in Unassigned. Use medium referral or a partner value the team adds to a custom channel group.
- podcast / audio_ad: the Audio group expects medium audio. audio_ad likely lands in Unassigned.

2. Controlled vocabulary
utm_source | intended group | replaces
facebook | Paid Social (with paid_social) | Facebook, fb
linkedin | Paid Social or Organic Social by medium | LinkedIn
newsletter | Email | Newsletter
partner_name (example: acmehr) | Referral | partner-webinar
podcast_show_name | Audio | podcast

utm_medium | intended group | replaces
paid_social | Paid Social | Paid, cpc on social, paidsocial, Paid-Social
social | Organic Social | none
email | Email | Email
referral | Referral | webinar
audio | Audio | audio_ad

utm_content: creative or placement slug, for example carousel_v2. utm_term: paid keyword only, blank elsewhere. utm_id: not needed yet.

3. utm_campaign pattern
{quarter}_{productline}_{offer}, lowercase, underscores only.
Examples: 2026q4_teams_trial and 2026q4_core_webinar.

4. AutoTagging conflicts
- Google Ads: leave auto-tagging on and do not add manual UTMs to Google Ads final URLs; gclid already carries campaign data.
- Newsletter tool: its default newsletter / email already matches the vocabulary. Only override utm_campaign per send using the pattern above.

5. Link builder sheet
Columns: A Destination URL | B utm_source (dropdown) | C utm_medium (dropdown) | D quarter | E product line (dropdown) | F offer (dropdown) | G utm_campaign = D&"_"&E&"_"&F | H utm_content | I Final URL built from A plus the parameters | J Built by | K Date.
Dropdowns read from a locked Vocabulary tab. The agency fills paid rows; the content team fills organic and newsletter rows.

6. QA and monthly review
Before launch: open the final URL, confirm it loads, confirm every value is lowercase and in the Vocabulary tab.
Monthly (ops owner): GA4 Reports, Acquisition, Traffic acquisition, switch the dimension to Session source / medium, add a filter for Session default channel group equals Unassigned, and fix or retire every new value found. Log fixes in the sheet so the agency sees them.

Reviews (0)

Please login to leave a review.
Loading reviews...