Plateformes publicitaires et boutiques en ligne

Suivi des conversions CCV Shop : guide de configuration

Suivi des conversions CCV Shop : envoyez les commandes payées à Meta et TikTok avec un webhook signé, associez-les aux clics publicitaires, configurez, testez et gérez les paiements tardifs.

·Mis à jour le ·10 min de lecture·Par l’équipe ROASaurus

À retenir
  • Le suivi des conversions CCV Shop est le plus complet quand chaque commande payée est envoyée depuis les données de commande de CCV, sur le serveur, avec un extrait de code sur la page de succès de commande qui associe la commande au clic publicitaire.
  • Un clic sur Create webhook fait signaler chaque commande par CCV Shop dès qu’elle est marquée comme payée, et chaque envoi doit porter le jeton privé de votre boutique.
  • Les commandes CCV Shop n’incluent pas l’adresse IP de l’acheteur : l’extrait de la page de succès de commande compte donc plus sur CCV Shop que sur la plupart des plateformes.
  • Le contrôle toutes les 5 minutes ne regarde que les commandes récemment créées : les commandes payées plusieurs jours plus tard dépendent donc du webhook. Gardez-le actif.
  • Meta rejette les événements serveur reçus plus de 7 jours après la création de la commande : un virement bancaire très tardif n’arrive donc pas jusqu’à Meta.

Le suivi des conversions CCV Shop consiste à signaler chaque commande payée de votre boutique en ligne CCV Shop à des plateformes publicitaires comme Meta et TikTok, afin qu’elles attribuent le crédit aux bonnes publicités et optimisent sur de vraies ventes. La méthode la plus complète consiste à envoyer chaque achat depuis les données de commande de CCV, sur le serveur, et à ajouter un court extrait de code à la page de succès de commande pour associer la commande au clic publicitaire.

CCV Shop est une plateforme de boutique en ligne hébergée de la société néerlandaise CCV, qui affirme faire tourner 17,000 boutiques en ligne. Ce guide explique comment ROASaurus s’y connecte, comment les commandes sont associées aux clics publicitaires, ce que reçoivent Meta et TikTok, la configuration, les tests et le fonctionnement des paiements tardifs. Pour l’idée générale, lisez ce qu’est le suivi côté serveur.

Comment ROASaurus se connecte-t-il à CCV Shop ?

ROASaurus utilise trois éléments de CCV Shop, tous décrits dans la documentation de l’API de CCV :

Élément de CCV ShopÀ quoi ROASaurus l’utilise
API REST, avec une clé publique et une clé secrèteLit chaque commande payée et ses lignes de commande
Webhook pour l’événement orders.updated.ispaidCCV signale une commande dès que son statut de paiement change
La page de succès de commande, avec Vertoshop.jsL’extrait de code y lit l’identifiant de commande et associe la commande au visiteur
L’API et le webhook livrent la commande. L’extrait de la page de succès l’associe au clic publicitaire.
Commande marquée payéeDans CCV Shop, après le paiement
WebhookCCV envoie l’identifiant de commande, signé avec x-hash
ROASaurusLit la commande et ses lignes avec des appels API signés
Plateformes publicitairesPurchase avec l’identifiant d’événement order-58213
Le trajet des données pour chaque commande payée. ROASaurus vérifie que la commande est payée avant d’envoyer quoi que ce soit.

Pourquoi les pixels navigateur ratent-ils les achats CCV Shop ?

Un pixel navigateur ne déclare un achat que lorsque le navigateur de l’acheteur charge la page de succès de commande et que le script du pixel s’exécute. Plusieurs situations courantes l’empêchent :

  • L’acheteur paie par redirection, par exemple avec iDEAL, et ferme l’onglet avant le chargement de la page de succès.
  • Un bloqueur de publicités ou un réglage de confidentialité du navigateur bloque le script du pixel.
  • Le visiteur refuse les cookies marketing : le pixel ne doit donc pas se charger.
  • La commande est payée plus tard, par virement bancaire ou à la livraison, sans qu’aucun navigateur intervienne.

Dans chaque cas, CCV Shop marque quand même la commande comme payée. ROASaurus envoie cette commande depuis le serveur : l’achat est donc déclaré quoi qu’il se soit passé dans le navigateur. L’extrait sur la page de succès a une autre mission : il indique à ROASaurus à quel visiteur, et donc à quel clic publicitaire, appartient la commande.

Le webhook de commande payée et le contrôle toutes les 5 minutes

Ce que fait Create webhook

Quand vous cliquez sur Create webhook, ROASaurus enregistre un webhook CCV pour l’événement orders.updated.ispaid, que CCV déclenche quand la propriété « payée » d’une commande change. L’adresse est l’URL de webhook de votre boutique dans ROASaurus, qui contient votre clé de boutique et un jeton privé. CCV n’ajoute à un webhook aucun élément identifiant la boutique, et sa documentation conseille de mettre un identifiant dans l’adresse. La clé de boutique remplit ce rôle.

CCV attribue à chaque webhook sa propre clé secrète de 32 caractères. Quand CCV renvoie cette clé, ROASaurus l’enregistre, et dès lors chaque envoi doit porter un en-tête x-hash valide. Chaque envoi doit aussi porter le jeton de votre boutique. Quand ROASaurus reçoit un envoi, il ignore les commandes non payées, lit la commande complète et ses lignes via l’API, et n’envoie la commande que si CCV indique qu’elle est payée.

Appels API signés

CCV exige que chaque appel API soit signé. ROASaurus envoie trois en-têtes : x-public avec votre clé publique, x-date avec l’heure actuelle et x-hash. CCV rejette un horodatage qui s’écarte de plus de 5 minutes de l’heure de son serveur. Votre clé secrète elle-même n’est jamais envoyée.

Comment CCV Shop signe les requêtes
API call (ROASaurus → CCV)
x-hash = HMAC-SHA512( public_key|METHOD|uri|body|timestamp , secret_key )

Webhook (CCV → ROASaurus)
x-hash = HMAC-SHA512( address|payload , webhook_key )

La vérification toutes les 5 minutes

Toutes les 5 minutes, ROASaurus demande aussi à CCV les commandes payées créées depuis son dernier contrôle, avec 30 minutes de chevauchement, et enregistre celles qu’il n’a pas encore. CCV filtre les commandes uniquement par date de création. Le contrôle trouve donc les commandes payées peu après avoir été passées, et une commande payée des jours plus tard n’arrive à ROASaurus que par le webhook.

CCV considère une réponse 200, 201, 202 ou 204 comme un succès. Il garde un envoi ouvert et le retente à l’occurrence suivante après une réponse 307, 408, 503 ou 504, et marque toute autre réponse comme échec. Il attend 2 secondes pour une connexion et 5 secondes pour la réponse.

Comment une commande CCV Shop est-elle associée au clic publicitaire ?

Pour attribuer une publicité, la plateforme a besoin des identifiants de clic du visiteur qui a commandé, comme l’identifiant de clic Meta (fbc) et l’identifiant de clic TikTok (ttclid). Le script ROASaurus les enregistre pour chaque visiteur quand il arrive depuis une publicité. ROASaurus n’obtient pas cet identifiant visiteur à partir de la commande CCV : il associe donc les commandes aux visiteurs par d’autres moyens :

MéthodeSur CCV ShopComment ça marche
1. Extrait de la page de succès de commandeOuiIl lit l’identifiant de commande avec Vertoshop.getOrder().getId(), ainsi que le total de la commande et la devise, et déclenche un achat ROASaurus avec l’identifiant d’événement order-58213
2. E-mail antérieurOuiUn e-mail haché que le visiteur a donné plus tôt sur votre site, dans un formulaire pop-up ou via un appel Identify
3. Adresse IP et navigateurNonLes commandes CCV Shop n’incluent ni l’adresse IP ni le navigateur de l’acheteur : ce repli n’a donc rien à comparer
Sur la plupart des autres plateformes, le repli par IP rattrape certaines commandes que l’extrait manque. Sur CCV Shop, il ne le peut pas : ajoutez donc l’extrait.

ROASaurus attend brièvement avant d’envoyer chaque achat, afin que l’événement de la page de succès puisse arriver en premier, et il retente l’association au moment de l’envoi. La page Orders affiche le résultat par commande dans la colonne Matched by : thank_you, email ou not matched.

Une commande non associée part quand même vers vos plateformes publicitaires avec les données clients hachées de la commande. Elle n’a aucun identifiant de clic et, comme les commandes CCV ne contiennent ni adresse IP ni navigateur, rien de tout cela non plus. Cela réduit la part d’événements que Meta peut rattacher à une personne ; Event Match Quality explique comment Meta évalue ce point. Dans l’attribution de ROASaurus, une commande non associée apparaît comme directe ou inconnue.

Que reçoivent Meta et TikTok d’une commande CCV ?

Données de commande CCVEnvoyé comme
idL’identifiant d’événement order-58213 et l’identifiant de commande
total_price, currencyValeur et devise (EUR quand CCV ne donne aucune devise)
create_dateL’heure de l’événement
E-mail du client, numéro de mobile ou de téléphone, prénom et nomHaché avec SHA-256
Ville de facturation, code postal et code paysHaché avec SHA-256
Identifiant clientIdentifiant externe haché
Lignes de commande : numéro de produit, identifiant de produit, quantité, prix et nomProduits avec identifiant, quantité et prix
Adresse IP et navigateurAbsents des commandes CCV : repris de l’événement de la page de succès ou du visiteur associé
Ce que ROASaurus lit dans chaque commande CCV Shop et comment cela apparaît dans l’événement serveur.

Meta reçoit un Purchase via sa Conversions API, et TikTok un CompletePayment via l’Events API, tous deux avec l’identifiant d’événement order-58213. TikTok affiche désormais CompletePayment comme Purchase dans ses rapports. Quand vous cochez l’option de charger aussi le pixel navigateur, l’extrait de la page de succès déclenche les mêmes événements dans le navigateur avec le même identifiant d’événement, et Meta et TikTok n’en gardent qu’un seul exemplaire. Les mêmes commandes partent vers Snapchat, Pinterest, Reddit, X, Microsoft Ads, Taboola, LinkedIn et les autres plateformes publicitaires lorsque vous les connectez. Les conversions d’achat Google Ads ne sont envoyées que depuis le checkout Shopify : ROASaurus ne les envoie donc pas depuis CCV Shop.

Comment configurer le suivi des conversions CCV Shop

  1. Ajoutez la boutique dans ROASaurus

    Allez dans Add a store, choisissez CCV Shop et saisissez l’adresse de votre boutique. L’onglet Connection affiche alors votre balise de script et l’extrait de la page de succès.

  2. Trouvez vos clés API

    Dans CCV Shop, allez dans My webshop › Settings › General › API settings et cliquez sur New API key. Si vous ne le voyez pas, installez d’abord l’application API depuis le CCV App Store.

  3. Ajoutez le script à chaque page

    Collez la balise de script dans le Header HTML de votre boutique. Le centre d’aide de CCV le place sous Mijn webshop › Instellingen › Lay-out › Layout, en bas de la page. Un bloc de code d’application dans l’en-tête fonctionne aussi.

  4. Ajoutez l’extrait à la page de succès

    Allez dans Mijn webshop › Instellingen › Algemeen › Teksten, ouvrez le texte affiché après une commande, passez sur Source et collez-y l’extrait. CCV Shop l’exécute ensuite sur la page de remerciement de la commande.

  5. Connectez l’API

    Dans l’onglet Connection, saisissez la clé publique et la clé secrète. Ne renseignez Shop URL que si votre API tourne sur un autre domaine que votre boutique. Enregistrez, cliquez sur Test connection, puis sur Create webhook.

  6. Connectez vos plateformes publicitaires

    Sur Tracking & platforms, utilisez Connect with Facebook ou Add pixel pour Meta, et Add pixel pour TikTok. Cochez l’option de charger aussi le pixel navigateur.

Consentement

En dehors de Shopify, le script ROASaurus lit le choix du visiteur dans les outils de consentement courants : Cookiebot, OneTrust, les bandeaux IAB TCF et Google consent mode. Avec un autre bandeau de cookies, appelez tlq('consent', true) quand le visiteur accepte les cookies marketing et tlq('consent', false) quand il les refuse. Tant que le visiteur n’a pas accepté, il n’a ni identifiant visiteur ni identifiants de clic, et aucun pixel navigateur ne se déclenche. La commande payée est tout de même envoyée depuis le serveur, avec les données client hachées issues de la commande. La page d’aide sur le consentement explique les détails.

Comment tester le suivi des conversions CCV Shop ?

  • Ouvrez votre boutique avec ?roasaurus=connected dans l’adresse. Une alerte confirme que le script s’exécute. ?roasaurus=debug consigne dans la console du navigateur ce qu’il envoie.
  • Dans l’Event log, sous Collected events, les vues de page doivent afficher un identifiant visiteur.
  • Passez une commande et payez-la, ou marquez-la comme payée. Sous Collected events, l’Event log doit afficher un Purchase avec l’identifiant de commande CCV dans ses données. S’il manque, l’extrait de la page de succès ne s’est pas exécuté.
  • Dans l’onglet Connection, Last order received affiche la commande et Last sync le dernier contrôle de 5 minutes, avec toute erreur renvoyée par CCV.
  • Sous Server deliveries dans l’Event log, chaque plateforme connectée reçoit une ligne avec le statut sent et la réponse de la plateforme.
PageView visitor 51c0e9a7Script sur chaque page
Purchase order-58213Extrait de la page de succès de commande
webhook orders.updated.ispaidSignature vérifiée, commande payée
Meta Purchase sentMatched by thank_you
TikTok CompletePayment sentMême identifiant d’événement, dédupliqué
Exemple de commande de test saine. Fetch orders now, dans l’onglet Connection, lance immédiatement le contrôle de 5 minutes.

Pour voir l’événement dans Meta, collez le code d’Events Manager › Test events dans le champ Test event code de votre pixel Meta dans ROASaurus, et retirez-le quand vous avez terminé.

Paiements tardifs et autres limites

Les virements bancaires et les paiements à la livraison sont payés après la passation de la commande. Voici ce qui arrive à un exemple de commande par virement bancaire, à partir du jour où elle est passée :

QuandCe qui se passeRésultat
Jour 0, au checkoutLa commande est créée, pas payéeNon envoyée : le contrôle de 5 minutes ne demande que les commandes payées
Jour 0, environ 35 minutes plus tardL’heure de création de la commande sort de la fenêtre de contrôleDésormais, seul le webhook peut la signaler
Jour 3Vous marquez la commande comme payéeLe webhook arrive, ROASaurus l’envoie. L’heure de l’événement (jour 0) date de 3 jours : Meta l’accepte
Au lieu de cela, jour 9Vous marquez la commande comme payéeLe webhook arrive, ROASaurus l’envoie. 9 jours, c’est plus de 7 : Meta le rejette
Chronologie illustrative. L’heure de l’événement est la date de création de la commande, et Meta accepte les événements serveur jusqu’à 7 jours après l’heure de l’événement.
  • Paiement à la livraison. ROASaurus envoie ces commandes quand CCV les marque comme payées, en général après la livraison. Voir le suivi du paiement à la livraison pour savoir quand compter de telles commandes.
  • Achats navigateur avant le paiement. L’extrait de la page de succès s’exécute quand la commande est passée : les pixels navigateur déclarent donc une commande par virement bancaire avant qu’elle soit payée. Si le paiement arrive plus de 48 heures plus tard, Meta et TikTok ne peuvent pas fusionner les copies navigateur et serveur.
  • Pas de repli par IP. Ajoutez l’extrait de la page de succès et capturez les e-mails plus tôt sur votre site quand vous le pouvez.
  • Les annulations et les remboursements ne sont pas envoyés. Une fois un achat envoyé, il reste dans la plateforme publicitaire.
  • Seulement les vues de page, sans code. Les vues de produit et les ajouts au panier ne sont détectés automatiquement que sur Shopify. Sur CCV Shop, un développeur peut les envoyer avec un appel de suivi tlq.

La page d’intégration CCV Shop rassemble les informations de connexion au même endroit, et la page d’aide pour les autres boutiques en ligne compare CCV Shop aux autres plateformes auxquelles ROASaurus se connecte, comme Lightspeed.

Sources

  1. CCV Shop: API Documentatie
  2. CCV: Webshop API
  3. Meta for Developers: Server Event Parameters
  4. Meta for Developers: Handling Duplicate Pixel and Conversions API Events
  5. TikTok Ads Manager: About Event Deduplication

Dans ROASaurus

À lire aussi

Plateformes publicitaires et boutiques en ligneSuivi des conversions en paiement à la livraison et checkouts externesSuivi des conversions en paiement à la livraison : pourquoi les pixels ratent les commandes COD et celles des checkouts externes, quand envoyer l’achat et comment gérer les commandes refusées.Plateformes publicitaires et boutiques en ligneConversions améliorées Google Ads sur ShopifyLes conversions améliorées ajoutent des données clients hachées aux achats Google Ads sur Shopify. Comment elles fonctionnent, en quoi elles diffèrent des imports hors ligne, et la configuration.Plateformes publicitaires et boutiques en ligneSuivi des conversions Lightspeed pour les boutiques en ligne eComSuivi des conversions Lightspeed pour eCom (C-Series) : envoyez les commandes payées à Meta et TikTok depuis le serveur, associez-les aux clics publicitaires, configurez et testez.
FAQ

Vos questions, nos réponses

Où trouver mes clés API CCV Shop ?

Dans My webshop › Settings › General › API settings. Si cette page est absente, installez d’abord l’application API depuis le CCV App Store.

Que fait l’extrait de la page de succès de commande ?

Il lit l’identifiant de commande avec Vertoshop.getOrder().getId(), ainsi que le total de la commande et la devise, et déclenche l’achat ROASaurus avec cet identifiant. ROASaurus s’en sert pour associer la commande au visiteur et à son clic publicitaire.

Pourquoi ROASaurus ne peut-il pas associer les commandes CCV par adresse IP ?

Les commandes CCV Shop n’incluent ni l’adresse IP ni le navigateur de l’acheteur. Sans l’extrait ou sans un e-mail que le visiteur a donné plus tôt sur le site, une commande reste non associée.

Les commandes payées des jours plus tard sont-elles toujours envoyées ?

Oui, via le webhook de commande payée. Le contrôle de 5 minutes ne regarde que les commandes récemment créées : gardez donc le webhook actif. Meta rejette les événements reçus plus de 7 jours après la création de la commande.

Comment ROASaurus utilise-t-il ma clé secrète CCV Shop ?

ROASaurus stocke la clé secrète chiffrée et ne l’utilise que pour signer chaque appel API avec HMAC-SHA512, comme CCV l’exige. La clé elle-même n’est jamais envoyée à CCV, seulement la signature.

Chaque vente, rattachée à la publicité qui l’a générée

Suivi côté serveur, bénéfice et valeur vie client dans une seule application. Essai gratuit de 14 jours, sans carte bancaire.

Démarrez votre essai gratuit →