Passer au contenu principal

Manuel de suivi (Tracking Manual)

Cet article décrit le processus de configuration du suivi des événements via Google Tag Manager (GTM) vers Google Analytics 4 (GA4)

Mis à jour cette semaine

💡 Assurez‑vous de consulter le changelog (Journal des modifications) pour vérifier que les événements suivis sont bien à jour.


Comment le suivi est implémenté

📒 REMARQUE:

Le système de paiement Ventrata utilise l’implémentation dataLayer conformément à la documentation de Google.

Cet article fournit un guide complet pour configurer le suivi des événements avec Google Tag Manager (GTM) et Google Analytics 4 (GA4). Vous apprendrez à configurer et suivre divers Core Events et Custom Events afin de capturer les interactions significatives tout au long du parcours client dans le processus de paiement.

Le système de paiement Ventrata permet aux clients de suivre les actions des utilisateurs à l’aide d’une combinaison d’événements de base (Core Events) et d’événements personnalisés (Custom Events). Ces événements permettent de collecter des données comportementales, utiles pour optimiser le processus de paiement.

Événements de base (Core Events)

Événements toujours déclenchés, quel que soit le produit ou la configuration du checkout.

Événement

Description

view_item

déclenché lorsque le client affiche un article initial ou ultérieur

add_to_cart

déclenché lorsque le client ajoute un produit au panier

view_cart

envoyé lorsque le client consulte son panier, examinant les articles avant de passer à la caisse

begin_checkout

déclenché lorsque le client commence le processus de paiement

create_or_update_order

envoyé lorsque le client saisit toutes les informations requises et passe au paiement

add_payment_info

déclenché lorsque le client saisit ses informations de paiement

purchase

déclenché lorsque la transaction est terminée et que le paiement est confirmé

order_expired

déclenché lorsqu’une session de checkout expire sans achat réussi ou lorsque le client ferme le checkout avant de finaliser le paiement

Événements personnalisés

Événements optionnels déclenchés en fonction de configurations spécifiques, des caractéristiques du produit et des interactions du client.

Événement

Description

view_option_select

envoyé comme premier événement lorsque le client sélectionne une option

view_gift_item

déclenché lorsque le client sélectionne Buy as a Gift Card (Acheter comme carte cadeau) option

gift_added_to_cart

déclenché lorsqu'un article cadeau est ajouté au panier

select_unit

déclenché lorsque le client sélectionne une unité ou catégorie spécifique, telle que "Adult"

remove_unit

déclenché lorsque le client clique sur le bouton moins pour désélectionner une unité ou catégorie spécifique, telle que "Adult". Cet événement est l’opposé de select_unit.

select_date

envoyé lorsque le client sélectionne une date pour sa réservation

select_time

déclenché lorsque le client choisit un créneau horaire spécifique pour sa réservation

notify_me

déclenché lorsque le client choisit d'être notifié de la disponibilité d'un produit en rupture de stock

quote_confirmed

déclenché lorsque le client choisit d’enregistrer sa réservation en tant que devis

wait_list_confirmed

envoyé lorsque le client confirme sa place sur une liste d'attente

view_upgrade

déclenché une fois que la sélection d’upgrade est affichée

upgrade_ticket

déclenché lorsque le client améliore son billet

view_cross_sell

déclenché une fois que la sélection de vente croisée (cross-sell) est affichée

cross_sell

déclenché lorsque le client sélectionne un produit supplémentaire à acheter

select_pickup

déclenché lorsque le client sélectionne un point de prise en charge pour sa réservation

select_question

envoyé lorsque le client sélectionne et répond à une question configurée

edit_booking

déclenché lorsque le client modifie sa réservation

remove_booking

envoyé lorsque le client supprime une réservation de son panier


Configuration de Google Tag Manager (GTM)

Prérequis :

  • Un site Web sur lequel vous pouvez ajouter les codes GTM et GA4.

  • Un compte Google Tag Manager et un container configuré pour votre site.

  • Une propriété Google Analytics 4 créée dans la console d’administration GA4.

Installer GTM

  • Si vous n'avez pas installé GTM sur votre site, suivez les instructions fournies par Google.

Configurer la balise de configuration GA4

  • Créez une nouvelle balise dans GTM de type « Google Analytics : configuration GA4 ». Configurez la balise avec votre ID de mesure GA4.

Configurer les balises d'événements GA4

  • Créez des balises pour chaque événement que vous souhaitez suivre (View Item, Custom Event, Add To Cart, View Cart, Begin Checkout, Add Payment Info, Purchase). Pour chaque balise, définissez le « Event Name (Nom de l'événement) » et tous les « Event Parameters (Paramètres d'événement) » supplémentaires requis.

Configurer les déclencheurs

  • Créez des déclencheurs qui activeront les balises respectives en fonction des interactions des utilisateurs ou des événements sur votre site web.

Chaque événement recommandé par Google dispose d'un exemple de configuration de balise comme montré dans ce Exemple d'événement d'achat.

📗 ASTUCE

Suivez les étapes dans cet article pour configurer Google Tag Manager (GTM) et Google Analytics 4 (GA4).


Glossaire

📗 ASTUCE

Nous vous recommandons également de consulter cette documentation de Google.

Paramètres globaux

Paramètre

Description

Exemple

event

nom de l'événement suivi

"purchase"

custom_timestamp

horodatage du déclenchement de l'événement

"1759833980195"

preferred_locale

langue sélectionnée par le client

"en"

label

informations associées à l'événement, en particulier pour les événements personnalisés

"Hotel Bishram"

Paramètres partagés

Ces paramètres ne sont pas inclus dans chaque événement. Dans certains cas, ils sont imbriqués sous ecommerce.items (voir le Purchase - objet complet exemple), tandis que dans certains événements ils apparaissent directement dans le corps principal (voir le Select unit - objet complet exemple).

Paramètre

Description

Exemple

label

informations associées à l'événement, en particulier pour les événements personnalisés

"Hotel Bishram"

product_id

identifiant unique du produit correspondant au backend product_id

"69f07800-0b30-4824-b462-09a7f19529as"

item_name

nom du produit dans la langue par défaut

"Mount Everest"

option_id

identifiant unique attribué à l'option du produit

"1e143307-1ef3-4d3a-8005-b9adb3e54d5b"

item_variant

nom de l'option dans la langue par défaut

"Mount Everest - Ascent to Camp 3"

checkout_mode

mode de checkout, qui peut être soit popup ou embedded

popup

crossSell

valeur booléenne indiquant si la vente croisée a été activée

false

Paramètres de l'objet e-commerce

Paramètre

Description

Exemple

coupons

nom de la promotion / coupon

"10% discount for online booking (10% OFF)"

currency

devise des articles associés à l'événement

"EUR"

items

informations détaillées sur les produits / options

extras

informations détaillées sur les extras

value

valeur monétaire de l'événement - revenu (hors taxes)

199

tax

taxe appliquée à la réservation

18.08

order_id

identifiant unique attribué à la commande ; il correspond au backend order_id, qui se trouve également dans le tableau de bord

"3918ba5e-3da8-45ac-8fa1-23fb3949983d"

transaction_id

identifiant unique attribué à la commande ; il correspond au backend order_id, qui se trouve également dans le tableau de bord

"3918ba5e-3da8-45ac-8fa1-23fb3949983d"

transaction_type

valeur par défaut "ventrata" est utilisé pour indiquer clairement la source de la transaction

"ventrata"

quantity

quantité du produit sélectionné

5

discount

remise appliquée à la commande

0

Paramètres de l'article

Paramètre

Description

Exemple

item_id

ID de l'unité

"unit_2b1e6f4e-c69b-40d1-bc2e-31872df4d535"

booking_id

identifiant unique attribué à la réservation ; il correspond au backend booking_id, qui se trouve également dans le tableau de bord

"acf4c89f-f6b0-47ea-b690-522f8abef116"

product_id

identifiant unique du produit correspondant au backend product_id

"69f07800-0b30-4824-b462-09a7f19529as"

item_name

nom du produit dans la langue par défaut

"Mount Everest"

option_id

identifiant unique attribué à l'option du produit

"1e143307-1ef3-4d3a-8005-b9adb3e54d5b"

item_variant

nom de l'option dans la langue par défaut

"Mount Everest - Ascent to Camp 3"

item_category

nom de l'unité dans la langue par défaut

"Adult - Unskilled"

item_category2

date de voyage

"2023-12-12"

item_category3

heure de voyage

"09:00:00"

item_category4

type de groupe touristique dans la langue par défaut

"sunset"

price

prix du produit

70

tax

taxe appliquée à la réservation

1

discount

remise sur le produit

0

quantity

quantité du produit

2

extras

informations détaillées sur les extras

crossSell

valeur booléenne indiquant si la vente croisée a été activée

false

gift

valeur booléenne indiquant si l’achat est un cadeau

true

gift_value

valeur monétaire du cadeau

400

multidate

valeur booléenne indiquant si le produit peut être réservé à plusieurs dates

false

packages

si le produit est un forfait, un tableau de produits sera listé ici

Paramètres supplémentaires

Paramètre

Description

Exemple

id

ID supplémentaire

"extra_330c1c32-cd9d-4c7c-b216-04857e514c68"

name

nom supplémentaire dans la langue par défaut

"Crampons and Ice-Axe"

price

prix supplémentaire

20

quantity

quantité supplémentaire

2

tax

taxe appliquée à l’extra

18.08

Paramètres client

Paramètre

Description

Exemple

fullName

concaténation du prénom et du nom du client

"John Doe"

firstName

nom saisi dans le formulaire de contact

"John"

lastName

nom de famille saisi dans le formulaire de contact

"Doe"

title

titre sélectionné par le client

"Product manager"

email

email saisi dans le formulaire de contact

mobile

numéro de téléphone saisi dans le formulaire de contact

"+420123456789"

age

âge du client

35

birthdate

date de naissance du client

"1985-04-27"

locales

locales sélectionnées par le client ou locales par défaut

"en", "cs"

country

pays sélectionné dans la liste du formulaire de contact

"CZ"

streetAddress

adresse postale fournie par le client

"Behounská"

city

ville saisie par le client

"Brno"

state

État ou région du client

"Jihomoravský kraj"

postalCode

code postal saisi dans le formulaire de contact

"61200"

notes

notes supplémentaires saisies par le client

"Please arrange vegetarian meals and window seats if possible."

taxId

numéro d’identification fiscale du client

"CZ12345678"

allowMarketing

valeur booléenne indiquant si le client a consenti à recevoir des communications marketing

false

Paramètres des forfaits

Paramètre

Description

Exemple

item_name

nom du produit inclus dans un forfait dans la langue par défaut

"Kathmandu"

item_variant

nom de l'option d'un produit inclus dans un forfait dans la langue par défaut

"Kathmandu"

item_category

nom de l'unité d'un produit inclus dans un forfait dans la langue par défaut

"Person"

item_category2

date de voyage dans un forfait

"2024-08-17"

item_category3

heure de voyage dans un forfait

"00:00:00"

item_category4

type de groupe touristique dans un forfait dans la langue par défaut

"sunset"

Paramètres des questions

Paramètre

Description

Exemple

questions

question posée au client dans la langue par défaut

"Feedback"

answer

réponse fournie par le client à la question

"Good"

Paramètres des ramassages

Paramètre

Description

Exemple

label

informations associées à l'événement, en particulier pour les événements personnalisés dans la langue par défaut

"Hotel Bishram"

item_name

nom du point de prise en charge dans la langue par défaut

"Mount Everest"

item_variant

nom de l'option pour le point de prise en charge dans la langue par défaut

"Mount Everest - Ascent to Camp 2"

Test du checkout

📗 ASTUCE

Vous pouvez tester le checkout avec un produit fictif et utiliser des cartes de test Adyen pour les paiements par carte.


Mise en œuvre du suivi des événements

View_option_select (Afficher la sélection d'options)

Suit l’affichage des options du produit par le client.

Contenu de l'événement

Exécutez le code suivant lorsque le client sélectionne un produit avec des options et que la page des options est affichée.

dataLayer.push({ ecommerce: null }); // Clear the previous ecommerce object.
dataLayer.push({
"event": "view_option_select",
"ecommerce": {
"currency": "EUR",
"checkout_mode": "popup",
"product_id": "c097cd5f-e7eb-45dc-adff-e00894d063cb",
"items": [
{
"item_id": "7319e191-e1e5-41b3-9cc8-0f94faea98d2",
"item_variant": "Mount Everest - Ascent to Camp 2"
},
{
"item_id": "fc8010ec-e785-4f19-af6d-34dec76a29e3",
"item_variant": "Mount Everest - Ascent to Camp 3"
},
]
},
"custom_timestamp": 1770377638403,
"preferred_locale": "en",
"gtm.uniqueEventId": 55
})


View_item (Afficher article)

  • Déclenché lorsqu'un client consulte un produit dans le widget de checkout de Ventrata.

  • Cet événement est déclenché dès que la fenêtre de paiement s'ouvre (en mode pop-up ou intégré).

    • En mode intégré (embedded), cet événement se déclenche chaque fois que le client visite la page avec le checkout intégré, ce qui peut entraîner plusieurs view_item événements au cours d'une seule session

    • En mode pop-up, cet événement est déclenché lorsque le client clique activement sur le Book Now (Réserver maintenant) bouton ou effectue une action équivalente pour ouvrir le checkout

Contenu de l'événement

Exécutez le code suivant pour suivre l'étape Billets :

dataLayer.push({ ecommerce: null }); // Clear the previous ecommerce object.
dataLayer.push({
"event": "view_item",
"ecommerce": {
"currency": "EUR",
"checkout_mode": "popup",
"items": [
{
"item_id": "unit_38d8b24e-89a9-488c-9f51-6981dc56a581",
"booking_id": "",
"product_id": "69f07800-0b30-4824-b462-09a7f195295b",
"item_name": "Chitwan National Park",
"option_id": "DEFAULT",
"item_variant": "Chitwan National Park",
"item_category": "6 seater car",
"price": 400,
"tax": 0,
"discount": 0,
"quantity": 1,
"extras": [],
"crossSell": false
}
],
"extras": []
},
"custom_timestamp": "1759833980195",
"preferred_locale": "en",
"gtm.uniqueEventId": 26
})


View_gift_item (Voir l'article cadeau)

Suit lorsque le client achète un cadeau via le widget.

Contenu de l'événement

Exécutez le code suivant lorsque le client clique sur le Buy as a gift card (Acheter comme carte cadeau) lien :

dataLayer.push({ ecommerce: null }); // Clear the previous ecommerce object.
dataLayer.push({
"event": "view_gift_item",
"ecommerce": {
"currency": "EUR",
"checkout_mode": "popup",
"items": [
{
"item_id": "unit_38d8b24e-89a9-488c-9f51-6981dc56a581",
"booking_id" : "",
"product_id": "69f07800-0b30-4824-b462-09a7f195295b",
"item_name": "Chitwan National Park",
"option_id": "DEFAULT",
"item_variant": "Chitwan National Park",
"item_category": "6 seater car",
"price": 400,
"tax": 0,
"discount": 0,
"quantity": 1,
"extras": [],
"crossSell": false
}
],
"extras": []
},
"custom_timestamp": "1759833980195",
"preferred_locale": "en",
"gtm.uniqueEventId": 31
})


Gift_added_to_cart (Cadeau ajouté au panier)

Déclenché lorsqu'un client ajoute un article cadeau ou une carte cadeau à son panier.

Contenu de l'événement

Exécutez le code suivant lorsque le client clique sur le Continue (Continuer) bouton (après sélection de l'unité ou du montant) dans le Cadeau étape :

dataLayer.push({ ecommerce: null }); // Clear the previous ecommerce object.
dataLayer.push({
"event": "gift_added_to_cart",
"ecommerce": {
"checkout_mode": "popup",
"currency": "EUR",
"items": [
{
"item_id": "d75fb204-9bbe-465f-95a2-21945553c95e",
"booking_id" : "",
"option_id" : "",
"product_id" : "",
"item_name": "Gift card",
"item_variant": "",
"item_category": "",
"item_category2": "",
"item_category3": "",
"item_category4": "",
"crossSell": false,
"multidate": false,
"tax": 0,
"discount": 0,
"price": 400,
"gift_value": 400,
"gift": true,
"quantity": 1,
"extras": [],
"packages": []
}
],
"value": 400,
"tax": 0,
"discount" : 0
},
"custom_timestamp": "1759833980195",
"preferred_locale": "en",
"gtm.uniqueEventId": 34
})


Select_unit (Sélection unité)

Cet événement est déclenché lorsque le client sélectionne une unité (par exemple, un type de billet spécifique ou un forfait) lors du processus de checkout.

Contenu de l'événement

Exécutez le code suivant lorsque le client clique sur le bouton plus (+) dans le Billets étape :

dataLayer.push({ ecommerce: null }); // Clear the previous ecommerce object.
dataLayer.push({
"event": "select_unit",
"label": "6 seater car",
"checkout_mode": "popup",
"crossSell": false,
"product_id": "69f07800-0b30-4824-b462-09a7f195295b",
"item_name": "Chitwan National Park",
"option_id": "1e143307-1ef3-4d3a-8005-b9adb3e54d5b",
"item_variant": "Mount Everest - Ascent to Camp 3",
"custom_timestamp": "1759833980195",
"preferred_locale": "en",
"gtm.uniqueEventId": 27
})


Remove_unit (Retirer_unité)

Cet événement est déclenché lorsque le client diminue une unité (désélectionne une unité d’un type de billet ou d’un forfait donné) pendant le processus de checkout.

Contenu de l'événement

Exécutez le code suivant lorsque le client clique sur le bouton moins (-) dans le Billets étape :

dataLayer.push({ ecommerce: null }); // Clear the previous ecommerce object.
dataLayer.push({
"event": "remove_unit",
"label": "6 seater car",
"checkout_mode": "popup",
"crossSell": false,
"product_id": "69f07800-0b30-4824-b462-09a7f195295b",
"item_name": "Chitwan National Park",
"option_id": "1e143307-1ef3-4d3a-8005-b9adb3e54d5b",
"item_variant": "Mount Everest - Ascent to Camp 3",
"custom_timestamp": "1759833980195",
"preferred_locale": "en",
"gtm.uniqueEventId": 27
})


Select_date (Sélectionner date)

Suit lorsque le client sélectionne une date pour sa réservation.

Contenu de l'événement

Exécutez le code suivant lorsque le client sélectionne une date :

dataLayer.push({ ecommerce: null }); // Clear the previous ecommerce object.
dataLayer.push({
"event": "select_date",
"label": "2024-09-17",
"product_id": "69f07800-0b30-4824-b462-09a7f195295b",
"item_name": "Chitwan National Park",
"option_id": "DEFAULT",
"item_variant": "Chitwan National Park",
"checkout_mode": "popup",
"crossSell": false,
"custom_timestamp": "1759833980195",
"preferred_locale": "en",
"gtm.uniqueEventId": 28
})


Select_time (Sélectionner heure)

Suit lorsque le client sélectionne un créneau horaire pour sa réservation.

Contenu de l'événement

Exécutez le code suivant lorsque le client sélectionne un créneau horaire :

dataLayer.push({ ecommerce: null }); // Clear the previous ecommerce object.
dataLayer.push({
"event": "select_time",
"label": "15:30:00",
"product_id": "69f07800-0b30-4824-b462-09a7f195295b",
"item_name": "Chitwan National Park",
"option_id": "DEFAULT",
"item_variant": "Chitwan National Park",
"checkout_mode": "popup",
"crossSell": false,
"custom_timestamp": "1759833980195",
"preferred_locale": "en",
"gtm.uniqueEventId": 29
})


Notify_me (Notifier moi)

Cet événement peut être utilisé pour mesurer la demande pour certaines dates ou certains produits, et aide à éviter les ventes perdues. Il suit lorsque le client choisit d'être notifié de la disponibilité d'un produit pour une date ou un horaire actuellement indisponible.

Contenu de l'événement

Exécutez le code suivant lorsque le client clique sur le bouton Notify me (Notifier moi) :

dataLayer.push({ ecommerce: null }); // Clear the previous ecommerce object.
dataLayer.push({
"event": "notify_me",
"ecommerce": {
"checkout_mode": "popup",
"currency": "CZK",
"order_id": "",
"items": [
{
"item_id": "unit_38d8b24e-89a9-488c-9f51-6981dc56a581",
"booking_id": "acf4c89f-f6b0-47ea-b690-522f8abef116",
"product_id": "c097cd5f-e7eb-45dc-adff-e00894d063cb",
"item_name": "Kathmandu",
"option_id": "fc8010ec-e785-4f19-af6d-34dec76a29e3",
"item_variant": "Kathmandu",
"item_category": "Adult",
"item_category2": "2024-09-30",
"item_category3": "10:00:00",
"item_category4": "",
"crossSell": false,
"price": 0,
"tax": 0,
"discount": 0,
"quantity": 1,
"extras": []
}
],
"value": 0,
"tax": 0,
"discount": 0,
"quantity": 1,
"extras": []
},
"custom_timestamp": "1759833980195",
"preferred_locale": "en",
"gtm.uniqueEventId": 31
})


Wait_list_confirmed (Liste d'attente confirmée)

Déclenché lorsqu'un client confirme sa place sur une liste d'attente pour un produit en rupture de stock.

Contenu de l'événement

Exécutez le code suivant lorsque le client clique sur le bouton Continue (Continuer) :

dataLayer.push({ ecommerce: null }); // Clear the previous ecommerce object.
dataLayer.push({
"event": "wait_list_confirmed",
"ecommerce": {
"checkout_mode": "popup",
"currency": "CZK",
"order_id": "",
"items": [
{
"item_id": "unit_38d8b24e-89a9-488c-9f51-6981dc56a581",
"booking_id": "acf4c89f-f6b0-47ea-b690-522f8abef116",
"product_id": "c097cd5f-e7eb-45dc-adff-e00894d063cb",
"item_name": "Kathmandu",
"option_id": "fc8010ec-e785-4f19-af6d-34dec76a29e3",
"item_variant": "Kathmandu",
"item_category": "Adult",
"item_category2": "2024-09-30",
"item_category3": "10:00:00",
"item_category4": "",
"crossSell": false,
"price": 0,
"tax": 0,
"discount": 0,
"quantity": 1,
"extras": []
}
],
"value": 0,
"tax": 0,
"discount": 0,
"quantity": 1,
"extras": []
},
"customer": {
"firstName": "Karel",
"lastName": "Fisher",
"emailAddress": "[email protected]"
},
"gtm.uniqueEventId": 36
})


Add_to_cart (Ajouter au panier)

Suit lorsque le client clique sur le bouton Continue (Continuer) (après sélection de l'unité, de la date et de l'heure) identifiant l'action correspondant à l'ajout d'un article au panier dans le Billets étape.

Contenu de l'événement

Exécutez le code suivant lorsque le client clique sur le bouton Continue (Continuer) :

dataLayer.push({ ecommerce: null }); // Clear the previous ecommerce object.
dataLayer.push({
"event": "add_to_cart",
"ecommerce": {
"checkout_mode": "popup",
"currency": "EUR",
"order_id": "64c62751-2223-4461-99ee-351443c7d540",
"items": [
{
"item_id": "unit_38d8b24e-89a9-488c-9f51-6981dc56a581",
"booking_id": "acf4c89f-f6b0-47ea-b690-522f8abef116",
"product_id": "69f07800-0b30-4824-b462-09a7f195295b",
"item_name": "Chitwan National Park",
"option_id": "DEFAULT",
"item_variant": "Chitwan National Park",
"item_category": "6 seater car",
"item_category2": "2024-09-17",
"item_category3": "15:30:00",
"item_category4": "",
"crossSell": false,
"price": 400,
"tax": 0,
"discount": 0,
"quantity": 1,
"extras": []
}
],
"value": 400,
"tax": 0,
"discount": 0,
"quantity": 1,
"extras": []
},
"custom_timestamp": "1759833980195",
"preferred_locale": "en",
"gtm.uniqueEventId": 48
})


View_upgrade (Afficher le surclassement)

Déclenché lorsque des options d’upgrade sont disponibles et que la page Upgrade Your Experience (Améliorez votre expérience) est affichée.

Contenu de l'événement

Exécutez le code suivant lorsque la page Upgrade Your Experience (Améliorez votre expérience) est affichée.

dataLayer.push({ ecommerce: null }); // Clear the previous ecommerce object.
dataLayer.push({
"event": "view_upgrade",
"ecommerce": {
"order_id": "d39ad68a-83b4-4c6a-8584-9e12bf68da35",
"coupons": [],
"currency": "EUR",
"checkout_mode": "popup",
"items": [
{
"item_id": "c097cd5f-e7eb-45dc-adff-e00894d063cb",
"product_id": "c097cd5f-e7eb-45dc-adff-e00894d063cb",
"option_id": "8f1b5c1c-8314-49d5-bc37-37bf02871fa2",
"booking_id": "f065f126-5bfa-47f1-ac43-380ad747992f",
"crossSell": false,
"quantity": 1,
"extras": [],
"item_name": "Mount Everest",
"item_variant": "Mount Everest",
"discount": 0,
"tax": 5,
"item_category": "",
"item_category2": "",
"item_category3": "",
"item_category4": "",
"price": 50
},
{
"item_id": "c097cd5f-e7eb-45dc-adff-e00894d063cb",
"product_id": "c097cd5f-e7eb-45dc-adff-e00894d063cb",
"option_id": "fc8010ec-e785-4f19-af6d-34dec76a29e3",
"booking_id": "f065f126-5bfa-47f1-ac43-380ad747992f",
"crossSell": false,
"quantity": 1,
"extras": [],
"item_name": "Mount Everest",
"item_variant": "Mount Everest",
"discount": 0,
"tax": 1.36,
"item_category": "",
"item_category2": "",
"item_category3": "",
"item_category4": "",
"price": 13.64
}
],
"quantity": 2,
"extras": [],
"value": 50,
"tax": 5,
"discount": 0
},
"custom_timestamp": 1770377306508,
"preferred_locale": "en",
"gtm.uniqueEventId": 54
})


Upgrade_ticket (Surclassement du billet)

Cet événement permet de suivre le moment où le client choisit de mettre à niveau son produit.

Contenu de l'événement

Exécutez le code suivant lorsque le client clique sur le bouton Upgrade (Surclassement) dans le Upgrade Your Experience (Améliorez votre expérience) étape :

dataLayer.push({ ecommerce: null }); // Clear the previous ecommerce object.
dataLayer.push({
"event": "upgrade_ticket",
"label": "Kathmandu",
"checkout_mode": "popup",
"product_id": "dcaf4844-324c-46ae-9209-a975a9d19acd",
"option_id": "DEFAULT",
"order_id": "64c62751-2223-4461-99ee-351443c7d540",
"custom_timestamp": "1759833980195",
"preferred_locale": "en",
"gtm.uniqueEventId": 49
})

📒 REMARQUE

En cas de mise à niveau, toutes les variables suivantes item_name doivent contenir les informations du billet surclassé au lieu de celles de l'original.


View_cross_sell (Afficer le vente croisée)

Déclenché lorsque des options de vente croisée sont disponibles et que la page Combination Offers (Offres combinées) est affichée.

Contenu de l'événement

Exécutez le code suivant lorsque la page Combination Offers (Offres combinées) est affichée.

dataLayer.push({ ecommerce: null }); // Clear the previous ecommerce object.
dataLayer.push({
"event": "view_cross_sell",
"ecommerce": {
"order_id": "d39ad68a-83b4-4c6a-8584-9e12bf68da35",
"coupons": [],
"currency": "EUR",
"checkout_mode": "popup",
"items": [
{
"item_id": "dcaf4844-324c-46ae-9209-a975a9d19acd",
"product_id": "dcaf4844-324c-46ae-9209-a975a9d19acd",
"option_id": "DEFAULT",
"booking_id": "",
"crossSell": true,
"quantity": 1,
"extras": [],
"item_name": "Kathmandu",
"item_variant": "Kathmandu",
"discount": 2,
"tax": 1.64,
"item_category": "",
"item_category2": "",
"item_category3": "",
"item_category4": "",
"price": 16.36
},
{
"item_id": "d60965be-a76a-410f-8e88-2f839aeecfbd",
"product_id": "d60965be-a76a-410f-8e88-2f839aeecfbd",
"option_id": "1e143307-1ef3-4d3a-8005-b9adb3e54d5b",
"booking_id": "",
"crossSell": true,
"quantity": 1,
"extras": [],
"item_name": "Mount Everest - Breathing course",
"item_variant": "Mount Everest - Breathing course",
"discount": 5,
"tax": 0,
"item_category": "",
"item_category2": "",
"item_category3": "",
"item_category4": "",
"price": 0
}
],
"quantity": 2,
"extras": [],
"value": 50,
"tax": 5,
"discount": 0
},
"custom_timestamp": 1770376264940,
"preferred_locale": "en",
"gtm.uniqueEventId": 53
})


Cross-sell (Vente croisée)

Déclenché lorsque le client sélectionne des produits ou services supplémentaires (vente croisée) lors du processus de réservation.

Contenu de l'événement

Exécutez le code suivant lorsque le client clique sur le bouton Book Now (Réserver maintenant) :

dataLayer.push({ ecommerce: null }); // Clear the previous ecommerce object.
dataLayer.push({
"event": "cross-sell",
"label": "Mount Everest - Breathing course",
"checkout_mode": "popup",
"product_id": "d60965be-a76a-410f-8e88-2f839aeecfbd",
"option_id": "1e143307-1ef3-4d3a-8005-b9adb3e54d5b",
"order_id": "17def567-005d-43be-ad81-6a904325b17c",
"custom_timestamp": "1759833980195",
"preferred_locale": "en",
"gtm.uniqueEventId": 72
})


Select_question (Sélectionner question)

Cet événement est déclenché lorsque le client répond à une ou plusieurs questions lors de l'étape Questions.

Contenu de l'événement

Exécutez le code suivant lorsque le client répond à une ou plusieurs questions et clique sur le Continue (Continuer) bouton :

dataLayer.push({ ecommerce: null }); // Clear the previous ecommerce object.
dataLayer.push({
"event": "select_question",
"crossSell": false,
"questions": [
{
"question": "Confirmation that you are in good health is required.",
"answer": "I understand",
"unit_name": null
}
],
"product_id": "c097cd5f-e7eb-45dc-adff-e00894d063cb",
"option_id": "7319e191-e1e5-41b3-9cc8-0f94faea98d2",
"order_id": "17def567-005d-43be-ad81-6a904325b17c",
"custom_timestamp": "1759833980195",
"preferred_locale": "en",
"gtm.uniqueEventId": 58
})


Select_pickup (Sélectionner point de collecte)

Cet événement est déclenché lorsque le client sélectionne un lieu de ramassage à la Select Pickup (Sélectionner le point de prise en charge) étape.

Contenu de l'événement

Exécutez le code suivant lorsque le client sélectionne un lieu de ramassage pour sa réservation et clique sur le bouton Continue (Continuer) :

dataLayer.push({ ecommerce: null }); // Clear the previous ecommerce object.
dataLayer.push({
"event": "select_pickup",
"label": "Hotel Bishram",
"pickups": [
{
"label": "Hotel Bishram",
"item_name": "Mount Everest",
"item_variant": "Mount Everest - Ascent to Camp 3"
}
],
"checkout_mode": "popup",
"crossSell": false,
"product_id": "c097cd5f-e7eb-45dc-adff-e00894d063cb",
"option_id": "7319e191-e1e5-41b3-9cc8-0f94faea98d2",
"order_id": null,
"custom_timestamp": "1759833980195",
"preferred_locale": "en",
"gtm.uniqueEventId": 70
})


View_cart (Voir le panier)

Identifiez l'événement sur votre site web qui correspond à la visualisation du panier ou du caddie.

Contenu de l'événement

Exécutez le code suivant pour suivre la section Cart Summary (Résumé du panier) dans le Checkout:

dataLayer.push({ ecommerce: null }); // Clear the previous ecommerce object.
dataLayer.push({
"event": "view_cart",
"ecommerce": {
"order_id": "17def567-005d-43be-ad81-6a904325b17c",
"coupons": [],
"currency": "EUR",
"checkout_mode": "popup",
"items": [
{
"item_id": "unit_38d8b24e-89a9-488c-9f51-6981dc56a581",
"booking_id": "2a37bb6d-a62a-4d73-b147-3155bfad1d0f",
"product_id": "69f07800-0b30-4824-b462-09a7f195295b",
"item_name": "Chitwan National Park",
"option_id": "DEFAULT",
"item_variant": "Chitwan National Park",
"item_category": "6 seater car",
"item_category2": "2024-09-13",
"item_category3": "15:30:00",
"item_category4": "",
"crossSell": false,
"multidate": false,
"price": 400,
"tax": 0,
"discount": 0,
"quantity": 1,
"extras": [],
"packages": []
}
],
"quantity": 1,
"extras": [],
"value": 400,
"tax": 0,
"discount": 0
},
"custom_timestamp": "1759833980195",
"preferred_locale": "en",
"gtm.uniqueEventId": 85
})

📒 REMARQUE

Notez que dans la version bureau, à la fois l'événement view_cart et l'événement begin_checkout doivent être déclenchés depuis la Checkout page. Dans la version mobile, ces deux sections sont sur des écrans séparés, donc les événements view_cart et begin_checkout sont également déclenchés depuis des écrans différents.


Begin_checkout (Début du paiement)

Identifiez l'événement sur votre site web qui correspond au démarrage du processus de checkout.

Contenu de l'événement

Exécutez le code suivant pour suivre l'étape Checkout :

dataLayer.push({ ecommerce: null }); // Clear the previous ecommerce object.
dataLayer.push({
"event": "begin_checkout",
"ecommerce": {
"order_id": "17def567-005d-43be-ad81-6a904325b17c",
"coupons": [],
"currency": "EUR",
"checkout_mode": "popup",
"items": [
{
"item_id": "unit_38d8b24e-89a9-488c-9f51-6981dc56a581",
"booking_id": "2a37bb6d-a62a-4d73-b147-3155bfad1d0f",
"product_id": "69f07800-0b30-4824-b462-09a7f195295b",
"item_name": "Chitwan National Park",
"option_id": "DEFAULT",
"item_variant": "Chitwan National Park",
"item_category": "6 seater car",
"item_category2": "2024-09-18",
"item_category3": "14:30:00",
"item_category4": "",
"crossSell": false,
"multidate": false,
"price": 400,
"tax": 0,
"discount": 0,
"quantity": 1,
"extras": [],
"packages": []
}
],
"quantity": 1,
"extras": [],
"value": 400,
"tax": 0,
"discount": 0
},
"custom_timestamp": "1759833980195",
"preferred_locale": "en",
"gtm.uniqueEventId": 86
})

📒 REMARQUE

Notez que dans la version bureau, à la fois l'événement view_cart et l'événement begin_checkout doivent être déclenchés depuis la Checkout page. Dans la version mobile, ces deux sections sont sur des écrans séparés, donc les événements view_cart et begin_checkout sont également déclenchés depuis des écrans différents.


Edit_booking (Modifier la réservation)

Déclenché lorsque le client modifie sa réservation.

Contenu de l'événement

Exécutez le code suivant lorsque le client clique sur le bouton Edit (Modifier) :

dataLayer.push({ ecommerce: null }); // Clear the previous ecommerce object.
dataLayer.push({
"event": "edit_booking",
"label": "Mount Everest",
"checkout_mode": "popup",
"product_id": "c097cd5f-e7eb-45dc-adff-e00894d063cb",
"option_id": "7319e191-e1e5-41b3-9cc8-0f94faea98d2",
"order_id": "17def567-005d-43be-ad81-6a904325b17c",
"custom_timestamp": "1759833980195",
"preferred_locale": "en",
"gtm.uniqueEventId": 105
})


Remove_booking (Supprimer la réservation)

Déclenché lorsque le client supprime sa réservation.

Contenu de l'événement

Exécutez le code suivant lorsque le client clique sur le bouton Remove (Supprimer) :

dataLayer.push({ ecommerce: null }); // Clear the previous ecommerce object.
dataLayer.push({
"event": "remove_booking",
"label": "Mount Everest",
"checkout_mode": "popup",
"product_id": "c097cd5f-e7eb-45dc-adff-e00894d063cb",
"option_id": "7319e191-e1e5-41b3-9cc8-0f94faea98d2",
"order_id": "17def567-005d-43be-ad81-6a904325b17c",
"custom_timestamp": "1759833980195",
"preferred_locale": "en",
"gtm.uniqueEventId": 111
})


Create _or_update_order (Créer ou mettre à jour la commande)

Déclenché lorsque le client a rempli toutes les coordonnées essentielles, coché tous les champs obligatoires et continue vers le paiement.

Contenu de l'événement

Exécutez le code suivant lorsque le client clique sur le bouton Pay Now (Payer maintenant) :

dataLayer.push({ ecommerce: null }); // Clear the previous ecommerce object.
dataLayer.push({
"event": "create_or_update_order",
"ecommerce": {
"order_id": "17def567-005d-43be-ad81-6a904325b17c",
"coupons": [],
"currency": "EUR",
"checkout_mode": "popup",
"items": [
{
"item_id": "unit_2e1348c9-32c3-478a-9983-395bdd0267c8",
"booking_id": "a1026fcc-b02c-47ab-813b-8ea5a2d04666",
"product_id": "d60965be-a76a-410f-8e88-2f839aeecfbd",
"item_name": "Mount Everest - Breathing course",
"option_id": "1e143307-1ef3-4d3a-8005-b9adb3e54d5b",
"item_variant": "Camp 2",
"item_category": "Adult",
"item_category2": "2024-09-19",
"item_category3": "00:00:00",
"item_category4": "",
"crossSell": false,
"multidate": false,
"price": 5,
"tax": 0,
"discount": 0,
"quantity": 1,
"extras": [],
"packages": []
}
],
"quantity": 1,
"extras": [],
"value": 5,
"tax": 0,
"discount": 0
},
"custom_timestamp": "1759833980195",
"preferred_locale": "en",
"gtm.uniqueEventId": 117
})


Quote_confirmed (Devis confirmé)

Déclenché lorsque le client renseigne tous les champs de contact obligatoires sur la Checkout page et choisit d’enregistrer la réservation comme devis au lieu de procéder au paiement.

Contenu de l'événement

Exécutez le code suivant lorsque l’utilisateur appuie sur le Save for later (Enregistrer pour plus tard) bouton afin d’enregistrer la réservation pour plus tard sur la/le Checkout page :

dataLayer.push({ ecommerce: null }); // Clear the previous ecommerce object.
dataLayer.push({
"event": "quote_confirmed",
"ecommerce": {
"order_id": "7cab3c1b-ce19-440a-b98b-88e30f20c850",
"coupons": [],
"currency": "EUR",
"checkout_mode": "embedded",
"items": [
{
"item_id": "unit_38d8b24e-89a9-488c-9f51-6981dc56a581",
"booking_id": "9cfbd3a2-1b76-40fc-87e1-a8a41e2af2c8",
"product_id": "69f07800-0b30-4824-b462-09a7f195295b",
"item_name": "Chitwan National Park",
"option_id": "DEFAULT",
"item_variant": "Chitwan National Park",
"item_category": "6 seater car",
"item_category2": "2025-10-08",
"item_category3": "10:30:00",
"item_category4": "",
"crossSell": false,
"multidate": false,
"price": 400,
"tax": 0,
"discount": 0,
"quantity": 1,
"extras": [],
"packages": []
}
],
"quantity": 1,
"extras": [],
"value": 400,
"tax": 0,
"discount": 0
},
"customer": {
"title": null,
"fullName": "John Doe",
"firstName": "John",
"lastName": "Doe",
"emailAddress": "[email protected]",
"phoneNumber": "+421123456789",
"age": null,
"birthdate": "1982-10-23",
"locales": [
"en"
],
"streetAddress": "Běhounská",
"city": "Brno-střed",
"state": null,
"postalCode": "60200",
"country": "CZ",
"notes": null,
"allowMarketing": true,
"taxId": null,
"company": null
},
"custom_timestamp": "1759833980195",
"preferred_locale": "en",
"gtm.uniqueEventId": 118
})


Add_payment_info (Ajouter les informations de paiement)

Déterminez l'événement sur votre site web qui correspond à l'ajout des informations de paiement par les clients lors du passage au checkout.

Contenu de l'événement

S'il ne s'agit pas d'une page externe, exécutez le code suivant lorsque l'utilisateur sélectionne le mode de paiement sur la page Payment (Paiement) :

dataLayer.push({ ecommerce: null }); // Clear the previous ecommerce object.
dataLayer.push({
"payment_type": "Cards",
"event": "add_payment_info",
"ecommerce": {
"order_id": "fa37528e-c0d2-4516-a4b6-71e10c994602",
"currency": "EUR",
"checkout_mode": "popup",
"items": [
{
"item_id": "unit_2e1348c9-32c3-478a-9983-395bdd0267c8",
"booking_id": "e5132bbf-b6d1-48c3-8e35-c9adedef210a",
"product_id": "d60965be-a76a-410f-8e88-2f839aeecfbd",
"item_name": "Mount Everest - Breathing course",
"option_id": "1e143307-1ef3-4d3a-8005-b9adb3e54d5b",
"item_variant": "Camp 2",
"item_category": "Adult",
"item_category2": "2024-09-19",
"item_category3": "00:00:00",
"item_category4": "",
"crossSell": false,
"multidate": false,
"price": 5,
"tax": 0,
"discount": 0,
"quantity": 1,
"extras": [],
"packages": []
}
],
"quantity": 1,
"extras": [],
"value": 5,
"tax": 0,
"discount": 0
},
"custom_timestamp": "1759833980195",
"preferred_locale": "en",
"gtm.uniqueEventId": 118
})


Purchase (Achat)

Identifiez l'événement sur votre site web qui correspond à la finalisation d'un achat.

Contenu de l'événement

Utilisez le code ci-dessous lorsque la page de remerciement est affichée pour tracer un achat réussi :

dataLayer.push({ ecommerce: null }); // Clear the previous ecommerce object.
dataLayer.push({
"event": "purchase",
"ecommerce": {
"order_id": "fa37528e-c0d2-4516-a4b6-71e10c994602",
"coupons": [],
"currency": "EUR",
"checkout_mode": "popup",
"items": [
{
"item_id": "unit_2e1348c9-32c3-478a-9983-395bdd0267c8",
"booking_id": "e5132bbf-b6d1-48c3-8e35-c9adedef210a",
"product_id": "d60965be-a76a-410f-8e88-2f839aeecfbd",
"item_name": "Mount Everest - Breathing course",
"option_id": "1e143307-1ef3-4d3a-8005-b9adb3e54d5b",
"item_variant": "Camp 2",
"item_category": "Adult",
"item_category2": "2024-09-19",
"item_category3": "00:00:00",
"item_category4": "",
"price": 5,
"tax": 0,
"discount": 0,
"quantity": 1,
"extras": [],
"packages": []
}
],
"quantity": 1,
"extras": [],
"value": 5,
"tax": 0,
"discount": 0,
"transaction_id": "fa37528e-c0d2-4516-a4b6-71e10c994602",
"transaction_type": "ventrata"
},
"customer": {
"full_name": "Karel Fisher",
"email": "[email protected]",
"mobile": "+4201234567899",
"country": "CZ",
"postal_code": null
},
"custom_timestamp": "1759833980195",
"preferred_locale": "en",
"gtm.uniqueEventId": 119
})

📒 REMARQUE

L'« ID de transaction » est l'identifiant unique précis attribué à chaque commande. Sur la page Bookings (Réservations) > Orders (Commandes) , appuyez sur le bouton Show Columns (Afficher les colonnes) et ajoutez « ID » à votre vue. L'« Order ID (ID de commande) » est identique à l'« Transaction ID (ID de transaction) » (Transaction ID = Order ID).

Orders - Transaction ID


Order_expired (Commande expirée)

Déclenché lorsqu’une session checkout unique expire sans achat réussi ou lorsque le client ferme le checkout avant de finaliser le paiement.

Contenu de l'événement

Exécutez le code ci-dessous lorsque la session checkout expire et que la/le Commande expirée page est affichée :

dataLayer.push({ ecommerce: null }); // Clear the previous ecommerce object.
dataLayer.push({
"event": "order_expired",
"order_id": "eb16d401-3b9f-44b7-b927-417487369f70",
"checkout_mode": "popup",
"page": "bottom_bar",
"product_id": null,
"option_id": null,
"custom_timestamp": "1759833980195",
"preferred_locale": "en",
"gtm.uniqueEventId": 119
})


Comment savoir si le Web Checkout envoie des données

  • Vous pouvez utiliser une extension de navigateur capable de vérifier la couche de données, par exemple, Inspecteur du dataLayer.


Publier et tester

Après avoir configuré toutes les balises, déclencheurs et paramètres, enregistrez et publiez votre conteneur GTM pour rendre les modifications effectives sur votre site web.

Testez la mise en œuvre du suivi en effectuant les actions pertinentes sur votre site web et en vérifiant si les événements sont bien suivis dans GA4.


Vérifier les données dans GA4

Une fois que les données sont envoyées à GA4, connectez-vous à votre propriété GA4 et accédez à la section des rapports.

Utilisez Event reports (Rapports d'événements) pour analyser et vérifier que les événements suivis sont correctement enregistrés.

Passez régulièrement en revue et mettez à jour votre conteneur GTM selon les besoins pour garantir un suivi précis et tenir compte de toute modification de votre site web ou des exigences de suivi des événements.


Journal des modifications

Dernière mise à jour

Journal des modifications

06/02/2026

2.0.4 – Mise à jour de la liste des événements personnalisés et ajout des événements View_option_select, View_upgrade et View_cross_sell.

07/10/2025

2.0.3 - paramètres et corps d’événements mis à jour, ajout des événements Remove_unit, Quote_confirmed et Order_expired

17.09.2024

2.0.2 - liste mise à jour des événements et des corps d'événements

18.12.2023

2.0.1 - ajout de la quantité sous e-commerce

12.12.2023

2.0.0 - nouvelle structure des éléments ajoutée + questions, points de prise en charge, extras

04.08.2023

1.0.4 - ajout d'exemples JSON concrets dans la documentation

20.07.2023

1.0.3 - ajout des informations client dans l'événement d'achat

29.06.2023

1.0.2 - le prix d’un article est affiché par unité (et non au total)

28.6.2023

1.0.1 - ajout de 1 au nombre pour la quantité dans l’événement view_item

22.5.2023

1.0.0 - Première version


Avez-vous trouvé la réponse à votre question ?