Konfigurowanie pakietu SDK UMP

Pakiet SDK platformy do personalizowania wiadomości wyświetlanych użytkownikom (UMP) od Google to narzędzie do zarządzania ustawieniami prywatności i wiadomościami, które pomaga zarządzać ustawieniami prywatności. Więcej informacji znajdziesz w artykule Prywatność i wyświetlanie wiadomości.

Tworzenie typu wiadomości

Utwórz wiadomości dla użytkowników, korzystając z jednego z dostępnych typów wiadomości na karcie Prywatność i wyświetlanie wiadomości na koncie Ad Managera. Pakiet SDK UMP próbuje wyświetlić wiadomość dotyczącą prywatności utworzoną na podstawie identyfikatora aplikacji Ad Managera ustawionego w projekcie.

Więcej informacji znajdziesz w artykule Prywatność i wyświetlanie wiadomości.

Dodawanie identyfikatora aplikacji

Identyfikator aplikacji znajdziesz w interfejsie Ad Managera. Dodaj identyfikator do elementu AndroidManifest.xml za pomocą tego fragmentu kodu:

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

Aby uzyskać informacje o zgodzie użytkownika, wykonaj te czynności:

Zadeklaruj instancję ConsentInformation:

Java

private final ConsentInformation consentInformation;

Kotlin

private lateinit var consentInformation: ConsentInformation

Zainicjuj instancję ConsentInformation:

Java

consentInformation = UserMessagingPlatform.getConsentInformation(context);

Kotlin

consentInformation = UserMessagingPlatform.getConsentInformation(context)

Przy każdym uruchomieniu aplikacji należy poprosić o aktualizację informacji o zgodzie użytkownika, używając metody requestConsentInfoUpdate(). To żądanie sprawdza:

  • Czy zgoda jest wymagana? Na przykład zgoda jest wymagana po raz pierwszy lub poprzednia decyzja o zgodzie wygasła.
  • Czy wymagany jest punkt wejścia opcji prywatności. Niektóre wiadomości dotyczące prywatności wymagają, aby aplikacje umożliwiały użytkownikom modyfikowanie opcji prywatności w dowolnym momencie.

Java


// Requesting an update to consent information should be called on every app launch.
consentInformation.requestConsentInfoUpdate(
    activity,
    params,
    () -> // Called when consent information is successfully updated.
    requestConsentError -> // Called when there's an error updating consent information.

Kotlin


// Requesting an update to consent information should be called on every app launch.
consentInformation.requestConsentInfoUpdate(
  activity,
  params,
  {
    // Called when consent information is successfully updated.
  },
  { requestConsentError ->
    // Called when there's an error updating consent information.
  },
)

Wczytywanie i wyświetlanie formularza wiadomości dotyczącej prywatności

Po otrzymaniu najbardziej aktualnego stanu zgody wywołaj metodę loadAndShowConsentFormIfRequired(), aby wczytać formularze wymagane do uzyskania zgody użytkownika. Po wczytaniu formularze są natychmiast wyświetlane.

Java


UserMessagingPlatform.loadAndShowConsentFormIfRequired(
    activity,
    formError -> {
      // Consent gathering process is complete.
    });

Kotlin


UserMessagingPlatform.loadAndShowConsentFormIfRequired(activity) { formError ->
  // Consent gathering process is complete.
}

Opcje prywatności

Niektóre formularze wiadomości dotyczących prywatności są wyświetlane z punktu wejścia opcji prywatności renderowanego przez wydawcę, co umożliwia użytkownikom zarządzanie opcjami prywatności w dowolnym momencie. Aby dowiedzieć się więcej o tym, która wiadomość wyświetla się użytkownikom w punkcie wejścia do opcji związanych z prywatnością, przeczytaj artykuł Dostępne typy wiadomości dla użytkowników.

Sprawdzanie, czy punkt wejścia opcji prywatności jest wymagany

Po wywołaniu metody requestConsentInfoUpdate() sprawdź getPrivacyOptionsRequirementStatus(), aby określić, czy w aplikacji jest wymagany punkt wejścia opcji prywatności. Jeśli jest on wymagany, dodaj do aplikacji widoczny i interaktywny element interfejsu, który wyświetla formularz opcji prywatności. Jeśli punkt wejścia do ustawień prywatności nie jest wymagany, skonfiguruj element interfejsu tak, aby nie był widoczny i nie można było z nim wejść w interakcję.

Java


/** Helper variable to determine if the privacy options form 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

Pełną listę stanów wymagań dotyczących opcji związanych z prywatnością znajdziesz w artykule ConsentInformation.PrivacyOptionsRequirementStatus.

Wyświetlanie formularza opcji ochrony prywatności

Gdy użytkownik wejdzie w interakcję z Twoim elementem, wyświetl formularz opcji prywatności:

Java


UserMessagingPlatform.showPrivacyOptionsForm(activity, onConsentFormDismissedListener);

Kotlin


UserMessagingPlatform.showPrivacyOptionsForm(activity, onConsentFormDismissedListener)

Wysyłanie żądań reklam po uzyskaniu zgody użytkownika

Zanim wyślesz żądanie reklamy, użyj metody canRequestAds(), aby sprawdzić, czy użytkownik wyraził zgodę:

Java

consentInformation.canRequestAds();

Kotlin

consentInformation.canRequestAds()

Oto miejsca, w których możesz sprawdzić, czy możesz wysyłać żądania reklam podczas zbierania zgody:

  • Po uzyskaniu zgody przez pakiet SDK UMP w bieżącej sesji.
  • Natychmiast po wywołaniu funkcji requestConsentInfoUpdate(). Pakiet SDK UMP mógł uzyskać zgodę w poprzedniej sesji aplikacji.

Jeśli podczas procesu uzyskiwania zgody wystąpi błąd, sprawdź, czy możesz wysyłać żądania reklam. Pakiet SDK UMP używa stanu zgody z poprzedniej sesji aplikacji.

Zapobieganie zbędnym żądaniom reklam

Gdy sprawdzasz canRequestAds() po uzyskaniu zgody i wywołaniu requestConsentInfoUpdate(), upewnij się, że Twoja logika zapobiega zbędnym żądaniom reklamy, które mogą spowodować, że oba sprawdzenia zwrócą true. Na przykład za pomocą zmiennej logicznej.

Testowanie

Jeśli chcesz przetestować integrację w aplikacji podczas jej tworzenia, wykonaj te czynności, aby zarejestrować urządzenie testowe w sposób zautomatyzowany. Przed opublikowaniem aplikacji usuń kod, który ustawia te identyfikatory urządzeń testowych.

  1. Zadzwoń do firmy requestConsentInfoUpdate().
  2. Sprawdź, czy w danych wyjściowych dziennika znajduje się komunikat podobny do tego, który zawiera identyfikator urządzenia i informacje o tym, jak dodać je jako urządzenie testowe:

    Use new ConsentDebugSettings.Builder().addTestDeviceHashedId("33BE2250B43518CCDA7DE426D04EE231") to set this as a debug device.
    
  3. Skopiuj identyfikator urządzenia testowego do schowka.

  4. Zmodyfikuj kod, aby wywołać metodę ConsentDebugSettings.Builder().TestDeviceHashedIds i przekazać listę identyfikatorów urządzeń testowych.

    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,
        // ...
    )
    

Wymuszanie lokalizacji geograficznej

Pakiet SDK UMP umożliwia testowanie działania aplikacji tak, jakby urządzenie znajdowało się w różnych regionach, np. w Europejskim Obszarze Gospodarczym (EOG), Wielkiej Brytanii i Szwajcarii, za pomocą DebugGeography. Pamiętaj, że ustawienia debugowania działają tylko na urządzeniach testowych.

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,
    ...
)

Podczas testowania aplikacji za pomocą pakietu SDK UMP warto zresetować stan pakietu SDK, aby zasymulować pierwsze uruchomienie aplikacji przez użytkownika. Pakiet SDK udostępnia metodę reset(), która umożliwia wykonanie tej czynności.

Java

consentInformation.reset();

Kotlin

consentInformation.reset()