Pakiet SDK platformy do personalizowania wiadomości wyświetlanych użytkownikom od Google to narzędzie do zarządzania prywatnością i wyświetlania wiadomości, które ułatwia zarządzanie ustawieniami prywatności. Więcej informacji znajdziesz w artykule Informacje o narzędziu Prywatność i wyświetlanie wiadomości.
Wymagania wstępne
- poziom interfejsu API 21 lub nowszy,
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 aplikacji modułu (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
Zainicjuj instancję ConsentInformation
:
Java
consentInformation = UserMessagingPlatform.getConsentInformation(context);
Kotlin
consentInformation = UserMessagingPlatform.getConsentInformation(context)
Za każdym razem, gdy uruchamiasz aplikację, powinnaś poprosić o zaktualizowanie informacji o zgodzie użytkownika, używając do tego tagu
requestConsentInfoUpdate()
. Ta prośba sprawdza:
- Czy wymagana jest zgoda użytkownika. Może to być na przykład pierwsza zgoda na wykorzystanie danych lub zgoda udzielona wcześniej wygasła.
- Czy wymagany jest punkt wejścia opcji prywatności. Niektóre komunikaty dotyczące prywatności wymagają, aby aplikacje umożliwiały użytkownikom zmianę 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 prezentowanie formularza wiadomości dotyczącej 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ą od razu 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 dotyczące 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óra wiadomość wyświetla się użytkownikom w punkcie wejścia do ustawień 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 opcji prywatności (użyj do tego celu funkcji
getPrivacyOptionsRequirementStatus()
). Jeśli jest wymagany, dodaj do aplikacji widoczny i interaktywny element interfejsu, który przedstawia formularz opcji prywatności. Jeśli nie jest wymagany punkt wejścia dotyczący prywatności, skonfiguruj element interfejsu tak, aby nie był widoczny ani interaktywny.
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 prywatności znajdziesz 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)
Prośba o reklamy z uwzględnieniem zgody użytkownika
Zanim wyślesz żądanie reklamy, użyj funkcji
canRequestAds()
, aby sprawdzić, czy użytkownik wyraził zgodę:
Java
consentInformation.canRequestAds();
Kotlin
consentInformation.canRequestAds()
W tych miejscach możesz sprawdzić, czy możesz wyświetlać reklamy podczas zbierania zgody:
- Gdy pakiet UMP SDK uzyska zgodę w bieżącej sesji.
- Natychmiast po zakończeniu rozmowy
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 po wywołaniu funkcji
requestConsentInfoUpdate()
, upewnij się, że Twoja logika zapobiega zbędnym prośbom o reklamy, które mogą spowodować, że oba 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 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, // ... )
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.
Pakiet SDK udostępnia do tego celu metodę reset()
.
Java
consentInformation.reset();
Kotlin
consentInformation.reset()
Przykłady w GitHub
Pełny przykład integracji pakietu UMP SDK omówionego na tej stronie znajdziesz w plikach Java BannerExample i Kotlin BannerExample.