select_promotion Event
The select_promotion
event tracks when a user clicks or interacts with a promotion — like a homepage banner, seasonal offer, or campaign tile. It's essential for measuring campaign engagement and creative performance.
The select_promotion model
This model captures the interaction and metadata related to the clicked promotion.
Properties
- Name
event
- Type
- string
- Description
Must be set to
select_promotion
.
- Name
user_id
- Type
- string
- Description
ID of the user interacting with the promotion.
- Name
session_id
- Type
- string
- Description
ID of the current session.
- Name
promotions
- Type
- array
- Description
Array of promotion objects the user interacted with (usually one).
- Name
promotions[].promotion_id
- Type
- string
- Description
Unique ID for the promotion.
- Name
promotions[].promotion_name
- Type
- string
- Description
Name of the promotion.
- Name
promotions[].creative_name
- Type
- string
- Description
Name of the creative.
- Name
promotions[].creative_slot
- Type
- string
- Description
Where the promotion was shown (e.g.,
banner_top
).
- Name
promotions[].location_id
- Type
- string
- Description
Optional — context-specific location ID.
Push event to the dataLayer
dataLayer.push example
dataLayer.push({
event: 'select_promotion',
user_id: 'user-001',
session_id: 'session-xyz987',
promotions: [
{
promotion_id: 'fall-sale-2025',
promotion_name: 'Fall Sale 2025',
creative_name: 'Hero Image Banner',
creative_slot: 'banner_top',
location_id: 'home_page'
}
]
});
Best Practices
- Fire this only after an actual user interaction (e.g., click).
- Align IDs and names with
view_promotion
for consistency. - Use
creative_slot
to A/B test placements.
Use Cases
The select_promotion
event supports:
- Creative performance analysis
- Conversion rate optimization
- Campaign attribution
- Click-through and engagement reporting