Konfigurowanie pakietu SDK UMP

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 pomaga zarządzać wyborami dotyczącymi prywatności. Więcej informacji znajdziesz w artykule Prywatność i wyświetlanie wiadomości.

Tworzenie typu wiadomości

Twó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 prosić o aktualizację informacji o zgodzie użytkownika za pomocą funkcji requestConsentInfoUpdate(). To żądanie sprawdza te kwestie:

  • Czy wymagana jest zgoda. Na przykład zgoda jest wymagana po raz pierwszy lub poprzednia decyzja dotycząca zgody 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 funkcję loadAndShowConsentFormIfRequired(), aby wczytać formularze wymagane do uzyskania zgody użytkownika. Po wczytaniu formularze są wyświetlane natychmiast.

@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 opcji prywatności , przeczytaj artykuł 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ź getPrivacyOptionsRequirementStatus(), aby określić, czy w aplikacji wymagany jest punkt wejścia opcji prywatności. Jeśli jest wymagany, dodaj do aplikacji widoczny i interaktywny element interfejsu, który wyświetla formularz opcji prywatności. Jeśli punkt wejścia opcji prywatności nie jest wymagany, skonfiguruj element interfejsu tak, aby był niewidoczny i nieinteraktywny.

/// 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 wymagania opcji prywatności znajdziesz w artykule PrivacyOptionsRequirementStatus.

Wyświetlanie formularza opcji 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 prośby o reklamy za zgodą użytkownika

Zanim wyślesz prośbę o reklamy, sprawdź za pomocą funkcji canRequestAds(), czy masz zgodę użytkownika:

await ConsentInformation.instance.canRequestAds()

Oto miejsca, w których możesz sprawdzić, czy możesz wysyłać prośby o reklamy podczas zbierania zgody:

  • Po tym, jak pakiet SDK UMP uzyska zgodę w bieżącej sesji.
  • Natychmiast po wywołaniu funkcji requestConsentInfoUpdate(). Pakiet SDK UMP mógł uzyskać zgodę w poprzedniej sesji aplikacji.

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

Zapobieganie zbędnym żądaniom reklamy

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

Testowanie

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

  1. Wywołaj funkcję requestConsentInfoUpdate().
  2. Sprawdź dane wyjściowe logu pod kątem wiadomości podobnej do tego przykładu, która pokazuje identyfikator urządzenia i sposób 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]
    
  3. Skopiuj identyfikator urządzenia testowego do schowka.

  4. Zmodyfikuj kod, aby wywołać funkcję 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), w Wielkiej Brytanii i Szwajcarii, za pomocą funkcji 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 może się okazać, że warto zresetować stan pakietu SDK, aby zasymulować pierwsze zainstalowanie aplikacji przez użytkownika. Pakiet SDK udostępnia do tego metodę reset().

ConsentInformation.instance.reset();

Przykłady w GitHubie

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