Ogólne rozporządzenie o ochronie danych (IAB) – pomoc

Zgodnie z polityką Google w zakresie zgody użytkownika z UE musisz udzielać odpowiednich informacji użytkownikom z Europejskiego Obszaru Gospodarczego (EOG) oraz Wielkiej Brytanii i uzyskać ich zgodę na stosowanie plików cookie lub innych środków do lokalnego przechowywania danych, jeśli jest to wymagane prawnie, oraz na wykorzystywanie danych osobowych (np. identyfikatora reklamy) do wyświetlania reklam. Polityka ta odzwierciedla wymagania UE zawarte w dyrektywie o prywatności i łączności elektronicznej oraz w Ogólnym rozporządzeniu o ochronie danych (RODO).

Ten przewodnik zawiera instrukcje obsługi wiadomości zgodnej z RODO i zasadami IAB TCF w wersji 2.0 w ramach pakietu UMP SDK. Ten przewodnik jest przeznaczony do korzystania z rozpoczęcia, który zawiera omówienie konfigurowania aplikacji z pakietem UMP SDK i podstawowe informacje o konfigurowaniu wiadomości. Poniższe wskazówki dotyczą wiadomości zgodnej z RODO i zasadami TCF IAB w wersji 2. Więcej informacji znajdziesz w artykule Jak wymagania IAB wpływają na konfigurację wiadomości z prośbą o zgodę na wykorzystanie danych (zgodnie z wytycznymi UE).

Wymagania wstępne

RODO wymaga, abywycofanie zgody było możliwe w dowolnym momencie. Aby umożliwić użytkownikom wycofanie zgody, zobacz opcje dotyczące prywatności.

Aby wskazać, czy użytkownik nie osiągnął wieku samodzielnego wyrażania zgody, ustaw parametr setTagForUnderAgeOfConsent (TFUA). Gdy ustawisz wartość TFUA na true, pakiet UMP SDK nie będzie prosił o zgodę użytkownika. Jeśli Twoja aplikacja jest przeznaczona dla różnych grup odbiorców, ustaw ten parametr w przypadku użytkowników będących dziećmi, aby nie prosić o zgodę.

W tym przykładzie w prośbie o zgodę na wykorzystanie danych użytkownika w celu marketingu bezpośredniego ustawiamy wartość TFUA na „true”:

Java

ConsentRequestParameters params = new ConsentRequestParameters
    .Builder()
    // Indicate the user is under age of consent.
    .setTagForUnderAgeOfConsent(true)
    .build();

consentInformation = UserMessagingPlatform.getConsentInformation(this);
consentInformation.requestConsentInfoUpdate(
    this,
    params,
    (OnConsentInfoUpdateSuccessListener) () -> {
      // ...
    },
    (OnConsentInfoUpdateFailureListener) requestConsentError -> {
      // ...
    });

Kotlin

val params = ConsentRequestParameters
    .Builder()
    // Indicate the user is under age of consent.
    .setTagForUnderAgeOfConsent(true)
    .build()

consentInformation = UserMessagingPlatform.getConsentInformation(this)
consentInformation.requestConsentInfoUpdate(
    this,
    params,
    ConsentInformation.OnConsentInfoUpdateSuccessListener {
      // ...
    },
    ConsentInformation.OnConsentInfoUpdateFailureListener {
      requestConsentError ->
      // ...
    })

Mediacja

Aby dodać partnerów zapośredniczenia do listy partnerów reklamowych, wykonaj czynności opisane w artykule Dodawanie partnerów reklamowych do opublikowanych wiadomości zgodnych z RODO. Jeśli tego nie zrobisz, partnerzy mogą nie wyświetlać reklam w Twojej aplikacji.

Partnerzy zapośredniczenia mogą też udostępniać dodatkowe narzędzia, które ułatwiają zachowanie zgodności z RODO. Więcej informacji znajdziesz w przewodniku po integracji konkretnego partnera.

Po uzyskaniu zgody na przetwarzanie danych zgodnie z RODO możesz odczytać opcje zgody z lokalnego magazynu danych zgodnie z specyfikacją TCF w wersji 2. Klucz IABTCF_PurposeConsents wskazuje zgodę na każdy z celów TCF.

Ten fragment kodu pokazuje, jak sprawdzić zgodę na cel 1:

Java

SharedPreferences sharedPref = PreferenceManager.getDefaultSharedPreferences(context);
// Example value: "1111111111"
String purposeConsents = sharedPref.getString("IABTCF_PurposeConsents", "");
// Purposes are zero-indexed. Index 0 contains information about Purpose 1.
if (!purposeConsents.isEmpty()) {
  String purposeOneString = purposeConsents.charAt(0);
  boolean hasConsentForPurposeOne = purposeOneString.equals("1");
}

Kotlin

val sharedPref = PreferenceManager.getDefaultSharedPreferences(context)
// Example value: "1111111111"
val purposesConsents = sharedPref.getString("IABTCF_PurposeConsents", "")
// Purposes are zero-indexed. Index 0 contains information about Purpose 1.
if (!purposeConsents.isEmpty()) {
  val purposeOneString = purposeConsents.first()
  val hasConsentForPurposeOne = purposeOneString == "1"
}

Najczęstsze pytania

Co się stanie, jeśli nie podejmę żadnych działań, aby spełnić wymagania dotyczące platformy do zarządzania zgodą użytkowników w przypadku wyświetlania reklam w krajach Europejskiego Obszaru Gospodarczego i Wielkiej Brytanii?

Od 16 stycznia 2024 r., jeśli partner nie zacznie korzystać z platformy CMP certyfikowanej przez Google, w odpowiedzi na żądania z EOG i Wielkiej Brytanii będzie mógł wyświetlać reklamy tylko w ograniczonym zakresie.

16 stycznia 2024 r. wdrożymy nowe wymagania w przypadku niewielkiego odsetka ruchu pochodzącego z EOG i Wielkiej Brytanii. Następnie będziemy stopniowo rozszerzać wdrożenie, a pod koniec lutego 2024 r. nowe wymagania będą już egzekwowane w przypadku całego ruchu z tych lokalizacji. Aby uniknąć negatywnego wpływu nadchodzących zmian na Twoje zarobki, zacznij korzystać z certyfikowanej platformy CMP do 16 stycznia 2024 r.

Jak sprawdzić, czy użytkownik wyraził zgodę?

Zgoda nie jest reprezentowana przez pojedynczy bit, ale przez zestaw celów i dostawców określonych w specyfikacji zasad TCF IAB. Więcej informacji o kryteriach personalizacji Google Ads znajdziesz w artykule Polityka w zakresie zgody użytkownika: reklamy spersonalizowane i niespersonalizowane.

Dodatkowo dostawcy technologii reklamowych z listy dostawców technologii reklamowych Google, którzy nie są zarejestrowani na liście dostawców TCF, korzystają z specyfikacji technicznej Google dotyczącej udzielenia dodatkowej zgody do zbierania zgody. Google publikuje listę dostawców technologii reklamowych niezarejestrowanych w ramach IAB oraz ich identyfikatory w tym miejscu: https://storage.googleapis.com/tcfac/additional-consent-providers.csv.

Aby debugować pojedyncze żądanie reklamy, użyj funkcji Zaawansowane debugowanie jednostek reklamowych w inspektorze reklam, aby wyeksportować ciąg znaków żądania reklamy. Następnie znajdź te parametry zapytania:

Parametr zapytania Znaczenie
gdpr Czy do tego żądania reklamy ma zastosowanie RODO.
gdpr_consent Ciąg tekstowy dotyczący przejrzystości i zgody. IAB udostępnia narzędzie internetowe, za pomocą którego możesz ręcznie odkodować wartość.
addtl_consent Ciąg tekstowy dotyczący udzielenia dodatkowej zgody z specyfikacji technicznej Google o nazwie „Udzielenie dodatkowej zgody”.

Więcej informacji o czytaniu opcji zgody w ramach programowania znajdziesz w artykule Jak odczytywać opcje zgody.

Czy muszę używać pakietu UMP SDK Google, aby spełnić wymagania dotyczące platformy CMP?

Nie. Do wyświetlania reklam możesz używać dowolnej platformy CMP z listy platform CMP z certyfikatem Google.

Jak za pomocą pakietu UMP SDK wyświetlić ponownie formularz zgody, mimo że użytkownik już wyraził zgodę?

Jeśli użytkownik już wyraził zgodę, rozwiązanie Google do zarządzania zgodą nie będzie prosić o nowe wyrażenie zgody, dopóki ciąg tekstowy dotyczący przejrzystości i zgody nie wygaśnie lub nie stanie się nieważny.

RODO wymaga, aby użytkownicy mogli w dowolnym momencie wycofać zgodę na wykorzystanie danych. Zapoznaj się z opcjami dotyczącymi prywatności, aby umożliwić użytkownikom wycofanie zgody. Aby ponownie wyświetlić formularz zgody, zadzwoń pod numer showPrivacyOptionsForm().

Po integracji platformy CMP certyfikowanej przez Google nie widzę żadnych żądań reklam wysyłanych do partnerów pośredniczących, nawet od użytkowników, którzy wyrazili zgodę. Dlaczego tak się dzieje?

Zgodnie z zasadami TCF Google sprawdza, czy dostawcy technologii reklamowych i inne źródła ofert reklamowych objętych automatyzacją nie naruszają zasad Google i mają przynajmniej 1 podstawę prawną do przetwarzania danych przed ich uwzględnieniem w kaskadzie zapośredniczenia. Aby dowiedzieć się więcej, otwórz sekcję mediacja.

Niektórzy partnerzy pośredniczący z listy dostawców technologii reklamowych Google nie są zarejestrowani na liście dostawców TCF. Zamiast tego korzystają oni ze specyfikacji technicznej Google o nazwie „Udzielenie dodatkowej zgody”. Google publikuje listę dostawców technologii reklamowych niezarejestrowanych w IAB oraz ich identyfikatory pod adresem https://storage.googleapis.com/tcfac/additional-consent-providers.csv.

Pakiet SDK UMP obsługuje przechowywanie ciągu znaków AC, co umożliwia dodawanie partnerów reklamowych do opublikowanych wiadomości zgodnych z RODO bez konieczności sprawdzania, czy partnerzy są zarejestrowani w TCF. Jeśli korzystasz z zewnętrznej platformy CMP, wykonaj te czynności:

  1. Sprawdź, czy zewnętrzna platforma CMP obsługuje przechowywanie ciągu AC.
  2. Na liście dostawców technologii reklamowych, których zewnętrzna platforma CMP używa do uzyskiwania zgody, należy uwzględnić każdego partnera do zapośredniczenia.
Czy mogę zmienić sposób działania aplikacji, jeśli użytkownicy nie wyrażą zgody? Czy jest to zgodne z zasadami?

Wydawcy mogą odczytać ciąg tekstowy TCF IAB w swoich aplikacjach. Więcej informacji o czytaniu opcji zgody znajdziesz w artykule Jak odczytywać opcje zgody. Wydawcy powinni skonsultować się z prawnikiem w sprawie swoich zobowiązań wynikających z obowiązujących przepisów.

Jeśli wybiorę Zarządzaj opcjami i wyrazę zgodę na wszystkie cele, nie widzę żadnych reklam. Dlaczego tak się dzieje?

Oprócz zgody na zbieranie danych musisz też uzyskać zgodę dostawcy. Aby dostawca, np. Google, mógł wyświetlać odpowiednie reklamy, wymagana jest zarówno zgoda na cele, jak i zgoda na wykorzystanie danych przez dostawcę.

Jak wdrożyć ciąg tekstowy dotyczący udzielenia dodatkowej zgody w wersji 2 w przypadku użytkowników, którzy wyrazili już zgodę w wersji 1?

Sprawdź klucz IABTCF_AddtlConsent w pamięci lokalnej zgodnie z specyfikacją techniczną Google dotyczącą dodatkowej zgody, aby ustalić, czy użytkownik wyraził zgodę na wersję ciągu AC 2 i czy należy ponownie wyświetlić formularz zgody.

Java

SharedPreferences sharedPref = PreferenceManager.getDefaultSharedPreferences(context);
// Example value: "2~1.35.41.101~dv.9.21.81"
String additionalConsent = sharedPref.getString("IABTCF_AddtlConsent", "");
// Index 0 contains information about the specification version number.
if (!additionalConsent.isEmpty()) {
  String specACVersion = additionalConsent.charAt(0);
  boolean isACVersion2 = purposeOneString.equals("2");
}

Kotlin

val sharedPref = PreferenceManager.getDefaultSharedPreferences(context)
// Example value: "2~1.35.41.101~dv.9.21.81"
val additionalConsent = sharedPref.getString("IABTCF_AddtlConsent", "")
// Index 0 contains information about the specification version number.
if (!additionalConsent.isEmpty()) {
  val specACVersion = additionalConsent.first()
  val isACVersion2 = specACVersion == "2"
}