Pakiet SDK platformy do personalizowania wiadomości wyświetlanych użytkownikom (UMP) od Google to narzędzie do zarządzania ustawieniami prywatności i wyświetlania wiadomości. Więcej informacji znajdziesz w artykule Informacje o narzędziu Prywatność i wyświetlanie wiadomości.
Wymagania wstępne
- Android API na poziomie 21 lub wyższym
Tworzenie typu wiadomości
Utwórz wiadomości dla użytkowników za pomocą jednej z dostępnych opcji wiadomości dla użytkowników na karcie Prywatność i wyświetlanie wiadomości na koncie AdMob. Pakiet SDK UMP próbuje wyświetlić wiadomość dotyczącą prywatności utworzoną na podstawie identyfikatora aplikacji AdMob ustawionego w projekcie.
Więcej informacji znajdziesz w artykule na temat ochrony prywatności i wyświetlania wiadomości.
Instalowanie za pomocą Gradle
Dodaj zależność pakietu SDK platformy do personalizowania wiadomości wyświetlanych użytkownikom do pliku Gradle na poziomie modułu (aplikacji), zwykle app/build.gradle
:
dependencies {
implementation("com.google.android.ump:user-messaging-platform:3.1.0")
}
Po wprowadzeniu zmian w build.gradle
aplikacji zsynchronizuj projekt z plikami Gradle.
Dodawanie identyfikatora aplikacji
Identyfikator aplikacji znajdziesz w interfejsie AdMob.
Dodaj identyfikator do pliku 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:
Zadeklaruj instancję ConsentInformation
:
Java
private final ConsentInformation consentInformation;
Kotlin
private lateinit val consentInformation: ConsentInformation
Inicjalizacja instancji ConsentInformation
:
Java
consentInformation = UserMessagingPlatform.getConsentInformation(context);
Kotlin
consentInformation = UserMessagingPlatform.getConsentInformation(context)
Podczas każdego uruchamiania aplikacji należy poprosić o zaktualizowanie informacji o zgodzie użytkownika, używając do tego parametru
requestConsentInfoUpdate()
. To żądanie sprawdza te kwestie:
- Czy wymagana jest zgoda użytkownika. Może to być na przykład pierwsza prośba o zgodę lub prośba o odnowienie zgody, której termin wygasł.
- Czy wymagany jest punkt wejścia opcji prywatności. Niektóre komunikaty 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.
},
)
Załaduj i wyświetlaj formularz wiadomości o ochronie prywatności
Po otrzymaniu najnowszego stanu zgody wywołaj funkcję
loadAndShowConsentFormIfRequired()
, aby załadować formularze wymagane do uzyskania zgody użytkownika. Po załadowaniu formularze są natychmiast widoczne.
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 o prywatności są wyświetlane w punkcie wejścia opcji prywatności przygotowanym przez wydawcę, co pozwala użytkownikom w dowolnym momencie zarządzać opcjami prywatności. Więcej informacji o tym, które wiadomości wyświetlają się użytkownikom w punkcie wejścia z opcjami prywatności, znajdziesz w artykule 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ź, czy w przypadku Twojej aplikacji wymagany jest punkt wejścia z opcjami prywatności (funkcja
getPrivacyOptionsRequirementStatus()
). Jeśli jest wymagany, dodaj do aplikacji widoczny element interfejsu, z którego można przejść do formularza z opcjami prywatności. Jeśli punkt wejścia nie jest wymagany, skonfiguruj element interfejsu tak, aby był niewidoczny i nieaktywny.
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łna lista stanów wymagań dotyczących opcji prywatności znajduje się na stronie
ConsentInformation.PrivacyOptionsRequirementStatus
.
Wyświetlanie formularza opcji prywatności
Gdy użytkownik wejdzie w interakcję z elementem, wyświetl formularz opcji prywatności:
Java
UserMessagingPlatform.showPrivacyOptionsForm(activity, onConsentFormDismissedListener);
Kotlin
UserMessagingPlatform.showPrivacyOptionsForm(activity, onConsentFormDismissedListener)
Wyświetlanie reklam z wymagana zgodą użytkownika
Zanim wyślesz żądanie reklam, użyj funkcji
canRequestAds()
, aby sprawdzić, czy masz zgodę użytkownika:
Java
consentInformation.canRequestAds();
Kotlin
consentInformation.canRequestAds()
Aby sprawdzić, czy możesz wyświetlać reklamy podczas zbierania zgody, sprawdź te informacje:
- Gdy pakiet UMP SDK uzyska zgodę w bieżącej sesji.
- Natychmiast po zakończeniu rozmowy z
requestConsentInfoUpdate()
. Pakiet SDK UMP mógł uzyskać zgodę w poprzedniej sesji aplikacji.
Jeśli podczas zbierania zgody wystąpi błąd, sprawdź, czy możesz poprosić o reklamy. Pakiet SDK UMP korzysta ze stanu zgody z poprzedniej sesji aplikacji.
Zapobieganie zbędnemu przetwarzaniu żądań reklam
Gdy sprawdzasz
canRequestAds()
po zebraniu zgody i wywołaniu
requestConsentInfoUpdate()
, upewnij się, że Twoja logika zapobiega zbędnym żądaniom reklam, które mogłyby spowodować, że oba te sprawdzania zwrócą wartość true
. Na przykład z wartością logiczną.
Testowanie
Jeśli chcesz przetestować integrację w aplikacji podczas jej tworzenia, wykonaj te czynności, aby zarejestrować urządzenie testowe za pomocą kodu. Zanim opublikujesz aplikację, usuń kod, który ustawia te identyfikatory testowych urządzeń.
- Zadzwoń do firmy
requestConsentInfoUpdate()
. Sprawdź dane wyjściowe dziennika pod kątem komunikatu podobnego do tego, który zawiera identyfikator urządzenia i informacje o dodaniu go jako urządzenia testowego:
Use new ConsentDebugSettings.Builder().addTestDeviceHashedId("33BE2250B43518CCDA7DE426D04EE231") to set this as a debug device.
Skopiuj identyfikator testowego urządzenia do schowka.
Zmodyfikuj kod, aby wywołać funkcję
ConsentDebugSettings.Builder().TestDeviceHashedIds
i przekazać listę identyfikatorów testowanych urządzeń.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, // ... )
Wymuszenie 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 lub Wielkiej Brytanii. Aby to zrobić, użyj 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
Podczas testowania aplikacji za pomocą pakietu SDK UMP warto zresetować jego stan, aby zasymulować pierwsze użycie aplikacji przez użytkownika.
W tym celu pakiet SDK udostępnia metodę reset()
.
Java
consentInformation.reset();
Kotlin
consentInformation.reset()
Przykłady w GitHub
Pełny przykład integracji pakietu UMP SDK omówiono na tej stronie w plikach Java BannerExample i Kotlin BannerExample.