Rozpocznij

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.

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.

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.
@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 prezentowanie formularza wiadomości dotyczącej prywatności

Po otrzymaniu najnowszego stanu zgody wywołaj funkcję loadAndShowConsentFormIfRequired(), aby wczytać formularze wymagane do uzyskania zgody użytkownika. Po załadowaniu formularze są od razu widoczne.

@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ące prywatności są wyświetlane w punktach wejścia opcji prywatności przygotowanych 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.

/// 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 na stronie PrivacyOptionsRequirementStatus.

Wyświetlanie formularza opcji prywatności

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

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

Prośba o reklamy z wymuszoną zgodą użytkownika

Zanim wyślesz żądanie reklamy, użyj funkcji canRequestAds(), aby sprawdzić, czy użytkownik wyraził zgodę:

await ConsentInformation.instance.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 żądaniom reklam, które mogłyby 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ń.

  1. Zadzwoń do firmy requestConsentInfoUpdate().
  2. 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:

    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 testowego urządzenia 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 {
      // ...
    };
    

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 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ć jego stan, aby zasymulować pierwsze użycie aplikacji przez użytkownika. W tym celu pakiet SDK udostępnia metodę reset().

ConsentInformation.instance.reset();

Przykłady w GitHub

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