Rozpocznij

Obowiązujące w Google zgoda użytkownika z UE , musisz udzielać odpowiednich informacji użytkownikom z Europejskiego Obszaru Gospodarczego (EOG) oraz z Wielką Brytanią i uzyskać ich zgodę na używanie plików cookie lub innych sposobów lokalnego przechowywania informacji, jeśli wymaga tego prawo, oraz wykorzystywać dane osobowe (np. AdID) do wyświetlania reklam. Polityka ta odzwierciedla wymagania UE zawarte w dyrektywie o prywatności i łączności elektronicznej Ogólnego rozporządzenia o ochronie danych (RODO).

Aby pomóc wydawcom w wypełnieniu obowiązków, jakie nakłada na nich ta polityka, Google oferuje pakiet SDK User Messaging Platform (UMP). Pakiet UMP SDK obsługuje teraz zgodne z najnowszymi standardami IAB. Wszystkie te konfiguracje można teraz w wygodny sposób obsługiwane w AdMob ustawieniach prywatności i wysyłanie wiadomości.

Wymagania wstępne

Tworzenie typu wiadomości

Utwórz wiadomości dla użytkowników za pomocą jednej z tych metod: dostępne typy wiadomości dla użytkowników w sekcji Prywatność na karcie „Wiadomości” AdMob koncie. Pakiet UMP SDK próbuje wyświetlić wiadomość dla użytkownika utworzona AdMob na podstawie identyfikatora aplikacji ustawione w projekcie. Jeśli dla aplikacji nie jest skonfigurowany żaden komunikat, pakiet SDK zwraca błąd.

Więcej informacji: Prywatność i wyświetlanie wiadomości

Dodaj identyfikator aplikacji

Identyfikator aplikacji znajdziesz w Interfejs AdMob Dodaj dokument tożsamości do z następującym fragmentem kodu:

Informacje o zgodzie użytkownika należy wysyłać w każdej aplikacji za pomocą funkcji Update(). Określa to czy użytkownik musi wyrazić zgodę, jeśli jeszcze tego nie zrobił; czy ich zgoda wygasła.

Oto przykład, jak sprawdzić stan przy uruchomieniu aplikacji:

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.
}

W razie potrzeby wczytaj i wyświetl formularz zgody

Po uzyskaniu najbardziej aktualnego stanu zgody zadzwoń pod numer LoadAndShowConsentFormIfRequired() w ConsentForm klasy, aby wczytać formularz zgody. Jeśli jest wymagany stan zgody użytkownika, pakiet SDK wczytuje formularz i od razu go wyświetla . Action<FormError> callback jest wywoływany po zamknięciu formularza. Jeśli zgoda nie jest wymagana, Action<FormError> callback jest wywoływany natychmiast.

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.
    });
}

Jeśli musisz wykonać jakieś działania po dokonaniu wyboru lub odrzuceniu go przez użytkownika umieść tę logikę w elemencie Action<FormError> callback dla swojego formularza.

Wyślij żądanie

Zanim wyślesz prośbę o reklamy w aplikacji, sprawdź, czy masz jej zgodę od użytkownika za pomocą funkcji CanRequestAds(). Dostępne są 2 które sprawdzić podczas uzyskiwania zgody użytkowników:

  1. Po uzyskaniu zgody użytkownika w bieżącej sesji.
  2. Zaraz po nawiązaniu połączenia z firmą Update(). Możliwe, że w poprzedniej sesji użytkownik wyraził zgodę. Jako opóźnienie zgodnie ze sprawdzoną metodą, nie czekaj na zakończenie połączenia, ponieważ będzie można ładowanie reklam od razu po uruchomieniu aplikacji.

Jeśli w trakcie procesu uzyskiwania zgody użytkowników wystąpi błąd, żądania reklam. Pakiet UMP SDK używa stanu zgody z poprzedniej wersji .

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.
            });
        }
    });
    
}

Opcje prywatności

Niektóre formularze zgody wymagają od użytkownika zmiany zgody w dowolnym momencie. Stosowanie wykonaj poniższe kroki, by w razie potrzeby zaimplementować przycisk opcji prywatności.

W tym celu:

  1. Zaimplementuj element interfejsu, np. przycisk na stronie ustawień aplikacji, które może wyświetlić formularz opcji prywatności.
  2. Po LoadAndShowConsentFormIfRequired() zakończeniu sprawdź, PrivacyOptionsRequirementStatus , aby określić, czy element interfejsu, który może wyświetlać formularz opcji prywatności.
  3. Gdy użytkownik wejdzie w interakcję z elementem interfejsu, wywołaj ShowPrivacyOptionsForm() aby wyświetlić formularz, aktualizować swoje opcje prywatności w dowolnym momencie.

Ten przykład pokazuje, jak wyświetlić formularz opcji prywatności Button

[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.
        if (_privacyButton != null)
        {
            _privacyButton.interactable =
                ConsentInformation.PrivacyOptionsRequirementStatus ==
                PrivacyOptionsRequirementStatus.Required;
        }
    });
}

Testowanie

Jeśli chcesz przetestować integrację w aplikacji w trakcie jej tworzenia, postępuj zgodnie z instrukcjami te kroki, by automatycznie zarejestrować urządzenie testowe. Pamiętaj, aby usunąć który będzie ustawiać te identyfikatory urządzeń testowych przed opublikowaniem aplikacji.

  1. Zadzwoń pod numer Update().
  2. Sprawdź, czy w danych wyjściowych dziennika znajduje się komunikat podobny do poniższego przykładu, który pokazuje identyfikator Twojego urządzenia i jak dodać je jako urządzenie testowe:

    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]
    
  3. Skopiuj identyfikator urządzenia testowego do schowka.

  4. Zmodyfikuj swój kod, aby połączenia DebugGeography.TestDeviceHashedIds i przekaż 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);
    }
    

Wymuś użycie lokalizacji geograficznej

Pakiet UMP SDK umożliwia przetestowanie działania aplikacji w taki sposób, jakby urządzenie przebywających w Europejskim Obszarze Gospodarczym lub Wielkiej Brytanii za pomocą usługi the DebugGeography field on ConsentDebugSettings. 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);
}

Podczas testowania aplikacji za pomocą pakietu SDK UMP pomocne może być zresetowanie pliku pakietu SDK, co pozwala symulować pierwszą instalację u użytkownika. Pakiet SDK udostępnia metodę Reset() .

ConsentInformation.Reset();

Przykłady w GitHubie