Session campaign dimension
The session campaign dimension attributes an entire session to a single campaign, fixed when the session begins. GA4 derives it from utm_campaign or the auto-tagged Google Ads campaign present at session start. It is session-scoped, so it answers 'which campaign drove this visit?' — different from event-scoped campaign (which can change within a session) and from first-user campaign (the lifetime acquisition campaign). Mixing the three is a common attribution error.
What this means
Session campaign is the campaign GA4 assigns to a whole session, locked in when the session starts. A new session begins after an inactivity gap or when a new campaign arrives, so a fresh campaign tag can start a new session and a new session-campaign value.
It answers 'where did this visit come from?' as one value for the entire session, making it the natural dimension for per-visit campaign performance.
Scope pitfalls
First-user campaign is fixed at acquisition and never changes; session campaign can differ every return visit. Event-scoped campaign can shift within a session if a new campaign tag appears mid-visit. Summing or directly comparing campaign totals across these scopes yields attribution that does not reconcile. Choose one scope per question.
- Fixed at session start
- Differs from first-user (first-touch) campaign
- Differs from event-scoped campaign within a session
How it appears in analytics and logs
A session campaign value is the campaign captured at session start. If it disagrees with first-user campaign, the user was acquired earlier and returned through a different campaign.
Diagnostic use case
Use session campaign for per-visit campaign reporting, keeping it distinct from first-user campaign and from any event-scoped campaign within the same session.
What WebmasterID can help detect
WebmasterID fixes a session's campaign from utm_campaign at session start and keeps it separate from first-touch campaign, so per-visit and acquisition reporting stay distinct.
Common mistakes
- Comparing session campaign with first-user campaign as equals.
- Summing campaign across different scopes.
- Assuming session campaign updates mid-session.
Privacy and accuracy notes
Session campaign derives from campaign tags at session start, not from cross-site identity. WebmasterID attributes it first-party without fingerprinting.
Related pages
- Campaign dimension
The campaign dimension labels a visit with the marketing campaign that drove it. It is populated from the utm_campaign parameter on a tagged link, or auto-tagged by an ad platform's own click ID. Any visit without a campaign tag — most organic, direct, and untagged referral traffic — shows '(not set)', which is the absence of a campaign rather than a campaign named '(not set)'.
- First user campaign dimension
The first user campaign dimension records the campaign name attached to a user's very first session and keeps it fixed for the user's lifetime. GA4 derives it from utm_campaign (or auto-tagged Google Ads campaign) on the first visit. Being user-scoped, it answers 'which campaign first acquired this person?' and will not match the session campaign of any later visit — a distinction that matters for cohort attribution.
- Session source dimension
The session source dimension attributes a whole session to a single origin — google, a newsletter, a domain — fixed when the session begins. GA4 derives it from the campaign tags or referrer present at session start. It differs from the event-scoped source (which can vary within a session) and from first-user source (the very first acquisition), so mixing the three is a frequent attribution error.
- Campaign links
Tag campaigns so session-scope attribution stays clean.
Sources and verification notes
- Google — [GA4] User and traffic acquisition dimensions
- Google — [GA4] Custom campaigns (UTM parameters)
Last reviewed 2026-06-24. Facts are checked against primary/official sources where available; uncertain specifics are marked “Data not yet verified” rather than guessed.