Developers » JavaScript » Fonctionnalités avancées » Privacy 5.24.0
Privacy
Avant-propos
Le plugin Privacy permet de contrôler le type d’informations collectées en fonction des contraintes légales propres à chaque éditeur selon les régions. Il vous offre ainsi la possibilité d’adapter votre marquage grâce à une gestion précise des différents paramètres de mesure en fonction de leur sensibilité, dans le respect de la réglementation en vigueur.
Notion d’autorité
Pour son fonctionnement, le plugin s’appuie par défaut sur une ceonfiguration définissant un ensemble de règles de traitement à appliquer selon l’autorité choisie. Au sens strict, une autorité représente une entité de contrôle chargée de surveiller l’application d’un règlement relatif à la protection des données personnelles. Cela se traduit dans le code par la présence d’objets de configuration de type authority
comprenant différents visitorMode
: une autorité cnil
pour l’application d’un mode spécifique d’exemption de consentement (mesure hybride CNIL) et une autorité default
pour tous les autres cas.
Une autorité contient donc différents modes liés au consentement qu’il est possible d’activer par l’intermédiaire du marquage.
L’autorité default
permet ainsi d’activer les modes :
optin
: pour une mesure exhaustive après consentement.optout
: pour une mesure restreinte avec idclient valant « OPT-OUT ».no-consent
: pour une mesure restreinte sans dépôt de cookie et avec idclient valant « Consent-No ».random
: pour une mesure restreinte avec idclient dynamique changeant à chaque chargement, avant consentement.
L’autorité cnil
permet d’activer le mode :
exempt
: pour une mesure hybride avec exclusion des données jugées sensibles.
Chaque mode visiteur liste une série de paramètres du Tracker à supprimer que vous pouvez retrouver au niveau des cookies ou du buffer (paramètres de hits). Il est donc possible d’interagir à différents niveaux et de conserver la maîtrise complète des données à transmettre.
Lorsqu’un mode visiteur est activé, un cookie intitulé atauthority
comprenant le nom de l’autorité et du mode visiteur est enregistré pour une durée de 397 jours configurable, si les règles appliquées permettent effectivement cet enregistrement.
Méthodes de marquage
Le plugin fournit une série de fonctions utiles dans la gestion du consentement :
setVisitorOptout
setVisitorOptout()
Activer le mode « optout » de l’autorité par défaut.
Exemple
tag.privacy.setVisitorOptout();
setVisitorOptin
setVisitorOptin()
Activer le mode « optin » de l’autorité par défaut.
Exemple
tag.privacy.setVisitorOptin();
setVisitorRandomID
setVisitorRandomID()
Activer le mode « random » de l’autorité par défaut.
Exemple
tag.privacy.setVisitorRandomID();
setVisitorMode
setVisitorMode(authority, visitorMode)
Activer un mode spécifique d’une autorité.
Param | Type | Description |
authority | string | Nom de l’autorité |
visitorMode | string | Nom du mode visiteur |
Exemple
tag.privacy.setVisitorMode('default', 'no-consent'); tag.privacy.setVisitorMode('cnil', 'exempt');
Les modes visiteur
optin
,optout
etrandom
étant des modes génériques nécessitant une intelligence supplémentaire liée à la complexité du métier, ces derniers disposent de « helpers » dédiés pour leur activation.
getAuthority
getAuthority() ⇒ Object
Récupérer l’autorité courante.
Exemple
var authority = tag.privacy.getAuthority();
Exemple d’objet retourné pour une autorité « custom » :
var authority = { "name": "custom", // Name of the authority "exempt": { // Visitor mode "name": "exempt", // Name of the visitor mode "storageDuration": 397, // Cookie retention time in days "trackerSettings": { // Tracker settings to apply "disableStorage": false, "disableCookie": false }, "add": { // Parameters to add "buffer": { "visitorConsent": { "param": "vc", "value": false }, // Addition of the parameter "vc" "visitorMode": { "param": "vm", "value": "exempt" } // Addition of the parameter "vm" } }, "include": { // Parameters to include "storage": [ "atidvisitor", // "atidvisitor" parameter will be allowed in storage (identified visitor) { "atredir": [ "at", "an" ] // "at" and "an" parameters will be allowed for redirections (identified visitor) } ], "buffer": [ "an", "at", "ac", "anc", "vrn" ] // "an", "at", "ac", "anc" and "vrn" parameters will be allowed in buffer (identified visitor) } } };
getVisitorMode
getVisitorMode() ⇒ Object
Récupérer le mode visiteur courant.
Exemple
var visitorMode = tag.privacy.getVisitorMode();
Exemple d’objet retourné pour le mode « exempt » d’une autorité « custom » :
var visitorMode = { "name": "exempt", // Name of the visitor mode "storageDuration": 397, // Cookie retention time in days "trackerSettings": { // Tracker settings to apply "disableStorage": false, "disableCookie": false }, "add": { // Parameters to add "buffer": { "visitorConsent": { "param": "vc", "value": false }, // Addition of the parameter "vc" "visitorMode": { "param": "vm", "value": "exempt" } // Addition of the parameter "vm" } }, "include": { // Parameters to include "storage": [ "atidvisitor", // "atidvisitor" parameter will be allowed in storage (identified visitor) { "atredir": [ "at", "an" ] // "at" and "an" parameters will be allowed for redirections (identified visitor) } ], "buffer": [ "an", "at", "ac", "anc", "vrn" ] // "an", "at", "ac", "anc" and "vrn" parameters will be allowed in buffer (identified visitor) } };
extendIncludeStorage
extendIncludeStorage(storageParam)
Ajouter des paramètres de stockage à la liste d’inclusion du mode visiteur courant.
Param | Type | Description |
storageParam | Object|string|array | Paramètres de stockage |
Exemples
tag.privacy.extendIncludeStorage('atidvisitor'); // entire atidvisitor storage tag.privacy.extendIncludeStorage({'atidvisitor': ['an', 'ac']}); // only 'an' and 'ac' from atidvisitor tag.privacy.extendIncludeStorage([{'atidvisitor': ['an', 'ac']}, {'atredir'}]); // 'an' and 'ac' from atidvisitor and entire atredir tag.privacy.extendIncludeStorage([{'atidvisitor': ['an', 'ac'], 'atredir': ['an', 'ac']}]); // 'an' and 'ac' from atidvisitor and atredir
extendIncludeBuffer
extendIncludeBuffer(bufferParam)
Ajouter des paramètres de buffer à la liste d’inclusion du mode visiteur courant.
Param | Type | Description |
bufferParam | Object|string|array | Paramètres de buffer |
Exemple
tag.privacy.extendIncludeBuffer('an'); // buffer parameter 'an' tag.privacy.extendIncludeBuffer(['an', 'ac']); // buffer parameters 'an' and 'ac' tag.privacy.extendIncludeBuffer({stc: ['custom1', 'custom2']}); // buffer parameter 'stc', keys 'custom1' and 'custom2'
updateStorageDuration
updateStorageDuration(storageDuration)
Mettre à jour la durée de stockage du cookie « atauthority ».
Param | Type | Description |
storageDuration | number | Durée de conservation en jours (397 par défaut) |
Exemple
tag.privacy.updateStorageDuration(90);
Cas d’utilisation
Activation du mode hybride CNIL
L’activation du mode hybride exempt
de l’autorité cnil
permet une mesure très limitée par le Tracker. Seuls les paramètres jugés « strictement nécessaires » sont mesurés. Voir la liste des paramètres autorisés (par défaut) :
{ "include": { "storage": [ "atuserid", "atauthority" ], "buffer": [ "s", "idclient", "p", "vtag", "ptag", "ts", "vc", "vm", "click", "type" ] } }
Bien entendu, la liste d’inclusion des paramètres peut être étendue si nécessaire. Par exemple, il est possible d’ajouter une variable personnalisée de site à cette liste si l’on considère que les données sont strictement nécessaires, en utilisant la méthode extendIncludeBuffer()
.
Exemple
var tag = new ATInternet.Tracker.Tag(); tag.privacy.setVisitorMode('cnil', 'exempt'); tag.privacy.extendIncludeBuffer('x1'); // The site indicator "x1" is added to the inclusion list tag.page.set({ name: 'pageName', chapter1: 'chap1', chapter2: 'chap2', chapter3: 'chap3', level2: '123', }); tag.customVars.set({ site: { 1: '[site1]' } }); tag.dispatch();
Activation du mode « Opt-out »
L’activation du mode optout
de l’autorité default
entraîne une mesure strictement limitée par le Tracker. Voir la liste des paramètres autorisés (par défaut) :
{ "include": { "storage": [ "atuserid", "atauthority" ], "buffer": [ "s", "idclient", "ts", "vc", "vm", "click", "type" ] } }
L’ID client prend alors la valeur « OPT-OUT » et le trafic généré se trouve dans la catégorie de trafic exclu au niveau de l’analyse.
Exemple
var tag = new ATInternet.Tracker.Tag(); tag.privacy.setVisitorOptout(); tag.page.set({ name: 'pageName', chapter1: 'chap1', chapter2: 'chap2', chapter3: 'chap3', level2: '123', }); tag.dispatch();
Par défaut, les hits générés lorsque le mode Opt-out est activé sont envoyés. Vous pouvez si vous le souhaitez bloquer ces envois en surchargeant la variable de configuration du Tracker
sendHitWhenOptOut
.
Exemple
var config = { sendHitWhenOptOut: false // true by default }; var tag = new ATInternet.Tracker.Tag(config);
Activation du mode « No-consent »
L’activation du mode no-consent
de l’autorité default
entraîne une mesure strictement limitée par le Tracker. Voir la liste des paramètres autorisés (par défaut) :
{ "include": { "storage": [], "buffer": [ "s", "idclient", "ts", "vc", "vm", "click", "type" ] } }
L’identifiant client prend alors la valeur « Consent-NO » et le traffic généré peut être exclu au niveau des analyses.
Exemple
var tag = new ATInternet.Tracker.Tag(); tag.privacy.setVisitorMode('default', 'no-consent'); tag.page.set({ name: 'pageName', chapter1: 'chap1', chapter2: 'chap2', chapter3: 'chap3', level2: '123', }); tag.dispatch();
Activation du mode « Random »
L’activation du mode random
de l’autorité default
entraîne une mesure strictement limitée par le Tracker. Voir la liste des paramètres autorisés (par défaut) :
{ "include": { "storage": [], "buffer": [ "s", "idclient", "p", "vtag", "ptag", "ts", "vc", "vm", "ref", "xto", "click", "type" ] } }
L’identifiant client est bien défini sous la forme d’un GUID mais ce dernier n’est pas conservé pour éviter toute réconciliation. Chaque chargement de page entraînera donc un changement de valeur de l’identifiant client.
Exemple
var tag = new ATInternet.Tracker.Tag(); tag.privacy.setVisitorRandomID(); tag.page.set({ name: 'pageName', chapter1: 'chap1', chapter2: 'chap2', chapter3: 'chap3', level2: '123', }); tag.dispatch();
Activation du mode « Opt-in »
L’activation du mode optin
de l’autorité default
entraîne une mesure exhaustive par le Tracker. Tous les paramètres sont alors conservés et envoyés. Cette méthode doit être appelée après qu’un internaute ait donné son consentement.
Exemple
var tag = new ATInternet.Tracker.Tag(); tag.privacy.setVisitorOptin(); tag.page.set({ name: 'pageName', chapter1: 'chap1', chapter2: 'chap2', chapter3: 'chap3', level2: '123', }); tag.dispatch();
Lorsqu’un mode a été activé, un cookie est automatiquement créé pour conserver l’information (si aucune règle n’empêche l’écriture en cookie). Au chargement d’une page, le plugin procède à une vérification du cookie. Si ce dernier existe alors le plugin reprend automatiquement la dernière configuration. Un test sur l’autorité
getAuthority()
et le modegetVisitorMode()
permet à tout moment de choisir le comportement à adopter en terme de marquage.
Marquage avancé
Certification ACPM (OJD)
Si votre site/app est certifié par l’ACPM (OJD), vous devez autoriser le paramètre stc.device
dans votre buffer :
tag.privacy.extendIncludeBuffer({stc: ['device']});
Gestion des priorités
Il est important de conditionner un appel selon votre besoin de marquage et de ne pas l’exécuter de façon systématique. Un test sur l’autorité getAuthority()
et le mode getVisitorMode()
vous permettra à tout moment de choisir le meilleur comportement à adopter en terme de marquage.
Déclaration d’une autorité personnalisée
Vous pouvez, en cas de besoin, ajouter une autorité personnalisée si les règles déjà présentes ne répondent pas à votre besoin. Pour cela, vous devez connaître la structure d’un objet authority
:
// Declaration of authority var authority = { "name": "authority", // Mandatory "visitorMode": { "name": "visitorMode", // Mandatory "storageDuration": 397, // Mandatory "trackerSettings": { "disableStorage": false, "disableCookie": false }, "add": { // Parameters to add "buffer": { "visitorConsent": { // Mandatory "param": "vc", "value": false // true|false }, "visitorMode": { // Mandatory "param": "vm", "value": "visitorMode" } } }, "include": { // Parameters to include "storage": [], "buffer": [] } } };
Exemple de marquage d’une autorité personnalisée
// Declaration of custom authority var customAuthority = { "name": "customAuthority", "customMode": { "name": "customMode", "storageDuration": 397, "add": { "buffer": { "visitorConsent": { "param": "vc", "value": false }, "visitorMode": { "param": "vm", "value": "customMode" } } }, "include": { "storage": [ { "atidvisitor": ["an"] // "an" parameter will be allowed in storage (identified visitor) }, { "atredir": ["an"] // "an" parameter will be allowed for redirections (identified visitor) } ], "buffer": [ "an", // "an" parameter will be allowed in buffer (identified visitor) "x1", // "x1" parameter will be allowed in buffer" { "events": [ "name", // The event property "name" will be allowed in buffer "data_av_author" // The event property "data_av_author" will be allowed in buffer ], "stc": "author" // The "stc" property "author" will be allowed in buffer } ] } } }; var tag = new ATInternet.Tracker.Tag(); tag.privacy.addAuthority(customAuthority); // Adding custom authority tag.privacy.setVisitorMode('customAuthority', 'customMode'); // Activation of the custom visitor mode "customMode" of the custom authority "customAuthority" tag.page.set({ name: 'pageName', chapter1: 'chap1', chapter2: 'chap2', chapter3: 'chap3', level2: '123', }); tag.dispatch();Dernière mise à jour : 08/01/2021