Mit Ihrem Feedback können Sie die Google Mobile Ads SDK-Roadmap mitgestalten. Nehmen Sie an der jährlichen Umfrage zum Google Mobile Ads SDK für 2023 teil, die bis zum 5. Mai 2023 endet.

Jetzt starten

Mit Sammlungen den Überblick behalten Sie können Inhalte basierend auf Ihren Einstellungen speichern und kategorisieren.

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

Google bietet das User Messaging Platform SDK (UMP) an, um Publisher bei der Umsetzung dieser Richtlinie zu unterstützen. Das UMP SDK wurde aktualisiert, um die neuesten IAB-Standards zu unterstützen. Alle diese Konfigurationen können jetzt bequem in AdMob Datenschutz und Mitteilungen durchgeführt werden.

Voraussetzungen

Arten von Nutzermitteilungen

Siehe Arten von Nutzermitteilungen Eine vollständige Liste der unterstützten Nachrichten. Eine genaue Anleitung zur Implementierung der einzelnen Nachrichtentypen finden Sie in der linken Navigationsleiste.

Mit Gradle installieren

Wenn Sie das Google Mobile Ads SDK in der Version 19.8.0 oder höher verwenden, ist das UMP SDK im Bundle enthalten. Wenn Sie eine frühere Version des Mobile Ads SDKs verwenden, fügen Sie das UMP SDK so in den build.gradle-Code Ihrer App ein:

dependencies {
    // This dependency is automatically included by Google Mobile Ads SDK 19.8.0
    // or higher.
    implementation 'com.google.android.ump:user-messaging-platform:2.0.0'
}

Nachdem Sie die Änderungen an build.gradle Ihrer Anwendung vorgenommen haben, müssen Sie Ihr Projekt mit Gradle-Dateien synchronisieren.

Rufen Sie als Nächstes Ihre App-ID auf. und füge es deinem AndroidManifest.xml hinzu:

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.example.rewardedinterstitialexample">

    <application
        android:allowBackup="true"
        android:icon="@mipmap/ic_launcher"
        android:label="@string/app_name"
        android:roundIcon="@mipmap/ic_launcher_round"
        android:supportsRtl="true"
        android:theme="@style/AppTheme">
        <!-- Sample app ID: ca-app-pub-3940256099942544~3347511713 -->
        <meta-data
            android:name="com.google.android.gms.ads.APPLICATION_ID"
            android:value="ca-app-pub-xxxxxxxxxxxxxxxx~yyyyyyyyyy"/>
        <activity android:name=".MainActivity">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
    </application>

</manifest>

Bestimmen, ob eine Nachricht angezeigt werden muss

Sie sollten bei jedem App-Start eine Aktualisierung der Einwilligungsinformationen des Nutzers anfordern, bevor Sie ein Formular laden. requestConsentInfoUpdate() So können Sie feststellen, ob Ihre Nutzer eine Einwilligung geben müssen, falls sie das noch nicht getan haben oder wenn ihre Einwilligung abgelaufen ist.

Verwenden Sie die im consentInformation-Objekt gespeicherten Informationen, wenn Sie das Formular bei Bedarf präsentieren.

Hier ein Beispiel dafür, wie Sie den Status beim App-Start prüfen können:

Java

package com.example.myapplication;

import androidx.appcompat.app.AppCompatActivity;

import android.os.Bundle;

import com.google.android.ump.ConsentForm;
import com.google.android.ump.ConsentInformation;
import com.google.android.ump.ConsentRequestParameters;
import com.google.android.ump.FormError;
import com.google.android.ump.UserMessagingPlatform;

public class MainActivity extends AppCompatActivity {
    private ConsentInformation consentInformation;
    private ConsentForm consentForm;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        // Set tag for under age of consent. false means users are not under
        // age.
        ConsentRequestParameters params = new ConsentRequestParameters
            .Builder()
            .setTagForUnderAgeOfConsent(false)
            .build();

        consentInformation = UserMessagingPlatform.getConsentInformation(this);
        consentInformation.requestConsentInfoUpdate(
            this,
            params,
            new ConsentInformation.OnConsentInfoUpdateSuccessListener() {
                @Override
                public void onConsentInfoUpdateSuccess() {
                    // The consent information state was updated.
                    // You are now ready to check if a form is available.
                }
            },
            new ConsentInformation.OnConsentInfoUpdateFailureListener() {
                @Override
                public void onConsentInfoUpdateFailure(FormError formError) {
                    // Handle the error.
                }
            });
    }
}

Kotlin

Coming soon.

Formular laden, falls verfügbar

Bevor ein Formular angezeigt werden kann, müssen Sie zuerst prüfen, ob eines verfügbar ist. Nicht verfügbare Formulare können daran liegen, dass der Nutzer eingeschränktes Anzeigen-Tracking aktiviert hat oder Sie das Formular als minderjährig gekennzeichnet haben.

Die Verfügbarkeit eines Formulars können Sie mit dem zuvor erstelltenthe isConsentFormAvailable() method on the ConsentInformation instance prüfen.

Fügen Sie dann eine Wrapper-Methode hinzu, um das Formular zu laden:

Java

...
       consentInformation.requestConsentInfoUpdate(
           this,
           params,
           new ConsentInformation.OnConsentInfoUpdateSuccessListener() {
               @Override
               public void onConsentInfoUpdateSuccess() {
                   // The consent information state was updated.
                   // You are now ready to check if a form is available.
                   if (consentInformation.isConsentFormAvailable()) {
                       loadForm();
                   }
               }
           },
           new ConsentInformation.OnConsentInfoUpdateFailureListener() {
               @Override
               public void onConsentInfoUpdateFailure(FormError formError) {
                   // Handle the error.

               }
            });
    }

    public void loadForm() {

    }
}

Kotlin

Coming soon.

Verwenden Sie the static loadConsentForm() method on the UserMessagingPlatform class, um das Formular zu laden.

Java

public void loadForm() {
    // Loads a consent form. Must be called on the main thread.
    UserMessagingPlatform.loadConsentForm(
        this,
        new UserMessagingPlatform.OnConsentFormLoadSuccessListener() {
            @Override
            public void onConsentFormLoadSuccess(ConsentForm consentForm) {
                MainActivity.this.consentForm = consentForm;
            }
        },
        new UserMessagingPlatform.OnConsentFormLoadFailureListener() {
            @Override
            public void onConsentFormLoadFailure(FormError formError) {
                // Handle the error
            }
        }
    );
}

Kotlin

Coming soon.

Präsentieren Sie das Formular bei Bedarf.

Nachdem Sie die Verfügbarkeit des Formulars ermittelt und geladen haben, verwenden Sie die Methodeshow() auf der InstanzConsentForm , um das Formular zu präsentieren.

Verwenden Sie dasconsentInformation -Objekt aus einem früheren Schritt, um dieconsent status zu prüfen und die MethodeloadForm() zu aktualisieren:

Java

public void loadForm() {
    UserMessagingPlatform.loadConsentForm(
        this,
        new UserMessagingPlatform.OnConsentFormLoadSuccessListener() {
            @Override
            public void onConsentFormLoadSuccess(ConsentForm consentForm) {
                MainActivity.this.consentForm = consentForm;
                if(consentInformation.getConsentStatus() == ConsentInformation.ConsentStatus.REQUIRED) {
                    consentForm.show(
                        MainActivity.this,
                            new ConsentForm.OnConsentFormDismissedListener() {
                                @Override
                                public void onConsentFormDismissed(@Nullable FormError formError) {
                                    // Handle dismissal by reloading form.
                                    loadForm();
                                }
                            });

                }

            }
        },
        new UserMessagingPlatform.OnConsentFormLoadFailureListener() {
            @Override
            public void onConsentFormLoadFailure(FormError formError) {
                /// Handle Error.
            }
        }
   );
}

Kotlin

Coming soon.

Wenn Sie Aktionen ausführen müssen, nachdem der Nutzer eine Auswahl getroffen oder das Formular geschlossen hat, platzieren Sie diese Logik in dem Vervollständigungs-Handler oder dem Callback für Ihr Formular.

Testen

Geografie erzwingen

Mit dem UMP SDK können Sie das Verhalten Ihrer App testen, als ob sich das Gerät im EWR oder im Vereinigten Königreich befinden würde, und zwar mithilfe von the setDebugGeography method on ConsentDebugSettings.Builder.

Sie müssen die Hash-ID Ihres Testgeräts in den Debug-Einstellungen Ihrer App angeben, um die Fehlerbehebungsfunktion verwenden zu können. Wenn SierequestConsentInfoUpdate() aufrufen, ohne diesen Wert festzulegen, protokolliert die Anwendung bei der Ausführung den erforderlichen ID-Hash.

Java

ConsentDebugSettings debugSettings = new ConsentDebugSettings.Builder(this)
    .setDebugGeography(ConsentDebugSettings
    .DebugGeography
    .DEBUG_GEOGRAPHY_EEA)
    .addTestDeviceHashedId("TEST-DEVICE-HASHED-ID")
    .build();

ConsentRequestParameters params = new ConsentRequestParameters
    .Builder()
    .setConsentDebugSettings(debugSettings)
    .build();

consentInformation = UserMessagingPlatform.getConsentInformation(this);
consentInformation.requestConsentInfoUpdate(this, params,
    new ConsentInformation.OnConsentInfoUpdateSuccessListener() {
        @Override
        public void onConsentInfoUpdateSuccess() {
            // The consent information state was updated.
            // You are now ready to check if a form is available.
        }
    },
    new ConsentInformation.OnConsentInfoUpdateFailureListener() {
        @Override
        public void onConsentInfoUpdateFailure(FormError formError) {
            // Handle the error.
        }
    });

Kotlin

Coming soon.

Mit DebugGeographykönnen Sie die Geografie auf eine der folgenden Optionen erzwingen:

DebugGeografie Beschreibung
DEBUG_GEOGRAPHY_DISABLED Debug-Geografie deaktiviert.
DEBUG_GEOGRAPHY_EEA Die Region entspricht bei Fehlerbehebungsgeräten dem EWR.
DEBUG_GEOGRAPHY_NOT_EEA Geografie wird für Debug-Geräte nicht im EWR angezeigt.

Die Einstellungen zur Fehlerbehebung funktionieren nur auf Testgeräten. Emulatoren müssen der Geräte-ID-Liste nicht hinzugefügt werden, da für sie standardmäßig bereits Tests aktiviert sind.

Wenn Sie Ihre App mit dem UMP SDK testen, kann es hilfreich sein, den SDK-Status zurückzusetzen, damit Sie die erste Installation eines Nutzers simulieren können. Das SDK bietet die Methode reset() dafür.

Java

consentInformation.reset();

Kotlin

consentInformation.reset()

Sie sollten sich auch an reset() wenden, wenn Sie das UMP SDK vollständig aus Ihrem Projekt entfernen möchten.