Événements de produit
Consultations de produits enregistrées par le script de suivi.
product.viewed
Envoyé chaque fois que l’appel product du script de suivi enregistre une consultation de produit. Les consultations proviennent des contacts connus et des visiteurs anonymes. Quand un visiteur anonyme est identifié plus tard, ses consultations antérieures sont comptées pour le contact, mais les événements déjà envoyés gardent contact_id à null. Consultez Commerce.
Les consultations de produit proviennent du trafic du site : les webhooks abonnés à All events ne reçoivent donc pas cet événement. Abonnez-vous à product.viewed par son nom.
Les requêtes de webhook contiennent un tableau JSON d’événements comme celui-ci ; consultez Requêtes de webhook.
Champs
event_idstringID de l’événement (evt_…). Une requête relancée porte le même ID : utilisez-le pour ignorer les événements déjà traités. Vous pouvez aussi consulter l’événement avec Récupérer un événement.
typestringToujours product.viewed.
objectobjectLa consultation de produit décrite par l’événement. Ses champs sont détaillés ci-dessous.
data.objectobjectLe même objet, sous la forme que l’API des événements renvoie dans data.
Objet consultation de produit
objectstringToujours product_view.
productobjectLe produit consulté : id (prd_…, null quand le produit n’est pas dans votre catalogue), external_id (l’ID du produit dans votre boutique), title, url, image_url, price et currency. Les valeurs proviennent de votre catalogue quand le produit y figure, et de l’appel product sinon.
contact_idstring | nullLe contact qui a consulté le produit (con_…), ou null pour un visiteur anonyme.
emailstring | nullL’adresse e-mail du contact, ou null pour un visiteur anonyme.
anonymous_idstring | nullL’ID que le script de suivi attribue au navigateur du visiteur.
viewed_atstringDate à laquelle le visiteur a consulté le produit, au format ISO 8601 UTC.
sourcestringToujours js (le script de suivi).
contextobject | nullCe que le script sait de la visite : page (url, path, title, referrer), campaign (valeurs UTM), locale, timezone, library et user_agent. Les mêmes champs que sur les événements du script de suivi.
{
"event_id": "evt_3xbB2QmL7cVn0Rk8sWd4TfY1uHa",
"type": "product.viewed",
"object": {
"object": "product_view",
"product": {
"id": "prd_3Rx6aB1cD2eF3gH4iJ5kL6mN7oP",
"external_id": "8123456789",
"title": "Trail running shoe",
"url": "https://shop.example.com/products/trail-running-shoe",
"image_url": "https://shop.example.com/images/trail-running-shoe.jpg",
"price": 89,
"currency": "USD"
},
"contact_id": "con_3EwrXnu9OaQWlfI1AyPUUEoYjQs",
"email": "ada@example.com",
"anonymous_id": "anon_5f0c9e2b7d1a4c8e9b3f6a2d1c0e7b4a",
"viewed_at": "2026-10-19T09:12:40.512Z",
"source": "js",
"context": {
"page": {
"url": "https://shop.example.com/products/trail-running-shoe",
"path": "/products/trail-running-shoe",
"title": "Trail running shoe"
},
"campaign": { "source": "emailit", "medium": "email", "name": "Autumn sale" },
"timezone": "Europe/Prague"
}
},
"data": {
"object": {
"object": "product_view",
"product": {
"id": "prd_3Rx6aB1cD2eF3gH4iJ5kL6mN7oP",
"external_id": "8123456789",
"title": "Trail running shoe",
"url": "https://shop.example.com/products/trail-running-shoe",
"image_url": "https://shop.example.com/images/trail-running-shoe.jpg",
"price": 89,
"currency": "USD"
},
"contact_id": "con_3EwrXnu9OaQWlfI1AyPUUEoYjQs",
"email": "ada@example.com",
"anonymous_id": "anon_5f0c9e2b7d1a4c8e9b3f6a2d1c0e7b4a",
"viewed_at": "2026-10-19T09:12:40.512Z",
"source": "js",
"context": {
"page": {
"url": "https://shop.example.com/products/trail-running-shoe",
"path": "/products/trail-running-shoe",
"title": "Trail running shoe"
},
"campaign": { "source": "emailit", "medium": "email", "name": "Autumn sale" },
"timezone": "Europe/Prague"
}
}
}
}