Aller au contenu

Tracker (pixel JavaScript)

Ajouter le script sur toutes les pages du site (idéalement dans le <head>) :

<script async src="https://tracker.adstrike.io/t.js?id=SITE_ID"></script>
  • SITE_ID est l’identifier du site, visible dans le dashboard (paramètres du site).
  • Le script est servi par l’API (GET /t.js) qui vérifie que le domaine appelant (en-tête Referer) fait partie des acceptedDomains du site — un identifier valide sur un domaine non déclaré renvoie une 404.
  • Domaines CNAME personnalisés supportés (certificats gérés automatiquement) : remplacer tracker.adstrike.io par votre CNAME.

Le script injecte la configuration du site (window._ADSTRIKE_CONFIG) puis le tracker. Les événements sont mis en file localement et envoyés par batch à POST /c (debounce 1 s, flush forcé au déchargement de la page et au passage en arrière-plan).

Événement Déclenchement
page_view À chaque chargement de page et à chaque navigation SPA (pushState, replaceState, popstate, pageshow sont interceptés). Dédupliqué si l’URL n’a pas changé. Nécessite que le suivi page_view soit activé dans la configuration du site
session_start Au démarrage d’une nouvelle session (30 min d’inactivité = nouvelle session). Porte les données d’attribution du landing (référent, UTM, click IDs si consentement). En mode anonyme, la déduplication est faite côté serveur
consent_upgrade Quand un visiteur passe de « refusé » à « accordé » (liaison de la session anonyme)
Événements configurés Le dashboard permet de configurer des écouteurs DOM (sélecteur CSS + type d’événement) sans modifier le site

Une fois le tracker chargé, window.as(nomEvenement, params) est disponible :

window.as("add_to_cart", { sku: "TSHIRT-42", value: 29.9, currency: "EUR" });

Contrat de l’événement d’achat côté pixel :

window.as("purchase", {
tid: "ORDER-10042", // id de commande — clé de déduplication
value: 129.5, // montant de la commande
currency: "EUR" // ISO 4217
});
  • tid est l’identifiant de commande, unique par site. C’est la clé de déduplication entre le pixel et l’API de conversions : une même commande envoyée par les deux canaux n’est comptée qu’une fois.
  • value et currency alimentent le chiffre d’affaires attribué (conversion automatique dans la devise de base du compte).

Identification (identify) — pattern recommandé : la file de commandes pré-init

Section intitulée « Identification (identify) — pattern recommandé : la file de commandes pré-init »

Le tracker se charge en asynchrone. Un appel direct window.adstrike.identify(...) lancé par le bootstrap d’authentification de votre app peut s’exécuter avant que le tracker soit chargé — il serait alors perdu. Utilisez la file de commandes adstrikeQ, qui fonctionne avant et après le chargement du tracker :

// À la connexion (ou au chargement si l'utilisateur est déjà connecté)
(window.adstrikeQ = window.adstrikeQ || []).push(["identify", "USER_12345"]);
// À la déconnexion
(window.adstrikeQ = window.adstrikeQ || []).push(["resetIdentity"]);

Au chargement, le tracker draine la file puis remplace push par un proxy qui exécute immédiatement les commandes : le même code fonctionne quel que soit l’ordre de chargement.

À propos du clientId passé à identify() :

  • Identifiant opaque (votre id utilisateur interne — jamais d’email en clair). Max 256 caractères, caractères autorisés : lettres, chiffres, . @ : = _ -.
  • Avec consentement : stocké dans le cookie _astr_cid (persiste entre les pages). Sans consentement : conservé en mémoire pour la page courante uniquement.
  • Sert au suivi cross-device (les sessions d’un même clientId sont reliées pour l’attribution) et de clé de jointure pour l’API de conversions.
  • resetIdentity efface le cookie à la déconnexion pour ne pas relier les sessions suivantes.

Détection automatique, sans intégration nécessaire si vous utilisez :

  • Google Consent Mode : le tracker lit dataLayer (consent default / consent update) et observe les mises à jour. Consentement accordé si analytics_storage ou ad_storage est granted.
  • IAB TCF 2.0 (__tcfapi) : purposes 1, 7 ou 8.

Pour une bannière maison, appelez l’API custom :

window.adstrike.setConsent(true); // accordé
window.adstrike.setConsent(false); // refusé

Comportement :

  • Sans signal après 5 secondes, le consentement passe à « refusé » (mode anonyme, voir architecture.md).
  • Les événements émis pendant l’attente sont mis en file et envoyés une fois le consentement résolu.
  • Un passage refusé → accordé est géré (les cookies sont créés et la session anonyme est reliée).
  • Autres méthodes disponibles : window.adstrike.getConsent(), window.adstrike.onConsentChange(cb), window.adstrike.flush().

Aucun cookie n’est posé tant que le consentement n’est pas accordé.

Cookie Durée Contenu
_astr_vid ~13 mois Identifiant visiteur (UUID)
_astr_sid 30 minutes, prolongé à chaque activité Identifiant de session (UUID)
_astr_cid ~13 mois clientId passé à identify() (cross-device)

Attributs : Path=/; Secure; SameSite=None.