Your AI Connector Docs

Attribution des clics publicitaires pour WhatsApp

Si vous diffusez des publicités Meta ou Google vers une page de votre propre site web, et que cette page contient un bouton WhatsApp, Your AI Connector peut vous indiquer de quel clic publicitaire provient chaque conversation WhatsApp. Il vous suffit d’insérer un petit script sur votre site web. Lorsqu’un visiteur appuie sur votre bouton WhatsApp, le clic est mémorisé et associé au premier message qu’il vous envoie. Le contact affiche ensuite la campagne dont il provient, et les données du clic sont transmises avec le contact vers les webhooks, l’API et, si vous le souhaitez, renvoyées vers Meta.

Cela fonctionne pour n’importe quelle page dotée d’un bouton WhatsApp : une page de destination, une page de réservation, une page tarifaire ou un questionnaire qui se termine par « Envoyer mes réponses sur WhatsApp ».

Cette page concerne les publicités qui envoient les utilisateurs vers votre site web en premier. Si vos publicités ouvrent directement WhatsApp (publicités « Click to WhatsApp » de Meta), cela est pris en charge automatiquement, sans script, dans Attribution des publicités Click-to-WhatsApp.


Configuration

  1. Allez dans Paramètres → Suivi des clics publicitaires (groupe Intégrations).
  2. Cliquez sur Activer et obtenir mon script. Votre compte obtient sa propre clé de site et un script d’une ligne.
  3. Copiez le script et collez-le juste avant la balise de fermeture </body> sur chaque page contenant un bouton WhatsApp :
<script src="https://api.youraiconnector.com/v1/ad-visit/YOUR_SITE_KEY.js" async></script>
  1. Facultatif : sous Numéro WhatsApp, saisissez le numéro vers lequel vos boutons renvoient. Seuls les liens vers ce numéro seront alors suivis. Laissez vide pour suivre tous les liens WhatsApp du site.
  2. Choisissez le libellé du numéro de demande (voir ci-dessous) et cliquez sur Enregistrer. Vous n’avez pas besoin de modifier le script sur votre site web après une modification des paramètres.
  3. Testez-le : ouvrez votre page à partir d’un lien contenant une balise de campagne, par exemple https://yoursite.com/?utm_source=test&utm_campaign=setup-check, appuyez sur votre propre bouton WhatsApp et envoyez le message. Ouvrez ce contact dans Chats : le panneau de contact affiche Provient d’un clic publicitaire avec la campagne.

La clé de site est déjà incluse dans le script. Ce n’est pas un mot de passe, il n’y a donc aucun problème à ce qu’elle figure sur une page publique.


Ce que fait le script

  • Au chargement de la page, il conserve les identifiants de clic publicitaire et les balises de campagne (les paramètres utm_) provenant de l’adresse de la page dans le stockage de session de l’onglet du navigateur, afin qu’ils soient toujours présents si le visiteur consulte une autre page au préalable. Il ne définit aucun cookie, ne charge rien d’autre et n’envoie rien.
  • Lorsque le visiteur appuie sur un lien WhatsApp (wa.me, api.whatsapp.com/send ou whatsapp://send), il ajoute le numéro de demande au message, enregistre la visite et laisse l’appui se poursuivre vers WhatsApp normalement.

Rien n’est envoyé à Your AI Connector avant l’appui.


Le numéro de demande

Un numéro court, semblable à la référence qu’une boutique ou une clinique vous donnerait, est ajouté au message WhatsApp du visiteur. C’est ainsi que Your AI Connector sait exactement quel clic publicitaire correspond à quelle conversation. Un message ressemble à ceci :

Hi, I would like to know more.
Enquiry no. 4827
  • Libellé : « Réf. demande » est la valeur par défaut. Vous pouvez utiliser n’importe quelle ligne de texte qui semble naturelle pour votre entreprise, comme « Réf. réservation » ou « Réf ». Pas de chiffres.
  • Emplacement : Sur sa propre dernière ligne (par défaut) ou À la fin du texte. La page des paramètres affiche un aperçu en direct.
  • Longueur : 4 chiffres, ou 5 lorsque votre site est très fréquenté.
  • Votre agent IA ne le voit jamais et ne le répète jamais. La boîte de réception affiche le message complet, numéro inclus.

Vous pouvez désactiver le numéro de demande. La correspondance ne fonctionne alors que sur le texte du message, de sorte que deux visiteurs envoyant exactement le même texte (par exemple les mêmes réponses à un quiz) ne peuvent pas être distingués, et certains clics ne seront pas mis en correspondance.


Votre propre code de quiz ou de bouton

Si votre page génère elle-même le message WhatsApp (un quiz qui insère les réponses dans le texte, ou votre propre code de bouton), ajoutez data-manual à la balise script :

<script src="https://api.youraiconnector.com/v1/ad-visit/YOUR_SITE_KEY.js" data-manual async></script>

Avec data-manual, le script ne modifie plus les liens WhatsApp de lui-même. Votre propre code l’appelle juste avant l’ouverture de WhatsApp, afin que chaque visite soit enregistrée une seule fois :

  • window.ChatAttribution.text(finalText, number) renvoie votre texte avec le numéro de demande ajouté et enregistre la visite. Utilisez le texte renvoyé dans votre lien WhatsApp.
  • window.ChatAttribution.link(finalText, number) fait de même et renvoie un lien wa.me prêt à l’emploi avec ce texte. Omettez le numéro pour utiliser celui défini sous Numéro WhatsApp dans les paramètres.
<script>
  function sendAnswers(answers) {
    var text = "Hi, my answers: " + answers.join(", ");
    if (window.ChatAttribution) {
      window.location.href = window.ChatAttribution.link(text, "+15551234567");
    } else {
      window.location.href = "https://wa.me/15551234567?text=" + encodeURIComponent(text);
    }
  }
</script>

La branche else permet au bouton de continuer à fonctionner si le script n’a pas été chargé, par exemple lorsqu’une extension de navigateur le bloque. Un texte qui contient déjà un numéro émis par le script n’est jamais modifié une seconde fois.


Ce qui est enregistré

Au moment du clic, l’enregistrement de la visite contient :

  • les identifiants de clic publicitaire présents dans l’adresse de la page, tels que fbclid (Meta) et gclid (Google)
  • les cookies _fbc et _fbp, si votre propre pixel Meta les a définis sur votre site (le script les lit, il ne les définit jamais)
  • les balises de campagne (utm_source, utm_medium, utm_campaign, utm_content, utm_term)
  • la page d’atterrissage, la page d’origine du visiteur, le navigateur et le texte du message
  • l’adresse IP et l’heure, ajoutées par Your AI Connector lors de l’arrivée de la visite

Lorsqu’une visite est mise en correspondance, Your AI Connector détermine également à partir de ces données l’endroit approximatif où se trouvait le visiteur (ville et pays, approximatif, à partir de l’adresse IP) et quel appareil il a utilisé (téléphone, tablette ou ordinateur, le système d’exploitation et le navigateur, par exemple le navigateur intégré à Instagram). L’emplacement reste vide lorsqu’il ne peut pas être déterminé, ce qui est courant sur les réseaux mobiles.

Les enregistrements de visite sont conservés pendant 90 jours. Lorsqu’une visite est mise en correspondance, une copie de ses données de clic est stockée sur le contact et reste associée à celui-ci jusqu’à ce que vous la supprimiez.

Votre politique de confidentialité : le script s’exécute sur votre site web, votre politique de confidentialité doit donc le mentionner : ce qu’il enregistre (la liste ci-dessus) et le fait qu’il le fasse lorsqu’un visiteur appuie sur un bouton WhatsApp.


Comment fonctionne la mise en correspondance

Lorsque le premier message d’un contact arrive, Your AI Connector recherche une visite effectuée dans les 15 minutes précédentes :

  1. D’abord par numéro de demande. Un message contenant un numéro émis par le script est mis en correspondance avec cette visite.
  2. Sinon par texte identique. Un message ayant exactement le même texte qu’une visite est mis en correspondance avec celle-ci. Lorsque deux visiteurs différents envoient le même texte dans le créneau imparti, aucun n’est mis en correspondance, volontairement, afin qu’un contact ne soit jamais attribué à la mauvaise publicité.

Un message ultérieur contenant le numéro de demande est également mis en correspondance, tant que le contact n’a pas encore de correspondance.

Lorsqu’un contact qui possède déjà une correspondance revient via une autre publicité et envoie un message contenant un numéro de demande plus récent, ce clic est conservé comme le dernier clic du contact. La première correspondance reste inchangée.

  • Premier clic, pour vos rapports : le contact continue d’indiquer d’où provient la piste initiale. Cela ne change jamais.
  • Dernier clic, pour Meta : les événements envoyés à Meta utilisent le clic le plus récent, car Meta crédite la publicité qui a ramené la personne et uniquement dans sa fenêtre d’attribution. Signaler un ancien clic créditerait la mauvaise publicité, ou aucune.
  • Le dernier clic est uniquement extrait d’un numéro de demande, jamais du texte de correspondance seul, et une visite plus ancienne ne remplace jamais une plus récente.

Limites :

  • La première correspondance n’est jamais écrasée. Les clics plus récents sont placés dans le dernier clic.
  • WhatsApp uniquement : les canaux WhatsApp Business API et WhatsApp Web.
  • 15 minutes : un visiteur qui appuie sur le bouton mais envoie le message beaucoup plus tard n’est pas mis en correspondance.
  • Uniquement pour l’avenir : les contacts datant d’avant l’installation du script n’ont aucune correspondance.

Où le voir

  • Panneau de contact : Provenant d’un clic publicitaire avec la campagne ou la source et la date du premier clic. Survolez pour voir les détails : la campagne, la Publicité (utm_content) et l’Ensemble de publicités (utm_term), l’Emplacement approximatif et l’Appareil, chacun uniquement lorsqu’il est connu, ainsi que les mêmes informations pour le dernier clic lorsqu’il y en a un. Les balises de campagne qui n’ont jamais été remplies (un appui sur l’aperçu d’une publicité envoie le modèle de balise au lieu des noms) sont omises. Une visite ne compte comme un clic publicitaire que lorsque la page a été ouverte à partir d’un lien publicitaire (un identifiant de clic Meta ou Google, ou des balises de campagne). Toute personne ayant atteint la page par un autre moyen, par exemple depuis une recherche Google, en tapant votre adresse ou en cliquant sur votre site, affiche Provenant de votre site web avec sa provenance, telle que Recherche Google, ou Visite de site web, aucun référent enregistré lorsque le navigateur ne l’a pas indiqué.
  • Page de contact : la même ligne se trouve sous le nom du contact dans Contacts, afin que vous puissiez la voir immédiatement, même sur votre téléphone. Survolez ou appuyez dessus pour voir les détails.
  • Activité : la chronologie du contact commence par A appuyé sur votre bouton WhatsApp après une publicité (ou sur votre site web) au moment du clic, avant son premier message. Le panneau de contact de la discussion affiche la même ligne sous Activité.
  • Webhooks : contact.ad_attribution dans les webhooks de balises d’agent et dans chaque événement d’abonnement webhook qui contient un contact.
  • API : ad_attribution sur la liste des contacts et adAttribution sur un contact unique, dans la section Contacts de la référence de l’API.
  • Outils MCP : le même objet sur chaque contact qu’ils renvoient.

La valeur est null lorsque le contact n’a aucune correspondance. Les champs ci-dessous décrivent le premier clic. Lorsqu’un clic ultérieur a été mis en correspondance, latest le contient avec les mêmes champs ; il est absent jusque-là.

Champ Ce que c’est
visit_at Quand le visiteur a appuyé sur le bouton WhatsApp.
matched_at Quand la visite a été mise en correspondance avec le contact.
match_method reference (mis en correspondance par numéro de demande) ou text (mis en correspondance par texte de message identique).
reference Le numéro de demande, ou null lorsqu’il était désactivé.
fbc / fbp Le clic Meta et les cookies de navigateur de votre propre pixel Meta, s’ils sont présents.
fbclid L’identifiant de clic publicitaire Meta provenant de l’adresse de la page.
gclid / gbraid / wbraid Les identifiants de clic publicitaire Google provenant de l’adresse de la page.
utm_source / utm_medium / utm_campaign / utm_content / utm_term Les balises de campagne provenant de l’adresse de la page.
landing_url La page sur laquelle le visiteur a atterri.
referrer La page d’où provient le visiteur.
client_ip L’adresse IP du visiteur.
user_agent Le navigateur du visiteur.
geo_country / geo_region / geo_city / geo_timezone Emplacement approximatif à partir de l’adresse IP : code pays à deux lettres, code région, ville et fuseau horaire. Absent lorsqu’il est inconnu.
device_type / device_os / device_browser L’appareil à partir du navigateur : mobile, tablet ou desktop, le système d’exploitation avec sa version (tel que iOS 18.3) et le navigateur (tel que Safari ou Instagram in-app). Absent lorsqu’il est inconnu.
site_key La clé de site du script qui a enregistré la visite.
visit_id L’identifiant de l’enregistrement de la visite.
latest Le clic le plus récent mis en correspondance après le premier, avec les mêmes champs. Utilisé pour les événements envoyés à Meta. Absent lorsqu’il n’y en a aucun.

Envoyer les résultats à Meta (optionnel)

Vous pouvez laisser Your AI Connector rapporter les résultats à votre compte publicitaire Meta, afin que Meta apprenne quelles publicités génèrent de vrais prospects et ventes et les optimise en conséquence. Cela utilise vos propres détails de l’API Conversions de Meta.

  1. Dans le Gestionnaire d’événements Meta, trouvez l’ID de votre pixel (aussi appelé jeu de données) sous Sources de données, et créez un jeton d’accès sous Paramètres, Conversions API, Générer un jeton d’accès.
  2. Dans Paramètres → Suivi des clics publicitaires, sous Envoyer les résultats à Meta (optionnel), saisissez l’ID du pixel / jeu de données et le Jeton d’accès. Cliquez sur Enregistrer les détails Meta.
  3. Optionnel : vérifiez la connexion. Dans le Gestionnaire d’événements Meta, ouvrez votre pixel et accédez à l’onglet Tester les événements, copiez le code de test qui s’y affiche, collez-le sous Envoyer un événement de test et cliquez sur Envoyer l’événement de test. La ligne sous le bouton indique « Meta a reçu 1 événement de test » (recherchez-le sous Tester les événements dans Meta), ou affiche la raison de Meta en cas de refus, par exemple un jeton incorrect. Le code est utilisé uniquement pour ce test et n’est jamais enregistré.
  4. Ouvrez l’éditeur d’agent, accédez à l’onglet Tags et ouvrez un tag. Sous Envoyer à Meta, choisissez l’événement : Lead, Contact, Schedule, Purchase ou un nom personnalisé. Ajoutez éventuellement une valeur et une devise.

À partir de ce moment, chaque fois que ce tag est appliqué à un contact (par l’IA, manuellement, via l’API ou par une automatisation), Your AI Connector envoie l’événement à Meta avec les données du clic le plus récent du contact (fbc, fbp, adresse IP, navigateur, page d’atterrissage, provenant du dernier clic s’il y en a un, sinon le premier) ainsi que leur téléphone, e-mail et nom, hachés, afin que Meta puisse le lier à la publicité. Un contact sans correspondance envoie tout de même l’événement, avec uniquement le téléphone, l’e-mail et le nom hachés.

  • Les événements en direct comptent toujours : un code d’événement de test n’est jamais stocké avec vos détails Meta, donc les événements envoyés par vos tags et automatisations vont toujours vers vos données réelles dans Meta, jamais vers l’onglet Tester les événements.
  • Pas de double comptage : chaque événement possède un identifiant fixe composé de l’identifiant du contact et du nom du tag. Si votre CRM envoie le même événement à Meta avec le même identifiant, Meta n’en conserve qu’un seul.
  • Fenêtre d’attribution de Meta : Meta n’attribue un événement à une publicité que dans sa fenêtre d’attribution, qui est par défaut de 7 jours après le clic. Une affaire conclue des semaines plus tard ne sera pas comptabilisée seule ; envoyez donc également un événement antérieur, par exemple un tag pour la consultation réservée ou payée.

Envoyer des conversions depuis des automatisations

Une balise envoie son événement lorsqu’elle est appliquée. Lorsque le résultat se produit ailleurs, comme la clôture d’une transaction dans votre CRM ou la réservation d’une consultation, utilisez l’action Envoyer la conversion à Meta dans une automatisation. Elle signale un événement à votre jeu de données Meta via l’API Conversions, afin que Meta optimise vos publicités sur des résultats réels et pas seulement sur des messages.

Elle utilise les mêmes détails Meta que les balises : l’ID du pixel / jeu de données et le Jeton d’accès sous Paramètres → Suivi des clics publicitaires. Sans eux, l’étape échoue avec le message “Meta n’est pas connecté”.

Les champs

Champ Description
Nom de l’événement Requis. Purchase, Schedule, Lead ou votre propre nom. Votre propre nom utilise des lettres, des chiffres, des espaces et des traits de soulignement, commence par une lettre et comporte au maximum 40 caractères.
Valeur et Devise Le montant de la conversion, tel que le montant de l’affaire. La devise est un code à 3 lettres et est par défaut en EUR. La valeur n’est envoyée que si vous la renseignez.
Contact Optionnel. Le contact auquel appartient la conversion.
E-mail, Téléphone, Prénom, Nom Détails de la personne. Remplissez ces champs lorsque la personne n’est pas un contact, ou pour compléter les informations du contact.
Votre propre ID pour la personne Un identifiant pour la personne provenant de votre propre système, tel qu’un identifiant CRM.
ID de l’événement L’identifiant utilisé par Meta pour comptabiliser l’événement une seule fois. Voir ci-dessous.
Heure de l’événement Moment où la conversion a eu lieu, en secondes unix ou sous forme de date. Il y a au plus 7 jours. Laissez vide pour utiliser le moment où l’étape est exécutée.
URL de la page La page à laquelle la conversion est liée, le cas échéant.
Code d’événement de test Uniquement pour un test : le code provenant de l’onglet Tester les événements de Meta. Un événement envoyé avec ce code apparaît sous Tester les événements et n’est pas comptabilisé pour vos publicités. Laissez vide pour les événements en direct.

Remplissez au moins l’un des champs Contact, E-mail ou Téléphone. La personne n’a pas besoin d’être un contact : une transaction HubSpot qui atteint le statut “Closed Won” peut envoyer un événement Purchase avec le montant de la transaction et l’e-mail de l’acheteur.

Lorsque vous choisissez un Contact, son téléphone, son e-mail et son nom sont utilisés. S’il provient d’un clic publicitaire que le script a fait correspondre, les détails du clic sont également transmis, ce qui aide Meta à faire correspondre l’événement à la publicité. L’e-mail, le téléphone et les noms sont hachés avant d’être envoyés. L’identifiant de clic, l’adresse IP et le navigateur sont envoyés comme Meta l’exige.

ID d’événement et double comptage

Meta comptabilise les événements ayant le même nom d’événement et le même ID d’événement une seule fois. Utilisez un identifiant fixe, tel que l’identifiant de la transaction, lorsqu’un autre outil signale également la même conversion, ou lorsque l’automatisation risque de s’exécuter deux fois pour celle-ci. Laissez-le vide et un nouvel identifiant sera créé à chaque exécution, de sorte que chaque exécution soit comptabilisée.

En quoi cela diffère des événements de balise

L’événement Envoyer à Meta d’une balise est envoyé une fois par contact pour cette balise (au maximum une fois tous les 30 jours). Cette action s’envoie à chaque exécution. L’ID d’événement est ce qui empêche une conversion d’être comptabilisée deux fois.

Exemple : une transaction conclue et une consultation réservée

  1. Démarrez une automatisation qui s’exécute lorsqu’une transaction est conclue : un déclencheur App event sur l’événement de transaction de votre CRM, avec une Condition pour que seules les transactions conclues soient prises en compte. HubSpot n’envoie des événements d’étape de transaction qu’aux applications développeur ; pour HubSpot, utilisez donc un déclencheur Schedule avec une recherche HubSpot pour les transactions ayant atteint le statut « Gagnée » depuis la dernière exécution, et une Loop sur celles-ci.
  2. Ajoutez Send conversion to Meta. Définissez Event name sur Purchase, Value sur le montant de la transaction (insérez-le avec le bouton +) et Currency sur votre devise. Indiquez l’e-mail de l’acheteur dans Email et l’identifiant de la transaction dans Event ID, afin qu’une même transaction ne soit jamais comptabilisée deux fois.
  3. Pour une consultation réservée, démarrez une seconde automatisation avec le déclencheur Appointment booked et ajoutez Send conversion to Meta avec Event name défini sur Schedule et le contact issu du déclencheur dans Contact. Si vous le souhaitez, ajoutez une seconde étape Send conversion to Meta qui envoie un événement Purchase avec une valeur fixe, telle que le prix de la consultation.

Vous pouvez également envoyer une conversion via l’API avec POST https://api.youraiconnector.com/v1/ad-attribution/meta-event. Elle utilise les mêmes champs en snake case : event_name, value, currency, contact_id, email, phone, first_name, last_name, external_id, event_id, event_time, event_source_url et test_event_code.


FAQ

Cela fonctionne-t-il si ma publicité ouvre directement WhatsApp ? Ces publicités ne passent pas par votre site web, donc le script ne s’exécute jamais. Meta envoie les détails de la publicité avec le premier message à la place, voir Attribution des publicités Click-to-WhatsApp.

Le script ralentit-il mon site web ou définit-il des cookies ? Il se charge en arrière-plan (async), ne définit aucun cookie et ne charge rien d’autre. Il n’envoie quelque chose que lorsqu’un visiteur appuie sur un bouton WhatsApp.

Puis-je suivre les publicités Google ainsi que les publicités Meta ? Oui. Les identifiants de clic Google (gclid, gbraid, wbraid) et tous les tags de campagne sont enregistrés et affichés sur le contact. L’envoi des résultats est disponible uniquement pour Meta.

Pourquoi un contact n’a-t-il pas obtenu de correspondance ? Les raisons les plus courantes : le message est arrivé plus de 15 minutes après l’appui, le numéro de demande a été supprimé du message, le numéro de demande est désactivé et un autre visiteur a envoyé le même texte, ou la page ne contient pas le script.

Mon site web contient des liens vers deux numéros WhatsApp. Puis-je n’en suivre qu’un seul ? Oui. Saisissez ce numéro sous Numéro WhatsApp dans les paramètres. Laissez vide pour suivre tous les liens WhatsApp.

Puis-je modifier le libellé plus tard ? Oui. Les modifications s’appliquent immédiatement à votre site web ; vous n’avez pas besoin de coller à nouveau le script.