π΄ Phase 1 β CoreΒ Β·Β Powers list-level analytics in GA4.
view_item_list
When to pushβ
When the user sees a product list: category page (PLP), search results, cross-sell recos, homepage carousel⦠Push once per list render (not on scroll).
Exampleβ
window.dataLayer.push({ ecommerce: null });
window.dataLayer.push({
event: 'view_item_list',
ecommerce: {
item_list_id: 'plp_face',
item_list_name: 'PLP Face',
items: [
{
item_id: 'BIO-CRM-001',
item_name: 'Hydrating Day Cream',
item_brand: 'Biosphere',
item_category: 'Skincare',
item_variant: '50 ml',
price: 42.00,
index: 1,
quantity: 1
},
{
item_id: 'BIO-SER-002',
item_name: 'Radiance Serum',
price: 58.00,
index: 2,
quantity: 1
}
// β¦ up to 200 items
]
}
});
Parametersβ
| Parameter | Required |
|---|---|
item_list_id | recommended |
item_list_name | recommended |
items (with index) | required |
Item-level: see items structure. index (position) is recommended.
Platformsβ
| Platform | Native event |
|---|---|
| GA4 | view_item_list |
| Meta | β |
| Google Ads | Dynamic remarketing |
Edge casesβ
- Lazy load / pagination: push once per batch loaded (not per scroll line).
- Search results: combine with
search, useitem_list_id: 'search_results'. - Cross-sell on PDP:
item_list_id: 'xsell_pdp'.
Pitfallsβ
- β Pushing on every hover or scroll line.
- β Missing
item_list_idβ can't filter list performance in GA4. - β
indexdiffers betweenview_item_listandselect_itemfor the same item.