Info
Inhalt

ConsentManager GDPR / CCPA SDK für Android

Das ConsentManager SDK für Android-Apps implementiert und bietet Funktionen, um den Benutzer über den Datenschutz zu informieren und die Zustimmung des Benutzers einzuholen und einzuholen. Es ermöglicht App-Entwicklern, das einfach zu integrieren ConsentManager Service in ihre App.

Unterstützte Standards

Das ConsentManager Das GDPR / CCPA SDK für Android unterstützt die folgenden Industriestandards:

  • IAB TCF v1
  • IAB TCF v2
  • IAB USPrivacy v1
  • ConsentManager benutzerdefinierte Anbieter / Zwecke
  • Zusätzlicher Zustimmungsmodus von Google (Google AC String)

So funktioniert's

  1. Integrieren Sie das SDK in die App und konfigurieren Sie die SDK-Einstellungen
  2. Sobald das SDK in eine App eingebunden ist, stellt das SDK Funktionen für den App-Entwickler bereit, um Zustimmungsdaten abzurufen
  3. Sobald die App gestartet wird, ruft das SDK automatisch Informationen von der ab ConsentManager Server, um das SDK für die Verwendung vorzubereiten.
  4. Es wird empfohlen, dass die App beim Start der App eine Klasseninstanz erstellt CMPConsentTool. Sobald dies erstellt wurde, zeigt das SDK bei Bedarf automatisch den Zustimmungsbildschirm an.
  5. Wenn die App personenbezogene Daten verarbeiten möchte, sollte sie das SDK "fragen", ob die Zustimmung für den jeweiligen Zweck und Anbieter erteilt wurde.

Montage

Laden Sie das SDK herunter

Bitte laden Sie die neueste Version des SDK hier herunter: https://plugins.consentmanager.net/Android-SDK.zip

Die Zip-Datei enthält zwei Ordner consentmanager und ConsentManagerTest. Der Ordner ConsentManagerTest enthält ein Beispielprojekt, das die Verwendung des SDK mit Android Studio veranschaulicht. Der Ordner consentmanager enthält nur die Dateien, die sich auf das SDK selbst beziehen, um es in Ihr eigenes Projekt zu integrieren.

Das SDK ist für Android SDK Platform Version 29 und höher konfiguriert.

Integration

Führen Sie die folgenden Schritte aus, um das SDK in Ihr vorhandenes Projekt zu integrieren:

  1. Öffnen Sie Ihr vorhandenes Projekt in Android Studio und klicken Sie auf Menü> Neu> Datei> Modul importieren ...

  2. Klicken Sie auf das Browsersymbol und wählen Sie die consentmanager Ordner aus dem ConsentManager SDK und klicken Sie auf Fertig stellen:

  3. Klicke auf Menü> Datei> Projektstrukturen ..., navigieren zu Abhängigkeiten> App, Klicken Sie auf die + Symbol und wählen Sie Modulabhängigkeit:
  4. Auswählen consentmanager als die Abhängigkeit, die Sie hinzufügen und klicken möchten OK

  5. In Projekt Explorer zurück zur Gradle-Skripte> build.gradle (Modul: App) und fügen Sie die folgenden Zeilen hinzu android { ... } Abschnitt:
    compileOptions 
    {
    sourceCompatibility JavaVersion.VERSION_1_8
    targetCompatibility JavaVersion.VERSION_1_8
    }
  6. Klicke auf Jetzt synchronisieren um das Projekt zu aktualisieren

Berechtigungen

Für dieses SDK sind die folgenden Berechtigungen erforderlich. Stellen Sie sicher, dass Sie diese zu Ihrer AndroidManifest.xml hinzufügen:

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

Initiieren Sie das SDK

Mit dem App-Start (normalerweise Ihrer onCreate-Funktion) können Sie sollen Erstellen Sie eine Instanz der Klasse CMPConsentTool. Dadurch werden automatisch die erforderlichen Daten von unserem Server abgerufen und festgestellt, ob der Zustimmungsbildschirm angezeigt werden muss oder nicht. In diesem Fall zeigt das SDK an dieser Stelle automatisch den Zustimmungsbildschirm an, sammelt die Daten und stellt die Daten der App zur Verfügung. Die Instanz kann dann verwendet werden, um Zustimmungsdetails vom SDK abzurufen und in der App zu verwenden.

public class MainActivity extends AppCompatActivity {
    
    private CMPConsentTool consentTool; //create a CMPConsentTool

    @Override
    protected void onCreate(Bundle savedInstanceState) {
      // ...
      
      // create an instance
      consentTool = CMPConsentTool.createInstance(this, 123456, "consentmanager.mgr.consensu.org", "MyFavouriteApp", "");
      
      // ...
    }
  
    // ...
}

Um die Instanz von CMPConsentTool zu erstellen, müssen Sie die Instanz konfigurieren. Sie müssen die CMP-ID, die Serverdomäne, einen App-Namen und eine Sprache angeben. Die CMP-ID und die Serverdomäne finden Sie in Ihrer ConsentManager Konto unter Menü> Code abrufen. Der App-Name kann verwendet werden, um verschiedene Apps in der zu unterscheiden ConsentManager Berichterstattung. Für die Sprache können Sie entweder eine leere Zeichenfolge ("") zur automatischen Erkennung oder einen aus zwei Buchstaben bestehenden Sprachcode ("EN", "DE", "FR" usw.) verwenden.

Die Konfigurationswerte können auf verschiedene Arten eingefügt werden:

a) SDK-Konfiguration über Manifest

Fügen Sie die folgenden Zeilen zu Ihrer AndroidManifest.xml unter Abschnitt hinzu <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" />

Wenn Sie diese Art der Konfiguration verwenden, erstellen Sie eine Instanz von CMPConsentTool über:

consentTool = CMPConsentTool.createInstance(this);
b) SDK-Konfiguration über CMPConfig

Fügen Sie Ihrem Code die folgenden Zeilen hinzu:

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

Fügen Sie Ihrem Code die folgende Zeile hinzu:

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

Verwenden des SDK

Um zu überprüfen, ob ein Anbieter oder ein Zweck eine Einwilligung hat, können Sie die beiden folgenden Methoden verwenden:

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

Beide Methoden hasPurposeConsent und hasVendorConsent erfordern zwei Parameter:

  • id - Zeichenfolge der Hersteller- oder Zweck-ID. Bitte beachten Sie, dass Hersteller-IDs unterschiedliche Formate haben können ("123", "s123" und "c123") Menü> Anbieter und Menü> Zwecke in Ihrem ConsentManager Konto.
  • isIABVendor / isIABPurpose - Wenn der Anbieter oder Zweck ein Anbieter / Zweck ist, der dem IAB-TCF-Standard entspricht, müssen Sie ein true festlegen, andernfalls ein false.

Denken Sie daran: Alle Anbieter, die nicht zum IAB gehören, haben IDs, die mit einem "s" oder "c" beginnen (z. B. "s123"). Anbieter, die zum IAB gehören, haben IDs, die nicht mit einem "s" oder "c" beginnen.

Öffnen Sie den Zustimmungsbildschirm erneut

Damit der Benutzer die Auswahl ändern kann, können Sie einfach anrufen openCmpConsentToolView():

consentTool.openCmpConsentToolView(this);

In einigen Fällen kann eine native App Webansichten enthalten, um bestimmte Dinge wie Werbung oder Inhalte anzuzeigen. Verwenden Sie die folgende Funktion, um die Einwilligungsinformationen vom SDK an die Webansicht zu übertragen:

String consentData = CMPConsentTool.exportCMPData(this);

Dadurch werden die Zustimmungsinformationen und alle weiteren Daten exportiert, die vom CMP benötigt werden. Sie können diese Informationen dann an das CMP in Ihrer Webansicht übergeben, indem Sie sie der in der Webansicht aufgerufenen URL hinzufügen:

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

Gemeinsame Einstellungen

Das SDK legt die gemeinsamen Einstellungswerte für IAB TCF v1, IAB TCF v2, IAB USPrivacy und Google AC String fest. Diese Werte können mit dem folgenden Code gelesen werden:

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

Folgende Schlüssel sind definiert:

IAB TCF v1
IABConsent_CMPPresent Boolean: Auf true setzen, wenn in der Anwendung ein CMP vorhanden ist, das diese Spezifikation implementiert. Idealerweise so schnell wie möglich vom Publisher festgelegt, kann aber auch alternativ vom CMP festgelegt werden.
IABConsent_SubjectToGDPR String 1 - (vorbehaltlich der DSGVO), 0 - (nicht vorbehaltlich der DSGVO), Null - unbestimmt (Standard vor der Initialisierung). Stimmt mit IAB OpenRTB GDPR Advisory überein. Beschlossen, String zu sein, um den Status "Nicht initialisiert" zu haben.
IABConsent_ConsentString String: Zustimmungszeichenfolge
IABConsent_ParsedPurposeConsents String (von "0" und "1") wobei das Zeichen an Position N den Zustimmungsstatus für die Zweck-ID N angibt, wie in der globalen Lieferantenliste definiert. Einverständniserklärung zur einfachen Überprüfung. Das erste Zeichen von links ist Zweck 1, ...
IABConsent_ParsedVendorConsents String (von "0" und "1") wobei das Zeichen an Position N den Zustimmungsstatus für die Lieferanten-ID N angibt, wie in der globalen Lieferantenliste definiert. Einverständniserklärung zur einfachen Überprüfung. Das erste Zeichen von links ist Anbieter 1, ...
IAB TCF v2
IABTCF_CmpSdkID Number: Die vorzeichenlose Ganzzahl-ID des CMP-SDK
IABTCF_CmpSdkVersion Number: Die vorzeichenlose Ganzzahl-Versionsnummer des CMP SDK
IABTCF_PolicyVersion Number: Die vorzeichenlose Ganzzahl, die die Version der TCF darstellt, an die sich diese Zustimmungen halten.
IABTCF_gdprApplies Number:

1 Die DSGVO gilt im aktuellen Kontext

0 - GDPR tut im aktuellen Kontext anwenden

Nicht gesetzt - unbestimmt (Standard vor der Initialisierung)

IABTCF_PublisherCC String: Zweistelliger Alpha-3166-Code nach ISO 1-2 - Standard: AA (unbekannt)
IABTCF_PurposeOneTreatment Number:

0 - keine besondere Behandlung von Zweck eins

1 - Zweck eins nicht bekannt gegeben

Standardeinstellung deaktivieren - 0

Anbieter können diesen Wert verwenden, um zu bestimmen, ob eine Einwilligung für den Zweck erforderlich ist.

IABTCF_UseNonStandardStacks Number:

1 - CMP verwendete einen nicht standardmäßigen Stapel

0 - CMP hat keinen nicht standardmäßigen Stapel verwendet

IABTCF_TCString String: Vollständig codierter TC-String
IABTCF_VendorConsents Binary String: Das '0' or '1' an Position n - woher nDie Indizierung beginnt um 0 - Gibt den Zustimmungsstatus für die Lieferanten-ID an n + 1; false und true beziehungsweise. z.B. '1' am Index 0 ist Zustimmung true für Lieferanten-ID 1
IABTCF_VendorLegitimateInterests Binary String: Das '0' or '1' an Position n - woher nDie Indizierung beginnt um 0 - Gibt den Status des berechtigten Interesses für die Lieferanten-ID an n + 1; false und true beziehungsweise. z.B. '1' am Index 0 ist berechtigtes Interesse festgestellt true für Lieferanten-ID 1
IABTCF_PurposeConsents Binary String: Das '0' or '1' an Position n - woher nDie Indizierung beginnt um 0 - gibt den Zustimmungsstatus für die Zweck-ID an n + 1; false und true beziehungsweise. z.B. '1' am Index 0 ist Zustimmung true für Zweck ID 1
IABTCF_PurposeLegitimateInterests Binary String: Das '0' or '1' an Position n - woher nDie Indizierung beginnt um 0 - gibt den Status des berechtigten Interesses für die Zweck-ID an n + 1; false und true beziehungsweise. z.B. '1' am Index 0 ist berechtigtes Interesse festgestellt true für Zweck ID 1
IABTCF_SpecialFeaturesOptIns Binary String: Das '0' or '1' an Position n - woher nDie Indizierung beginnt um 0 - Zeigt den Anmeldestatus für die ID der Sonderfunktion an n + 1; false und true beziehungsweise. z.B. '1' am Index 0 ist opt-in true für spezielle Feature-ID 1
IABTCF_PublisherRestrictions{ID} String ['0','1', or '2']: Der Wert an der Position n - woher nDie Indizierung beginnt um 0 - Gibt den Publisher-Einschränkungstyp (0-2) für den Anbieter an n + 1;; (Siehe Publisher-Einschränkungstypen). z.B. '2' am Index 0 ist restriktionsart 2 für Lieferanten-ID 1. {ID} bezieht sich auf die Zweck-ID.
IABTCF_PublisherConsent Binary String: Das '0' or '1' an Position n - woher nDie Indizierung beginnt um 0 - Gibt den Status der Zweckgenehmigung für die Zweck-ID an n + 1 für den Verlag, da sie den Zwecken der globalen Lieferantenliste entsprechen; false und true beziehungsweise. z.B. '1' am Index 0 ist Zustimmung true für Zweck ID 1
IABTCF_PublisherLegitimateInterests Binary String: Das '0' or '1' an Position n - woher nDie Indizierung beginnt um 0 - Gibt den Status des berechtigten Zwecks des Zwecks für die Zweck-ID an n + 1 für den Verlag, da sie den Zwecken der globalen Lieferantenliste entsprechen; false und true beziehungsweise. z.B. '1' am Index 0 ist berechtigtes Interesse festgestellt true für Zweck ID 1
IABTCF_PublisherCustomPurposesConsents Binary String: Das '0' or '1' an Position n - woher nDie Indizierung beginnt um 0 - Gibt den Status der Zweckgenehmigung für die benutzerdefinierte Zweck-ID des Herausgebers an n + 1 für den Verlag; false und true beziehungsweise. z.B. '1' am Index 0 ist Zustimmung true für benutzerdefinierte Zweck ID 1
IABTCF_PublisherCustomPurposesLegitimateInterests Binary String: Das '0' or '1' an Position n - woher nDie Indizierung beginnt um 0 - Gibt den Status des berechtigten Zwecks des Zwecks für die benutzerdefinierte Zweck-ID des Herausgebers an n + 1 für den Verlag; false und true beziehungsweise. z.B. '1' am Index 0 ist berechtigtes Interesse festgestellt true für benutzerdefinierte Zweck ID 1
IAB USPrivacy
IABUSPrivacy_String String: Stimmt mit IAB OpenRTB CCPA Advisory überein. Der String codiert alle Auswahlmöglichkeiten und Informationen.
Google AC String
IABTCF_AddtlConsent

String: Entspricht der technischen Spezifikation des zusätzlichen Zustimmungsmodus von Google.

Nach oben