The essentials
- Definitions: the source is where the traffic comes from (google, facebook, newsletter), the medium is the type of channel (organic, cpc, paid_social, email); GA4 either deduces them from the referrer or reads them in the UTM parameters of the URL.
- Five UTM parameters: utm_source, utm_medium and utm_campaign are required; utm_content and utm_term are optional; GA4 adds utm_id, utm_source_platform, utm_creative_format and utm_marketing_tactic.
- The golden rule: a written convention, in lower case, with no spaces or accents, applied by everyone; a UTM on every paid, email and partner link; never a UTM on internal links.
- The medium decides the channel: paid_social, cpc, email, referral, social; an invented medium sends traffic into “Unassigned”.
Knowing where visitors and conversions come from is the basis of every marketing decision. In GA4, that information sits in two dimensions, the source and the medium, fed either automatically by the referrer or by the UTM parameters you add to your links. Without UTMs, Meta, LinkedIn, TikTok and email campaigns end up partly in “direct” or mixed in with organic traffic. This article defines the terms, details the parameters, proposes a convention, explains channel groups and lists the mistakes. Tracking sources over time is described in GA4 key events.
Source, medium, campaign: the GA4 definitions
| Dimension | Definition | Examples | Origin |
|---|---|---|---|
| Source | Where the visitor comes from: site, engine, platform, list name | google, bing, facebook, instagram, linkedin, newsletter, chatgpt.com | Referrer (automatic) or utm_source |
| Medium | The type of channel | organic, cpc, paid_social, social, email, referral, (none), affiliate | Deduced (organic, referral, none) or utm_medium |
| Campaign | The name of the operation | spring_launch_2026, seo_webinar_sept | utm_campaign; Google Ads via automatic linking |
| Example | The creative or placement variant | testimonial_video, top_button | utm_content |
| Term | The keyword or the segment | seo_audit, customer_segment | utm_term |
| Default channel group | The GA4 category calculated from source and medium | Paid Social, Organic Search, Email, Direct, Unassigned | GA4 rules |
GA4 offers three scopes: first visit (“first user”), session, and key event (attribution). The same visitor can have “paid_social” as their first source and “organic” as their session source; see data-driven attribution.
The UTM parameters
| Content | Required | Role | Recommended values |
|---|---|---|---|
| utm_source | Yes | Platform or site | facebook, instagram, linkedin, tiktok, newsletter, partner_x |
| utm_medium | Yes | Type of channel; determines the GA4 group | paid_social, cpc, display, email, social, referral, affiliate, qr |
| utm_campaign | Yes | Campaign name | objective_offer_period: leads_audit_2026q4 |
| utm_content | No | Creative, placement, variant | testimonial_video_v2, pricing_carousel |
| utm_term | No | Keyword, audience, segment | lookalike_customers_1pct |
| utm_id | No | Campaign identifier for cost import | The platform identifier |
| utm_source_platform, utm_creative_format, utm_marketing_tactic | No | Additional GA4 dimensions (buying platform, format, tactic) | meta_ads, video, retargeting |
Example of a full URL for a Meta ad:
https://www.exemple.fr/audit-seo/?utm_source=facebook&utm_medium=paid_social&utm_campaign=leads_audit_2026q4&utm_content=video_temoignage_v2&utm_term=lookalike_clients_1pct
Meta, LinkedIn and TikTok offer dynamic parameters ({{campaign.name}}, {{adset.name}}, {{ad.name}} on Meta) that fill the UTMs automatically with the internal names: use them so that nothing has to be typed by hand.
The naming convention
- Lower case everywhere: GA4 tells “Facebook” and “facebook” apart; two lines for the same source.
- No spaces, no accents: underscores or hyphens; no special characters.
- One medium per type of channel, taken from the GA4 list: paid_social for social advertising, social for organic posts, cpc for paid Search, email for email, referral for partners, display for banners. A medium outside the list (“facebook_ads”, “ads”) falls into Unassigned.
- One source per platform: facebook and instagram kept separate if you want to tell them apart, or meta if not; decide once.
- A structured campaign: objective_offer_period, identical in the platform and in the UTM.
- A shared document: the convention and the link builder (spreadsheet or tool) available to the whole team and to providers.
Channel groups in GA4
GA4 classifies each session in a default channel group according to rules on source and medium. The most useful rules: a paid_social medium, or a source among the known social networks with a cpc, ppc or paid medium, gives “Paid Social”; a social, social-network or social-media medium gives “Organic Social”; an email or e-mail medium gives “Email”; a referral medium gives “Referral”; the absence of a referrer gives “Direct”; anything matching no rule gives “Unassigned”. You can create custom groups (for example “Partners” or “Generative AI” for the sources chatgpt.com, perplexity.ai) in Admin, Channel groups; see identifying AI traffic in GA4.
The mistakes that break attribution
| Mistake | Consequence | Fix |
|---|---|---|
| No UTM on social ads | Traffic classified as direct (mobile apps with no referrer) or as organic social | Systematic UTMs, dynamic parameters |
| UTMs on the site’s internal links | The session is re-attributed mid-visit; the real source is lost | Never a UTM internally; use events |
| Invented medium | Unassigned | A closed list of mediums |
| Capitals and variants | Duplicate lines | Convention, link builder |
| A redirect that loses the parameters | Direct traffic | Test every link; keep the parameters through redirects |
| Email links with no UTM | Classified as direct or referral depending on the webmail | UTMs from the emailing tool (automatic) |
| UTMs on Google Ads links | Overrides the automatic linking | Leave the automatic linking, or add UTMs only as a consistent complement |
| No consent | Sessions not measured; partial modelling | Consent Mode v2; see Consent Mode v2 |
Reading the results
In GA4, the Traffic acquisition report (session scope) gives sessions, key events and revenue by source and medium; add the campaign as a secondary dimension. The User acquisition report (first visit) says which channel recruits. Explorations let you cross source, medium, campaign and content to compare creatives. This data, set against the platform costs, gives the cost per key event by campaign; it is the independent reading that completes the Meta or LinkedIn reports; see conversion tracking in SMA.
How GreenRed helps
Rather than juggling several tools, GreenRed's Traffic module brings these metrics together in a single dashboard, compares them over time and tells you which actions come first. You can try it free, with no card, from the Pricing.
Frequently asked questions
What is the difference between source and medium in GA4?
The source says where the visitor comes from (google, facebook, newsletter, a referring site); the medium says through which type of channel (organic, cpc, paid_social, email, referral). GA4 deduces them from the referrer or reads them in the utm_source and utm_medium parameters, then combines them to classify the session in a channel group (Paid Social, Email, etc.).
Which utm_medium should you use for Meta or LinkedIn ads?
paid_social: that is the value GA4 recognises for the “Paid Social” group. For organic posts, use social. An invented medium (facebook_ads, ads, sponsored) sends traffic into “Unassigned” and makes it unusable in the by-channel reports.
Should you put UTMs on the site’s internal links?
No, never: a UTM on an internal link triggers a new attribution of the session and erases the real original source. To measure an internal button or banner, use a GA4 event. UTMs are reserved for incoming links: ads, emails, partners, QR codes, social media.
Why does my Facebook traffic appear as “direct” in GA4?
Because mobile apps (Facebook, Instagram, LinkedIn) do not always pass a referrer: without a UTM, GA4 cannot identify the origin and classifies the session as direct. Always add UTMs to shared links and to ads, using the platforms’ dynamic parameters so you never type them by hand.