Jetzt starten

Das UMP SDK (User Messaging Platform) von Google ist ein Tool für Datenschutz und Mitteilungen, mit dem Sie Ihre Datenschutzeinstellungen verwalten können. Weitere Informationen finden Sie unter Datenschutz und Mitteilungen. Eine funktionierende IMA-Implementierung mit dem UMP SDK findest du in der UMP-Beispiel-App.

Vorbereitung

  • Android API-Level 21 oder höher

Nachrichtentyp erstellen

Erstellen Sie Nutzermitteilungen mit einem der verfügbaren Mitteilungstypen auf dem Tab Datenschutz und Mitteilungen Ihres Ad Manager-Kontos. Das UMP SDK versucht, eine Datenschutzmitteilung anzuzeigen, die anhand der in Ihrem Projekt festgelegten Anwendungs-ID für Interactive Media Ads erstellt wurde.

Weitere Informationen finden Sie unter Datenschutz und Mitteilungen.

Mit Gradle installieren

Fügen Sie der Gradle-Datei Ihres Moduls auf Anwendungsebene, normalerweise app/build.gradle, die Abhängigkeit für das Google User Messaging Platform SDK hinzu:

dependencies {
  implementation("com.google.android.ump:user-messaging-platform:3.1.0")
}

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

App-ID hinzufügen

Sie finden Ihre Anwendungs-ID in der Ad Manager-Benutzeroberfläche. Fügen Sie die ID mit dem folgenden Code-Snippet zu Ihrer AndroidManifest.xml-Datei hinzu:

<manifest>
  <application>
    <meta-data
        android:name="com.google.android.gms.ads.APPLICATION_ID"
        android:value="ca-app-pub-xxxxxxxxxxxxxxxx~yyyyyyyyyy"/>
  </application>
</manifest>

So holen Sie die Einwilligung ein:

  1. Informationen zur aktuellen Nutzereinwilligung anfordern
  2. Laden Sie bei Bedarf ein Einwilligungsformular hoch und legen Sie es vor.

Sie sollten bei jedem Start der App mithilfe von requestConsentInfoUpdate() ein Update der Einwilligungsinformationen des Nutzers anfordern. Bei dieser Anfrage wird Folgendes geprüft:

  • Ob eine Einwilligung erforderlich ist Beispielsweise ist die Einwilligung zum ersten Mal erforderlich oder die vorherige Einwilligungsentscheidung ist abgelaufen.
  • Ob ein Einstiegspunkt für Datenschutzoptionen erforderlich ist Einige Datenschutzmitteilungen erfordern, dass Nutzer ihre Datenschutzoptionen jederzeit ändern können.

Laden Sie bei Bedarf ein Formular für den Datenschutzhinweis hoch und präsentieren Sie es.

Nachdem Sie den aktuellen Einwilligungsstatus erhalten haben, rufen Sie loadAndShowConsentFormIfRequired() auf, um alle Formulare zu laden, die zum Einholen der Nutzereinwilligung erforderlich sind. Nach dem Laden werden die Formulare sofort angezeigt.

Im folgenden Code wird gezeigt, wie Sie die aktuellen Einwilligungsinformationen des Nutzers anfordern. Falls erforderlich, wird der Code geladen und ein Formular mit einer Datenschutzmitteilung angezeigt:

Java


// Requesting an update to consent information should be called on every app launch.
consentInformation.requestConsentInfoUpdate(
    activity,
    params,
    () ->
        UserMessagingPlatform.loadAndShowConsentFormIfRequired(
            activity, onConsentGatheringCompleteListener::consentGatheringComplete),
    onConsentGatheringCompleteListener::consentGatheringComplete);

Kotlin


// Requesting an update to consent information should be called on every app launch.
consentInformation.requestConsentInfoUpdate(
  activity,
  params,
  {
    UserMessagingPlatform.loadAndShowConsentFormIfRequired(activity) { formError ->
      // Consent has been gathered.
      onConsentGatheringCompleteListener.consentGatheringComplete(formError)
    }
  },
  { requestConsentError ->
    onConsentGatheringCompleteListener.consentGatheringComplete(requestConsentError)
  },
)

Datenschutzoptionen

Einige Formulare für Datenschutzmitteilungen werden über einen vom Publisher gerenderten Einstiegspunkt für Datenschutzoptionen angezeigt. So können Nutzer ihre Datenschutzoptionen jederzeit verwalten. Weitere Informationen dazu, welche Mitteilung Ihre Nutzer am Einstiegspunkt für die Datenschutzoptionen sehen, finden Sie unter Verfügbare Arten von Nutzermitteilungen.

Prüfen, ob ein Einstiegspunkt für Datenschutzoptionen erforderlich ist

Nachdem Sie requestConsentInfoUpdate() aufgerufen haben, prüfen Sie anhand von ConsentInformation.PrivacyOptionsRequirementStatus, ob für Ihre App ein Einstiegspunkt für Datenschutzoptionen erforderlich ist:

Java


/** Helper function to determine if a privacy options entry point is required. */
public boolean isPrivacyOptionsRequired() {
  return consentInformation.getPrivacyOptionsRequirementStatus()
      == PrivacyOptionsRequirementStatus.REQUIRED;
}

Kotlin


/** Helper variable to determine if the privacy options form is required. */
val isPrivacyOptionsRequired: Boolean
  get() =
    consentInformation.privacyOptionsRequirementStatus ==
      ConsentInformation.PrivacyOptionsRequirementStatus.REQUIRED

Ihrer App ein sichtbares Element hinzufügen

Wenn ein Einstiegspunkt für den Datenschutz erforderlich ist, fügen Sie Ihrer App ein sichtbares und interaktives UI-Element hinzu, über das das Formular für die Datenschutzoptionen angezeigt wird. Wenn kein Einstiegspunkt für den Datenschutz erforderlich ist, konfigurieren Sie das UI-Element so, dass es nicht sichtbar und nicht interaktiv ist.

Java


// Check ConsentInformation.getPrivacyOptionsRequirementStatus() to see the button should
// be shown or hidden.
if (consentManager.isPrivacyOptionsRequired()) {
  privacyButton.setVisibility(View.VISIBLE);
}

Kotlin


// Check ConsentInformation.getPrivacyOptionsRequirementStatus() to see the button should
// be shown or hidden.
if (consentManager.isPrivacyOptionsRequired) {
  privacyButton.visibility = View.VISIBLE
}

Formular für Datenschutzoptionen präsentieren

Wenn der Nutzer mit Ihrem Element interagiert, wird das Formular mit den Datenschutzoptionen angezeigt:

Java


UserMessagingPlatform.showPrivacyOptionsForm(activity, onConsentFormDismissedListener);

Kotlin


UserMessagingPlatform.showPrivacyOptionsForm(activity, onConsentFormDismissedListener)

Anzeigenanfrage senden

Bevor Sie Anzeigen in Ihrer App anfordern, prüfen Sie, ob Sie die Einwilligung des Nutzers mithilfe von canRequestAds() eingeholt haben. Es gibt zwei Möglichkeiten, die Einwilligung einzuholen:

  • Nachdem in der aktuellen Sitzung die Einwilligung eingeholt wurde.
  • Unmittelbar nach dem Anruf bei requestConsentInfoUpdate(). Möglicherweise wurde die Einwilligung in der vorherigen Sitzung erteilt. Wir empfehlen, nicht auf den Abschluss des Rückrufs zu warten, damit Sie nach der Einführung Ihrer App so schnell wie möglich mit dem Laden von Anzeigen beginnen können.

Wenn bei der Einwilligungsabfrage ein Fehler auftritt, sollten Sie trotzdem prüfen, ob Sie Anzeigen anfordern können. Das UMP SDK verwendet den Einwilligungsstatus aus der vorherigen Sitzung.

Im folgenden Code wird geprüft, ob Sie während des Einholens der Einwilligung Anzeigen anfordern können:

Java


consentManager.gatherConsent(
    consentError -> {
      if (consentError != null) {
        // Consent not obtained in current session.
        Log.i(
            LOGTAG,
            "Consent Error: "
                + String.format(
                    "%s: %s", consentError.getErrorCode(), consentError.getMessage()));
      }

      if (consentManager.canRequestAds()) {
        initializeImaSdk();
      } else {
        Log.i(LOGTAG, "Consent not available to request ads");
      }
      // ...
    });

// This sample attempts to load ads using consent obtained in the previous session.
if (consentManager.canRequestAds()) {
  initializeImaSdk();
}

Kotlin


consentManager.gatherConsent(this) { error ->
  if (error != null) {
    // Consent not obtained in current session.
    Log.d(LOGTAG, "${error.errorCode}: ${error.message}")
  }
  if (consentManager.canRequestAds) {
    initializeImaSdk()
  } else {
    Log.i(LOGTAG, "Consent not available to request ads")
  }
  // ...
}
// This sample attempts to load ads using consent obtained in the previous session.
if (consentManager.canRequestAds) {
  initializeImaSdk()
}

Im folgenden Code wird das IMA DAI SDK eingerichtet, nachdem die Einwilligung des Nutzers eingeholt wurde:

Java


private void initializeImaSdk() {
  if (sdkFactory != null) {
    // If the SDK is already initialized, do nothing.
    return;
  }

  sdkFactory = ImaSdkFactory.getInstance();

  adDisplayContainer =
      ImaSdkFactory.createAdDisplayContainer(videoPlayerContainer, videoAdPlayerAdapter);

  createAdsLoader();
  setUpPlayButton();
}

Kotlin


private fun initializeImaSdk() {
  sdkFactory = ImaSdkFactory.getInstance()
  adDisplayContainer = ImaSdkFactory.createAdDisplayContainer(videoPlayerContainer, videoAdPlayerAdapter)
  createAdsLoader()
  setUpPlayButton()
}

Test

Wenn Sie die Integration in Ihrer App während der Entwicklung testen möchten, können Sie Ihr Testgerät wie unten beschrieben programmatisch registrieren. Entfernen Sie den Code, mit dem diese Testgeräte-IDs festgelegt werden, bevor Sie Ihre App veröffentlichen.

  1. Rufen Sie einfach requestConsentInfoUpdate() an.
  2. Suchen Sie in der Protokollausgabe nach einer Meldung, die Ihrer Geräte-ID und der Anleitung zum Hinzufügen als Testgerät ähnelt:

    Use new ConsentDebugSettings.Builder().addTestDeviceHashedId("33BE2250B43518CCDA7DE426D04EE231") to set this as a debug device.
    
  3. Kopieren Sie die ID des Testgeräts in die Zwischenablage.

  4. Ändern Sie Ihren Code so, dass ConsentDebugSettings.Builder().addTestDeviceHashedId() aufgerufen und eine Liste Ihrer Testgeräte-IDs übergeben wird.

    Java

    ConsentDebugSettings debugSettings = new ConsentDebugSettings.Builder(this)
        .addTestDeviceHashedId("TEST-DEVICE-HASHED-ID")
        .build();
    
    ConsentRequestParameters params = new ConsentRequestParameters
        .Builder()
        .setConsentDebugSettings(debugSettings)
        .build();
    
    consentInformation = UserMessagingPlatform.getConsentInformation(this);
    // Include the ConsentRequestParameters in your consent request.
    consentInformation.requestConsentInfoUpdate(
        this,
        params,
        // ...
    );
    

    Kotlin

    val debugSettings = ConsentDebugSettings.Builder(this)
        .addTestDeviceHashedId("TEST-DEVICE-HASHED-ID")
        .build()
    
    val params = ConsentRequestParameters
        .Builder()
        .setConsentDebugSettings(debugSettings)
        .build()
    
    consentInformation = UserMessagingPlatform.getConsentInformation(this)
    // Include the ConsentRequestParameters in your consent request.
    consentInformation.requestConsentInfoUpdate(
        this,
        params,
        // ...
    )
    

Geografie erzwingen

Mit dem UMP SDK können Sie mithilfe von DebugGeography testen, wie sich Ihre App verhalten würde, wenn sich das Gerät in verschiedenen Regionen wie dem EWR oder dem Vereinigten Königreich befinden würde. Die Debug-Einstellungen funktionieren nur auf Testgeräten.

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);
// Include the ConsentRequestParameters in your consent request.
consentInformation.requestConsentInfoUpdate(
    this,
    params,
    ...
);

Kotlin

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

val params = ConsentRequestParameters
    .Builder()
    .setConsentDebugSettings(debugSettings)
    .build()

consentInformation = UserMessagingPlatform.getConsentInformation(this)
// Include the ConsentRequestParameters in your consent request.
consentInformation.requestConsentInfoUpdate(
    this,
    params,
    ...
)

Wenn Sie Ihre App mit dem UMP SDK testen, kann es hilfreich sein, den Status des SDK zurückzusetzen, damit Sie die Erstinstallation eines Nutzers simulieren können. Dazu bietet das SDK die Methode reset().

Java

consentInformation.reset();

Kotlin

consentInformation.reset()

Beispiele auf GitHub

Ein vollständiges Beispiel für die auf dieser Seite beschriebene UMP SDK-Integration findest du unter UmpExample.