Why Internal Promotion Tracking Matters
Your homepage hero banner, sale popup, featured collection carousel, and email-linked landing page banners are all internal marketing campaigns. Without promotion tracking in GA4 ecommerce, you have no data on which internal promotions actually drive revenue — you are managing your on-site marketing by gut feel.
GA4's view_promotion and select_promotion events measure exactly this: how many users saw each promotion and how many clicked it, enabling a CTR and revenue attribution calculation for every internal campaign.
The Two Promotion Events
view_promotion: fires when a user sees a promotional banner or element on the page. Include all promotions visible without scrolling when the page loads; add more as the user scrolls and new promotions enter the viewport.
select_promotion: fires when a user clicks on a promotional element. Links the subsequent purchase to the promotion that started the journey.
Implementation
// When the homepage hero banner is visible
dataLayer.push({ ecommerce: null });
dataLayer.push({
event: "view_promotion",
ecommerce: {
items: [{
promotion_id: "PROMO-SUMMER-2026",
promotion_name: "Summer Sale 2026",
creative_name: "hero_banner_summer",
creative_slot: "homepage_hero",
location_id: "homepage"
}]
}
});
// When user clicks the banner
dataLayer.push({ ecommerce: null });
dataLayer.push({
event: "select_promotion",
ecommerce: {
items: [{
promotion_id: "PROMO-SUMMER-2026",
promotion_name: "Summer Sale 2026",
creative_name: "hero_banner_summer",
creative_slot: "homepage_hero",
location_id: "homepage"
}]
}
});
Key Parameters
promotion_id: a unique identifier for the specific promotion campaignpromotion_name: human-readable name of the promotioncreative_name: the specific creative variant shown (useful for A/B testing different banner designs)creative_slot: where on the page the promotion appears (homepage_hero, sidebar, footer_banner)location_id: the page or section where the promotion appears
Reading Promotion Performance in GA4
Promotion data appears in GA4 at: Reports then Monetisation then Ecommerce purchases. Add "Item promotion name" or "Item promotion ID" as a dimension to see:
- Number of users who saw each promotion (view_promotion event count)
- Number of users who clicked each promotion (select_promotion event count)
- Promotion CTR: select_promotion / view_promotion
- Revenue attributed to each promotion (via select_promotion → purchase path)
Use Case: Homepage Banner A/B Test
If you are A/B testing two homepage hero banners, use different creative_name values for each variant ("hero_summer_red" vs "hero_summer_blue"). GA4 will show which banner had higher CTR and which drove more revenue — objective data for the A/B test winner decision.
Summary
Promotion tracking turns your internal merchandising and marketing from guesswork into data-driven decisions. Implement view_promotion on page load for all visible promotions and select_promotion on click. Use consistent promotion_id and creative_slot naming to make reports readable. This is one of the most underutilised GA4 ecommerce features with immediate practical value.
See our Enhanced Ecommerce Tracking service for promotion tracking implementation.
Need promotion tracking implemented? Contact Adslytics.
Need expert tracking setup?
Our Google Tag Manager experts have delivered 500+ tracking setups with a 98% success rate.
Get a Free Consultation →