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
- Melden Sie sich in Ihrem AdMob-Konto an und wählen Sie Anzeigentechnologie-Anbieter aus.
Consent SDK importieren
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.
Tipps für die Verwendung des Consent SDK
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:
Wenn der zurückgegebene
ConsentStatus
-WertPERSONALIZED
oderNON_PERSONALIZED
ist, hat der Nutzer bereits die Einwilligung erteilt. Sie können jetzt die Einwilligung für das Google Mobile Ads SDK weiterleiten.Wenn der zurückgegebene
ConsentStatus
UNKNOWN
ist, lesen Sie unten den Abschnitt zur Einwilligung, in dem beschrieben wird, wie Sie Einwilligungsmethoden mit Einwilligungsmethoden erfassen.
Einwilligung einholen
Google's Consent SDK: bietet zwei Möglichkeiten, die Einwilligung des Nutzers einzuholen:

Dem Nutzer wird ein von Google gerendertes Einverständnisformular angezeigt.
Sie können die Liste der Anzeigentechnologie-Anbieter anfordern und die Einwilligung selbst über die Option Vom Publisher verwaltete Einwilligung einholen einholen.
Denken Sie daran, Nutzern die Möglichkeit zu geben, Ihre Einwilligung zu ändern oder zu widerrufen.
Von Google gerenderte Einwilligungsformular
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.
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 inConsentFormListener
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 einConsentStatus
-Wert, der den aktualisierten Einwilligungsstatus des Nutzers beschreibt.userPrefersAdFree
hat den Werttrue
, 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.
Einwilligungsformular laden
Nachdem du ein ConsentForm
-Objekt erstellt hast, lade das Einwilligungsformular, indem du die load()
-Methode von ConsentForm
aufrufst, wie unten gezeigt:
form.load();
Einwilligungsformular einblenden
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.
Vom Publisher verwaltete Einwilligung speichern
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.
Einwilligung ändern oder widerrufen
Wenn Sie möchten, dass Nutzer ihre Einwilligung selbst aktualisieren können, wiederholen Sie einfach die Schritte im Abschnitt Einwilligung einholen.
Nutzer, die das gültige Mindestalter noch nicht erreicht haben
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.
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.
Geben Sie Ihr Gerät mit der Werbe-ID von logcat als Testgerät an:
ConsentInformation.getInstance(context).addTestDevice("33BE2250B43518CCDA7DE426D04EE231");
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.
Einwilligung zum Google Mobile Ads SDK weiterleiten
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.