π΄ Phase 1 β CoreΒ Β·Β Drives dynamic retargeting and catalog matching.
view_item
When to pushβ
When the product detail page (PDP) renders.
Push once per view. If the user switches variants without changing page, don't re-push (unless it's a distinct SKU in the catalog).
Exampleβ
window.dataLayer.push({ ecommerce: null });
window.dataLayer.push({
event: 'view_item',
ecommerce: {
currency: 'EUR',
value: 42.00,
items: [
{
item_id: 'BIO-CRM-001',
item_name: 'Hydrating Day Cream',
item_brand: 'Biosphere',
item_category: 'Skincare',
item_category2: 'Face',
item_category3: 'Hydration',
item_variant: '50 ml',
price: 42.00,
quantity: 1
}
]
},
user_data: /* if user logged in, see Foundations */
});
Parametersβ
Event levelβ
| Parameter | Type | Required |
|---|---|---|
currency | string | required |
value | number | required β displayed product price |
items | array (1 item) | required |
Item levelβ
item_idrequireditem_namerecommendedprice,quantity(=1) recommendeditem_brand,item_category*,item_variantrecommended
Platformsβ
| Platform | Native event | Notes |
|---|---|---|
| GA4 | view_item | |
| Meta | ViewContent | content_ids = [item_id], content_type = 'product' |
| Google Ads | Dynamic remarketing | Matches GMC id |
Critical for the Meta Catalogβ
The item_id you send must match exactly an id in the Meta Catalog feed, otherwise dynamic retargeting (DPA) won't match.
Pitfallsβ
- β Pushing
view_itemon every variant swap (image carousel, color picker) β event spam. - β Missing
currencyorvalueβ MetaViewContentloses value information. - β
item_idβ Meta Catalogidβ DPA audiences broken.