t.js permet de remonter à Apidae les consultations des fiches affichées sur votre site (canal site_web). Son intégration se fait en collant un court extrait de code dans la page de détail de chaque fiche.
1. Intégrer le snippet
Collez ce code dans la page de détail de la fiche :
<script>!function(w,k){w[k]=w[k]||function(){(w[k].q=w[k].q||[]).push(arguments)}}(window,'apidae');</script>
<script async src="https://stats.apidae-tourisme.com/t.js" data-cle="CLE_PARTENAIRE"></script>
<script>apidae('consultation', { objetId: 123456 });</script>
Remplacez :
CLE_PARTENAIREpar votre clé partenaire, c’est-à-dire la clé API de votre projet de diffusion ;123456par l’identifiant Apidae de la fiche affichée sur la page.
Ce snippet est figé : ne modifiez pas sa structure. Seules la clé et l’identifiant de la fiche changent.
Fonctionnement
- La première ligne met en file d’attente les appels faits avant le chargement de t.js. Une fois chargé, t.js les rejoue, puis envoie directement les appels suivants.
- Si t.js est chargé deux fois sur la même page, le second chargement est ignoré.
Attributs du script
| Attribut | Obligatoire | Rôle |
|---|---|---|
data-cle | oui | Clé partenaire (clé API du projet de diffusion). Elle identifie votre site, elle ne l’authentifie pas : ce n’est pas un secret. |
data-endpoint | non | Pour vos tests uniquement : remplace l’URL du collecteur de statistiques. Ne pas utiliser en production. |
Environnement de préproduction
Pour tester votre intégration hors production, utilisez :
<script async src="https://stats.apidae-tourisme.dev/t.js" data-cle="CLE_PARTENAIRE"></script>
Les consultations sont alors envoyées au collecteur de préproduction (stats-api.apidae-tourisme.dev).
2. Valider son intégration (mode debug)
- Ouvrez la page de la fiche en ajoutant
?apidaeDebug=1à son URL, par exemplehttps://www.exemple.fr/fiche/123456?apidaeDebug=1. - Ouvrez la console du navigateur (touche F12, onglet « Console ») et filtrez sur
[apidae-stats]. - Vérifiez la séquence de messages : tracker initialisé (endpoint, clé), appel
track, contenu envoyé (payload), envoi parsendBeacon, puis diagnostic du collecteur avecaccepte: true.
Si le diagnostic n’est pas celui attendu :
| Message | Signification |
|---|---|
accepte: false | La consultation est rejetée. motifsRejet en donne la cause, par exemple : « objetId doit être un entier positif », « User-Agent reconnu comme robot ». |
avertissements | La consultation est acceptée, mais un point est suspect : objetId absent, clé partenaire (cle) absente pour le canal site_web… |
ignoré : … | Aucun événement n’a été émis, et le message en explique la raison : onglet non visible, doublon de moins de 30 secondes… |
Le mode debug n’est jamais actif sans le paramètre ?apidaeDebug=1 dans l’URL (ou l’option debug: true si vous utilisez le paquet npm). Vos visiteurs ne voient donc aucun message.
3. Règles de déduplication
- Fenêtre de 30 secondes par couple (type d’événement,
objetId) : un second appel identique dans les 30 secondes est ignoré. Au-delà, il compte à nouveau : une fiche reconsultée 5 minutes plus tard compte comme une nouvelle consultation. - La déduplication est faite en mémoire, dans la page uniquement. Par conséquent :
- un rechargement de la page remet la fenêtre à zéro ;
- une fiche ouverte dans deux onglets compte deux fois ;
- un widget Apidae et t.js présents sur la même page sont deux émetteurs distincts : chacun compte une consultation pour son canal.
- Les éventuelles réémissions réseau sont dédoublonnées par le serveur : elles ne comptent pas en double.
4. Respect de la vie privée
- Aucun cookie, aucun stockage dans le navigateur (localStorage, sessionStorage, IndexedDB) : la librairie n’écrit rien sur l’appareil du visiteur.
- Aucun identifiant de visiteur ni de session : t.js compte des consultations, pas des visiteurs.
- Les requêtes sont envoyées sans cookies ni identifiants (
credentials: 'omit'), et l’adresse IP n’est jamais conservée par le collecteur. - Le filtrage des robots est fait par le serveur, à partir du User-Agent.
