Ta strona jest przeznaczona dla deweloperów, którzy używają w swojej aplikacji pakietu SDK Google Analytics dla Firebase i chcą zintegrować tryb uzyskiwania zgody. Wprowadzenie do trybu uzyskiwania zgody znajdziesz w artykule Omówienie trybu uzyskiwania zgody.
Google Analytics oferuje tryb uzyskiwania zgody, który pozwala dostosowywać działanie pakietu SDK na podstawie stanu zgody użytkowników. Tryb uzyskiwania zgody możesz wdrożyć w sposób podstawowy lub zaawansowany. Jeśli nie masz pewności, czy wdrożyć podstawowy czy zaawansowany tryb uzyskiwania zgody, dowiedz się więcej o podstawowym i zaawansowanym trybie uzyskiwania zgody oraz zapoznaj się z wytycznymi obowiązującymi w Twojej firmie.
Zanim zaczniesz
Aby zarządzać zgodą użytkowników, musisz wdrożyć:
- Pakiet SDK Google Analytics dla Firebase
Baner z ustawieniami uzyskiwania zgody służący do uzyskiwania zgody użytkownika
Konfigurowanie trybu uzyskiwania zgody
Aby skonfigurować tryb uzyskiwania zgody:
Ustawianie domyślnego stanu zgody użytkownika
Domyślnie nie są ustawione żadne wartości trybu uzyskiwania zgody. Aby ustawić w aplikacji domyślny stan zgody użytkownika:
- Otwórz plik AndroidManifest.xml aplikacji.
Dodaj pary klucz-wartość trybu uzyskiwania zgody. Klucz opisuje typ zgody, a wartość wskazuje stan zgody użytkownika. Wartościami mogą być
true
(czyli użytkownik wyraził zgodę) lubfalse
– użytkownik nie wyraził zgody.Zgodnie z aktualizacjami trybu uzyskiwania zgody w przypadku ruchu w Europejskim Obszarze Gospodarczym (EOG) można ustawić wartość
eu_consent_policy
dla usługad_user_data
iad_personalization
. Oznacza to, że odmowa udzielenia zgody jest wymagana tylko w przypadku użytkowników z regionów objętych polityką w zakresie zgody użytkownika z UE.Ustaw następujące elementy:
google_analytics_default_allow_analytics_storage
google_analytics_default_allow_ad_storage
google_analytics_default_allow_ad_user_data
google_analytics_default_allow_ad_personalization_signals
Zapisz zmiany. Następnie wdróż mechanizm aktualizowania wartości zgody.
Aby np. ustawić domyślne ustawienia uzyskiwania zgody wszystkich parametrów w przypadku wszystkich parametrów:
<meta-data android:name="google_analytics_default_allow_analytics_storage" android:value="true" />
<meta-data android:name="google_analytics_default_allow_ad_storage" android:value="true" />
<meta-data android:name="google_analytics_default_allow_ad_user_data" android:value="true" />
<meta-data android:name="google_analytics_default_allow_ad_personalization_signals" android:value="true" />
Zaktualizuj zgodę użytkownika
Aby zaktualizować wartości zgody po uruchomieniu aplikacji, wywołaj metodę setConsent
.
Wartość ustawiona przez metodę setConsent
zastępuje ustawienie domyślne i jest niezmiennie trwała w przypadku różnych uruchomień aplikacji. Wartość pozostaje w tym stanie do czasu ponownego wywołania funkcji setConsent
, nawet jeśli użytkownik zamknie i ponownie otworzy aplikację. setConsent
aktualizuje tylko określone przez Ciebie parametry.
Jeśli użytkownik wycofa wcześniej udzieloną zgodę na korzystanie z Analytics lub funkcji przechowywania danych na potrzeby reklam, Google Analytics usunie wszystkie właściwości użytkownika, w tym zgodę dotyczącą
ad_personalization
. Aby zachować wybór użytkownika dotyczący zgody na personalizację reklam, przywróć poprzednią wartość personalizacji reklam za pomocą atrybutusetConsent
(Kotlin+KTX | Java) .
Ten przykład pokazuje, jak metoda setConsent
aktualizuje różne wartości zgody do granted
:
Java
// Set consent types.
Map<ConsentType, ConsentStatus> consentMap = new EnumMap<>(ConsentType.class);
consentMap.put(ConsentType.ANALYTICS_STORAGE, ConsentStatus.GRANTED);
consentMap.put(ConsentType.AD_STORAGE, ConsentStatus.GRANTED);
consentMap.put(ConsentType.AD_USER_DATA, ConsentStatus.GRANTED);
consentMap.put(ConsentType.AD_PERSONALIZATION, ConsentStatus.GRANTED);
mFirebaseAnalytics.setConsent(consentMap);
Kotlin
Firebase.analytics.setConsent {
analyticsStorage(ConsentStatus.GRANTED)
adStorage(ConsentStatus.GRANTED)
adUserData(ConsentStatus.GRANTED)
adPersonalization(ConsentStatus.GRANTED)
}