Promotion dimension
The promotion dimension measures internal promotions — banners, hero slots, on-site campaigns — distinct from paid ad campaigns. GA4 reads promotion_id, promotion_name, creative_name, and creative_slot from view_promotion and select_promotion events. This page explains the model and how it differs from UTM campaigns.
What this means
GA4 has a dedicated internal-promotion model separate from paid campaigns. When a merchandising unit is shown you fire view_promotion; when it is clicked you fire select_promotion. Each carries promotion_id, promotion_name, creative_name, and creative_slot, which become the promotion dimensions.
This lets you measure the funnel of an on-site banner — impressions to clicks — and compare slots and creatives, all within first-party event data you control.
- Events: view_promotion and select_promotion
- Fields: promotion_id, promotion_name, creative_name, creative_slot
- Measures the impression-to-click funnel of on-site units
Promotion vs UTM campaign
A promotion is internal — a banner on your own site driving users deeper. A UTM campaign is external — tagging inbound traffic from another property. They look similar but live in different parts of the model and answer different questions: 'which of my banners works?' versus 'which external campaign sent this visit?'
Conflating them double-counts intent: an inbound paid click that lands on a page with a promotion banner is two distinct things. Keep promotion analysis for on-site merchandising and campaign analysis for acquisition.
- Promotion = internal merchandising unit
- UTM campaign = external acquisition tagging
- Keep the two analyses separate to avoid double-counting
How it appears in analytics and logs
A promotion value reflects what your view_promotion / select_promotion events sent. Empty promotion data means those events are not firing or omit the promotion fields.
Diagnostic use case
Measure which on-site promotions — homepage banners, merchandising slots — get seen and clicked, to optimize internal merchandising.
What WebmasterID can help detect
WebmasterID records on-site promotion impressions and clicks as first-party events, so internal-promotion analysis does not depend on ad-network tracking.
Common mistakes
- Confusing internal promotions with UTM campaigns.
- Firing select_promotion without the matching view_promotion.
- Omitting creative_slot so you cannot compare placements.
Privacy and accuracy notes
Promotion identifiers describe on-site merchandising, not visitors. They carry no personal data.
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)'.
- Item list dimension
The item list dimension identifies the list context in which a product appeared — a search results page, a category grid, a recommendation rail. GA4 reads item_list_id and item_list_name from view_item_list and select_item events. This page explains list context and why consistent list naming makes it analyzable.
- Ad creative dimension
An ad creative is the specific image, text, or video asset shown in an ad. Analytics tools surface a creative dimension so you can compare which asset drove a click; GA4 populates it from linked Google Ads, while other channels rely on utm_content. This page covers derivation and the volatility of creative identifiers.
- CTA tracking
Record on-site promotion views and clicks first-party.
Sources and verification notes
- Google Analytics Help — [GA4] Measure internal promotionsDocuments view_promotion/select_promotion and their fields.
- developers.google.com — GA4 Measurement: promotion eventsReference for promotion_id/promotion_name 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.