Pakiet SDK platformy do personalizowania wiadomości wyświetlanych użytkownikom (UMP) od Google to narzędzie do obsługi prywatności i wyświetlania wiadomości, które pomaga zarządzać ustawieniami prywatności. Więcej informacji znajdziesz w artykule Prywatność i wyświetlanie wiadomości.
Wymagania wstępne
- Android API w wersji 21 lub nowszej
Tworzenie typu wiadomości
Twó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 AdMob. Pakiet UMP SDK próbuje wyświetlić wiadomość dotyczącą prywatności utworzoną na podstawie identyfikatora aplikacji AdMob ustawionego w projekcie.
Więcej informacji znajdziesz w artykule Prywatność i wyświetlanie wiadomości.
Instalowanie za pomocą Gradle
Dodaj zależność pakietu SDK platformy do personalizowania wiadomości wyświetlanych użytkownikom do pliku
na poziomie aplikacji Gradle modułu (zwykle app/build.gradle):
dependencies {
implementation("com.google.android.ump:user-messaging-platform:4.0.0")
}
Po wprowadzeniu zmian w pliku build.gradle aplikacji zsynchronizuj projekt z plikami Gradle.
Dodawanie identyfikatora aplikacji
Identyfikator aplikacji znajdziesz w
interfejsie AdMob.
Dodaj identyfikator do swojego
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>
Pobieranie informacji o zgodzie użytkownika
Aby uzyskać informacje o zgodzie użytkownika, wykonaj te czynności:
Zadeklaruj instancję ConsentInformation:
Java
private final ConsentInformation consentInformation;
Kotlin
private lateinit val 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 za pomocą funkcji
requestConsentInfoUpdate(). To żądanie sprawdza te kwestie:
- Czy wymagana jest zgoda. 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 ustawień 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 funkcję
loadAndShowConsentFormIfRequired(), aby wczytać formularze wymagane do
uzyskania zgody użytkownika. Po wczytaniu formularze są wyświetlane natychmiast.
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 ustawieniami prywatności w dowolnym momencie. Aby dowiedzieć się więcej o tym, która wiadomość wyświetla się użytkownikom w punkcie wejścia opcji prywatności , zapoznaj się z artykułem Dostępne typy wiadomości dla użytkowników.
Sprawdzanie, czy wymagany jest punkt wejścia opcji prywatności
Po wywołaniu funkcji
requestConsentInfoUpdate() sprawdź
getPrivacyOptionsRequirementStatus(), aby określić, czy w aplikacji wymagany jest punkt wejścia opcji prywatności. Jeśli punkt wejścia jest wymagany, dodaj do aplikacji widoczny i interaktywny element interfejsu, który wyświetla formularz opcji prywatności. Jeśli punkt wejścia opcji prywatności nie jest wymagany, skonfiguruj element interfejsu tak, aby był niewidoczny i nieinteraktywny.
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 wymagania opcji prywatności znajdziesz w artykule
ConsentInformation.PrivacyOptionsRequirementStatus.
Wyświetlanie formularza opcji 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 za zgodą użytkownika
Zanim wyślesz żądanie reklamy, sprawdź za pomocą funkcji
canRequestAds(), czy masz zgodę użytkownika:
Java
consentInformation.canRequestAds();
Kotlin
consentInformation.canRequestAds()
Poniżej znajdziesz miejsca, w których możesz sprawdzić, czy możesz wysyłać żądania reklam podczas zbierania zgody:
- Gdy pakiet UMP SDK zbierze zgodę w bieżącej sesji.
- Natychmiast po wywołaniu funkcji
requestConsentInfoUpdate(). Pakiet UMP SDK mógł uzyskać zgodę w poprzedniej sesji aplikacji.
Jeśli podczas procesu zbierania zgody wystąpi błąd, sprawdź, czy możesz wysyłać żądania reklam. Pakiet UMP SDK używa stanu zgody z poprzedniej sesji aplikacji.
Zapobieganie zbędnym żądaniom reklam
Gdy sprawdzasz
canRequestAds() po zebraniu zgody i po wywołaniu funkcji
requestConsentInfoUpdate(), upewnij się, że logika zapobiega zbędnym żądaniom reklam, które
mogą spowodować, że oba sprawdzenia zwrócą wartość true. Na przykład za pomocą zmiennej logicznej.
Testowanie
Jeśli chcesz przetestować integrację w aplikacji podczas jej tworzenia, wykonaj te czynności, aby programowo zarejestrować urządzenie testowe. Zanim opublikujesz aplikację, usuń kod, który ustawia te identyfikatory urządzeń testowych.
- Wywołaj funkcję
requestConsentInfoUpdate(). Sprawdź dane wyjściowe logu pod kątem wiadomości podobnej do tego przykładu, która zawiera identyfikator urządzenia i informacje o tym, jak dodać go jako urządzenie testowe:
Use new ConsentDebugSettings.Builder().addTestDeviceHashedId("33BE2250B43518CCDA7DE426D04EE231") to set this as a debug device.Skopiuj identyfikator urządzenia testowego do schowka.
Zmodyfikuj kod, aby wywołać funkcję
ConsentDebugSettings.Builder().TestDeviceHashedIdsi 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 UMP SDK 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ą funkcji
setDebugGeography(). 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,
...
)
Resetowanie stanu zgody użytkownika
Podczas testowania aplikacji za pomocą pakietu UMP SDK może się przydać zresetowanie stanu pakietu SDK, aby można było symulować pierwsze zainstalowanie aplikacji przez użytkownika.
Pakiet SDK udostępnia do tego metodę reset().
Java
consentInformation.reset();
Kotlin
consentInformation.reset()
Przykłady w GitHubie
Pełny przykład integracji pakietu UMP SDK opisanej na tej stronie znajdziesz w przykładzie BannerExample w języku Java i przykładzie BannerExample w języku Kotlin.