Eventos de productos
Visualizaciones de productos registradas por el script de seguimiento.
product.viewed
Se envía cada vez que el comando product del script de seguimiento registra una vista de producto. Las vistas llegan de contactos conocidos y de visitantes anónimos. Cuando un visitante anónimo se identifica más tarde, sus vistas anteriores cuentan para el contacto, pero los eventos ya enviados conservan contact_id igual a null. Consulta Comercio electrónico.
Las vistas de productos proceden del tráfico de la web, así que los webhooks con All events activado no reciben este evento. Suscribe el webhook a product.viewed por su nombre.
Las peticiones de webhook contienen un array JSON de eventos como este; consulta Peticiones de webhook.
Campos
event_idstringEl ID del evento (evt_…). Una petición reintentada lleva el mismo ID, así que úsalo para omitir los eventos que ya hayas procesado. También puedes consultar el evento con Obtener un evento.
typestringSiempre product.viewed.
objectobjectLa vista de producto que describe el evento. Sus campos se indican a continuación.
data.objectobjectEl mismo objeto otra vez, con la forma que devuelve la API de eventos en data.
Objeto de vista de producto
objectstringSiempre product_view.
productobjectEl producto visto: id (prd_…, null si el producto no está en tu catálogo), external_id (el ID del producto en tu tienda), title, url, image_url, price y currency. Los valores proceden de tu catálogo si el producto está en él, y de la llamada product en caso contrario.
contact_idstring | nullEl contacto que vio el producto (con_…), o null si es un visitante anónimo.
emailstring | nullLa dirección de email del contacto, o null si es un visitante anónimo.
anonymous_idstring | nullEl ID que el script de seguimiento asigna al navegador del visitante.
viewed_atstringCuándo vio el visitante el producto, en formato ISO 8601 UTC.
sourcestringSiempre js (el script de seguimiento).
contextobject | nullLo que el script sabe de la visita: page (url, path, title, referrer), campaign (valores UTM), locale, timezone, library y user_agent. Son los mismos campos que en los eventos del script de seguimiento.
{
"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"
}
}
}
}