Einholung der Zustimmung von europäischen Benutzern

Gemäß der Richtlinie zur EU-Nutzereinwilligung von Google müssen Sie Ihren Nutzern im Europäischen Wirtschaftsraum (EWR) bestimmte Informationen offenlegen und ihre Einwilligung zur Verwendung von Cookies oder anderen lokalen Speicherverfahren, sofern gesetzlich erforderlich, sowie für die Bereitstellung personenbezogener Daten (z. B. AdID) einholen. Die Richtlinie entspricht den Anforderungen der EU-Datenschutzrichtlinie für elektronische Kommunikation und der EU-Datenschutz-Grundverordnung (DSGVO).

Zur Unterstützung von Publishern, die ihre Verpflichtungen gemäß dieser Richtlinie erfüllen, bietet Google ein Consent SDK an. Das Consent SDK ist eine Open-Source-Bibliothek, mit der Dienstprogrammfunktionen zum Einholen der Nutzereinwilligung bereitgestellt werden. Den vollständigen Quellcode findest du auf GitHub.

Von Google bereitgestellte Anzeigen können als personalisiert oder nicht personalisiert kategorisiert werden. Beides erfordert die Einwilligung von Nutzern im EWR. Anzeigenanfragen an Google führen standardmäßig zur Auslieferung personalisierter Anzeigen. Die Anzeigenauswahl basiert standardmäßig auf den zuvor erfassten Daten des Nutzers. Google unterstützt auch das Konfigurieren von Anzeigenanfragen, um nicht personalisierte Anzeigen bereitzustellen. Weitere Informationen zu personalisierten und nicht personalisierten Anzeigen

In diesem Leitfaden wird beschrieben, wie Sie das Consent SDK verwenden, um die Einwilligung der Nutzer einzuholen. Außerdem erfahren Sie, wie Sie die Einwilligung zum Google Mobile Ads SDK weiterleiten, nachdem Sie die Einwilligung erhalten haben.

Vorbereitung

Apps können das Consent SDK mit einer Gradle-Abhängigkeit importieren, die auf das Maven-Repository von Google verweist. Wenn du dieses Repository verwenden möchtest, musst du in der Datei build.gradle auf Projektebene darauf verweisen. Öffnen Sie Ihren Abschnitt und suchen Sie einen Abschnitt allprojects:

Beispiel für build.gradle-Datei auf Projektebene (Auszug)

allprojects {
    repositories {
        google()
        jcenter()
    }
}

Füge die oben stehende google()-Anweisung hinzu, falls sie noch nicht vorhanden ist.

Öffnen Sie dann die Datei build.gradle auf App-Ebene für Ihre Anwendung und suchen Sie nach dem Abschnitt „Abhängigkeiten & Quot;“.

build.gradle-Datei auf App-Ebene (Auszug)

dependencies {
    implementation fileTree(dir: 'libs', include: ['*.jar'])
    implementation 'androidx.appcompat:appcompat:1.2.0'
    implementation 'com.google.android.ads.consent:consent-library:1.0.6'
}

Fügen Sie die fett formatierte Zeile oben hinzu, damit Gradle aufgefordert wird, die neueste Version des Consent SDK abzurufen. Wenn du fertig bist, speichere die Datei und führe eine Gradle-Synchronisierung durch.

Bevor Sie andere Methoden im Consent SDK verwenden, sollten Sie den Einwilligungsstatus aktualisieren, damit das Consent SDK die neuesten Informationen zu den Anzeigentechnologie-Anbietern hat, die Sie in derAdMob -UI ausgewählt haben. Wenn sich die Liste der Anzeigentechnologie-Anbieter seit der letzten Einwilligung des Nutzers geändert hat, wird der Einwilligungsstatus auf einen unbekannten Status zurückgesetzt.

Wenn Sie die Vermittlung nicht verwenden

Wenn Sie die Vermittlung nicht verwenden, haben Sie zwei Möglichkeiten, das Consent SDK zu implementieren, um die Einwilligung einzuholen.

Eine Möglichkeit ist, das Consent SDK zu verwenden, um Ihren Nutzern ein von Google gerendertes Einwilligungsformular anzuzeigen. Das Einwilligungsformular enthält eine Liste der Anzeigentechnologie-Anbieter, die Sie in der Benutzeroberfläche ausgewählt haben. AdMobDas Consent SDK speichert die Antwort zur Nutzereinwilligung.

Mit der Consent SDK können Sie dynamisch die vollständige Liste der Anzeigentechnologie-Anbieter aus AdMobabrufen. Weitere Informationen finden Sie unter Vom Publisher verwaltete Einwilligungssammlung. In diesem Fall musst du jedoch festlegen, wie deine Nutzer die Liste der Anbieter verfügbar machen sollen, und deinen Nutzern ein eigenes Einwilligungsformular präsentieren.

Wenn der Nutzer eine Einwilligungsentscheidung getroffen hat, können Sie das Consent SDK bitten, die Einwilligungsauswahl des Nutzers zu speichern, wie unter Vom Publisher verwaltete Einwilligung speichern beschrieben.

Wenn ein Nutzer eingewilligt hat, dass nur seine nicht personalisierten Anzeigen ausgeliefert werden dürfen, müssen Sie bei der Einwilligung die Nutzer zum Google Mobile Ads SDK weiterleiten.

Wenn Sie die AdMob Vermittlung

Mit dem Consent SDK können Sie dynamisch die vollständige Liste der Anzeigentechnologie-Anbieter aus AdMobabrufen. Informationen dazu finden Sie unter Vom Publisher verwaltete Einwilligungserfassung. Sie müssen festlegen, welche zusätzlichen Anzeigentechnologie-Anbieter aus anderen Werbenetzwerken Ihren Nutzern zur Einholung der Einwilligung vorgelegt werden müssen.

Als App-Entwickler müssen Sie die Nutzereinwilligung für die Anzeigentechnologie-Anbieter einholen, die vom Consent SDK zurückgegeben werden, sowie für die Anbieter anderer Werbenetzwerke. Außerdem müssen Sie Antworten zur Einwilligung der Nutzer manuell speichern und das Google Mobile Ads SDK weiterleiten, wenn der Nutzer in die Verwendung von nicht personalisierten Anzeigen eingewilligt hat.

Google kann derzeit keine Einwilligung für Vermittlungsnetzwerke einholen und verarbeiten. Daher müssen Sie die Einwilligung für jedes Werbenetzwerk separat einholen. Implementierungsanleitungen finden Sie im Integrationsleitfaden für jeden Vermittlungspartner.

Einwilligungsstatus aktualisieren

Wenn Sie das Consent SDK verwenden, wird empfohlen, den Status einer Nutzereinwilligung bei jedem App-Start zu bestimmen. Rufe dazu requestConsentInfoUpdate() für eine Instanz von ConsentInformation auf.

import com.google.ads.consent.*;

public class MainActivity extends Activity {
    ...

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        ...
        ConsentInformation consentInformation = ConsentInformation.getInstance(context);
        String[] publisherIds = {"pub-0123456789012345"};
        consentInformation.requestConsentInfoUpdate(publisherIds, new ConsentInfoUpdateListener() {
            @Override
            public void onConsentInfoUpdated(ConsentStatus consentStatus) {
                 // User's consent status successfully updated.
            }

            @Override
            public void onFailedToUpdateConsentInfo(String errorDescription) {
                 // User's consent status failed to update.
            }
        });
        ...
    }
    ...
}

Für den Aufruf von requestConsentInfoUpdate() sind zwei Argumente erforderlich:

  • Ein Array mit gültigen, vollständig aktivierten Publisher-IDs, von denen Ihre App Anzeigen anfordert. Publisher-ID ermitteln

  • Eine Instanz von ConsentInfoUpdateListener.

Der Einwilligungsstatus wird mit der Methode onConsentInfoUpdated() von ConsentInfoUpdateListener aktualisiert. Die zurückgegebene ConsentStatus kann die folgenden Werte enthalten:

Status der Einwilligungserklärung Definition
ConsentStatus.PERSONALIZED Der Nutzer hat der Einwilligung für personalisierte Werbung zugestimmt.
ConsentStatus.NON_PERSONALIZED Der Nutzer hat seine Einwilligung für nicht personalisierte Anzeigen erteilt.
ConsentStatus.UNKNOWN Der Nutzer hat der Auslieferung personalisierter oder nicht personalisierter Anzeigen weder zugestimmt noch abgelehnt.

Sobald die Einwilligungsinformationen aktualisiert wurden, kannst du anhand von ConsentInformation.getInstance(context).isRequestLocationInEeaOrUnknown() auch prüfen, ob sich der Nutzer im Europäischen Wirtschaftsraum befindet oder der Anfragestandort unbekannt ist.

Wenn bei der Methode isRequestLocationInEeaOrUnknown() false zurückgegeben wird, befindet sich der Nutzer nicht im Europäischen Wirtschaftsraum und ist gemäß der Richtlinie zur EU-Nutzereinwilligung nicht erforderlich. Sie können Anzeigenanfragen an das Google Mobile Ads SDK senden.

Wenn die Methode isRequestLocationInEeaOrUnknown() true zurückgibt:

Google's Consent SDK: bietet zwei Möglichkeiten, die Einwilligung des Nutzers einzuholen:

Denken Sie daran, Nutzern die Möglichkeit zu geben, Ihre Einwilligung zu ändern oder zu widerrufen.

Das von Google gerenderte Einwilligungsformular ist ein konfigurierbares Vollbildformular, das über deinen App-Inhalten angezeigt wird. Du kannst das Formular so konfigurieren, dass dem Nutzer Kombinationen aus folgenden Optionen angezeigt werden:

  • Einwilligung zum Ansehen personalisierter Anzeigen
  • Einwilligung zum Ansehen nicht personalisierter Anzeigen
  • Kostenpflichtige Version der App verwenden, statt Anzeigen anzusehen

Du solltest den Text zur EU-Nutzereinwilligung sorgfältig lesen. Standardmäßig wird eine Meldung angezeigt, die möglicherweise angezeigt wird, wenn du Google zur Monetarisierung deiner App verwendest. Wir bieten jedoch keine Rechtsberatung zu dem entsprechenden Text an. Um den Einwilligungstext des von Google gerenderten Einwilligungsformulars zu aktualisieren, ändern Sie die consentform.html-Datei im Consent SDK nach Bedarf.

Das von Google gerenderte Einwilligungsformular wird mithilfe der Klasse ConsentForm konfiguriert und angezeigt. Der folgende Code zeigt, wie Sie eine ConsentForm mit allen drei Einwilligungsoptionen erstellen:

URL privacyUrl = null;
try {
    // TODO: Replace with your app's privacy policy URL.
    privacyUrl = new URL("https://www.your.com/privacyurl");
} catch (MalformedURLException e) {
    e.printStackTrace();
    // Handle error.
}
ConsentForm form = new ConsentForm.Builder(context, privacyUrl)
    .withListener(new ConsentFormListener() {
        @Override
        public void onConsentFormLoaded() {
            // Consent form loaded successfully.
        }

        @Override
        public void onConsentFormOpened() {
            // Consent form was displayed.
        }

        @Override
        public void onConsentFormClosed(
                ConsentStatus consentStatus, Boolean userPrefersAdFree) {
            // Consent form was closed.
        }

        @Override
        public void onConsentFormError(String errorDescription) {
            // Consent form error.
        }
    })
    .withPersonalizedAdsOption()
    .withNonPersonalizedAdsOption()
    .withAdFreeOption()
    .build();

Mit den oben genannten Methoden wird das von Google gerenderte Einwilligungsformular mit den folgenden Optionen vorbereitet:

withListener()
Registriert einen Listener für die ConsentForm. Jede der überschreibbaren Methoden in ConsentFormListener entspricht einem Ereignis im Lebenszyklus der Einwilligungsformular.
Überschreibbare Methoden
onConsentFormLoaded Das Formular für die Einwilligung wurde geladen.
onConsentFormError Das Formular für die Einwilligung konnte nicht geladen werden. Der Parameter errorDescription enthält eine Beschreibung des Fehlers.
onConsentFormOpened Das Formular für die Einwilligung wurde geöffnet.
onConsentFormClosed Das Formular für die Einwilligung wurde geschlossen. Die Parameter der Methode enthalten folgende Informationen:
  • consentStatus ist ein ConsentStatus-Wert, der den aktualisierten Einwilligungsstatus des Nutzers beschreibt.
  • userPrefersAdFree hat den Wert true, wenn der Nutzer statt der Anzeigen eine kostenpflichtige Version der App verwendet.
withPersonalizedAdsOption()
Gibt an, dass die Einwilligungserklärung eine personalisierte Anzeigenoption enthalten muss.
withNonPersonalizedAdsOption()
Gibt an, dass die Einwilligungserklärung eine nicht personalisierte Anzeigenoption enthalten soll.
withAdFreeOption()
Gibt an, dass das Formular zur Einwilligungserklärung eine Option für Apps ohne Werbeanzeigen enthalten soll.

Nachdem du ein ConsentForm-Objekt erstellt hast, lade das Einwilligungsformular, indem du die load()-Methode von ConsentForm aufrufst, wie unten gezeigt:

form.load();

Um dem Nutzer das von Google gerenderte Einwilligungsformular zu zeigen, kannst du show() wie unten gezeigt auf einer Instanz von ConsentForm aufrufen:

form.show();

Nachdem der Nutzer eine Option ausgewählt und das Formular geschlossen hat, speichert das Consent SDK die Auswahl des Nutzers und löst das onConsentFormClosed-Ereignis aus. Sie können auf dieses Ereignis zugreifen und die Google Mobile Ads SDK weiterleiten.

Vom Publisher verwaltete Einwilligungserfassung

Wenn Sie die Einwilligung selbst einholen möchten, können Sie die getAdProviders()-Methode der Klasse ConsentInformation verwenden, um die Anzeigentechnologie-Anbieter abzurufen, die mit den in Ihrer App verwendeten Publisher-IDs verknüpft sind. Beachten Sie, dass die Einwilligung für die gesamte Liste der Anzeigentechnologie-Anbieter erforderlich ist, die für Ihre Publisher-IDs konfiguriert wurden.

Bevor du getAdProviders() aufrufen kannst, musst du auf die onConsentInfoUpdate()-Methode von ConsentInfoUpdateListener warten, wie im Abschnitt Einwilligungsstatus aktualisieren beschrieben.

List<AdProvider> adProviders =
    ConsentInformation.getInstance(context).getAdProviders();

Anschließend können Sie die Liste der Anzeigentechnologie-Anbieter verwenden, um die Einwilligung selbst einzuholen.

Nachdem die Einwilligung erteilt wurde, zeichnet ConsentStatus mit der Antwort des Nutzers auf. Verwende dazu die Methode setConsentStatus() der Klasse ConsentInformation.

ConsentInformation.getInstance(context)
    .setConsentStatus(ConsentStatus.PERSONALIZED);

Nachdem Sie die Einwilligung an das Consent SDK gemeldet haben, können Sie die Weiterleitung an das Google Mobile Ads SDK weiterleiten.

Wenn Sie möchten, dass Nutzer ihre Einwilligung selbst aktualisieren können, wiederholen Sie einfach die Schritte im Abschnitt Einwilligung einholen.

Wenn einem Publisher bewusst ist, dass der Nutzer das gültige Mindestalter noch nicht erreicht hat, muss für alle Anzeigenanfragen das TFUA-Tag für Nutzer unter 0 Jahren verwendet werden. Um dieses Tag in alle Anzeigenanfragen Ihrer App einzubinden, rufe setTagForUnderAgeOfConsent(true) auf. Diese Einstellung gilt für alle zukünftigen Anzeigenanfragen.

ConsentInformation.getInstance(context).setTagForUnderAgeOfConsent(true);

Sobald die TFUA-Einstellung aktiviert ist, kann das von Google gerenderte Einwilligungsformular nicht geladen werden. Anzeigenanfragen mit TFUA können nicht für personalisierte Werbung und Remarketing verwendet werden. TFUA deaktiviert Anfragen von Anzeigentechnologie-Drittanbietern wie etwa Tracking-Pixeln und Ad-Server eines Drittanbieters.

Rufen Sie setTagForUnderAgeOfConsent(false) auf, um TFUA aus Anzeigenanfragen zu entfernen.

Test

Das Consent SDK verhält sich je nach Wert für ConsentInformation.getInstance(context).isRequestLocationInEeaOrUnknown() anders. Das Einwilligungsformular wird beispielsweise nicht geladen, wenn sich der Nutzer nicht im EWR befindet.

Um das Testen der App innerhalb und außerhalb des EWR zu erleichtern, unterstützt das Consent SDK die Fehlerbehebungsoptionen, die Sie vor dem Aufrufen anderer Methoden im Consent SDK festlegen können.

  1. Folgen Sie der Anleitung im Abschnitt Aktualisierung des Einwilligungsstatus, um requestConsentInfoUpdate aufzurufen. Führen Sie dann Ihre App aus. Prüfen Sie die Logcat-Ausgabe für das folgende Log:

    I/ConsentInformation: Use
    ConsentInformation.getInstance(context).addTestDevice("33BE2250B43518CCDA7DE426D04EE231")
    to get test ads on this device.
  2. Geben Sie Ihr Gerät mit der Werbe-ID von logcat als Testgerät an:

    ConsentInformation.getInstance(context).addTestDevice("33BE2250B43518CCDA7DE426D04EE231");
  3. Rufen Sie schließlich setDebugGeography auf, um Ihre bevorzugte Region für Testzwecke festzulegen.

    // Geography appears as in EEA for test devices.
    ConsentInformation.getInstance(context).
        setDebugGeography(DebugGeography.DEBUG_GEOGRAPHY_EEA);
    // Geography appears as not in EEA for debug devices.
    ConsentInformation.getInstance(context).
        setDebugGeography(DebugGeography.DEBUG_GEOGRAPHY_NOT_EEA);

Nachdem Sie diese Schritte ausgeführt haben, wird bei Aufrufen zum Aktualisieren des Einwilligungsstatus Ihre geografische Fehlerbehebung berücksichtigt.

Der Code in diesem Abschnitt kann mit jeder Version des Google Mobile Ads SDK verwendet werden. Es kann auch unabhängig davon verwendet werden, ob Sie das Consent SDK zum Einholen der Einwilligung verwendet haben.

Das Standardverhalten des Google Mobile Ads SDK ist die Bereitstellung personalisierter Anzeigen. Wenn ein Benutzer zugestimmt hat, nur nicht personalisierte Werbung zu erhalten, können Sie ein AdRequest Objekt konfigurieren, um anzugeben, dass nur nicht personalisierte Werbung angefordert werden soll. Der folgende Code bewirkt, dass nicht personalisierte Anzeigen angefordert werden, unabhängig davon, ob sich der Benutzer im EWR befindet oder nicht:

Bundle extras = new Bundle();
extras.putString("npa", "1");

AdRequest request = new AdRequest.Builder()
    .addNetworkExtrasBundle(AdMobAdapter.class, extras)
    .build();

Wenn nicht personalisierte Anzeigen angefordert werden, enthält die Anzeigenanforderungs-URL derzeit &npa=1 . Beachten Sie jedoch, dass dies ein internes Implementierungsdetail des Google Mobile Ads SDK ist und sich ändern kann.

App-Messung verzögern (optional)

Standardmäßig wird die App-Messung vom Google Mobile Ads SDK initialisiert. Sobald die App gestartet wurde, werden Ereignisdaten auf Nutzerebene an Google gesendet. Mit diesem Initialisierungssystem können Sie AdMob-Nutzermesswerte aktivieren, ohne zusätzliche Codeänderungen vornehmen zu müssen.

Falls Ihre App jedoch die Zustimmung des Nutzers benötigt, bevor diese Ereignisse gesendet werden können, lässt sich die App-Messung verzögern, bis Sie das Mobile Ads SDK explizit initialisieren oder eine Anzeige laden.

Wenn Sie die App-Messung verzögern möchten, fügen Sie das folgende <meta-data>-Tag in den AndroidManifest.xml ein.

<manifest>
     <application>
        <!-- Delay app measurement until MobileAds.initialize() is called. -->
        <meta-data
            android:name="com.google.android.gms.ads.DELAY_APP_MEASUREMENT_INIT"
            android:value="true"/>
    </application>
</manifest>

FAQ

Wie viele Anzeigentechnologie-Anbieter unterstützt das Consent SDK?
Das Consent SDK legt keine Begrenzung für die Anzahl der Anzeigentechnologie-Anbieter fest, die ein Publisher aktiviert.
Wird die Liste der vom SDK zurückgegebenen Anzeigentechnologie-Anbieter automatisch aktualisiert, wenn ich meine Auswahl in der AdMob Benutzeroberfläche ändere?
Ja. Wenn Sie die Liste der Anzeigentechnologie-Anbieter in derAdMob Benutzeroberfläche ändern, werden die Änderungen in etwa einer Stunde auf den Ad-Servern von Google übernommen.