Cycle de vie (côté serveur)
Transmettre le lien de relecture à ActiveCampaign, Mailchimp, Iterable ou Klaviyo depuis notre serveur dès qu’une session reçoit votre propre identifiant client.
1. Pourquoi cette passerelle existe à côté de celle du navigateur
MousePlayer dispose déjà d’une passerelle de cycle de vie qui écrit dans le SDK exécuté sur votre page : Klaviyo, Braze, Customer.io et six autres. Celle-ci accomplit la même tâche depuis notre serveur. Elle existe parce que, pour deux des plus grandes plateformes, la voie du navigateur est tout simplement indisponible :
- ActiveCampaign n’a aucune API d’événements pour le navigateur. Son
vgo()permet de définir un compte et une adresse e-mail et de démarrer le suivi, mais pas d’envoyer un événement. Les événements passent par l’Event Tracking API avec une clé d’événement distincte, uniquement côté serveur. - Mailchimp en a une, mais avec un vocabulaire fermé. Son pixel de suivi de site accepte
PAGE_VIEWED,PRODUCT_VIEWED,PURCHASEDet quelques autres noms prédéfinis. Aucun emplacement n’est prévu pour un événement personnalisé ; forcer nos données dans unPAGE_VIEWEDfausserait votre propre modèle de données.
Pour Iterable et Klaviyo, la voie du serveur est simplement plus fiable : aucun bloqueur de publicités, aucun SDK qui peut avoir été chargé ou non, aucun onglet fermé trop tôt.
2. Les éléments nécessaires
Trois champs, à remplir selon la plateforme.
| Plateforme | Champ du compte | Clé |
|---|---|---|
| ActiveCampaign | actid | Site web → Suivi de site, à côté de la clé d’événement |
| Mailchimp | L’identifiant de l’audience | Une clé API : conservez son suffixe de type -us14 , qui permet de déterminer le centre de données |
| Iterable | inutile : laissez vide | Une clé avec l’autorisation « Autoriser les appels de suivi d’événements » |
| Klaviyo | inutile : laissez vide | Une clé privée d’API |
Le troisième champ est le nom sous lequel l’événement apparaîtra. Choisissez un nom court : 32 caractères au maximum. C’est la limite de l’API, pas la nôtre. Nous le raccourcissons lors de l’enregistrement plutôt qu’à l’envoi, pour que le formulaire affiche bien ce qui arrivera.
Mailchimp : conservez le suffixe de votre clé API. La partie après le dernier tiret (-us14) désigne le centre de données qui héberge votre compte, et sert à construire l’adresse. Une clé dépourvue de suffixe est refusée avec un message clair, plutôt que d’échouer à un endroit invisible pour vous.
3. Quand l’envoi se déclenche, et quand il ne se déclenche pas
Au moment où une session est identifiée : lorsque votre site appelle MousePlayer.setUserId(), lorsque notre passerelle analytique récupère un identifiant distinct ou lorsque votre serveur appelle le point de terminaison d’identification. Avant cela, nous ne savons pas à qui appartient l’enregistrement.
Uniquement avec une adresse e-mail
Les quatre plateformes identifient un contact par son adresse e-mail. Si votre identifiant client est un numéro de contrat, rien n’est envoyé : mettre en file une tâche vouée à échouer ne ferait qu’encombrer votre journal.
Le contact doit déjà exister. Aucune de ces plateformes ne crée de contact à partir d’un événement ; ActiveCampaign ignore entièrement l’événement si l’adresse n’est pas reconnue. Cette passerelle enrichit vos contacts existants, elle ne constitue pas votre liste.
Chaque événement porte un identifiant
Ainsi, la même session ne peut pas être comptée deux fois, même si une tâche fait l’objet d’une nouvelle tentative.
4. Ce qui arrive de l’autre côté
Un événement qui contient le lien de relecture dans une propriété nommée mouseplayer_session_url. Ouvrez-le pour accéder à l’enregistrement de cette session précise.
La suite relève de la logique de votre plateforme : utilisez l’événement comme déclencheur d’automatisation, comme condition de segment ou laissez simplement votre équipe ouvrir l’enregistrement depuis le contact.
La clé ne quitte jamais notre serveur
Elle est stockée sous forme chiffrée avec AES-256-GCM, n’est plus affichée après l’enregistrement et n’est volontairement pas placée dans la file interne qui transporte la tâche : le processus de traitement la récupère lui-même dans la base de données.
HTTP 200 ne signifie pas que la livraison a réussi
ActiveCampaign répond avec un statut 200 et {"success":0} lorsqu’il refuse un événement. Nous lisons le corps de la réponse, pas seulement le statut : un refus apparaît donc comme un échec dans le journal de livraison, plutôt que comme une réussite silencieuse.
5. Braze, Customer.io et Brevo
Trois autres plateformes sont disponibles côté serveur. Deux exigent un élément supplémentaire : un emplacement.
| À fournir | Identification par | |
|---|---|---|
| Braze | Point de terminaison REST et clé API | adresse e-mail |
| Customer.io | identifiant du site, clé API et votre région | votre propre identifiant client |
| Brevo | la clé de suivi, rien d’autre | adresse e-mail |
Deux plateformes dépendent d’un emplacement précis
Braze utilise des points de terminaison REST propres à chaque instance ; Customer.io dispose de deux régions distinctes avec des hôtes différents. Ni l’un ni l’autre ne peut être déduit de la clé. Un mauvais choix renvoie une erreur 401, qui vous pousse à vérifier la clé. Ces deux champs existent pour cette seule raison.
Customer.io est la plateforme qui n’exige pas d’e-mail
Elle connaît les personnes sous l’identifiant que vous leur attribuez ; exiger une adresse e-mail serait donc un obstacle artificiel. Les six autres effectuent bien la correspondance par e-mail : une session identifiée par un numéro de contrat ne produit alors aucun envoi, à juste titre.
Aucun nouveau profil
L’appel Braze contient _update_existing_only. C’est la même décision que pour la passerelle CRM : une session de navigateur ne permet pas d’établir de manière fiable qui sont vos clients, et une plateforme de cycle de vie qui crée un profil par visiteur anonyme est pire qu’une absence d’intégration.
Brevo répond 204, Braze répond 201 avec une subtilité
Brevo ne renvoie aucun corps de réponse : dans ce cas, un statut 2xx suffit réellement. Braze renvoie "message": "success" et peut contenir à côté un tableau errors : les problèmes bloquants apparaissent dans le message, les pertes de champs tolérées uniquement dans errors. Lire l’un sans l’autre conduit à une conclusion erronée dans un sens ou dans l’autre.
Toutes les marques citées appartiennent à leurs propriétaires respectifs. MousePlayer n’entretient aucune relation commerciale avec ces fournisseurs.