Information
Contenu

ConsentManager SDK GDPR / CCPA pour Android

Le ConsentManager Le SDK pour les applications Android implémente et fournit des fonctionnalités pour informer l'utilisateur sur la protection des données et demander et recueillir le consentement de l'utilisateur. Il permet aux développeurs d'applications d'intégrer facilement le ConsentManager service dans leur application.

Normes prises en charge

Le ConsentManager Le SDK GDPR / CCPA pour Android prend en charge les normes industrielles suivantes:

  • IAB TCF v1
  • IAB TCF v2
  • IAB USPrivacy v1
  • ConsentManager fournisseurs / objectifs personnalisés
  • Mode de consentement supplémentaire Google (chaîne Google AC)

Comment ça marche

  1. Intégrez le SDK dans l'application et configurez les paramètres du SDK
  2. Une fois le SDK intégré dans une application, le SDK fournira des fonctions au développeur de l'application afin de récupérer les données de consentement
  3. Dès que l'application démarre, le SDK récupère automatiquement les informations du ConsentManager serveurs afin de préparer le SDK à son utilisation.
  4. Il est recommandé qu'au démarrage de l'application, l'application crée une instance de classe CMPConsentTool. Une fois le fichier créé, le SDK affichera automatiquement l'écran de consentement si nécessaire.
  5. Lorsque l'application souhaite traiter des données personnelles, elle doit «demander» au SDK si le consentement a été donné pour l'objectif et le fournisseur spécifiques.

Installation

Dépôt sur Bitbucket: https://bitbucket.org/consentmanager/android-consentmanager/src/master/

gradle

Étape 1. Ajoutez le référentiel jitpack à votre build.gradle racine à la fin des référentiels:

allprojects {  
  repositories {    
    ...    
    maven { url 'https://jitpack.io' }  
  }
}

Étape 2. Ajoutez la dépendance à vos applications build.gradle

dependencies {
  implementation 'org.bitbucket.consentmanager:android-consentmanager:1.0.0'
}

maven

Étape 1. Ajoutez le référentiel jitpack à votre build.gradle à la fin des référentiels:

    <repositories>
        <repository>
            <id>jitpack.io</id>
            <url>https://jitpack.io</url>
        </repository>
    </repositories>

Étape 2. Ajoutez la dépendance à vos applications build.gradle

    <dependency>
        <groupId>org.bitbucket.consentmanager</groupId>
        <artifactId>android-consentmanager</artifactId>
        <version>1.0.0</version>
    </dependency>

Utilisation de la bibliothèque

Permission

Ce SDK nécessite les autorisations suivantes, veuillez vous assurer de les ajouter à votre AndroidManifest.xml:

<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.INTERNET" />

Lancer l'outil ConsentTool

Avec l'app-start (généralement votre fonction viewDidAppear), vous devez créer une instance de la classe CMPConsentTool. Cela récupérera automatiquement les données nécessaires de notre serveur et déterminera si l'écran de consentement doit être affiché ou non. Si tel est le cas, le SDK affichera automatiquement l'écran de consentement à ce stade, collectera les données et fournira les données à l'application. L'instance peut ensuite être utilisée pour obtenir les détails du consentement du SDK afin de l'utiliser dans l'application.

Pour lancer le ConsentTool, accédez à votre classe ciblée et créez une instance de CMPConsentTool comme indiqué ci-dessous:

//...
import net.consentmanager.sdk.CMPConsentTool;
//...
public class MainActivity extends AppCompatActivity {
    private CMPConsentTool consentTool;
    //...
    @Override
    protected void onCreate(Bundle savedInstanceState) {
      //..
      consentTool = CMPConsentTool.createInstance(this, 123456, "consentmanager.mgr.consensu.org", "MyFavouriteApp", "");
    //.. You can also instantiate the consentmanager with the advertisement id:
    // consentTool = CMPConsentTool.createWIthIDFA(this,123456,"www.consentmanager.mgr.consensu.org", "myFavouriteApp", "EN", "38400000-8cf0-11bd-b23e-10b96e40000d"); 

    }
//...
}

 

Pour créer l'instance de CMPConsentTool, vous devez configurer l'instance. Vous devrez fournir l'ID CMP, le domaine du serveur, un nom d'application et une langue. Le CMP-ID et le domaine du serveur se trouvent dans votre ConsentManager compte sous Menu> Obtenir le code. Le nom de l'application peut être utilisé pour distinguer différentes applications dans le ConsentManager rapports. Pour la langue, vous pouvez utiliser une chaîne vide ("") pour la détection automatique ou un code de langue à 2 lettres ("EN", "DE", "FR" et ainsi de suite).

Les valeurs de configuration peuvent être insérées de différentes manières:

a) Configuration du SDK via le manifeste

Ajoutez les lignes suivantes à votre AndroidManifest.xml sous la section <application ...> ... </application>:

<meta-data android:name="com.consentmanager.sdk.ID" android:value="1234567" />
<meta-data android:name="com.consentmanager.sdk.SERVER_DOMAIN" android:value="consentmanager.mgr.consensu.org" />
<meta-data android:name="com.consentmanager.sdk.APP_NAME" android:value="MyFavouriteApp" />
<meta-data android:name="com.consentmanager.sdk.LANGUAGE" android:value="EN" />

Si vous utilisez ce mode de configuration, créez une instance de CMPConsentTool via:

consentTool = CMPConsentTool.createInstance(this);
b) Configuration du SDK via CMPConfig

Ajoutez les lignes suivantes à votre code:

CMPConfig conf = CMPConfig.createInstance(1234567, "consentmanager.mgr.consensu.org", "MyFavouriteApp", "EN");
consentTool = CMPConsentTool.createInstance(this, conf);
c) Configuration du SDK via createInstance ()

Ajoutez la ligne suivante à votre code:

consentTool = CMPConsentTool.createInstance(this, 1234567, "consentmanager.mgr.consensu.org", "MyFavouriteApp", "EN");

Utilisation du SDK

Afin de vérifier si un fournisseur ou un objectif a son consentement, vous pouvez utiliser les deux méthodes:

if(consentTool.hasPurposeConsent(this,"52",false))
{
    if(consentTool.hasVendorConsent(this,"s26", false))
    {
        //do something with data
    }
}

Les deux méthodes hasPurposeConsent et hasVendorConsent nécessitent deux paramètres:

  • id - Chaîne du fournisseur ou de l'ID de fonction. Veuillez noter que les identifiants de fournisseur peuvent avoir différents formats ("123", "s123" et "c123"), veuillez vérifier avec Menu> Fournisseurs et Menu> Objectifs dans votre ConsentManager compte.
  • isIABVendor / isIABPurpose - Si le fournisseur ou l'objet est un fournisseur / objectif qui suit la norme IAB TCF, vous devrez définir un vrai, sinon un faux.

N'oubliez pas: tous les fournisseurs qui n'appartiennent pas à l'IAB ont des ID commençant par un "s" ou "c" (par exemple, "s123"); les fournisseurs qui appartiennent à l'IAB ont des ID ne commençant pas par un «s» ou «c».

Réouverture de l'écran de consentement

Afin de permettre à l'utilisateur de modifier les choix, vous pouvez simplement appeler openCmpConsentToolView():

consentTool.openCmpConsentToolView(this);

Dans certains cas, une application native peut contenir des vues Web afin d'afficher certaines choses comme du contenu publicitaire ou publicitaire. Afin de transmettre les informations de consentement du SDK à la vue Web, veuillez utiliser la fonction:

String consentData = CMPConsentTool.exportCMPData(this);

Cela exportera les informations de consentement et toutes les autres données nécessaires au CMP. Vous pouvez ensuite transmettre ces informations au CMP qui se trouve dans votre vue Web en l'ajoutant à l'URL appelée dans la vue Web:

myWebView.loadURL("https://mywebsite.com/....#cmpimport=" + consentData);

Préférences partagées

Le SDK définira les valeurs de préférences partagées pour IAB TCF v1, IAB TCF v2, IAB USPrivacy et Google AC String. Ces valeurs peuvent être lues à l'aide du code suivant:

Context mContext = getApplicationContext();

SharedPreferences mPreferences = PreferenceManager.getDefaultSharedPreferences(mContext);

SharedPreferences.OnSharedPreferenceChangeListener mListener;

mListener = new SharedPreferences.OnSharedPreferenceChangeListener() {

            public void onSharedPreferenceChanged(SharedPreferences preferences, String key) {
                        if (key.equals([Specific Consent Key])) {
                                   // Update Consent settings
                                   }
                        }
            };
mPreferences.registerOnSharedPreferenceChangeListener(mListener);

Les clés suivantes sont définies:

IAB TCF v1  
IABConsent_CMPPresent Boolean: Défini sur true si un CMP implémentant cette spécification est présent dans l'application. Idéalement défini par l'éditeur dès que possible, mais peut également être défini par le CMP en variante.
IABConsent_SubjectToGDPR String 1 - (soumis au RGPD), 0 - (non soumis au RGPD), Nil - indéterminé (par défaut avant l'initialisation). S'aligne sur l'avis IAB OpenRTB GDPR. Décidé d'être String, pour avoir le statut non initialisé.
IABConsent_ConsentString String: Chaîne de consentement
IABConsent_ParsedPurposeConsents String (de «0» et «1») où le caractère en position N indique le statut de consentement à l'ID d'objet N tel que défini dans la liste globale des fournisseurs. Chaîne de consentement donnée pour permettre une vérification simple. Le premier caractère à partir de la gauche étant le but 1, ...
IABConsent_ParsedVendorConsents String (de «0» et «1») où le caractère en position N indique le statut de consentement à l'ID de fournisseur N tel que défini dans la liste globale des fournisseurs. Chaîne de consentement donnée pour permettre une vérification simple. Le premier caractère à gauche étant le vendeur 1, ... 
IAB TCF v2  
IABTCF_CmpSdkID Number: ID entier non signé du SDK CMP
IABTCF_CmpSdkVersion Number: Numéro de version entier non signé du SDK CMP
IABTCF_PolicyVersion Number: L'entier non signé représentant la version du TCF à laquelle ces consentements adhèrent.
IABTCF_gdprApplies Number:

1 Le RGPD s'applique dans le contexte actuel

0 - GDPR fait n' appliquer dans le contexte actuel

once - indéterminé (par défaut avant l'initialisation)

IABTCF_PublisherCC String: Code ISO 3166-1 alpha-2 à deux lettres - Défaut: AA (inconnu)
IABTCF_PurposeOneTreatment Number:

0 - pas de traitement spécial du but un

1 - but un non divulgué

Annuler la valeur par défaut - 0

Les fournisseurs peuvent utiliser cette valeur pour déterminer si le consentement à la première fin est requis.

IABTCF_UseNonStandardStacks Number:

1 - CMP a utilisé une pile non standard

0 - CMP n'a pas utilisé de pile non standard

IABTCF_TCString String: Chaîne TC entièrement codée
IABTCF_VendorConsents Binary String: Le '0' or '1' à la position n - où nl'indexation de commence à 0 - indique le statut de consentement pour l'ID du fournisseur n + 1; false et true respectivement. par exemple. '1' à l'index 0 est le consentement true pour l'ID du fournisseur 1
IABTCF_VendorLegitimateInterests Binary String: Le '0' or '1' à la position n - où nl'indexation de commence à 0 - indique le statut d'intérêt légitime pour l'ID du fournisseur n + 1; false et true respectivement. par exemple. '1' à l'index 0 l'intérêt légitime est-il établi true pour l'ID du fournisseur 1
IABTCF_PurposeConsents Binary String: Le '0' or '1' à la position n - où nl'indexation de commence à 0 - indique le statut de consentement pour l'identification d'objet n + 1; false et true respectivement. par exemple. '1' à l'index 0 est le consentement true à des fins d'identification 1
IABTCF_PurposeLegitimateInterests Binary String: Le '0' or '1' à la position n - où nl'indexation de commence à 0 - indique le statut d'intérêt légitime pour l'identification d'objet n + 1; false et true respectivement. par exemple. '1' à l'index 0 l'intérêt légitime est-il établi true à des fins d'identification 1
IABTCF_SpecialFeaturesOptIns Binary String: Le '0' or '1' à la position n - où nl'indexation de commence à 0 - indique le statut d'activation pour l'ID de fonction spéciale n + 1; false et true respectivement. par exemple. '1' à l'index 0 est opt-in true pour l'ID de fonction spéciale 1
IABTCF_PublisherRestrictions{ID} String ['0','1', or '2']: La valeur à la position n - où nl'indexation de commence à 0 - indique le type de restriction de l'éditeur (0-2) pour le fournisseur n + 1; (voir Types de restrictions de l'éditeur). par exemple. '2' à l'index 0 est restrictionType 2 pour l'ID du fournisseur 1. {ID} fait référence à l'ID d'objet.
IABTCF_PublisherConsent Binary String: Le '0' or '1' à la position n - où nl'indexation de commence à 0 - indique le statut de consentement à l'objectif pour l'ID d'objet n + 1 pour l'éditeur, car ils correspondent aux objectifs de la liste mondiale des fournisseurs; false et true respectivement. par exemple. '1' à l'index 0 est le consentement true à des fins d'identification 1
IABTCF_PublisherLegitimateInterests Binary String: Le '0' or '1' à la position n - où nl'indexation de commence à 0 - indique le statut d'intérêt légitime de la finalité pour l'identification de la finalité n + 1 pour l'éditeur, car ils correspondent aux objectifs de la liste mondiale des fournisseurs; false et true respectivement. par exemple. '1' à l'index 0 l'intérêt légitime est-il établi true à des fins d'identification 1
IABTCF_PublisherCustomPurposesConsents Binary String: Le '0' or '1' à la position n - où nl'indexation de commence à 0 - indique le statut de consentement à la finalité pour l'ID de finalité personnalisée de l'éditeur n + 1 pour l'éditeur; false et true respectivement. par exemple. '1' à l'index 0 est le consentement true pour un identifiant à usage personnalisé 1
IABTCF_PublisherCustomPurposesLegitimateInterests Binary String: Le '0' or '1' à la position n - où nl'indexation de commence à 0 - indique le statut d'intérêt légitime de la finalité pour l'identifiant de finalité personnalisé de l'éditeur n + 1 pour l'éditeur; false et true respectivement. par exemple. '1' à l'index 0 l'intérêt légitime est-il établi true pour un identifiant à usage personnalisé 1
IAB États-Unis  
IABUSPrivacy_String String: S'aligne sur l'avis IAB OpenRTB CCPA. La chaîne encode tous les choix et informations.
Google AC String  
IABTCF_AddtlConsent

String: Correspond aux spécifications techniques du mode de consentement supplémentaire de Google. 

 

 

 

 

 

 

 

Retour en haut de la page