Picture of Manick Bhan

Which UTM Rules Prevent Reporting Chaos in GA4?

Published on: May 26, 2026
Last updated: June 3, 2026

Did like a post? Share it with:

Picture of Manick Bhan

UTM rules are the naming conventions, parameter constraints, and governance standards applied to campaign tracking links before they go live, and the subset that prevents reporting chaos is the constraints that control how GA4 classifies sessions into channel groups. GA4 reads utm_source, utm_medium, utm_campaign, utm_content, and utm_term directly from the landing page URL at session start. It stores every value without normalization and evaluates them against a fixed set of channel grouping rules. The four parameters that directly control attribution are utm_source, utm_medium, and utm_campaign, with utm_medium as the primary channel classification signal.

The distinction is whether the rule, if violated, causes GA4 to misclassify a session, split source rows that belong together, or overwrite attribution from a different channel. Lowercase enforcement on utm_source and utm_medium breaks attribution because GA4 stores the raw string: “Google” and “google” become two separate sources in every acquisition report. An incorrect utm_medium value breaks channel grouping because GA4 matches medium values against a predefined condition set, and a non-matching value routes the session to Unassigned. The separator choice between dashes and underscores does not affect channel grouping. It affects only readability.

Reporting chaos appears as fragmented source rows, high Unassigned channel volume, inflated Direct sessions, and campaign conversion counts split across multiple naming variants of the same flight. A property with active UTM violations shows “Google” and “Google” as separate acquisition sources, 20% or more of sessions in the Unassigned channel, and email campaigns attributed to Direct because a link parameter was stripped during forwarding. The four UTM constraints that prevent these failure modes are lowercase enforcement, approved UTM_medium values, no UTMs on internal links, and consistent campaign naming. Every other UTM convention is a formatting preference.

What Does Reporting Chaos Look Like in GA4?

Reporting chaos in GA4 appears as fragmented source rows, unassigned channel traffic, inflated direct sessions, and conversion counts that contradict campaign spend. The Acquisition reports show “Google” and “Google” as separate traffic sources. The channel grouping shows 20% or more of sessions under “Unassigned.” Campaign-level data is split across five naming variants of the same flight. Analysts waste time manually consolidating what a consistent UTM schema keeps unified from the first session.

The core mechanism is simple. GA4 stores UTM parameter values exactly as they arrive in the URL. No normalization occurs at the data layer. A session tagged with utm_source=Google and a session tagged with utm_source=google register as two distinct sources. Attribution models evaluate them separately. Channel grouping treats them separately. Every downstream report inherits the fragmentation.

How Do Case Variants Split Source and Campaign Data?

Case variants split source data because GA4 stores the raw string value of each UTM parameter without lowercasing or normalizing it before writing to the session record. “Facebook”, “facebook”, “FACEBOOK”, and “Facebook Ads” each produce a separate row in the Session Source dimension. The Acquisition report treats them as four distinct traffic sources.

What does this mean for campaign-level reporting? Campaign fragmentation from case variants directly reduces the accuracy of performance metrics for any campaign that multiple teams or tools tag. A paid media agency tags links with utm_campaign=Spring_Sale. An email team uses utm_campaign=spring-sale. A social team uses utm_campaign=springsale. GA4 records three campaigns. Conversion counts are split across all three rows. Cost-per-conversion calculations are wrong for every row.

How does the problem scale over time? The number of source variants grows proportionally with the number of people and tools generating tagged URLs, not with the number of campaigns. A 10-person marketing team with no UTM schema easily produces 40 or more distinct utm_source values for 8 actual sources within a quarter. Each additional variant makes the Acquisition report harder to filter, export, and act on.

What is the step-by-step process for identifying case variant fragmentation? The steps for diagnosing case variant fragmentation in GA4 are listed below.

  • Open GA4 Explore and create a blank exploration.
  • Set the dimension to “Session source” and the metric to “Sessions.”
  • Export the full dimension list and sort alphabetically in a spreadsheet.
  • Group rows that represent the same source with different capitalization.
  • Count the number of variant groups. Each group with more than one row is a case variant violation.

What is the practical fix for case variant fragmentation? The practical fix is a single enforced rule. All UTM parameter values are lowercase, always, with no exceptions. The enforcement mechanism is a UTM builder spreadsheet or tool that lowercases input values before generating URLs. Teams use the builder. Teams do not hand-write UTM parameters. The builder is the only accepted source for tagged URLs.

Why Does Traffic Appear in the Unassigned Channel?

Traffic appears in the Unassigned channel when the utm_medium value does not match any of GA4’s default channel grouping rules, and no custom channel group captures it. GA4 evaluates utm_medium against a fixed set of recognized values. A session arriving with utm_medium=EDM does not match the Email channel rule, which expects “email”. GA4 has nowhere to put it, so it goes to Unassigned.

What are the most common utm_medium values that send traffic to Unassigned? The most common Unassigned-causing medium values are abbreviations (“soc”, “em”, “PPC”), platform-specific labels (“cpc_display”, “fb-paid”), and internal tool defaults that do not match GA4’s recognized set. Every analytics platform has its own naming conventions. Without a controlled vocabulary for utm_medium, teams use whatever feels intuitive. GA4 recognizes a specific set, and anything outside it goes to Unassigned.

How serious is the Unassigned traffic problem for attribution accuracy? Unassigned traffic is a complete attribution loss for any session it captures. Conversions attributed to Unassigned sessions cannot be traced to a channel, campaign, or source. Budget optimization based on channel performance is impossible for those sessions. A property where 15% of converting sessions are Unassigned is operating with 15% of its conversion data in a blind spot.

What is the exact list of utm_medium values GA4 recognizes natively for the Email channel? GA4 maps sessions to the Email channel when utm_medium exactly matches “email”, “e-mail”, “e_mail”, or “newsletter”. No other variants are recognized by the default channel grouping rules. “EDM”, “Mailchimp, “drip”, and “nurture” all produce Unassigned sessions regardless of how commonly teams use them.

How Internal UTM Parameters Corrupt Session Attribution?

Internal UTM parameters corrupt attribution by overwriting the session’s original traffic source the moment a visitor clicks a tagged internal link. GA4 reads UTM parameters from every URL the user lands on during a session. An internal link tagged with utm_source=homepage&utm_medium=banner replaces the session’s original acquisition source. The original paid click, email open, or organic search that brought the user to the site disappears from the record.

What happens to the original session attribution when an internal UTM fires? The original attribution is permanently replaced in GA4’s session data for that user visit. GA4 does not preserve both the original and the internal source. The internal source wins. A paid search visitor who clicks an internal promotional banner tagged with UTM parameters now registers as a banner visitor, not a paid search visitor. Paid search conversion counts drop. Banner conversion counts inflate.

How does internal UTM contamination affect the session count? Internal UTM parameters trigger new session counts in GA4, splitting what was one continuous visit into multiple sessions. GA4 starts a new session when new UTM parameters arrive mid-session. A user who lands via a paid ad and then clicks three internally tagged links potentially generates four sessions from one visit. Bounce rate, session duration, and pages-per-session metrics all become unreliable.

What is the step-by-step workflow for eliminating internal UTM contamination? The steps for removing internal UTM contamination from a website are listed below.

  • Audit all internal links using a crawl tool to identify URLs with utm_ parameters in href attributes.
  • Export the crawl results and filter by URLs containing “utm_source” or “utm_medium” in the link target.
  • Remove UTM parameters from all internal links. Use clean relative paths or absolute URLs without parameters.
  • For internal campaign tracking (promotions, banners), use GA4 custom dimensions or dataLayer events instead of UTM parameters.
  • Re-crawl after changes to confirm no internal UTM parameters remain.

Which UTM Parameters Actually Affect Attribution?

The UTM parameters that affect channel attribution are utm_source and utm_medium together, with utm_campaign affecting campaign-level grouping but not channel classification. utm_content and utm_term do not influence channel assignment. GA4’s default channel grouping rules evaluate utm_medium first, then utm_source, to determine which channel bucket a session belongs to.

What is the specific role of utm_source in attribution? utm_source identifies the referring entity and populates the “Session source” dimension in GA4 acquisition reports. The utm_source value appears directly in Acquisition reports and in the Source/Medium combined dimension. It does not, on its own, determine channel grouping. Channel grouping depends on utm_medium.

What is the specific role of utm_medium in attribution? utm_medium determines channel classification in GA4 because the default channel grouping rules evaluate utm_medium values against a predefined list. A session with utm_medium=cpc maps to the Paid Search channel. A session with utm_medium=organic maps to Organic Search. A session with utm_medium=edm maps to Unassigned. utm_medium is the most attribution-critical parameter.

What happens to attribution when utm_source is present but utm_medium is absent? A session with utm_source but no utm_medium cannot be correctly classified by channel grouping and often registers with an empty medium value, which does not match any named channel rule. The source data is captured, but the channel assignment fails. The session appears in reports with “(not set)” as the medium, and the channel grouping defaults to “Unassigned” or falls through to a residual rule.

How UTM Source Influences Traffic Attribution?

utm_source populates the “Session source” GA4 dimension and is stored verbatim from the URL parameter value. GA4 does not transform, normalize, or map utm_source values to canonical names. Whatever string arrives in the parameter is what appears in reports. “Google”, “Google.com”, and “Google Ads” are four distinct source values in GA4’s data model.

How does utm_source interact with utm_medium for channel grouping? utm_source modifies channel classification only when the channel rule includes a source condition. The Paid Search channel rule checks for utm_medium matching “cpc”, “ppc”, or “paid” AND utm_source matching “google”, “bing”, or “yahoo”. A session tagged with utm_medium=cpc but utm_source=GOOGLE (uppercase) fails the source condition and does not map to Paid Search. 

What is the evidence that utm_source case matters for channel grouping? GA4’s default channel grouping rules use string matching, and the matching is case-sensitive for utm_source values included in the rule conditions. The Paid Social channel rule checks utm_source against a list of known social platform names. “Facebook” and “facebook” are different strings. A session from utm_source=Facebook fails the Paid Social rule if the rule expects lowercase “facebook”, falling to Unassigned instead.

How does utm_source affect the Source/Medium combined dimension? The Source/Medium dimension in GA4 concatenates utm_source and utm_medium with a forward slash separator, producing values “google / cpc” or “newsletter/email”. Capitalization variants create separate Source/Medium rows. “Google / cpc” and “Google / cpc” are two separate rows in the Source/Medium report. Filtering and aggregation in Looker Studio require manual variant handling unless the source values are enforced as lowercase from the start.

How utm_medium Determines Channel Classification?

utm_medium determines channel classification because GA4’s default channel grouping rules use utm_medium as their primary condition, evaluating each session’s medium value against a fixed set of recognized strings. Every session GA4 receives is evaluated against the channel grouping rules in order. The first matching rule wins. utm_medium is the first field most rules check. A session with utm_medium=email matches the Email channel rule immediately. A session with utm_medium=newsletter does not match any default rule and goes to Unassigned.

How does the step-by-step workflow look? The step-by-step workflow for enforcing correct utm_medium values is listed below.

  • Define the approved utm_medium vocabulary. Base it on GA4’s recognized values for each channel.
  • Document the vocabulary in a shared UTM reference sheet accessible to all teams.
  • Build utm_medium as a dropdown field in the UTM builder tool, limiting entries to approved values.
  • Block free-text utm_medium entry in the builder.
  • Review any new utm_medium value request against GA4’s channel grouping rules before approving.

Why Does utm_campaign Matter for Campaign-Level Reporting?

utm_campaign populates the “Session campaign” dimension and determines how sessions are grouped in campaign-level acquisition reports. GA4 does not use utm_campaign in its default channel grouping rules. utm_campaign does not affect which channel a session maps to. It affects whether campaign-level performance data is clean and queryable.

Why does UTM campaign fragmentation create reporting problems? UTM campaign fragmentation creates reporting problems because campaign performance metrics scatter across multiple rows instead of aggregating under a single campaign name. A Q1 email campaign tagged as “q1-email”, “Q1 Email”, and “q1_email_2024” in different links produces three separate campaign rows in GA4. Conversion counts, session counts, and engagement rates are split. Campaign-level ROAS calculations require manual row merging before analysis.

How does utm_campaign interact with utm_medium for segmented reporting? utm_campaign combined with utm_medium enables segment-level campaign analysis, showing performance by campaign within each channel. The Session source/medium/campaign combined dimension allows filtering to see how a specific campaign performed in email versus paid social. This segmentation only works cleanly when utm_campaign values are consistent across all links in a campaign, regardless of channel.

What naming schema prevents utm_campaign fragmentation? A naming schema that uses lowercase, hyphens, and a fixed structure (brand-campaign-quarter or product-initiative-month) prevents fragmentation by eliminating variation at the format level. The schema itself is less important than its consistent application. A team that uses “q1-spring-sale” for every link in the Q1 spring sale campaign produces a single clean row in GA4. A team that improvises campaign names per email or ad produces 20 rows for the same campaign.

Why Missing utm_content Does Not Break Attribution?

Missing utm_content does not break channel attribution or session source classification because utm_content is not evaluated by GA4’s default channel grouping rules. GA4 uses utm_content for ad creative or link differentiation within a campaign. The channel grouping algorithm ignores it entirely. A session with utm_source, utm_medium, and utm_campaign, but no utm_content, classifies correctly in every respect.

What does utm_content actually do in GA4? utm_content populates the “Session manual ad content” dimension in GA4 and is used to differentiate between variants of the same ad or different links within the same email. Two links in an email pointing to the same page with different utm_content values allow analysts to see which link drove more clicks. The channel classification is identical for both. Only the utm_content dimension value differs.

When is utm_content worth adding? utm_content is worth adding when A/B testing creative variants, differentiating multiple CTAs in a single email, or tracking which banner placement drives clicks within a display campaign. Adding it to every link regardless of whether there are multiple variants creates unnecessary complexity with no analytical benefit. The rule is to use utm_content when there is more than one link within the same utm_campaign and utm_medium combination that points to the same destination and requires differentiation.

Why Does Missing utm_term Not Affect Channel Grouping?

utm_term does not affect channel grouping because GA4’s default channel grouping rules do not evaluate utm_term as a condition for any channel bucket. utm_term was historically used to capture the search keyword in paid search campaigns. Google Ads auto-tagging with GCLID parameters replaced it for most paid search use cases. GA4 captures keyword data from GCLID, not from manually appended utm_term values.

What does utm_term actually populate in GA4? utm_term populates the “Session manual term” dimension in GA4, which is separate from the keyword data captured via GCLID. A manually tagged link with utm_term=blue-ceramic-tile populates the manual term dimension. A Google Ads click with auto-tagging populates the keyword dimension via the GCLID. They are different dimensions and do not interact.

When does utm_term matter? utm_term matters in non-Google paid search campaigns (Bing Ads, DuckDuckGo) where auto-tagging is not available, and keyword-level reporting requires manual parameter appending. For those platforms, utm_term is the only mechanism for capturing keyword data in GA4. For Google Ads with auto-tagging enabled, utm_term is redundant, and adding it manually produces no additional insight.

Which UTM Parameters Are Required for Reliable Reporting?

The required UTM parameters for reliable reporting are utm_source and utm_medium, with utm_campaign required for any session that needs campaign-level attribution. utm_content and utm_term are optional in all cases. A URL with only utm_source and utm_medium gives GA4 everything it needs to classify the session into a channel and attribute it to a source.

What happens when only utm_medium is present without utm_source? A session with utm_medium but no utm_source produces a channel classification based on medium but registers “(not set)” or an empty string in the source dimension. Channel grouping works if the medium value matches a rule that does not require a source condition. The session appears in the correct channel but with a blank source, making source-level analysis impossible.

What happens when only utm_source is present without utm_medium? A session with utm_source but no utm_medium typically goes to Unassigned because most channel grouping rules require utm_medium as their primary condition. The source is recorded correctly. The channel is wrong. Source-level data is correct, but channel performance data is broken. For attribution purposes, utm_medium is the more critical parameter to include.

What is the minimal UTM schema for a reliable GA4 implementation? The minimal reliable UTM schema requires utm_source and utm_medium on every external link, utm_campaign on every link associated with a named marketing campaign, and no UTM parameters on any internal link. This three-field minimum ensures correct channel classification, source identification, and campaign grouping. Everything else is optional enrichment.

Which UTM Rules Have the Biggest Impact on Reporting Accuracy?

The 4 rules with the highest impact on GA4 reporting accuracy are listed below.

  1. Lowercase Enforcement Prevents Source Fragmentation
  2. Approved UTM_medium Values Prevent Unassigned Traffic
  3. Internal Links Never Contain UTM Parameters
  4. Consistent Campaign Naming Prevents Reporting Fragmentation

Lowercase Enforcement Prevents Source Fragmentation

Source fragmentation is the condition where a single real-world traffic source appears as multiple distinct utm_source values in GA4 because the same source was tagged with different capitalizations across different links or campaigns. GA4 stores utm_source values as raw strings. “facebook”, “Facebook”, “FACEBOOK”, and “fb” are four distinct source strings in GA4’s data model. Each produces a separate row in Acquisition reports.

How does lowercase enforcement prevent source fragmentation? Lowercase enforcement prevents source fragmentation by eliminating the variable of capitalization from all UTM parameter values before they reach GA4. If every team and tool producing tagged URLs runs output through a lowercase step, all utm_source values for the same source are identical strings. GA4 receives “Facebook” for every Facebook link, regardless of which team created it. Acquisition reports show one Facebook row.

What is the mechanism for implementing lowercase enforcement at scale? The mechanism for lowercase enforcement at scale is a centralized UTM builder that lowercases all parameter inputs programmatically, combined with a policy that prohibits hand-written UTM parameters. Spreadsheet-based builders (Google Sheets with LOWER() functions applied to input cells) and web-based UTM builder tools both achieve this. The key is that URL generation is never done by typing parameters directly into a URL. It always goes through the builder.

What is the measurable effect of lowercase enforcement on Acquisition report quality? Lowercase enforcement reduces the number of source rows in GA4 Acquisition reports to match the actual number of distinct traffic sources, eliminating all variant rows created by capitalization differences. A property that received traffic from 12 actual sources but showed 47 source rows because of case variants produces 12 rows after lowercase enforcement. Filtering, segmenting, and comparing source performance become accurate and reliable.

Approved utm_medium Values Prevent Unassigned Traffic

Unassigned channel traffic is directly caused by utm_medium values that do not match GA4’s default channel grouping rules, and using only approved utm_medium values eliminates this cause of attribution loss. GA4 evaluates utm_medium against its channel grouping conditions. A recognized value maps to a named channel. An unrecognized value maps to Unassigned. The Unassigned channel is not a reporting anomaly. It is the exact result of an unrecognized medium value.

What is the approved utm_medium vocabulary that GA4 recognizes for its primary channels? The approved utm_medium values that map to named channels include “cpc”, “ppc”, “paid” for Paid Search, “email” and “newsletter” for Email, “social” and “social-media” for Organic Social, and “display” and “banner” for Display. This is not an exhaustive list of every recognized value. It is the core vocabulary that covers the majority of marketing channel types. The fully recognized list is detailed in the utm_medium channel mapping section of this article.

How does restricting utm_medium to approved values affect reporting accuracy? Restricting utm_medium to approved values ensures that every tagged session maps to a named channel in GA4, reducing Unassigned traffic to sessions with genuinely unclassifiable or missing UTM data. A property where Unassigned traffic drops from 18% to 2% after utm_medium enforcement has recovered 16% of its session data into named channels. Those sessions now contribute to channel performance metrics, conversion attribution, and budget allocation decisions.

Internal Links Never Contain UTM Parameters

Internal UTM parameters damage attribution because GA4 overwrites the session’s acquisition source with the UTM values found on the internal link the user clicks, destroying the original traffic source record for that session. GA4’s session model does not distinguish between external entry points and internal navigation. Any URL with UTM parameters that a user lands on during a session triggers a source update. Internal links tagged with UTM parameters make GA4 attribute the session to an internal referral rather than the actual acquisition channel.

What is the most common cause of internal UTM contamination? The most common cause of internal UTM contamination is copying externally tagged URLs and using them as internal link targets, particularly in promotional banners, homepage CTAs, and cross-sell modules. A marketing team creates a campaign URL with UTM parameters for an email. A web team copies that URL and uses it as the href for a homepage banner. Every visitor who clicks the homepage banner gets their session source overwritten, even if they arrived organically or from a completely different channel.

What are the measurable effects of internal UTM contamination on specific GA4 reports? Internal UTM contamination inflates conversion counts for the internal source, deflates conversion counts for the original acquisition channels, and artificially elevates session counts for the pages hosting the tagged internal links. Paid search ROAS calculations are understated. Email conversion rates are understated. The internal banner or module appears to drive conversions, but it did not originate. Budget decisions based on channel performance data become systematically wrong.

What is the correct alternative to internal UTM parameters for tracking internal engagement? The correct alternative to internal UTM parameters for tracking internal link clicks is GA4 custom events, configured to fire when a user clicks a specific internal element, with custom dimensions capturing the element type, placement, and destination. This approach captures internal engagement data without touching session attribution. A “homepage_banner_click” event with dimensions for banner_name and destination_url provides richer analysis than UTM parameters while keeping acquisition attribution intact.

Consistent Campaign Naming Prevents Reporting Fragmentation

Campaign naming fragmentation is the condition where a single marketing campaign appears as multiple distinct UTM_campaign values in GA4 because different teams or tools used different naming variants for the same campaign. A spring sale campaign tagged as “Spring-Sale-2024” by the paid team, “spring_sale” by the email team, and “SpringSale” by the social team produces three separate campaign rows in GA4. Combining them requires manual cleanup before any analysis.

Why does campaign naming fragmentation matter more as campaign complexity increases? Campaign naming fragmentation matters more as campaign complexity increases because the number of variant rows grows multiplicatively with the number of teams, channels, and creative versions involved in a campaign. A campaign running across paid search, email, and social with 5 ad variants and 3 email sequences potentially produces 15 or more naming variants if teams improvise names independently. Consolidating this data for a campaign performance report requires significant manual work.

What is the relationship between campaign naming consistency and multi-channel attribution? Consistent campaign naming enables accurate multi-channel attribution by ensuring that all sessions from a campaign are grouped under a single utm_campaign value, regardless of which channel delivered them. Multi-channel path analysis in GA4 shows the sequence of touchpoints leading to a conversion. If campaign names are fragmented, path analysis treats each variant as a separate campaign, breaking the chain of touchpoints that link to a single campaign.

Which UTM Mistakes Cause the Most Attribution Damage?

The 5 UTM mistakes with the highest attribution impact are listed below.

  • Using UTM parameters on internal links, which overwrites session sources mid-visit.
  • Using unrecognized utm_medium values, which route sessions to Unassigned.
  • Using inconsistent capitalization, which fragments sources into multiple rows.
  • Omitting utm_medium from externally tagged links, which prevents channel classification.
  • Tagging paid platform traffic manually when auto-tagging is enabled creates parameter conflicts.

What makes internal UTM parameters the most damaging mistake of the five? Internal UTM parameters are the most damaging because they produce false attribution data, not just missing or fragmented data. Missing data is visible in reports as gaps or “(not set)” values. False attribution data looks like real data. Paid search appears to convert less. Internal pages appear to drive more conversions. Decisions based on false attribution data allocate budget incorrectly without any visible signal that something is wrong.

What makes unrecognized utm_medium values the second most damaging mistake? Unrecognized utm_medium values cause complete channel attribution loss for every session they affect, with no mechanism in GA4’s standard reports to recover the data after the fact. Once a session is recorded with an Unassigned channel, it stays Unassigned in historical data. Custom channel grouping rules applied after the fact do not retroactively reclassify historical sessions. The data is permanently degraded.

What makes capitalization inconsistency a persistent and hard-to-fix problem? Capitalization inconsistency is persistent because it accumulates gradually across every new tagged link created by every team member, and fixing future links does not correct historical data. A property that has been accumulating case variants for 18 months has historical Acquisition reports that permanently show fragmented source rows. The fix for future data is straightforward (lowercase enforcement). The fix for historical data requires BigQuery exports and manual consolidation, which most teams never complete.

What makes omitting utm_medium from external links a foundational error? Omitting utm_medium from external links is a foundational error because without a medium value, GA4 cannot apply channel grouping rules, and the session either goes to Unassigned or defaults to Direct depending on whether other parameters are present. A link with utm_source but no utm_medium provides GA4 with partial information that it cannot complete. The source dimension is populated. The channel dimension is wrong. Every downstream report that uses channel data is affected.

How Does GA4 Use UTM Parameters to Classify Traffic?

GA4 reads UTM parameters from the landing page URL at the start of each session and uses the values to populate acquisition dimensions and evaluate channel grouping rules. When a user arrives at a URL containing utm_source, utm_medium, or utm_campaign, GA4’s measurement protocol records those values against the session. The values are not processed later. They are captured at session start and stored as-is.

What is the order of operations for channel classification in GA4? GA4 evaluates the default channel grouping rules in order from top to bottom, assigning the session to the first rule that matches based on the session’s UTM parameter values and other signals. The channel grouping rules are not evaluated simultaneously. The first matching rule wins. This means the order of rules matters. A session matching both the Paid Search rule and a custom rule higher in the list goes to the custom channel, not Paid Search.

What signals does GA4 use in addition to UTM parameters for channel classification? GA4 uses utm_medium, utm_source, the referring domain, and the presence of GCLID or other auto-tag parameters to classify sessions into channels. UTM parameters are not the only signal. A session from Google.com with no UTM parameters and no GCLID is classified as Organic Search based on the referrer. A session from a direct URL entry with no referrer and no UTM parameters is classified as Direct. UTM parameters take precedence over referrer-based classification when both are present.

What happens when both UTM parameters and GCLID are present on the same URL? When both UTM parameters and GCLID are present on the same URL, GA4 uses the GCLID for attribution, and the manually appended UTM parameters are overridden depending on the auto-tagging settings in the Google Ads account. This is the parameter conflict problem. A Google Ads URL with auto-tagging enabled that has manually appended UTM parameters sends conflicting signals. The resolution depends on the “Auto-tagging” and “Manual tagging” settings in GA4’s Google Ads link configuration.

How does GA4 handle sessions where UTM parameters arrive partway through a visit? GA4 updates the session’s attribution when new UTM parameters arrive on a page during an existing session, which is the mechanism by which internal UTM parameters corrupt attribution. There is no session boundary protection for mid-session UTM updates. The session source, medium, and campaign are all overwritten by a single internal link click if that internal link contains UTM parameters.

Which UTM_medium Values Does GA4 Recognize?

The 4 channel categories with their recognized utm_medium values are listed below.

  • Medium Values Commonly Mapped to Paid Search
  • Medium Values Commonly Mapped to Organic Social
  • Medium Values Commonly Mapped to Email
  • Medium Values Commonly Mapped to Display and Affiliate Traffic

Medium Values Commonly Mapped to Paid Search

GA4 maps sessions to the Paid Search channel when utm_medium matches “cpc”, “ppc”, “paidsearch”, or “paid” and utm_source matches a recognized search engine. The channel rule is conjunctive. Both medium and source conditions are satisfied. A session with utm_medium=cpc but utm_source=facebook does not go to Paid Search. It goes to Paid Social, depending on additional rule conditions.

What is the exact channel grouping condition for Paid Search in GA4? The default Paid Search channel rule matches sessions where utm_medium contains “cpc” or “ppc” or equals “paidsearch,” AND utm_source is one of the recognized search engines (Google, Bing, Yahoo, Baidu, DuckDuckGo, Yandex). Sessions from Google Ads with auto-tagging use GCLID-based attribution and bypass the UTM medium check. The manual UTM medium rule applies to Bing Ads, DuckDuckGo ads, and any paid search platform that does not support auto-tagging.

What is the most common Paid Search medium mistake? The most common Paid Search medium mistake is using “ppc” for display retargeting campaigns, which maps them to Paid Search instead of Display. Display retargeting uses image or video creatives served on the Google Display Network or other display platforms. The correct utm_medium for display traffic is “display” or “cpm”. Using “ppc” for display campaigns conflates two distinct channel types, making channel performance comparison inaccurate.

What is the evidence that “paid” as a utm_medium value works for Paid Search classification? “paid” as a utm_medium value is recognized by GA4’s channel grouping for the Paid Search channel, but it is less specific than “cpc” and does not distinguish between paid search and other paid channel types. Teams that use “paid” as a catch-all medium for all paid traffic send paid social, paid search, and paid display into the same channel bucket. Using channel-specific medium values (“cpc” for paid search, “paid-social” for paid social, “display” for display) enables accurate channel separation.

Medium Values Commonly Mapped to Organic Social

GA4 maps sessions to the Organic Social channel when utm_medium matches “social”, “social-media”, “social_media”, or “sm” and the utm_source matches a recognized social platform. Organic social traffic from platforms (Facebook, Instagram, LinkedIn, and Twitter (X)) that arrives without paid campaign parameters maps to Organic Social. Paid social traffic requires different medium values.

What is the difference between the medium values for Organic Social and Paid Social? Organic Social uses utm_medium values “social” or “social-media”, while Paid Social uses “paid-social”, “paid_social”, or “cpc” combined with a social platform utm_source. The channel separation depends on the medium value. A LinkedIn post link tagged with utm_medium=social maps to Organic Social. A LinkedIn ad tagged with utm_medium=paid-social maps to Paid Social. Using the wrong medium collapses paid and organic social into the same channel, making ROI calculation for paid social impossible.

What happens to organic social traffic that arrives without any UTM parameters? Organic social traffic without UTM parameters is classified by GA4 based on the referring domain. A session from t.co (Twitter’s link shortener) or facebook.com with no UTM parameters is classified as Organic Social based on the referrer. Adding UTM parameters with utm_medium=social confirms and sharpens the classification. For link-in-bio tools or platforms that strip referrer data, UTM parameters are essential because the referrer-based fallback fails.

What is the recommended utm_medium value for organic social campaigns run through scheduling tools? The recommended utm_medium value for organic social content scheduled through tools (Hootsuite, Buffer, Sprout Social) is “social”, not a tool-specific value. Some scheduling tools append their own UTM parameters by default. Buffer has historically used “social” as the default medium. If the tool appends a non-standard medium value by default, override it in the tool’s UTM settings to use an approved value.

Medium Values Commonly Mapped to Email

GA4 maps sessions to the Email channel when utm_medium matches “email”, “e-mail”, “e_mail”, or “newsletter”. These are the only four values that satisfy the Email channel grouping rule by default. Every other medium value used for email traffic, regardless of how common it is within a team or platform, produces Unassigned traffic.

What are the most common non-recognized medium values used for email traffic? The most common non-recognized medium values for email traffic are “EDM”, “drip”, “nurture”, “Mailchimp”, “Klaviyo”, “campaign”, and “mailing”. Email service providers sometimes suggest their platform name as the medium value. Email marketers sometimes use campaign type descriptors. None of these values match GA4’s Email channel rule, so every session they produce goes to Unassigned.

What is the correct utm_medium setup for transactional emails versus marketing emails? Both transactional emails and marketing emails use “email” as utm_medium, with utm_campaign differentiating the email type. A transactional email (order confirmation, password reset) with links tagged as utm_medium=email&utm_campaign=order-confirmation maps to the Email channel and is grouped under the “order-confirmation” campaign. A promotional email uses the same medium with a different campaign name. The medium is identical. The campaign name distinguishes them.

How does the “newsletter” medium value interact with Email channel classification? “newsletter” as utm_medium maps to the Email channel in GA4’s default rules, making it an acceptable alternative to “email” for newsletter-specific content. The distinction between “email” and “newsletter” is meaningful for teams that want to separate newsletter traffic from triggered or transactional email traffic within the Email channel, using custom channel groups or Explore filters on the medium dimension.

Medium Values Commonly Mapped to Display and Affiliate Traffic

GA4 maps sessions to the Display channel when utm_medium matches “display”, “banner”, “expandable”, “interstitial”, or “cpm”. These values represent the standard medium vocabulary for programmatic and direct display advertising. A display campaign tagged with any of these values maps correctly to the Display channel in GA4’s default grouping.

What is the most common display medium mistake? The most common display medium mistake is using “cpc” for display retargeting campaigns, which sends display traffic to the Paid Search channel instead of Display. Retargeting campaigns often use cost-per-click bidding, leading some teams to use “cpc” as the medium. The bid model does not determine the channel classification. The ad format and placement determine it. Display retargeting is display traffic and requires “display” or “cpm” as the medium value.

What utm_medium values does GA4 recognize for affiliate traffic? GA4 maps sessions to the Affiliates channel when utm_medium matches “affiliate” or “affiliates”. Affiliate networks generate traffic through publisher links. Those links require UTM parameters to be classified correctly in GA4. An affiliate link without UTM parameters appears as referral traffic from the affiliate’s domain, mixed with other referral sources. A tagged affiliate link with utm_medium=affiliate maps to the Affiliates channel and is tracked separately.

What happens to affiliate traffic that uses non-standard medium values? Affiliate traffic using non-standard medium values “partner”, “ref”, “referral”, or “promo” goes to the Unassigned channel or to the Referral channel, depending on whether UTM parameters are present. A session from an affiliate link with utm_medium=partner does not match the Affiliates rule. It goes to Unassigned. A session from an affiliate link with no UTM parameters uses the referrer-based classification and goes to Referral. Neither result is correct for attribution purposes. Affiliate traffic requires utm_medium=affiliate.

Which UTM Rules Are Best Practices Rather Than Attribution Risks?

The 4 best practices that improve UTM governance without affecting channel classification are listed below.

  • Dashes vs Underscores in UTM Naming
  • Date Formats in Campaign Names
  • Character Limits and URL Length Considerations
  • Readability and Documentation Standards

Dashes vs Underscores in UTM Naming

The choice between dashes and underscores in UTM parameter values does not affect GA4 channel classification, session attribution, or any attribution-related metric. GA4 stores the raw string value of each UTM parameter. “spring-sale” and “spring_sale” are two different strings. GA4 does not normalize separators. But neither value is more or less likely to match a channel grouping rule than the other. The attribution impact is zero.

What is the practical difference between dashes and underscores in UTM values? The practical difference is readability in reports and URL encoding behavior. Dashes appear as literal hyphens in URLs and report fields. Underscores appear as literal underscores. Neither requires URL encoding. Both are readable in GA4 Explore dimensions. The choice comes down to team convention and report readability preference.

What does the evidence say about separator choice and SEO or analytics tool compatibility? The comparison of separator choices for UTM values is shown in the table below.

SeparatorURL encoding requiredGA4 dimension displayReport readabilityAttribution effect
Hyphen (-)No“spring-sale”Clear word separationNone
Underscore (_)No“spring_sale”Readable, less visible separationNone
SpaceYes (%20)“spring sale”Clean in reportsNone
Plus sign (+)Interpreted as space“spring sale”Same as spaceNone

What is the recommended separator for UTM values? The recommended separator is the hyphen (-) because it is URL-safe, visually distinct in reports, and consistent with most web naming conventions, including URL slugs. The underscore convention is equally valid. The key is picking one and enforcing it consistently across all teams. A property that uses hyphens in paid search UTMs and underscores in email UTMs creates no attribution errors, but it creates a readability inconsistency that makes manual report scanning harder.

Date Formats in Campaign Names

Including or excluding dates in utm_campaign values does not affect GA4 channel classification or session attribution. The campaign name is stored as-is in the “Session campaign” dimension. GA4 does not parse or evaluate campaign name components. A campaign named “spring-sale” and a campaign named “spring-sale-202406” are stored as different campaign strings, but neither produces better or worse attribution than the other.

Why do date formats in campaign names matter as a best practice? Date formats in campaign names matter because they prevent campaign name collisions across multiple time periods and enable time-based filtering of campaign performance data. A team that runs a spring sale campaign every year has a collision problem. All spring sale campaigns share the same utm_campaign value. GA4 aggregates them into a single campaign row. There is no way to compare 2024 spring sale performance against 2023 spring sale performance in campaign-level reports without a date suffix.

What is the recommended date format for campaign names? The recommended date format is YYYYMM (example: 202406 for June 2024) appended as a suffix to the campaign name. ISO format (YYYYMM) sorts correctly in spreadsheets, is universally unambiguous, and occupies only 6 characters. “spring-sale-202406” is distinct from “spring-sale-202306”. Reports for both years are cleanly separated. Year-over-year comparison is possible by filtering on the campaign dimension.

Character Limits and URL Length Considerations

Long UTM parameter strings do not cause attribution failures in GA4, but excessively long URLs are truncated by some email clients, SMS platforms, and social networks, causing parameter loss before GA4 receives the session. GA4 itself has no character limit for UTM parameter values. The risk is upstream. The delivery channel truncates the URL before the user clicks it.

What is the practical URL length limit for UTM-tagged links? The practical safe URL length for most delivery channels is under 2,000 characters for the full URL, including parameters. Most email clients, SMS platforms, and browsers handle URLs under 2,000 characters without issue. Social networks that shorten URLs (Twitter/X, LinkedIn) strip the original URL entirely and replace it with a short link, making URL length irrelevant for those platforms.

What is the correct approach to long UTM parameter values? The correct approach to long UTM parameter values is to use concise, standardized naming in the UTM schema rather than descriptive long-form values. “q2-webinar-registration-202406” is a better campaign name than “Q2-webinar-for-SEO-agency-owners-registration-page-june-2024” for both readability and URL length. Concise names reduce URL length, improve report readability, and are faster to type into builder tools.

Readability and Documentation Standards

UTM documentation does not directly affect GA4 attribution, but it prevents attribution degradation over time by ensuring that all team members and new hires follow the established schema rather than improvising. A UTM taxonomy document that no one reads does not protect against fragmentation. A UTM taxonomy document that is actively maintained and referenced in the campaign setup process prevents the accumulation of new violations.

What does a UTM documentation standard include? A UTM documentation standard includes the approved vocabulary for each parameter, the naming schema with examples, the enforcement mechanism (builder tool), and the review process for requesting new values. Teams that document only the vocabulary list but not the process for requesting exceptions tend to see teams improvise when they encounter a campaign type not covered by the existing schema. Documenting the exception request process prevents improvisation.

How does readability in UTM values affect downstream tool compatibility? Readable UTM values in GA4 Acquisition reports reduce the analysis time required to interpret data in connected tools (Looker Studio, BigQuery, and CRM) attribution integrations. A GA4 property feeding a Looker Studio dashboard with 40 source variants requires more complex calculated field logic to group sources than a property with 12 clean lowercase source values. Readable, consistent UTM values reduce the complexity of every downstream reporting layer.

Why Internal UTM Parameters Break Attribution?

Internal UTM parameters break attribution by forcing GA4 to replace a session’s original acquisition source with an internal page or element as the new source, producing attribution data that is systematically wrong rather than incomplete. Every other UTM violation produces missing or fragmented data. A case variant creates an extra row. An unrecognized medium produces an Unassigned session. These problems are visible in reports as gaps or anomalies. Internal UTM contamination produces data that looks correct but is not. A paid search session appears as an internal banner session. Conversion attribution shifts from the actual acquisition source to an internal link.

The internal UTM problem scales with site size and content volume. Large e-commerce sites, editorial sites, and SaaS platforms with heavy internal promotion (homepage banners, related content modules, cross-sell widgets) have many potential points of internal UTM contamination. Each internal link with UTM parameters is a point where session attribution is overwritten. A site with 50 internally promoted content pieces, each linked with a copied campaign URL, has 50 attribution contamination points active simultaneously.

How Do Internal UTM Parameters Reset Session Source Data?

GA4 resets the session source data when a new set of UTM parameters arrives in the URL of any page the user visits during the active session. GA4 does not evaluate whether the URL containing UTM parameters is an internal or external URL. The presence of UTM parameters triggers a source update. The session’s utm_source, utm_medium, and utm_campaign dimensions are overwritten with the values from the new URL.

What does this mean for a typical user journey on a site with internal UTM parameters? A typical user who arrives from paid search, navigates to a homepage with a promotion banner, and clicks the internally tagged banner link has their session reattributed from paid search to whatever utm_source is on the banner link. If the banner link was copied from an email campaign with utm_source=email_newsletter&utm_medium=email, the paid search session now appears as an email session. The user never saw the email. The attribution is entirely wrong.

How does session source resetting interact with cross-channel attribution models? Session source resetting via internal UTM parameters corrupts every attribution model that evaluates the session, including first-click, last-click, and data-driven attribution. Last-click attribution assigns the conversion to the internal link source. First-click attribution is correct only if the user arrived from an external UTM-tagged source and the internal link was clicked after the session start (not as the first interaction). Data-driven attribution receives false session data and builds incorrect model weights based on it.

What is the signal in GA4 reports that internal UTM contamination has occurred? The signal of internal UTM contamination is an unusually high conversion rate or session count attributed to a utm_source or utm_campaign that represents an internal element rather than an external traffic source. A utm_source value of “homepage” or “banner” with a high conversion count, combined with a referrer path that shows the session started from an external source, indicates internal UTM contamination. Custom reports in GA4 Explore that show the landing page alongside the session source help identify this pattern.

How Internal UTM Parameters Distort Conversion Reporting?

Internal UTM parameters distort conversion counts by attributing conversions to internal link sources instead of the original acquisition channels that brought users to the site. A user acquired via paid search who converts after clicking an internally tagged banner appears as a conversion attributed to the banner’s utm_source. Paid search conversions are understated. The internal source conversions are overstated.

What is the compounding effect of internal UTM parameters on ROAS calculations? Internal UTM parameters understate paid channel ROAS by reducing the conversion count attributed to paid channels, making paid campaigns appear less effective than they are. A paid search campaign with 1,000 conversions from 5,000 sessions produces a 20% conversion rate. If 200 of those 1,000 users clicked an internally tagged link before converting, 200 conversions are reattributed away from paid search. The paid search conversion rate drops to 16%. ROAS calculations based on 800 conversions instead of 1,000 understate paid performance by 20%.

How do internal UTM parameters create false positive attribution for internal content? Internal UTM parameters make internal content (homepage banners, recommended articles, cross-sell modules) appear to drive direct conversions, creating a false positive attribution signal for internal promotion effectiveness. A homepage banner tagged with utm_campaign=homepage-promo appears to generate conversions in GA4. The banner did not generate those conversions. The external acquisition source did. The banner received credit for a conversion that was already in progress. Decisions to expand or replicate the banner based on this data are wrong.

What is the long-term effect of uncorrected internal UTM contamination on attribution data? Uncorrected internal UTM contamination accumulates in historical GA4 data and permanently distorts channel performance baselines. Historical conversion data that is contaminated cannot be corrected retroactively in GA4’s standard reporting. Custom channel grouping rules applied after the fact do not reclassify already-stored session data. The historical record is wrong. Year-over-year comparison of channel performance includes contaminated periods mixed with clean periods, making trend analysis unreliable.

How Internal UTM Parameters Affect Attribution Models?

Internal UTM parameters corrupt data-driven attribution model training by feeding the model false session sequences, causing it to learn incorrect weight distributions for conversion credit. Data-driven attribution uses machine learning to assign conversion credit across touchpoints based on historical patterns. The model observes that “homepage banner” appears frequently before conversions and assigns it a positive weight. The weight is based on contaminated data. The resulting attribution model systematically overcredits internal sources.

How do internal UTM parameters interact with GA4’s session-scoped vs event-scoped attribution? GA4’s session-scoped attribution dimensions are overwritten when internal UTM parameters arrive mid-session, while event-scoped dimensions capture data at the moment of each event. Session-scoped source/medium attributes the entire session to the last UTM-tagged interaction. Event-scoped dimensions capture the state at event time. For conversion events (purchases, form submissions), the session-scoped attribution at the time of the event determines channel credit. If the user clicked an internal UTM link before converting, the session-scoped dimension is wrong for the conversion event.

What is the effect of internal UTM parameters on Google Ads smart bidding? Internal UTM parameters that corrupt conversion attribution in GA4 affect Google Ads smart bidding when GA4 conversions are imported into Google Ads. Google Ads smart bidding uses conversion data to optimize bid strategies. If GA4 conversion data shows paid search converting less (because conversions are being reattributed to internal sources), Google Ads smart bidding reduces bids for keywords and ad groups that are actually performing well. The bidding algorithm optimizes toward a false reality.

What is the testing protocol for detecting internal UTM parameter effects on attribution models? The testing protocol for detecting internal UTM effects is to compare GA4 session source data against raw server log data or referrer data for the same sessions. Server logs capture the actual referrer for every request. GA4 Explore captures the session source after UTM parameters have been applied. If the two data sources disagree on the source for a significant proportion of converting sessions, internal UTM contamination is likely. 

How to Enforce UTM Rules Across Teams and Agencies?

The core challenge is that UTM rules are only effective when every person generating tagged URLs follows them, and the number of people generating tagged URLs tends to grow faster than compliance monitoring capacity. A paid media agency, an email marketing team, an in-house social media manager, and a content marketing team generate tagged URLs independently. Each has its own tooling, preferences, and habits. Enforcement requires a structural mechanism, not just a policy document.

What are the 3 mechanisms for enforcing UTM rules across teams? The 3 enforcement mechanisms are listed below.

  • A centralized UTM builder tool that all teams use as the single source of tagged URLs, with approved vocabulary enforced as dropdown selections and lowercase applied automatically.
  • A pre-publish UTM validation checklist that campaign managers complete before any tagged link goes live, covering medium value, lowercase, no internal URLs, and campaign name format.
  • A monthly GA4 audit that flags new UTM violations in the Acquisition report and traces them back to the team or campaign responsible, with a correction protocol that removes or updates the offending links.

How does a UTM builder tool enforce rules structurally? A UTM builder tool enforces rules structurally by making it impossible to generate a tagged URL that violates the schema. The utm_medium field is a dropdown with approved values only. The utm_campaign field has a format validator. All output is lowercased automatically. A team member who wants to use a non-approved medium value cannot generate the URL from the builder. They either request an addition to the approved vocabulary or use an approved alternative. The rule is enforced by the tool’s constraints, not by the user’s memory or compliance.

How does a monthly audit mechanism create accountability? A monthly audit creates accountability by making UTM violations visible, attributable, and correctable within a fixed time window. The audit examines new utm_medium, utm_source, and utm_campaign values added to the GA4 property in the previous month. Violations are flagged and traced to the campaign or team that produced them. The responsible team corrects the links and confirms in the next audit that the violation is resolved. The audit makes UTM governance a recurring operational process rather than a one-time setup task.

How to Audit Existing UTM Data for High-Impact Violations?

The 5 steps for a complete UTM data audit are listed below.

  1. Find Case Variants in GA4 Exploration Reports
  2. Identify Unassigned Traffic by Medium Value
  3. Detect Internal UTM Contamination
  4. Prioritize UTM Cleanup Efforts

Find Case Variants in GA4 Exploration Reports

Finding case variant violations requires exporting the Session source and Session campaign dimensions and sorting them to identify groups of strings that represent the same entity with different capitalization. The GA4 interface does not surface case variants automatically. Analysts extract the raw dimension values and perform the grouping analysis in a spreadsheet.

What is a case variant in the context of UTM data? A case variant is a pair or group of UTM dimension values that differ only in capitalization and represent the same real-world traffic source, campaign, or medium. “Google” and “google” are a case variant pair for utm_source. “Spring_Sale” and “spring_sale” are a case variant pair for utm_campaign. “Email” and “email” are a case variant pair for utm_medium. Each pair represents a fragmentation point in the GA4 data.

How does an analyst use GA4 Explore to extract dimension values for case variant analysis? The steps for extracting UTM dimension data from GA4 Explore are listed below.

  • Open GA4 and navigate to Explore from the left navigation.
  • Create a blank exploration.
  • Set the date range to trailing 90 days.
  • Add “Session source”, “Session medium”, and “Session campaign” as dimensions.
  • Add “Sessions” as a metric.
  • Set the breakdown limit to 500 rows to capture all values.
  • Export the results to a spreadsheet using the export button.

How does sorting the exported data reveal case variants? Sorting Session source alphabetically groups all variants of the same source name together, making visual identification of case variant pairs fast and systematic. “Google”, “Google”, and “GOOGLE” sort adjacent to each other in alphabetical order. An analyst scans down the sorted list and highlights every group where two or more rows appear to represent the same source. The highlight identifies the fragmentation that lowercase enforcement prevents.

Identify Unassigned Traffic by Medium Value

Identifying Unassigned traffic by medium value requires creating a GA4 Explore report that shows Session medium segmented by Default Channel Grouping, filtered to sessions in the Unassigned channel. The intersection of the “Unassigned” channel with specific medium values identifies exactly which medium values are causing the misclassification.

How does an analyst build the Unassigned medium identification report in GA4 Explore? The steps for building the Unassigned medium report are listed below.

  • Create a blank exploration in GA4 Explore.
  • Add “Default channel grouping” and “Session medium” as dimensions.
  • Add “Sessions” as a metric.
  • Apply a filter. Default channel grouping exactly matches “Unassigned”.
  • Set the date range to trailing 90 days.
  • Sort by Sessions descending.

What does the resulting report reveal? The resulting report shows every utm_medium value that produced Unassigned sessions, sorted by the volume of Unassigned sessions each value caused. A utm_medium value of “EDM” with 15,000 Unassigned sessions is a higher-priority fix than “nurture” with 200 sessions. The sort order determines the cleanup priority. Each Unassigned medium value requires a corrective action. Update future links to use the approved equivalent value.

What are the corrective actions for Unassigned traffic caused by unrecognized medium values? The corrective actions are to update all future links using the violating medium value to use the approved equivalent, add a custom channel grouping rule in GA4 to reclassify historical sessions with the violating medium value into the correct channel, and document the approved equivalent in the UTM vocabulary reference. Custom channel grouping rules apply to historical data in GA4 reports (for properties that use GA4’s built-in custom channel groups). They do not correct the raw session data in BigQuery exports but do reclassify sessions in the GA4 interface.

Detect Internal UTM Contamination

The signals of internal UTM contamination are utm_source or utm_campaign values that match internal page names, section names, or promotional element names, combined with high conversion rates that do not correspond to any external campaign. A utm_source value of “homepage_banner” or “product_recommendation” with attributed conversions indicates that internal links with UTM parameters exist on the site.

What is the step-by-step process for detecting internal UTM contamination in GA4 Explore? The steps for detecting internal UTM contamination are listed below.

  • Create a blank exploration in GA4 Explore.
  • Add “Session source”, “Session medium”, and “Landing page + query string” as dimensions.
  • Add “Sessions” and “Conversions” as metrics.
  • Filter to exclude utm_source values that match known external sources (Google, Facebook, email, newsletter).
  • Examine remaining utm_source values for patterns that suggest internal origin.
  • For suspicious utm_source values, add “First user source” as a comparison dimension to see if the first session source differs from the session source.

How does comparing “Session source” to “First user source” reveal internal UTM contamination? A discrepancy between “Session source” and “First user source” within the same session indicates that the session’s source was overwritten after the initial acquisition, which is the signature of internal UTM parameter contamination. “First user source” captures the source that originally acquired the user. “Session source” captures the most recent source that triggered a session update. If they differ for converting sessions, internal UTM parameters are almost certainly the cause.

What is the crawl-based method for detecting internal UTM parameters? The crawl-based method uses a site crawler (Screaming Frog, Sitebulb, or similar) configured to extract all outbound link URLs and flag any internal links containing utm_ parameter strings. A crawl of the site’s internal link graph identifies every page that contains an internal link with UTM parameters. The crawler’s “Links” export, filtered to internal links containing “utm_source” or “utm_medium” in the URL, reveals every contamination point with its source page and anchor text.

Prioritize UTM Cleanup Efforts

UTM cleanup prioritization is based on 3 criteria. They are the volume of sessions affected by each violation, the type of attribution error produced (false data vs missing data), and the difficulty of correction. Not all violations are equal. Fixing internal UTM contamination that affects 30% of converting sessions is a higher priority than fixing a case variant affecting 0.5% of organic sessions.

What are the 3 criteria for prioritizing UTM cleanup? The 3 prioritization criteria are listed below.

  • Session volume. Violations affecting more sessions represent more attribution data in error and produce larger improvements when corrected.
  • Attribution error type. Violations producing false attribution data (internal UTM parameters) are a higher priority than violations producing missing or fragmented data (case variants, Unassigned medium values), because false data looks correct and is harder to detect.
  • Correction difficulty. Violations correctable by updating a UTM builder template or publishing new link versions are lower cost than violations requiring site crawls, link updates in published emails, or retroactive GA4 configuration changes.

How does session volume inform the repair sequencing? Session volume determines repair sequencing by identifying which violations, when corrected, produce the largest immediate improvement in reporting accuracy. A property where “EDM” as utm_medium causes 20,000 Unassigned sessions per month, and case variants cause 500 fragmented source sessions per month. Fix the medium value problem first. The volume-weighted impact of the medium fix is 40 times larger.

What is the correct approach to UTM violations in live published content that cannot be updated? For UTM violations in published content that cannot be updated (sent emails, expired social posts), the correct approach is to create custom channel grouping rules in GA4 that reclassify sessions with the violating parameter values into the correct channel. Custom channel grouping does not fix the raw data but corrects channel-level reporting going forward and retroactively within the GA4 interface. The raw violation remains in the session data, but the channel grouping view is corrected.

Build a Monthly UTM Audit Process

A monthly UTM audit process consists of 5 recurring checks run on the trailing 30-day GA4 data, producing a violation report that triggers correction actions before the next audit cycle. The audit is not an annual cleanup exercise. It is a monthly quality control process that prevents violation accumulation.

What are the 5 recurring checks in a monthly UTM audit? The 5 recurring checks are listed below.

  • Check 1. Export the session medium dimension and compare against the approved vocabulary. Flag any new value not in the approved list.
  • Check 2. Export the Session source dimension sorted alphabetically. Identify any new case variant pairs created in the trailing 30 days.
  • Check 3. Run the Unassigned channel medium analysis and compare the Unassigned session volume against the previous month. Flag any increase.
  • Check 4. Run the internal UTM contamination detection report and flag any utm_source values that suggest internal origin.
  • Check 5. Review the Session campaign dimension for new values that do not follow the approved naming schema.

How does the monthly audit create a feedback loop for UTM governance? The monthly audit creates a feedback loop by making UTM violations visible quickly enough that they are corrected before they accumulate into a large historical data quality problem. A violation caught within 30 days affects at most 30 days of data. A violation undetected for 12 months affects a full year of historical reports. The audit compresses the detection-to-correction cycle.

How does the audit report inform UTM governance decisions? The audit report identifies which teams or campaign types are producing the most violations, enabling governance decisions about where to add enforcement controls, additional training, or builder tool restrictions. An audit that shows the paid media agency producing 80% of UTM violations but the email team producing 5% indicates that agency oversight needs tightening, not a company-wide retraining exercise. The audit data makes governance decisions targeted and specific.

How UTM Data Affects CRM and Attribution Reporting?

UTM data affects CRM attribution when UTM parameter values are passed through form submissions, landing page URL parameters, or JavaScript-based CRM field population methods that capture UTM values at the moment of conversion. HubSpot, Salesforce, and most major CRMs are configured to capture UTM parameters from the URL at the time a visitor fills out a form. The UTM values become CRM properties (Lead Source, Campaign, Medium) that persist in the contact record and flow into revenue attribution reports.

What is the CRM consequence of UTM case variant fragmentation? UTM case variant fragmentation in GA4 multiplies inside CRM systems, creating duplicate lead source, campaign, and medium field values that require manual deduplication before any CRM-based attribution analysis. A CRM report segmented by Lead Source that contains “Google”, “google”, and “GOOGLE” as three separate source values reports incorrect counts for each. The total lead count is correct, but the per-source breakdown is fragmented. Lifecycle stage conversion rates by source are miscalculated for every fragmented variant.

How does the CRM-GA4 attribution discrepancy emerge from UTM violations? CRM-GA4 attribution discrepancy emerges when GA4 records a session with corrected UTM values (from a custom channel grouping rule), but the CRM captured the original uncorrected values at form submission time. A lead submitting a form via a link with utm_source=Facebook (capitalized) is stored in the CRM with “Facebook” as the source. The GA4 report, using a custom grouping rule that normalizes the source to “facebook”, shows the session under a lowercase “facebook” source. The two systems now show different source attribution for the same conversion event.

What is the mechanism for synchronizing UTM data between GA4 and CRM systems? The mechanism for synchronizing UTM data between GA4 and CRM systems is consistent UTM enforcement at the URL generation level, ensuring that both systems receive the same raw UTM values from the start. GA4 custom grouping rules and CRM field normalization are remediation tools. They do not replace clean source data. A property where all UTM values are lowercase and schema-compliant from generation has naturally consistent GA4 and CRM attribution data without requiring post-hoc normalization in either system.

How does UTM data affect multi-touch attribution in CRM platforms? UTM data powers multi-touch attribution in CRM platforms by populating the touchpoint records that the CRM’s attribution model evaluates to assign revenue credit across the customer journey. HubSpot’s multi-touch attribution model evaluates all touchpoint interactions associated with a deal. Each touchpoint includes the source, medium, and campaign of the session that produced it. If UTM data is fragmented or corrupted, the multi-touch attribution model distributes revenue credit incorrectly across the fragmented source variants.

How does the quality of utm_campaign values affect CRM pipeline reporting? The quality of utm_campaign values affects CRM pipeline reporting by determining whether opportunities and closed deals are accurately attributed to specific campaigns in pipeline analysis. A consistent utm_campaign value “q2-enterprise-webinar-202406” enables CRM reports that show exactly how many pipeline opportunities and closed deals originated from that campaign. A fragmented campaign name across 8 variants produces an accurate total count only after manual grouping, which most CRM users never do.

What Are the Best Practices for UTM Governance?

The 6 best practices for UTM governance are listed below.

  • Standardize utm_source and utm_medium Values
  • Enforce Lowercase Naming Conventions
  • Validate UTM Parameters Before Publishing Links
  • Audit Attribution Data Regularly
  • Separate Attribution Rules From Formatting Preferences
  • Automate UTM Enforcement Where Possible

1. Standardize utm_source and utm_medium Values

Standardizing utm_source values requires creating an explicit approved list of all recognized traffic sources, assigning a canonical lowercase name for each, and enforcing that list as the only valid input for utm_source in the UTM builder tool. The approved list is not aspirational. It is enforced by the tool. A team member who wants to add a new utm_source value requests it through a defined process. The request is evaluated and, if approved, the canonical name is added to the approved list and the builder tool’s dropdown.

How does the utm_source approved list get maintained as the marketing mix evolves? The utm_source approved list is maintained by a designated UTM governance owner who processes new source requests, evaluates them against the existing list for duplicates or conflicts, and updates the builder tool and documentation. The governance owner does not need to be a dedicated role. It is a responsibility assigned to a marketing operations manager or analyst. The key is that there is a defined person who owns the list and a defined process for updating it.

What is the recommended utm_source vocabulary structure? The recommended utm_source vocabulary structure is a two-column reference. Canonical source name (lowercase) and the platform or entity it represents. An example entry is “Google” for the Google Ads platform, “LinkedIn” for LinkedIn (both paid and organic), and “HubSpot” for HubSpot email. The two-column format makes the reference unambiguous and prevents teams from creating platform-specific source names that fragment data.

How does utm_medium standardization differ from utm_source standardization? UTM_medium standardization is more constrained than UTM_source standardization because UTM_medium values match GA4’s recognized channel grouping values, not just being internally consistent. A custom utm_source value that is consistently applied produces clean source data regardless of whether it matches a GA4 predefined list. A custom utm_medium value that does not match GA4’s channel grouping rules produces Unassigned channel traffic regardless of how consistently it is applied. utm_medium standardization references GA4’s recognized value list, not just an internal preference list.

2. Enforce Lowercase Naming Conventions

The most reliable mechanism for enforcing lowercase naming conventions is a UTM builder tool that applies a LOWER() transformation to all parameter inputs before generating the final URL, making it structurally impossible to produce a mixed-case UTM parameter. Human compliance with a lowercase policy is unreliable. People make mistakes, copy-paste from mixed-case sources, and forget rules under time pressure. A tool that automatically lowercases eliminates the human error vector.

How does a Google Sheets UTM builder enforce lowercase? A Google Sheets UTM builder enforces lowercase by wrapping all input cell references in LOWER() functions in the URL construction formula. The formula structure is listed below.

 =CONCATENATE(C2, “?utm_source=”, LOWER(B5), “&utm_medium=”, LOWER(B6), “&utm_campaign=”, LOWER(B7)). 

Every value entered in the input cells is lowercased in the output URL, regardless of how the user typed it. The output cell displays the correct lowercase URL ready to copy.

What is the enforcement protocol for agencies and external partners who generate UTM parameters? The enforcement protocol for agencies and external partners requires the submission of all tagged URLs through the shared UTM builder before they are published, with a review step that checks the output against the approved vocabulary and lowercase requirement. Agencies that build their own UTM parameters using their internal tools bypass the centralized enforcement mechanism. Requiring URL submission for review before publication adds a quality gate that catches violations before they reach GA4.

How does lowercase enforcement interact with auto-generated UTM parameters from email platforms? Lowercase enforcement is applied to the UTM configuration within the email platform’s campaign settings, not just to manually constructed links. Platforms (Klaviyo, Mailchimp, and HubSpot Email) allow campaign-level UTM configuration. The utm_source, utm_medium, and utm_campaign values configured in the platform’s UTM settings are lowercase. Auto-generated link tracking in these platforms uses the configured values verbatim.

3. Validate UTM Parameters Before Publishing Links

UTM validation before publishing requires checking 4 properties of each tagged URL. That utm_medium matches an approved value, that all parameter values are lowercase, that the URL does not point to an internal page, and that utm_campaign follows the approved naming schema. A 4-point validation checklist run on every URL before publication prevents the most common and highest-impact UTM violations from reaching GA4.

What are the 4 validation checks for UTM parameters before publishing? The 4 validation checks are listed below.

  • Check that utm_medium exactly matches a value in the approved vocabulary list.
  • Check that all UTM parameter values are lowercase (no uppercase letters anywhere in the parameters).
  • Check that the destination URL is an external page, not an internal page or subdomain of the site being tracked.
  • Check that utm_campaign follows the approved naming schema (brand-initiative-YYYYMM, all lowercase, hyphens as separators).

How does a pre-publish validation checklist get operationalized across a team? A pre-publish validation checklist is operationalized by embedding it in the campaign launch process as a required step, not an optional review. Campaign launch documentation includes a UTM validation sign-off field. No tagged link is published until the validation fields are completed. The checklist is stored in the team’s project management tool and assigned to the campaign manager for each launch.

What automated tools exist for UTM parameter validation before publishing? Google Tag Manager’s built-in variable configuration includes UTM parameter capture. Custom GTM tags are configured to validate UTM parameter values on page load and fire a dataLayer event when a violation is detected. Server-side GTM implementations run validation logic before parameters reach GA4, rejecting or correcting non-compliant values. These automated validation mechanisms reduce the manual review burden for high-volume link publishing.

4. Audit Attribution Data Regularly

A regular attribution data audit catches UTM governance problems by comparing current attribution data against the expected schema, identifying deviations that indicate new violations have entered the data stream. Governance problems are not static. New campaigns, new team members, and new agency partners continuously introduce new UTM values. A regular audit makes the detection of new violations systematic rather than reactive.

What are the 4 metrics that indicate a governance problem in GA4 attribution data? The 4 metrics indicating a governance problem are listed below.

  • Unassigned channel traffic exceeds 5% of total sessions. Indicates unrecognized utm_medium values are routing sessions to Unassigned.
  • Session source dimension contains more than 1.5 times the expected number of distinct source values. Indicates case variant fragmentation is accumulating.
  • A utm_source value with high conversion attribution does not correspond to any known external campaign. Indicates possible internal UTM contamination.
  • The utm_campaign dimension contains more than 20% more rows than the number of active campaigns. Indicates campaign naming schema violations.

How frequently does the attribution data audit occur for the governance thresholds to be effective? The attribution data audit is most effective when run monthly, with a threshold review after each major campaign launch. Monthly cadence catches violations within a single reporting period. Post-launch reviews catch campaign-specific violations immediately, before they accumulate across an entire campaign flight.

How do audit findings get translated into governance improvements? Audit findings are translated into governance improvements by identifying the root cause of each violation (which team, which tool, which process step produced the non-compliant UTM), and adding a structural control at that specific point. A finding that the paid media agency consistently produces uppercase utm_source values leads to a specific action. The agency uses the shared UTM builder for all link generation. The action targets the root cause, not the symptom.

5. Separate Attribution Rules From Formatting Preferences

Separating attribution rules from formatting preferences matters because applying the same enforcement intensity to both wastes governance resources and creates friction for low-stakes formatting decisions. Attribution rules (lowercase enforcement, approved UTM_medium values, no internal UTM parameters) directly affect GA4 data quality and are enforced structurally. Formatting preferences (dash vs underscore separator, date format in campaign names) do not affect attribution and are managed as style guidelines without structural enforcement.

What is the correct classification of UTM rules by their attribution impact? Attribution rules are rules whose violation produces measurable errors in GA4 channel grouping, session attribution, or conversion counting. Formatting preferences are rules whose violation affects report readability and team consistency but not attribution accuracy. Lowercase enforcement is an attribution rule because mixed case produces source fragmentation, which results in errors in session counts per source. Separator choice is a formatting preference because “spring-sale” and “spring_sale” both produce the same attribution outcome.

How does the attribution vs formatting distinction inform the UTM builder design? The attribution vs formatting distinction informs builder design by determining which fields use hard constraints (dropdowns, automated transformations) and which use soft guidance (format hints, example values). utm_medium is a dropdown with approved values only. utm_source is a dropdown with approved values only. Lowercase transformation is automatic. The utm_campaign format is shown as an example hint (“brand-initiative-YYYYMM”) with a validator that flags violations but does not block URL generation. Hard constraints for attribution. Soft guidance for formatting.

What is the risk of treating formatting preferences as attribution rules? Treating formatting preferences as attribution rules creates unnecessary friction and compliance resistance without improving data quality. Teams that encounter strict enforcement of separator choice or date format in campaign names experience the governance process as bureaucratic overhead rather than a quality improvement mechanism. Compliance resistance undermines adherence to the attribution rules that actually matter. Keeping the governance process focused on attribution-critical rules maintains compliance where it counts.

6. Automate UTM Enforcement Where Possible

The aspects of UTM enforcement most suitable for automation are lowercase transformation, approved vocabulary validation, and URL structure checking, all of which operate on deterministic rules that do not require human judgment. Lowercase is always correct. An approved vocabulary list is finite and machine-readable. Internal URL detection is a string-matching operation. All three are automatable without exception logic.

What are the 3 automation mechanisms for UTM enforcement? The 3 automation mechanisms are listed below.

  • UTM builder tool automation. Apply LOWER() to all parameter inputs and restrict medium and source fields to approved dropdown values, producing compliant URLs as the only possible output.
  • Pre-publish URL scanner. A script or tool that checks all tagged URLs in a campaign brief or landing page list against the approved vocabulary, lowercase requirement, and internal URL prohibition before the campaign goes live.
  • GA4 Reporting API alert. A scheduled query against the GA4 Reporting API that checks the Session medium and Session source dimensions weekly and sends an alert when a new unrecognized value appears.

How does a GA4 Reporting API alert work in practice? A GA4 Reporting API alert runs a scheduled query that exports the current distinct utm_medium values and compares them against the approved vocabulary list, firing a Slack message or email notification when a new unrecognized value is detected. The query runs weekly. A new “EDM” medium value added by a campaign this week triggers an alert on Monday morning. The governance owner investigates, traces it to the campaign, and initiates correction before the next week’s data accumulates more Unassigned sessions.

How does Search Atlas’s Website Studio support automated UTM governance for tracking implementation? Website Studio natively injects GA4, GTM, Meta Pixel, and custom scripts without code changes to the site, enabling centralized management of tracking configurations that affect how UTM parameters are processed. A GTM configuration managed through Website Studio includes tags that validate UTM parameters on page load, fire custom events for non-compliant UTM values, and enforce the internal link prohibition by detecting UTM parameters on non-external page loads. Website Studio’s no-code injection model means these enforcement tags are deployed and updated without developer involvement.

What Are the Limitations of UTM-Based Attribution?

The 5 limitations of UTM-based attribution are listed below.

  • UTM parameters are absent from direct traffic, making all direct sessions unattributable to any channel or campaign.
  • Privacy measures (iOS 14+, browser tracking prevention, cookie restrictions) reduce the accuracy of session-level attribution even when UTM parameters are present.
  • UTM parameters do not capture cross-device journeys, attributing a mobile ad click and a desktop conversion as separate, unlinked sessions.
  • Multi-touch attribution based on UTM parameters captures only sessions that generated UTM-tagged clicks, missing touchpoints from untagged content, organic search, and dark social.
  • UTM parameters cannot attribute conversions that occur after a browser session has expired, the cookie has been cleared, or the user has switched from private browsing.

What is the practical implication of direct traffic attribution gaps? Direct traffic attribution gaps mean that a proportion of conversions from email, social, or paid channels is permanently misattributed to Direct because the UTM parameters were lost before the converting session. Users who copy a URL, open a link from a native app, or navigate directly to a bookmarked page generate direct sessions even if they originally arrived via a tagged channel. UTM-based attribution cannot recover the source for these sessions.

How do privacy measures degrade UTM-based attribution accuracy? Privacy measures degrade UTM-based attribution by reducing the cookie retention period available to connect returning user sessions to their original UTM-tagged acquisition session. Safari’s ITP (Intelligent Tracking Prevention) limits first-party cookies to 7 days in many configurations. A user who arrives from a tagged email link and converts 10 days later is not connected to the original email session. GA4 mitigates this with its Google Signals and User-ID features, but neither fully recovers attribution lost to ITP.

What is the cross-device attribution gap in UTM-based measurement? The cross-device attribution gap occurs because UTM parameters are URL-level identifiers that do not persist across devices. A user who clicks a paid search ad on mobile generates a mobile session with UTM parameters. The same user who converts on desktop later generates a desktop session with no UTM parameters (assuming they typed the URL directly). GA4’s cross-device attribution using Google Signals requires signed-in Google users and consent, and does not apply to all traffic.

What is “dark social” attribution loss, and how does it affect UTM accuracy? Dark social attribution loss occurs when content is shared through private channels (WhatsApp, Slack, direct messaging, email forwarding) that strip UTM parameters or arrive without any referrer header. A blog post shared in a Slack group is visited by 500 people through clean URLs with no UTM parameters and no referrer header. GA4 records all 500 sessions as Direct. The actual source is a Slack share. UTM parameters cannot be added to content shared organically through dark social channels.

How do analysts account for UTM attribution limitations when interpreting GA4 data? Analysts account for UTM attribution limitations by treating GA4 UTM data as the primary but not exclusive source of channel attribution truth, supplementing it with platform-native data (Google Ads conversion data, email platform click data, CRM attribution) to triangulate actual channel performance. UTM data from GA4 is the best available session-level attribution signal. Its limitations mean it systematically undercounts some channels (dark social, cross-device) and overcounts others (Direct). Analysts who understand these limitations interpret GA4 channel data with appropriate confidence levels.

How Often Should UTM Data Be Audited?

UTM data audits are most effective when run monthly for standard governance, with an additional review within 48 hours of each major campaign launch. Monthly audits catch gradual violations before they accumulate. Post-launch reviews catch campaign-specific violations immediately, when correction has minimal historical impact.

What determines whether a team needs more frequent audits? The frequency of UTM violations in the monthly audit determines whether a team needs more frequent reviews. A team that finds zero or one violation per monthly audit has well-functioning governance. A team that finds 10 or more violations per month has a systemic process problem. The response is not to increase audit frequency. It is to strengthen the enforcement mechanism (better builder tool, more restricted access, agency UTM review requirement) so that violations stop accumulating.

What is the minimum audit scope for a team with limited analytics capacity? The minimum audit scope for a team with limited analytics capacity covers two checks. They are the session medium against the approved vocabulary list, and the Unassigned channel session volume compared to the previous month. These two checks take under 30 minutes in GA4 Explore and catch the two most damaging violation types (unrecognized medium values and Unassigned traffic growth). A team that runs only these two checks monthly maintains the core of UTM attribution quality even without the full 5-check audit process.

What is the Difference Between utm_source and utm_medium?

utm_source identifies the specific referring entity (a website, platform, newsletter, or tool), while utm_medium identifies the marketing channel type or mechanism by which the traffic arrived. utm_source answers “which specific entity sent this traffic?” utm_medium answers “what type of channel delivered this traffic?” Both are required for accurate attribution. utm_source alone does not determine channel grouping. utm_medium alone does not identify the referring entity.

How do utm_source and utm_medium interact in GA4’s channel grouping evaluation? GA4’s channel grouping rules evaluate utm_medium first as the primary condition, then check utm_source as a secondary condition when the channel rule requires it. The Paid Search rule requires utm_medium to match “cpc” or “ppc” AND utm_source to match a recognized search engine. The Email rule requires only utm_medium to match “email” or “newsletter” with no utm_source condition. utm_medium is always the more critical parameter for channel classification.

What is the full comparison of all 5 UTM parameters and their roles in GA4? The comparison of all 5 UTM parameters is shown in the table below.

ParameterWhat it capturesGA4 dimensionEffect on channel classification
utm_sourceThe specific referring entity (platform, site, newsletter)Session sourceSecondary. Affects the channel only when the channel rule includes a source condition
utm_mediumThe channel type or delivery mechanismSession mediumPrimary. Determines channel grouping as the first evaluated condition in most rules
utm_campaignThe campaign name or initiativeSession campaignNone. Does affect channel grouping, only campaign-level dimension grouping
utm_contentThe creative variant or link identifier within a campaignSession manual ad contentNone. Not evaluated in any channel grouping rule
utm_termThe search keyword or targeting termSession manual termNone. Not evaluated in default channel grouping, captured separately from GCLID keyword data
Picture of Manick Bhan

Agentic SEO and AI Visibility Start Here

Loading Star Icon Ask Atlas Agent what to improve. We'll start with your website.
Loading Star Icon

Join Our Community Of SEO Experts Today!

Related Reads to Boost Your SEO Knowledge

Visualize Your SEO Success: Expert Videos & Strategies

Real Success Stories: In-Depth Case Studies

Ready to Replace Your SEO Stack With a Smarter System?

If Any of These Sound Familiar, It’s Time for an Enterprise SEO Solution:

25 - 1000+ websites being managed
25 - 1000+ PPC accounts being managed
25 - 1000+ GBP accounts being managed