Pakiet SDK platformy do personalizowania wiadomości wyświetlanych użytkownikom (UMP) od Google to narzędzie do zarządzania prywatnością i wyświetlania wiadomości, które ułatwia Ci zarządzanie ustawieniami prywatności. Więcej informacji znajdziesz w artykule Informacje o narzędziu Prywatność i wyświetlanie wiadomości.
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 prywatności i wyświetlania wiadomości.
Zbieranie zgody
Aby uzyskać zgodę, wykonaj te czynności:
- Prośba o najnowsze informacje o zgodzie użytkownika.
- W razie potrzeby wyświetl formularz zgody.
Prośba o informacje dotyczące zgody
Za każdym razem, gdy uruchamiasz aplikację, powinnaś poprosić o zaktualizowanie informacji o zgodzie użytkownika, używając do tego tagu Update()
. Ta prośba sprawdza te kwestie:
- 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.
W razie potrzeby wczytaj i pokaż formularz dotyczący 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.
Ten kod pokazuje, jak poprosić o najnowsze informacje o zgodzie użytkownika. W razie potrzeby kod wczyta i wyświetli formularz z wiadomością dotyczącą prywatności:
void Start()
{
// Create a ConsentRequestParameters object.
ConsentRequestParameters request = new ConsentRequestParameters();
// Check the current consent information status.
ConsentInformation.Update(request, OnConsentInfoUpdated);
}
void OnConsentInfoUpdated(FormError consentError)
{
if (consentError != null)
{
// Handle the error.
UnityEngine.Debug.LogError(consentError);
return;
}
// If the error is null, the consent information state was updated.
// You are now ready to check if a form is available.
ConsentForm.LoadAndShowConsentFormIfRequired((FormError formError) =>
{
if (formError != null)
{
// Consent gathering failed.
UnityEngine.Debug.LogError(consentError);
return;
}
// Consent has been gathered.
});
}
Opcje prywatności
Niektóre formularze wiadomości dotyczącej prywatności są wyświetlane w miejscu wejścia opcji prywatności przygotowanym przez wydawcę, co pozwala użytkownikom w dowolnym momencie zarządzać opcjami prywatności. Aby dowiedzieć się więcej o tym, która wiadomość wyświetla się użytkownikom w punkcie wejścia do ustawień prywatności, zapoznaj się z artykułem Dostępne typy wiadomości dla użytkowników.
Aby wdrożyć punkt wejścia opcji prywatności:
- Po wykonaniu połączenia
Update()
sprawdźPrivacyOptionsRequirementStatus
, aby określić, czy wymagany jest punkt wejścia opcji prywatności. - W razie potrzeby dodaj do aplikacji widoczny i interaktywny element interfejsu, który będzie służyć jako punkt wejścia do 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.
- wyświetlić formularz opcji prywatności za pomocą
ShowPrivacyOptionsForm()
;
Przykładowy kod ilustruje te kroki:
[SerializeField, Tooltip("Button to show the privacy options form.")]
private Button _privacyButton;
private void Start()
{
// Enable the privacy settings button.
if (_privacyButton != null)
{
_privacyButton.onClick.AddListener(UpdatePrivacyButton);
// Disable the privacy settings button by default.
_privacyButton.interactable = false;
}
}
/// <summary>
/// Shows the privacy options form to the user.
/// </summary>
public void ShowPrivacyOptionsForm()
{
Debug.Log("Showing privacy options form.");
ConsentForm.ShowPrivacyOptionsForm((FormError showError) =>
{
if (showError != null)
{
Debug.LogError("Error showing privacy options form with error: " + showError.Message);
}
// Enable the privacy settings button.
UpdatePrivacyButton();
});
}
/// <summary>
/// Updates the privacy buttons visual state based on the consent information.
/// </summary>
void UpdatePrivacyButton()
{
if (_privacyButton != null)
{
_privacyButton.interactable =
ConsentInformation.PrivacyOptionsRequirementStatus ==
PrivacyOptionsRequirementStatus.Required;
}
}
Wyślij żądanie
Zanim poprosisz o wyświetlanie reklam w aplikacji, sprawdź, czy użytkownik udzielił zgody za pomocą
CanRequestAds()
. Podczas zbierania zgody należy sprawdzić 2 miejsca:
- Po wyrażeniu zgody w bieżącej sesji.
- Natychmiast po zakończeniu rozmowy
Update()
. Możliwe, że zgoda została uzyskana w poprzedniej sesji. W ramach najlepszej praktyki dotyczącej opóźnień zalecamy, aby nie czekać na zakończenie wywołania zwrotnego, dzięki czemu można jak najszybciej rozpocząć wczytywanie reklam po uruchomieniu aplikacji.
Jeśli podczas procesu zbierania zgód wystąpi błąd, sprawdź, czy możesz nadal wysyłać żądania reklam. Pakiet UMP SDK używa stanu zgody z poprzedniej sesji.
void Start()
{
// Create a ConsentRequestParameters object.
ConsentRequestParameters request = new ConsentRequestParameters();
// Check the current consent information status.
ConsentInformation.Update(request, OnConsentInfoUpdated);
}
void OnConsentInfoUpdated(FormError consentError)
{
if (consentError != null)
{
// Handle the error.
UnityEngine.Debug.LogError(consentError);
return;
}
// If the error is null, the consent information state was updated.
// You are now ready to check if a form is available.
ConsentForm.LoadAndShowConsentFormIfRequired((FormError formError) =>
{
if (formError != null)
{
// Consent gathering failed.
UnityEngine.Debug.LogError(consentError);
return;
}
// Consent has been gathered.
if (ConsentInformation.CanRequestAds())
{
MobileAds.Initialize((InitializationStatus initstatus) =>
{
// TODO: Request an ad.
});
}
});
}
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
Update()
. Sprawdź dane wyjściowe dziennika pod kątem komunikatu podobnego do tego, który zawiera identyfikator urządzenia i instrukcje dodania go jako urządzenia testowego:
Android
Use new ConsentDebugSettings.Builder().addTestDeviceHashedId("33BE2250B43518CCDA7DE426D04EE231") to set this as a debug device.
iOS
<UMP SDK>To enable debug mode for this device, set: UMPDebugSettings.testDeviceIdentifiers = @[2077ef9a63d2b398840261c8221a0c9b]
Skopiuj identyfikator testowego urządzenia do schowka.
Zmodyfikuj kod, aby wywołać funkcję
DebugGeography.TestDeviceHashedIds
i przekazać listę identyfikatorów urządzeń testowych.void Start() { var debugSettings = new ConsentDebugSettings { TestDeviceHashedIds = new List<string> { "TEST-DEVICE-HASHED-ID" } }; // Create a ConsentRequestParameters object. ConsentRequestParameters request = new ConsentRequestParameters { ConsentDebugSettings = debugSettings, }; // Check the current consent information status. ConsentInformation.Update(request, OnConsentInfoUpdated); }
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 parametru DebugGeography
. Pamiętaj, że ustawienia debugowania działają tylko na urządzeniach testowych.
void Start()
{
var debugSettings = new ConsentDebugSettings
{
// Geography appears as in EEA for debug devices.
DebugGeography = DebugGeography.EEA,
TestDeviceHashedIds = new List<string>
{
"TEST-DEVICE-HASHED-ID"
}
};
// Create a ConsentRequestParameters object.
ConsentRequestParameters request = new ConsentRequestParameters
{
ConsentDebugSettings = debugSettings,
};
// Check the current consent information status.
ConsentInformation.Update(request, OnConsentInfoUpdated);
}
Resetowanie stanu zgody
Podczas testowania aplikacji za pomocą pakietu UMP SDK warto zresetować jego stan, aby móc symulować pierwsze uruchomienie aplikacji przez użytkownika.
W tym celu pakiet SDK udostępnia metodę Reset()
.
ConsentInformation.Reset();
Przykłady w GitHub
Pełny przykład integracji pakietu UMP SDK, o której mowa na tej stronie, znajdziesz w pliku HelloWorld.