# Événements de produit

> Consultations de produits enregistrées par le script de suivi.



## product.viewed

> Envoyé lorsque le script de suivi enregistre une consultation de produit, par un contact ou par un visiteur anonyme. Alpha : réservé à l’équipe Emailit.

# product.viewed

Envoyé chaque fois que l’appel `product` du [script de suivi](/fr/docs/commerce/connect-your-shop/#record-shop-activity) 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](/fr/docs/commerce/#events).

> **Commerce est en alpha:** Commerce est réservé à l’équipe Emailit pendant que nous le testons. Consultez [Qui peut utiliser Commerce](/fr/docs/commerce/#who-can-use-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](/fr/docs/webhooks/webhook-requests/).

```json
{
  "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"
      }
    }
  }
}
```

## Champs

- `event_id` (string): ID 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](/fr/docs/api-reference/events/get/).

- `type` (string): Toujours `product.viewed`.

- `object` (object): La consultation de produit décrite par l’événement. Ses champs sont détaillés ci-dessous.

- `data.object` (object): Le même objet, sous la forme que l’[API des événements](/fr/docs/api-reference/events/get/) renvoie dans `data`.

### Objet consultation de produit

- `object` (string): Toujours `product_view`.

- `product` (object): Le 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](/fr/docs/api-reference/products/get/) quand le produit y figure, et de l’appel `product` sinon.

- `contact_id` (string | null): Le contact qui a consulté le produit (`con_…`), ou `null` pour un visiteur anonyme.

- `email` (string | null): L’adresse e-mail du contact, ou `null` pour un visiteur anonyme.

- `anonymous_id` (string | null): L’ID que le script de suivi attribue au navigateur du visiteur.

- `viewed_at` (string): Date à laquelle le visiteur a consulté le produit, au format ISO 8601 UTC.

- `source` (string): Toujours `js` (le script de suivi).

- `context` (object | null): Ce 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](/fr/docs/events/tracking-script/#what-the-script-sends).

---
Source: https://emailit.com/fr/docs/webhooks/events/product/product-viewed/
