Developers » AS2 tagging » JavaScript » Fonctionnalités avancées » Privacy 5.24.0
Privacy
Avant-propos
Le plugin Privacy (à activer depuis l’interface Tag Composer) permet à un éditeur de contrôler les données collectées au sein de la solution de mesure d’audience, en fonction des différentes législations auxquelles il se réfère. Il vous offre ainsi la possibilité d’adapter votre marquage grâce à une gestion précise des différents paramètres de mesure (propriétés envoyées, traceurs utilisés, …), dans le respect de la réglementation en vigueur.
Notion d’autorité
Pour son fonctionnement, le plugin s’appuie par défaut sur une configuration 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 définis par AT Internet.
Une autorité contient donc différents modes liés au consentement qu’il est possible d’activer par l’intermédiaire du marquage.
Il est aussi possible de créer des autorités personnalisées, qui contiendront des modes visiteurs propres à vos besoins.
Chaque « mode visiteur » contient une liste d’inclusion de paramètres du Tracker qui agira au niveau du storage (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.
L’autorité default
permet ainsi d’activer les modes standards suivants :
optin
: pour une mesure exhaustive après consentement.optout
: pour une mesure restreinte et anonymisée avec idclient valant « OPT-OUT ».no-consent
: pour une mesure restreinte, sans dépôt de cookie, anonymisée grâce à l’option « exclusion de trafic non cookisé » et avec idclient valant « Consent-No ».random
: pour une mesure restreinte avec idclient dynamique changeant à chaque chargement, avant consentement.
Les « mode 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. Vous ne devez pas les utiliser avec la méthodesetVisitorMode
L’autorité cnil
permet d’activer le mode standard suivant :
exempt
: pour une Mesure Hybride avec exclusion des données jugées non strictement nécessaires.
Le détail de la mise en place de notre Mesure Hybride est présent au sein de notre Privacy Center. Si vous voulez plus d’informations sur la gestion des sources de marketing, veuillez consulter cet article.
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.
Activer un mode visiteur standard
Le plugin Privacy fournit une série de fonctions (helpers) permettant de mettre en place les modes standards, défini par AT Internet.
Lorsqu’un mode a été activé, le cookie atauthority
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 mode getVisitorMode()
permet à tout moment de choisir le comportement à adopter en termes de marquage.
Activation du mode « opt-in »
Méthode de marquage
setVisitorOptin()
Activer le mode « optin ».
Exemple
tag.privacy.setVisitorOptin();
Comportement
L’activation du mode optin
entraîne une mesure exhaustive par le Tracker. Tous les paramètres sont alors conservés et envoyés.
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();
Activation du mode « Opt-Out »
Méthode de marquage
setVisitorOptout()
Activer le mode « optout ».
Exemple
tag.privacy.setVisitorOptout();
Comportement
L’activation du mode optout
entraîne une mesure restreinte par le Tracker. La liste des paramètres autorisés (par défaut) est la suivante :
{ "include": { "storage": [ "atuserid", "atauthority" ], "buffer": [ "s", "idclient", "ts", "vc", "vm", "click", "type" ] } }
Le paramètre de hit « idclient » (identifiant visiteur) prendra la valeur « OPT-OUT » et le trafic généré sera anonymisée et restitué uniquement au sein de l’analyse Privacy d’Explorer.
Exemple de marquage
var tag = new ATInternet.Tracker.Tag(); tag.privacy.setVisitorOptout(); tag.page.set({ name: 'pageName', // will not be sent chapter1: 'chap1', // will not be sent chapter2: 'chap2', // will not be sent chapter3: 'chap3', // will not be sent level2: '123', // will not be sent }); tag.dispatch();
Ici, le niveau 2 « 123 » ne sera pas envoyé dans le hit, le paramètre « s2 » ne faisant pas partie de la liste « buffer » autorisée. Il en va de même pour les informations de page, le paramètre « p » n’étant pas autorisé.
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
, ou depuis la section « Paramètre vie privée » de Tag Composer.
Exemple
var config = { sendHitWhenOptOut: false // true by default }; var tag = new ATInternet.Tracker.Tag(config);
Activation du mode « No-consent »
Méthode de marquage
setVisitorMode('default', 'no-consent')
Activer le mode « no-consent » de l’autorité par défaut.
Exemple
tag.privacy.setVisitorMode('default', 'no-consent');
Comportement
L’activation du mode no-consent
entraîne une mesure restreinte par le Tracker. La liste des paramètres autorisés (par défaut) est la suivante :
{ "include": { "storage": [], "buffer": [ "s", "idclient", "ts", "vc", "vm", "click", "type" ] } }
Le paramètre de hit « idclient » (identifiant visiteur) prendra la valeur « Consent-NO » et le trafic généré devra être anonymisé grâce à l’option d’ « exclusion de trafic non cookisé« . Les données seront ainsi restituées uniquement au sein de l’analyse Privacy d’Explorer
Exemple
var tag = new ATInternet.Tracker.Tag(); tag.privacy.setVisitorMode('default', 'no-consent'); tag.page.set({ name: 'pageName', // will not be sent chapter1: 'chap1', // will not be sent chapter2: 'chap2', // will not be sent chapter3: 'chap3', // will not be sent level2: '123', // will not be sent }); tag.dispatch();
Ici, le niveau 2 « 123 » ne sera pas envoyé dans le hit, le paramètre « s2 » ne faisant pas partie de la liste « buffer » autorisée. Il en va de même pour les informations de page, le paramètre « p » n’étant pas autorisé.
Activation du mode « Exemption CNIL »
Méthode de marquage
setVisitorMode('cnil', 'exempt')
Activer le mode « exempt » de l’autorité « cnil ».
Exemple
tag.privacy.setVisitorMode('cnil', 'exempt');
Comportement
L’activation du mode hybride exempt
de l’autorité cnil
permet une mesure restreinte par le Tracker. Seuls les paramètres jugés « strictement nécessaires » sont collectés. La liste des paramètres autorisés (par défaut) est la suivante :
{ "include": { "storage": [ "atuserid", "atauthority" ], "buffer": [ "s", "idclient", "p", "vtag", "ptag", "ts", "vc", "vm", "click", "type", "olt", "cn", "mh", "ref", "pclick", // since 5.28.2 "s2click" // since 5.28.2 ] } }
Comme pour tous les autres modes, la liste d’inclusion des paramètres peut être étendue si nécessaire. Par exemple, il est possible d’ajouter une variable personnalisée à cette liste si l’on considère que les données sont strictement nécessaires, en utilisant la méthode extendIncludeBuffer()
. Le détail d’ajouts de paramètres est présent au sein de la section « étendre les paramètres d’un mode (stockage et données collectées) ».
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', // will not be sent }); tag.customVars.set({ site: { 1: '[site1]' } }); tag.dispatch();
Ici, le niveau 2 « 123 » ne sera pas envoyé dans le hit, le paramètre « s2 » ne faisant pas partie de la liste « buffer » autorisée.
Activation du mode « Random »
Méthode de marquage
setVisitorRandomID()
Activer le mode « random ».
Exemple
tag.privacy.setVisitorRandomID();
Comportement
L’activation du mode random
entraîne une mesure restreinte par le Tracker. La liste des paramètres autorisés (par défaut) est la suivante :
{ "include": { "storage": [], "buffer": [ "s", "idclient", "p", "vtag", "ptag", "ts", "vc", "vm", "ref", "xto", "click", "type" ] } }
Le paramètre de hit « idclient » (identifiant visiteur) prendra une valeur définie sous la forme d’un GUID, mais ce dernier ne sera pas conservé pour éviter toute réconciliation. Chaque chargement de page entraînera donc un changement de valeur de l’identifiant visiteur.
Exemple
var tag = new ATInternet.Tracker.Tag(); tag.privacy.setVisitorRandomID(); tag.page.set({ name: 'pageName', chapter1: 'chap1', chapter2: 'chap2', chapter3: 'chap3', level2: '123', // will not be sent }); tag.dispatch();
Ici, le niveau 2 « 123 » ne sera pas envoyé dans le hit, le paramètre « s2 » ne faisant pas partie de la liste « buffer » autorisée.
Étendre les paramètres d’un mode (stockage et données collectées)
Étendre le stockage (cookies)
extendIncludeStorage(storageParam)
Ajouter des paramètres de stockage à la liste d’inclusion de tous les modes.
Param | Type | Description |
storageParam | Object|string|array | Paramètres de stockage |
Il est important d’étendre le storage avant d’activer un mode si vous souhaitez que la liste ajoutée soit prise en compte.
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
Étendre le buffer (paramètres de hit)
extendIncludeBuffer(bufferParam)
Ajouter des paramètres de buffer à la liste d’inclusion de tous les modes.
Param | Type | Description |
bufferParam | Object|string|array | Paramètres de buffer |
Il est important d’étendre le buffer après l’activation d’un mode si vous souhaitez que la liste ajoutée soit prise en compte.
Syntaxe d’ajout de paramètres
Différents formats sont autorisés pour ajouter vos paramètres, en fonction de la version de votre librairie.
SmartTag < version 5.28.0
an
: ajoute le paramètre de la querystringan
à la liste d’inclusion de tous les modes["ref", "s2", "x1"]
: ajoute les trois paramètres de la querystring à la liste d’inclusion de tous les modes{"stc":["device", "medium"]}
: ajoute les clésdevice
etmedium
de l’objetstc
à la liste d’inclusion de tous les modes{"events":["name","data_medium"]}
: ajoute le nom de l’event (name
) et les propriétés qui débutent parmedium
à la liste d’inclusion de tous les modes._
est utilisé pour définir un sous-objet
La version 5.28.0 du SmartTag corrige certains comportements liés à l’usage du plugin Privacy, et simplifie la nomenclature permettant d’étendre les paramètres d’un mode.
Nous vous recommandons de mettre à jour vos marqueurs.
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'
SmartTag >= version 5.28.0
À partir de la v5.28.0 et sur Tag Composer, les formats suivants sont acceptés :
an
: ajoute le paramètre de la querystringan
à la liste d’inclusion de tous les modes (dans le cas d’une propriété typé, il sera nécessaire d’y intégrer le préfixe)stc/custom_key
: ajoute la clécustom_key
de l’objetstc
à la liste d’inclusion de tous les modes./
est utilisé pour définir un sous-objet (format valable uniquement pour le paramètrestc
)events_name
: ajoute le nom de l’event (name
) à la liste d’inclusion de tous les modes._
est utilisé pour définir un sous-objet (format valable uniquement pour les paramètresevents
etcontext
– nécessaire pour autoriser des events)events_data_medium
: ajoute la propriété de l’eventmedium
à la liste d’inclusion de tous les modes._
est utilisé pour définir un sous-objet (format valable uniquement pour les paramètresevents
etcontext
)
exempt#an
: vous pouvez étendre la liste d’inclusion d’un mode particulier en préfixant l’élément par [mode]#
pour limiter à ce mode
uniquement.
Exemple
tag.privacy.extendIncludeBuffer('an'); // buffer parameter 'an' tag.privacy.extendIncludeBuffer(['an', 'ac', 'b:is_premium']); // buffer parameters 'an', 'ac' and 'b:is_premium' tag.privacy.extendIncludeBuffer('exempt#stc/my_key'); // buffer parameter 'stc', key 'my_key' for exempt mode tag.privacy.extendIncludeBuffer(['exempt#stc/my_key', 'an']); // buffer parameter 'stc', key 'my_key' for exempt mode + buffer parameter an for all modes tag.privacy.extendIncludeBuffer(['events_name', 'events_data_prop1', 'events_data_prop2']); // allow properties "prop1" and "prop2" for events. In this case, "events_name" is required
Afin de vous accompagner dans le choix de la bonne syntaxe à mettre en place, un article est mis à votre disposition dans notre Privacy Center.
Au sein de ce même article, vous verrez comment ajouter des paramètres depuis Tag Composer directement, à la place des marqueurs. Attention, une surcharge des marqueurs a la priorité par rapport à la configuration réalisée depuis Tag Composer.
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);
Création et activation d’un mode personnalisé
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
(changez les valeurs entre [ ]
) :
// Declaration of authority var authority = { "name": "[authorityName]", // Mandatory "[visitorModeName]": { "name": "[visitorModeName]", // 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": "[visitorModeName]" } } }, "include": { // Parameters to include "storage": [], "buffer": [] } } }; tag.privacy.addAuthority(authority); // Adding custom authority tag.privacy.setVisitorMode('[authorityName]', '[visitorModeName]'); // Activation of the custom visitor mode
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();
Activation d’un mode personnalisé
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('customAuthority', 'customMode');
Comme indiqué dans la section « Notion d’autorité », les « mode 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. Vous ne devez pas les utiliser avec la méthodesetVisitorMode
Récupération de l’autorité et du mode
getAuthority
getAuthority() ⇒ Object
Récupérer l’autorité courante.
Exemple
var authority = tag.privacy.getAuthority();
Exemple d’objet retourné pour une autorité personnalisée :
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é personnalisée :
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) } };
Marquage avancé
Certification ACPM (OJD)
Si votre site/app est certifié par l’ACPM (OJD), vous devez autoriser le paramètre stc/device
ou s2
dans votre buffer :
tag.privacy.extendIncludeBuffer("stc/device"); tag.privacy.extendIncludeBuffer("s2");
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.