Info
Content

ConsentManager GDPR / CCPA SDK voor Android

Het ConsentManager SDK voor Android-apps implementeert en biedt functionaliteit om de gebruiker te informeren over gegevensbescherming en om toestemming van de gebruiker te vragen en te verzamelen. Het stelt app-ontwikkelaars in staat de ConsentManager service in hun app.

Ondersteunde standaarden

Het ConsentManager GDPR / CCPA SDK voor Android ondersteunt de volgende industriestandaarden:

  • IAB TCF v1
  • IAB TCF v2
  • IAB USPrivacy v1
  • ConsentManager aangepaste leveranciers / doeleinden
  • Aanvullende toestemmingsmodus van Google (Google AC-reeks)

Hoe het werkt

  1. Integreer de SDK in de app en configureer de SDK-instellingen
  2. Zodra de SDK is geïntegreerd in een app, biedt de SDK functies voor de app-ontwikkelaar om toestemmingsgegevens op te halen
  3. Zodra de app start, haalt de SDK automatisch informatie op van de ConsentManager servers om de SDK voor te bereiden op het gebruik ervan.
  4. Het wordt aanbevolen dat de app bij het opstarten van de app een klasse-instantie maakt CMPConsentTool. Zodra dit is gemaakt, toont de SDK indien nodig automatisch het toestemmingsscherm.
  5. Wanneer de app persoonlijke gegevens wil verwerken, moet deze de SDK "vragen" of toestemming is gegeven voor het specifieke doel en de leverancier.

Installatie

Repository op Bitbucket: https://bitbucket.org/consentmanager/android-consentmanager/src/master/

Gradle

Stap 1. Voeg de jitpack-repository toe aan je root build.gradle aan het einde van de repositories:

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

Stap 2. Voeg de afhankelijkheid toe aan uw apps build.gradle

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

Maven

Stap 1. Voeg de jitpack-repository toe aan je build.gradle aan het einde van de repositories:

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

Stap 2. Voeg de afhankelijkheid toe aan uw apps build.gradle

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

Met behulp van de bibliotheek

machtigingen

Deze SDK vereist de volgende toestemmingen, zorg ervoor dat u ze toevoegt aan uw AndroidManifest.xml:

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

Start ConsentTool

Met de app-start (meestal uw viewDidAppear-functie) moet u een instantie van klasse CMPConsentTool maken. Dit haalt automatisch de benodigde gegevens van onze server op en bepaalt of het toestemmingsscherm moet worden weergegeven of niet. Als dat het geval is, toont de SDK op dit punt automatisch het toestemmingsscherm, verzamelt de gegevens en verstrekt de gegevens aan de app. De instantie kan vervolgens worden gebruikt om toestemmingsgegevens van de SDK op te halen om deze in de app te gebruiken.

Om de ConsentTool te starten, gaat u naar uw beoogde klasse en maakt u een instantie van CMPConsentTool zoals hieronder weergegeven:

//...
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"); 

    }
//...
}

 

Om de instantie van CMPConsentTool te maken, moet u de instantie configureren. U moet de CMP-ID, het serverdomein, een app-naam en een taal opgeven. De CMP-ID en het serverdomein vindt u in uw ConsentManager account onder Menu> Code ophalen. De app-naam kan worden gebruikt om verschillende apps in de te onderscheiden ConsentManager rapportage. Voor de taal kunt u een lege tekenreeks ("") gebruiken voor automatische detectie of een tweeletterige taalcode ("EN", "DE", "FR" enzovoort).

De configuratiewaarden kunnen op verschillende manieren worden ingevoegd:

a) SDK-configuratie via Manifest

Voeg de volgende regels toe aan uw AndroidManifest.xml onder sectie <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" />

Als u deze manier van configureren gebruikt, maak dan een exemplaar van CMPConsentTool via:

consentTool = CMPConsentTool.createInstance(this);
b) SDK-configuratie via CMPConfig

Voeg de volgende regels toe aan je code:

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

Voeg de volgende regel toe aan uw code:

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

De SDK gebruiken

Om te controleren of een leverancier of doel toestemming heeft, kunt u de twee methoden gebruiken:

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

Beide methoden hasPurposeConsent als hasVendorConsent vereisen twee parameters:

  • id - String van de leverancier of het doel-ID. Houd er rekening mee dat leveranciers-ID's verschillende formaten kunnen hebben ("123", "s123" en "c123"), controleer dit nogmaals met Menu> Leveranciers als Menu> Doeleinden in ConsentManager account.
  • isIABVendor / isIABPurpose - Als de leverancier of het doel een leverancier / doel is die de IAB TCF-standaard volgt, moet u een true instellen, anders een false.

Onthoud: alle leveranciers die niet tot de IAB behoren, hebben ID's die beginnen met een "s" of "c" (bijv. "S123"); leveranciers die tot de IAB behoren, hebben ID's die niet beginnen met een "s" of "c".

Het toestemmingsscherm opnieuw openen

Om de gebruiker in staat te stellen de keuzes te wijzigen, kunt u gewoon bellen openCmpConsentToolView():

consentTool.openCmpConsentToolView(this);

In sommige gevallen kan een systeemeigen app webviews bevatten om bepaalde zaken, zoals advertenties of inhoud van advertenties, weer te geven. Gebruik de functie om de toestemmingsinformatie van de SDK naar de webview te verzenden:

String consentData = CMPConsentTool.exportCMPData(this);

Dit exporteert de toestemmingsinformatie en alle verdere gegevens die de CMP nodig heeft. Vervolgens kunt u deze informatie doorgeven aan de CMP in uw webview door deze toe te voegen aan de URL die wordt opgeroepen in de webview:

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

Gedeelde voorkeuren

De SDK stelt de waarden voor gedeelde voorkeuren in voor IAB TCF v1, IAB TCF v2, IAB USPrivacy en Google AC String. Deze waarden kunnen worden gelezen met behulp van de volgende code:

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);

De volgende sleutels zijn gedefinieerd:

IAB TCF v1  
IABConsent_CMPPresent Boolean: Ingesteld op true als een CMP die deze specificatie implementeert, aanwezig is in de toepassing. Idealiter zo snel mogelijk ingesteld door de uitgever, maar kan ook alternatief worden ingesteld door de CMP.
IABConsent_SubjectToGDPR String 1 - (onderworpen aan GDPR), 0 - (niet onderworpen aan GDPR), Nihil - onbepaald (standaard vóór initialisatie). Komt overeen met IAB OpenRTB GDPR Advisory. Besloten om String te zijn, om de niet-geïnitialiseerde status te hebben.
IABConsent_ConsentString String: Toestemmingsreeks
IABConsent_ParsedPurposeConsents String (van "0" en "1") waarbij het teken op positie N de toestemmingsstatus aangeeft voor doel-ID N zoals gedefinieerd in de Global Vendor List. Toestemming gegeven om eenvoudige controle mogelijk te maken. Eerste karakter van links is Doel 1, ...
IABConsent_ParsedVendorConsents String (van "0" en "1") waarbij het teken op positie N de toestemmingsstatus voor leverancier-ID N aangeeft, zoals gedefinieerd in de algemene leverancierslijst. Toestemming gegeven om eenvoudige controle mogelijk te maken. Eerste karakter van links zijnde Vendor 1, ... 
IAB TCF v2  
IABTCF_CmpSdkID Number: De niet-ondertekende integer-ID van CMP SDK
IABTCF_CmpSdkVersion Number: Het ongetekende versienummer van de CMP SDK
IABTCF_PolicyVersion Number: Het geheel getal zonder teken dat de versie van de TCF vertegenwoordigt waaraan deze toestemmingen voldoen.
IABTCF_gdprApplies Number:

1 GDPR is van toepassing in de huidige context

0 - GDPR doet geen toepassen in de huidige context

ongezet - onbepaald (standaard voor initialisatie)

IABTCF_PublisherCC String: Tweeletterige ISO 3166-1 alfa-2-code - Standaard: AA (onbekend)
IABTCF_PurposeOneTreatment Number:

0 - geen speciale behandeling van doel één

1 - doel één niet bekendgemaakt

Standaard uitschakelen - 0

Leveranciers kunnen deze waarde gebruiken om te bepalen of toestemming voor doel één vereist is.

IABTCF_UseNonStandardStacks Number:

1 - CMP gebruikte een niet-standaard stapel

0 - CMP heeft geen niet-standaard stack gebruikt

IABTCF_TCString String: Volledig gecodeerde TC-string
IABTCF_VendorConsents Binary StringDe '0' or '1' op positie n - waar n's indexering begint om 0 - geeft de toestemmingsstatus aan voor Vendor ID n + 1; false als true respectievelijk. bijv. '1' bij index 0 is toestemming true voor leveranciers-ID 1
IABTCF_VendorLegitimateInterests Binary StringDe '0' or '1' op positie n - waar n's indexering begint om 0 - geeft de legitieme belangstatus aan voor Vendor ID n + 1; false als true respectievelijk. bijv. '1' bij index 0 is gerechtvaardigd belang gevestigd true voor leveranciers-ID 1
IABTCF_PurposeConsents Binary StringDe '0' or '1' op positie n - waar n's indexering begint om 0 - geeft de toestemmingsstatus aan voor doel-ID n + 1; false als true respectievelijk. bijv. '1' bij index 0 is toestemming true voor doel-ID 1
IABTCF_PurposeLegitimateInterests Binary StringDe '0' or '1' op positie n - waar n's indexering begint om 0 - geeft de legitieme belangstatus aan voor doel-ID n + 1; false als true respectievelijk. bijv. '1' bij index 0 is gerechtvaardigd belang gevestigd true voor doel-ID 1
IABTCF_SpecialFeaturesOptIns Binary StringDe '0' or '1' op positie n - waar n's indexering begint om 0 - geeft de aanmeldingsstatus aan voor speciale functie-ID n + 1; false als true respectievelijk. bijv. '1' bij index 0 is opt-in true voor speciale functie-ID 1
IABTCF_PublisherRestrictions{ID} String ['0','1', or '2']: De waarde op positie n - waar n's indexering begint om 0 - geeft het uitgeversbeperkingstype (0-2) voor leverancier aan n + 1; (zie Typen uitgeversbeperkingen). bijv. '2' bij index 0 is restrictieType 2 voor leveranciers-ID 1. {ID} verwijst naar de doel-ID.
IABTCF_PublisherConsent Binary StringDe '0' or '1' op positie n - waar n's indexering begint om 0 - geeft de toestemmingsstatus voor het doel-ID aan n + 1 voor de uitgever, aangezien deze overeenkomen met de doeleinden van de lijst met wereldwijde leveranciers; false als true respectievelijk. bijv. '1' bij index 0 is toestemming true voor doel-ID 1
IABTCF_PublisherLegitimateInterests Binary StringDe '0' or '1' op positie n - waar n's indexering begint om 0 - geeft het doel aan van de legitieme belangstatus voor het doel-ID n + 1 voor de uitgever, aangezien deze overeenkomen met de doeleinden van de lijst met wereldwijde leveranciers; false als true respectievelijk. bijv. '1' bij index 0 is gerechtvaardigd belang gevestigd true voor doel-ID 1
IABTCF_PublisherCustomPurposesConsents Binary StringDe '0' or '1' op positie n - waar n's indexering begint om 0 - geeft de toestemmingsstatus van het doel van de aangepaste ID van de uitgever aan n + 1 voor de uitgever; false als true respectievelijk. bijv. '1' bij index 0 is toestemming true voor aangepaste doel-ID 1
IABTCF_PublisherCustomPurposesLegitimateInterests Binary StringDe '0' or '1' op positie n - waar n's indexering begint om 0 - geeft de legitieme belangstatus van het doel aan voor de aangepaste doel-ID van de uitgever n + 1 voor de uitgever; false als true respectievelijk. bijv. '1' bij index 0 is gerechtvaardigd belang gevestigd true voor aangepaste doel-ID 1
IAB US Privacy  
IABUSPrivacy_String String: Komt overeen met IAB OpenRTB CCPA Advisory. De String codeert alle keuzes en informatie.
Google AC-tekenreeks  
IABTCF_AddtlConsent

String: Komt overeen met de technische specificatie Aanvullende toestemmingsmodus van Google. 

 

 

 

Terug naar boven