Developers » AS2 tagging » Apple » Fonctionnalités avancées » Privacy 2.22.2
Privacy
- iOS
- watchOS
- tvOS
Avant-propos
La fonctionnalité 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.
Mode de consentement
Pour son fonctionnement, la fonctionnalité Privacy s’appuie sur une liste de différents modes de consentement de l’utilisateur
optIn
: pour une mesure exhaustive après consentement.optOut
: pour une mesure restreinte avec idclient valant « opt-out ».noConsent
: pour une mesure restreinte avec idclient valant « Consent-No ».exempt
: pour une mesure hybride avec exclusion des données jugées sensibles (soumis au process d’exemption CNIL).- Personnalisé : Depuis la version 2.23.0, vous pouvez utiliser des modes privacy personnalisés. Les restrictions par défaut de ces modes sont clonées depuis : exempt pour le stockage, optout pour les paramètres.
Chaque mode visiteur liste une série de paramètres du Tracker à autoriser. 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é, il est enregistré pour une durée de 397 jours configurable.
La plupart des modes ne stocke pas les lifecycle metrics par défaut, ce qui signifie que ces métriques peuvent être fausses dans vos analyses.
Méthodes de marquage
La fonctionnalité fournit une série de méthodes utiles dans la gestion du consentement :
setVisitorOptOut
setVisitorOptOut()
Activer le mode « optout »
Exemple
setVisitorOptIn
setVisitorOptIn()
Activer le mode « optin »
Exemple
setVisitorMode
setVisitorMode(visitorMode)
setVisitorMode(visitorMode, duration)
Activer un mode spécifique pour une durée déterminée (si non renseignée, 397 par défaut)
Param | Type | Description |
visitorMode | Privacy.VisitorMode | Nom du mode visiteur |
duration | Int | Durée de la validité du nouveau mode (en jours) |
Since 2.23.0:
setVisitorMode(visitorMode, visitorConsent, customUserId)
setVisitorMode(visitorMode, visitorConsent, customUserId, duration)
Param | Type | Description |
visitorMode | String | Nom du mode visiteur – sensible à la casse. Modes prédéfinis: optIn , optOut , exempt , noConsent |
visitorConsent | Bool | Est-ce que le visiteur a consenti a être suivi |
customUserIdValue | String? | Surcharge de l’identifiant visiteur géré par le SDK. null pour conserver le comportement classique |
duration | Int | Durée de la validité du nouveau mode (en jours) |
Exemple
Privacy.setVisitorMode(Privacy.VisitorMode.exempt) Privacy.setVisitorMode(Privacy.VisitorMode.exempt, duration: 397) Privacy.setVisitorMode("CustomMode", visitorConsent: true, customUserId: nil) Privacy.setVisitorMode("Restricted", visitorConsent: false, customUserId: "restricted-id", duration: 7)
[Privacy setVisitorMode:@"exempt"]; [Privacy setVisitorMode:@"exempt" duration:397]; [Privacy setVisitorMode:@"Custom" visitorConsent:YES customUserId:nil]; [Privacy setVisitorMode:@"Restricted" visitorConsent:YES customUserId:@"restricted-id" duration:7];
getVisitorMode
getVisitorMode() ⇒ Privacy.VisitorMode
Récupérer le mode visiteur courant.
Exemple
var visitorMode = Privacy.getVisitorMode()
NSString* mode = [Privacy getVisitorModeString];
extendIncludeBuffer
extendIncludeBuffer(keys)
extendIncludeBuffer(visitorMode, keys)
Ajouter des paramètres de buffer à la liste d’inclusion du mode visiteur courant si celui ci n’est pas spécifié dans l’appel
Param | Type | Description |
visitorMode | Privacy.VisitorMode | Mode pour lequel le buffer sera étendu |
keys | String... | Paramètres de buffer |
Les paramètres de buffer peuvent suivre 3 formats :
an
: le paramètre « an » de la querystringstc/my_parameter
: le paramètre « my_parameter » de l’objet « stc » de la querystring (« / » pour indiquer un niveau de sous-objet)events_data_prop
: la propriété « prop » de l’objet de données des events (« _ » pour indiquer un niveau de sous-objet)
Exemple
Privacy.extendIncludeBuffer(visitorMode: "exempt", keys: "an", "ac") // buffer parameters "an" and "ac" for exempt mode Privacy.extendIncludeBuffer(visitorMode: "optOut", keys: "stc/custom1", "stc/custom2") // buffer parameter "stc", keys "custom1" and "custom2" for optOut mode Privacy.extendIncludeBuffer(visitorMode: "exempt", keys: "stc/custom*") // buffer parameter "stc", keys start with "custom" for exempt mode
[Privacy extendIncludeBuffer:@"exempt" keys:[NSArray arrayWithObjects:@"an", @"ac", nil]]; // buffer parameters "an" and "ac" for Exempt mode [Privacy extendIncludeBuffer:@"exempt" keys:[NSArray arrayWithObjects:@"stc/custom1", @"stc/custom2", nil]]; // buffer parameter "stc", keys "custom1" and "custom2" [Privacy extendIncludeBuffer:@"exempt" keys:[NSArray arrayWithObjects:@"stc/custom*", nil]]; // buffer parameter "stc", keys start with "custom"
extendIncludeStorage
Since 2.21.0
extendIncludeStorage(visitorMode, storageFeatureKeys)
Ajouter des stockages à la liste d’inclusion du mode visiteur spécifié dans l’appel
Param | Type | Description |
visitorMode | String | Nom du mode visiteur – sensible à la casse. Modes prédéfinis : optIn , optOut , exempt , noConsent |
storageFeatureKeys | StorageFeature... | Clés de stockage. Disponibles : campaign , userId , privacy , identifiedVisitor , crash , lifecycle |
L’ordre d’appel à cette méthode est important:
extendIncludeStorageForVisitorMode
doit être appelée avantsetVisitorMode
afin d’être prise en compte.
Example
Privacy.extendIncludeStorage(visitorMode: "exempt", storageFeatureKeys: Privacy.StorageFeature.lifecycle); // Add Lifecycle storage to Exempt mode Privacy.setVisitorMode(Privacy.VisitorMode.exempt);
[Privacy extendIncludeStorage:@"exempt" storageFeatureKeys:[NSArray arrayWithObjects:@"lifecycle", nil]]; // Add Lifecycle storage to Exempt mode [Privacy setVisitorMode:@"exempt"];
Cas d’utilisation
Activation du mode hybride CNIL
L’activation du mode hybride exempt
permet une mesure très limitée par le Tracker. Seuls les paramètres jugés « strictement nécessaires » sont mesurés.
Paramètres autorisés par défaut : s
, vm
, vc
, mh
, idclient
, p
, olt
, vtag
, ptag
, ts
, click
, type
, cn
, dg
, apvr
, mfmd
, model
, manufacturer
, os
, stc/crash/*
Paramètre autorisé depuis la 2.21.0 : ref
Stockage autorisé par défaut : privacy
, userId
, crash
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
Privacy.extendIncludeBuffer(Privacy.VisitorMode.exempt, keys: "x1") // The site indicator "x1" is added to the inclusion list
[Privacy extendIncludeBuffer:@"exempt" keys:[NSArray arrayWithObjects:@"x1", nil]];
Activation du mode « Opt-out »
L’activation du mode optout
entraîne une mesure strictement limitée par le Tracker.
Paramètres autorisés par défaut : s
, vm
, vc
, mh
, idclient
, ts
, olt
, cn
, click
, type
Stockage autorisé par défaut : privacy
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
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 tracker = ATInternet.sharedInstance.defaultTracker tracker.setSendHitWhenOptOutEnabled(false, sync: true, completionHandler: nil) // true by default
Tracker* tracker = [[ATInternet sharedInstance] defaultTracker]; [tracker setSendHitWhenOptOutEnabled:NO sync:YES completionHandler:nil];
Activation du mode « No-consent »
L’activation du mode no-consent
entraîne une mesure strictement limitée par le Tracker.
Paramètres autorisés par défaut : s
, vm
, vc
, mh
, idclient
, ts
, olt
, cn
, click
, type
Aucun stockage n’est autorisé par défaut.
L’identifiant client prend alors la valeur « Consent-NO » et le trafic généré peut être exclu au niveau des analyses.
Exemple
Privacy.setVisitorMode(Privacy.VisitorMode.noConsent)
[Privacy setVisitorMode:@"noConsent"];
Activation du mode « Opt-in »
L’activation du mode optin
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
Activations d’un mode personnalisé
Privacy.extendIncludeStorage(visitorMode: "Custom", storageFeatureKeys: Privacy.StorageFeature.lifecycle, Privacy.StorageFeature.crash) Privacy.extendIncludeBuffer(visitorMode: "Custom", keys: "p", "vtag", "at", "ac", "events_*") Privacy.setVisitorMode("Custom", visitorConsent: false, customUserId: nil)
[Privacy extendIncludeStorage:@"Custom" storageFeatureKeys:[NSArray arrayWithObjects:@"lifecycle", nil]]; [Privacy extendIncludeBuffer:@"Custom" keys:[NSArray arrayWithObjects:@"p", @"vtag", @"at", @"ac", @"events_*", nil]]; [Privacy setVisitorMode:@"Custom" visitorConsent:YES customUserId:nil];
Certification ACPM (OJD)
Si votre site/app est certifié par l’ACPM (OJD), vous devez autoriser le paramètre stc/device
dans votre buffer :
Privacy.extendIncludeBuffer(visitorMode: "exempt", keys: "stc/device")
[Privacy extendIncludeBuffer:@"exempt" keys:[NSArray arrayWithObjects:@"stc/device", nil]];