Konfigurowanie pakietu SDK UMP

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 Prywatność i wyświetlanie wiadomości.

Tworzenie typu wiadomości

Utwó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 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 Prywatność i wyświetlanie wiadomości.

Przy każdym uruchomieniu aplikacji należy poprosić o aktualizację informacji o zgodzie użytkownika, używając metody requestConsentInfoUpdate(). To żądanie sprawdza:

  • Czy zgoda jest wymagana? 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 opcji prywatności w dowolnym momencie.
@override
void initState() {
  super.initState();

  // Create a ConsentRequestParameters object.
  final params = ConsentRequestParameters();

  // Request an update to consent information on every app launch.
  ConsentInformation.instance.requestConsentInfoUpdate(
    params,
    () async {
      // Called when consent information is successfully updated.
    },
    (FormError error) {
      // 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 metodę loadAndShowConsentFormIfRequired(), aby wczytać formularze wymagane do uzyskania zgody użytkownika. Po wczytaniu formularze są natychmiast wyświetlane.

@override
void initState() {
  super.initState();

  // Create a ConsentRequestParameters object.
  final params = ConsentRequestParameters();

  // Request an update to consent information on every app launch.
  ConsentInformation.instance.requestConsentInfoUpdate(
    params,
    () async {
      ConsentForm.loadAndShowConsentFormIfRequired((loadAndShowError) {
        if (loadAndShowError != null) {
          // Consent gathering failed.
        }

        // Consent has been gathered.
      });
    },
    (FormError error) {
      // Handle the error.
    },
  );
}

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 opcjami prywatności w dowolnym momencie. Aby dowiedzieć się więcej o tym, która wiadomość wyświetla się użytkownikom w punkcie wejścia do opcji związanych z prywatnością, przeczytaj artykuł Dostępne typy wiadomości dla użytkowników.

Sprawdzanie, czy punkt wejścia opcji prywatności jest wymagany

Po wywołaniu requestConsentInfoUpdate() sprawdź getPrivacyOptionsRequirementStatus(), aby określić, czy w aplikacji jest wymagany punkt wejścia opcji prywatności. Jeśli jest on wymagany, dodaj do aplikacji widoczny i interaktywny element interfejsu, który wyświetla formularz opcji prywatności. Jeśli punkt wejścia do ustawień prywatności nie jest wymagany, skonfiguruj element interfejsu tak, aby nie był widoczny i nie można było z nim wejść w interakcję.

/// Helper variable to determine if the privacy options entry point is required.
Future<bool> isPrivacyOptionsRequired() async {
  return await ConsentInformation.instance
      .getPrivacyOptionsRequirementStatus() ==
      PrivacyOptionsRequirementStatus.required;
}

Pełną listę stanów wymagań dotyczących opcji prywatności znajdziesz w artykule PrivacyOptionsRequirementStatus.

Wyświetlanie formularza opcji dotyczących prywatności

Gdy użytkownik wejdzie w interakcję z Twoim elementem, wyświetl formularz opcji prywatności:

ConsentForm.showPrivacyOptionsForm((formError) {
  if (formError != null) {
    debugPrint("${formError.errorCode}: ${formError.message}");
  }
});

Wysyłanie żądań reklam po uzyskaniu zgody użytkownika

Zanim wyślesz żądanie reklamy, użyj canRequestAds(), aby sprawdzić, czy masz zgodę użytkownika:

await ConsentInformation.instance.canRequestAds()

Poniżej znajdziesz miejsca, w których możesz sprawdzić, czy możesz wysyłać żądania reklam podczas zbierania zgody:

  • Po uzyskaniu zgody przez pakiet SDK UMP w bieżącej sesji.
  • Natychmiast po wywołaniu metody requestConsentInfoUpdate(). Pakiet SDK UMP mógł uzyskać zgodę w poprzedniej sesji aplikacji.

Jeśli podczas procesu uzyskiwania zgody wystąpi błąd, sprawdź, czy możesz wysyłać żądania reklam. Pakiet SDK UMP używa stanu zgody z poprzedniej sesji aplikacji.

Zapobieganie zbędnym żądaniom reklam

Gdy sprawdzasz canRequestAds() po uzyskaniu zgody i wywołaniu requestConsentInfoUpdate(), upewnij się, że Twoja logika zapobiega zbędnym żądaniom reklamy, które mogą spowodować, że oba sprawdzenia zwrócą true. Na przykład za pomocą zmiennej logicznej.

Testowanie

Jeśli chcesz przetestować integrację w aplikacji podczas jej tworzenia, wykonaj te czynności, aby zarejestrować urządzenie testowe w kodzie. Przed opublikowaniem aplikacji usuń kod, który ustawia te identyfikatory urządzeń testowych.

  1. Zadzwoń do firmy requestConsentInfoUpdate().
  2. Sprawdź, czy w danych wyjściowych dziennika znajduje się komunikat podobny do tego w przykładzie poniżej, który zawiera identyfikator urządzenia i informacje o tym, 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 kod, aby wywołać metodę ConsentDebugSettings.testIdentifiers i przekazać listę identyfikatorów urządzeń testowych.

    ConsentDebugSettings debugSettings = ConsentDebugSettings(
      testIdentifiers: ["TEST-DEVICE-HASHED-ID"],
    );
    
    ConsentRequestParameters params =
        ConsentRequestParameters(consentDebugSettings: debugSettings);
    
    ConsentInformation.instance.requestConsentInfoUpdate(params, () async {
      // ...
    };
    

Wymuszanie 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 (EOG), Wielkiej Brytanii i Szwajcarii, za pomocą debugGeography. Pamiętaj, że ustawienia debugowania działają tylko na urządzeniach testowych.

ConsentDebugSettings debugSettings = ConsentDebugSettings(
  debugGeography: DebugGeography.debugGeographyEea,
  testIdentifiers: ["TEST-DEVICE-HASHED-ID"],
);

ConsentRequestParameters params =
    ConsentRequestParameters(consentDebugSettings: debugSettings);

ConsentInformation.instance.requestConsentInfoUpdate(params, () async {
  // ...
};

Podczas testowania aplikacji za pomocą pakietu SDK UMP warto zresetować stan pakietu SDK, aby zasymulować pierwszą instalację aplikacji przez użytkownika. Pakiet SDK udostępnia w tym celu metodę reset().

ConsentInformation.instance.reset();

Przykłady na GitHubie

Pełny przykład integracji pakietu SDK UMP opisanej na tej stronie znajdziesz w naszych przykładach we Flutterze.