Documentation de Datalenk

Installer le script, transmettre l'accord de tes visiteurs depuis ta propre bannière, et trouver la référence de l'API.

Installer le script

Colle cette ligne une fois, sur toutes les pages, avant </head>. Ton code prêt à coller, avec l'identifiant de ton site (data-site) et sa clé d'envoi (data-key), est dans Réglages.

index.html
<script defer data-site="42" data-key="dk_..." data-consent="simple" src="https://in.datalenk.com/dl.js"></script>

Si ton site affiche déjà une bannière de consentement (un outil de gestion du consentement, ou ton propre code), c'est elle qui dit à Datalenk ce que le visiteur a répondu, en un appel. Tant qu'elle ne l'a pas fait, Datalenk fait la Mesure simple (ou rien, avec data-consent="wait") et ne stocke rien.

Ce qui attend l'accord du visiteur : relier la visite à son origine et à une vente (paramètres de campagne, identifiants de clic, marqueur Lenkli, liens vers Stripe et Calenkli, retour de Stripe, identify()), la couche Persistante si tu l'as activée, les tests A/B, et le replay si tu l'as activé.

Passe par la file d'attente, window.datalenkQueue : elle marche avant comme après le chargement de dl.js, et elle ne provoque jamais d'erreur, même quand dl.js ne s'est pas lancé (un navigateur piloté par un robot, un code sans data-site, un script bloqué). C'est la forme la plus sûre pour une bannière.

ta bannière
(window.datalenkQueue = window.datalenkQueue || []).push(["consent", true]);  // accepté
(window.datalenkQueue = window.datalenkQueue || []).push(["consent", false]); // refusé ou retiré

Une fois dl.js chargé, datalenk.consent() fait la même chose. Mais quand dl.js ne s'est pas lancé, datalenk n'existe pas : l'appeler provoque une erreur qui arrête le code de ta bannière. Vérifie donc d'abord window.datalenk. Avant le chargement de dl.js, cette vérification saute l'appel : la file reste la forme la plus sûre.

// « Tout accepter »
window.datalenk && datalenk.consent(true);

// « Tout refuser », ou accord retiré plus tard
window.datalenk && datalenk.consent(false);

Si ta bannière propose les finalités une par une, passe un objet. Une clé absente vaut refus.

(window.datalenkQueue = window.datalenkQueue || []).push(["consent", { attribution: true, experiments: false, replay: false }]);

// ou, une fois dl.js chargé
window.datalenk && datalenk.consent({ attribution: true, experiments: false, replay: false });

Trois finalités : attribution (l'origine des visites et les ventes, avec la couche Persistante si tu l'as activée), experiments (les tests A/B), replay (si tu l'as activé).

  1. Appelle-la à chaque chargement de page dès que le visiteur a répondu. Datalenk ne garde pas un choix fait dans ta bannière : c'est ta bannière qui le garde. Redonner la même réponse ne change rien.
  2. Quand le visiteur change d'avis (un lien « Gérer mes cookies » qui rouvre ta bannière), appelle-la de nouveau avec la nouvelle réponse. datalenk.consent(false) efface l'identifiant posé par Datalenk et rend aux liens marqués l'adresse que ton site avait écrite.
  3. N'ajoute pas data-banner au code : cet attribut affiche la bannière de Datalenk, pour les sites qui n'en ont pas. Une seule bannière par site.
  4. Dans ta bannière, « Refuser » doit être aussi simple qu'« Accepter », et rien n'est coché d'avance.
window.datalenk && datalenk.consentStatus();  // "pending" (pas encore de réponse) | "granted" | "partial" | "denied" | "off"
window.datalenk && datalenk.consentChoices(); // { attribution, experiments, replay }, ou null avant la réponse
// undefined : dl.js ne s'est pas lancé
index.html
<script defer data-site="42" data-key="dk_..." data-consent="simple" src="https://in.datalenk.com/dl.js"></script>
<script>
  // Ta bannière l'appelle au clic du visiteur, puis à chaque page dès qu'il a répondu.
  function transmettreAccordADatalenk(accepte) {
    (window.datalenkQueue = window.datalenkQueue || []).push(["consent", accepte === true]);
  }
</script>

Ajoute data-banner au code : Datalenk montre sa propre bannière à tes visiteurs, dans leur langue (français ou anglais), avec « Accepter » et « Refuser » côte à côte, et « Choisir » pour décider finalité par finalité. Le détail est dans la référence de l'API (en anglais).

Pour aller plus loin