Lihat Panduan Developer Google untuk SDK:
Fungsi SDK mode izin Google
Lihat panduan di awal dokumen ini untuk mengetahui persyaratan dan penerapan SDK secara keseluruhan. Jika telah mengaktifkan dukungan Mode Izin Privasi & pesan, Anda juga dapat menerapkan fungsi tambahan yang dibahas di sini.
Mode izin: dukungan mode dasar
Setelah Anda menerapkan SDK yang relevan, mengaktifkan Mode Izin Google di Privasi & pesan, dan memutuskan bahwa Anda akan menerapkan mode izin dasar, ikuti petunjuk berikut.
Untuk menerapkan mode dasar:
- Menonaktifkan pengumpulan Analytics untuk sementara (Android, iOS).
- Jika Anda siap untuk berhenti memblokir fungsi Google Analytics, aktifkan kembali pengumpulan Analytics (Android, iOS).
Untuk Langkah 2, konsultasikan dengan pakar hukum untuk menentukan kriteria Anda dalam mengaktifkan kembali fungsi Analytics.
Misalnya, Anda dapat mengaktifkan kembali fungsi Google Analytics setelah pengguna
membuat pilihan izin dengan mengaktifkan kembali fungsi Google Analytics di
callback loadAndShowConsentFormIfRequired
(referensi API:
Android,
iOS).
Atau, untuk menentukan apakah akan mengaktifkan kembali pengumpulan Analytics berdasarkan pilihan mode izin pengguna, baca kunci penyimpanan lokal UMP_consentModeValues
. Nilainya adalah string empat digit.
- Digit pertama menunjukkan nilai tujuan ad_storage
- Digit kedua menunjukkan nilai tujuan ad_user_data
- Digit ketiga menunjukkan nilai tujuan ad_personalization
- Digit keempat menunjukkan nilai tujuan analytics_storage
Tabel berikut menjelaskan kemungkinan nilai untuk setiap digit:
Nilai | Arti |
---|---|
0 |
Belum ada nilai yang tersedia. |
1 |
Pengguna GRANTED tujuan ini. |
2 |
Pengguna DENIED tujuan ini. |
3 |
Mode izin tidak berlaku untuk pengguna ini. |
4 |
Mode izin tidak dikonfigurasi untuk tujuan ini. |
Contoh berikut mengurai UMP_consentModeValues
, mengaktifkan Google Analytics jika semua tujuannya adalah GRANTED
atau tidak berlaku, dan menonaktifkan pengumpulan Analytics jika tidak:
Java
// Helper function that sets Analytics collection based on the value of the
// UMP_consentModeValues local storage key.
private void maybeReEnableAnalyticsCollection() {
String consentModeValues = sharedPreferences.getString("UMP_consentModeValues", null);
if (shouldReEnableAnalyticsCollection(consentModeValues)) {
firebaseAnalytics.setAnalyticsCollectionEnabled(true);
} else {
firebaseAnalytics.setAnalyticsCollectionEnabled(false);
}
}
// Helper function to determine whether Analytics collection should be enabled. Returns true
// if all consent mode values are either granted, not applicable, or not configured.
private boolean shouldReEnableAnalyticsCollection(String consentModeValues) {
if (consentModeValues.isEmpty()) {
return false;
}
for (int i = 0; i < consentModeValues.length(); i++) {
char consentModeValue = consentModeValues.charAt(i);
switch (consentModeValue) {
case '0':
// Consent mode data not ready yet.
return false;
case 1:
// Consent mode is granted for this purpose.
break;
case '2':
// Consent is denied for this consent mode purpose.
return false;
case '3':
// Consent does not apply for this purpose at this time.
break;
case '4':
// Consent mode is not configured for this purpose.
break;
default:
// Unexpected value encountered.
return false;
}
}
// If all checks pass, re-enable Analytics collection.
return true;
}
Kotlin
// Helper function that may re-enable Analytics collection based on the value of the
// UMP_consentModeValues local storage key.
private fun maybeReEnableAnalyticsCollection() {
val consentModeValues = sharedPreferences.getString("UMP_consentModeValues", null)
if (shouldReEnableAnalyticsCollection(consentModeValues)) {
firebaseAnalytics.setAnalyticsCollectionEnabled(true)
}
}
// Helper function to determine whether Analytics collection should be re-enabled. Returns true
// if all consent mode values are either granted, not applicable, or not configured.
private fun shouldReEnableAnalyticsCollection(consentModeValues: String?): Boolean {
if (consentModeValues.isNullOrEmpty()) {
return false
}
for (consentModeValue in consentModeValues) {
when (consentModeValue) {
'0' -> {
// Consent mode data not ready yet.
return false
}
'1' -> {
// Consent mode is granted for this purpose.
}
'2' -> {
// Consent is denied for this consent mode purpose.
return false
}
'3' -> {
// Consent does not apply for this purpose at this time.
}
'4' -> {
// Consent mode is not configured for this purpose.
}
else -> {
// Unexpected value encountered.
return false
}
}
}
// If all checks pass, can re-enable Analytics collection.
return true
}
Swift
// Helper function that may re-enable Analytics collection based on the value of the
// UMP_consentModeValues local storage key.
private func maybeReEnableAnalyticsCollection() {
let consentModeValues = userDefaults.string(forKey: "UMP_consentModeValues")
if shouldReEnableAnalyticsCollection(consentModeValues) {
Analytics.setAnalyticsCollectionEnabled(true)
}
}
// Helper function to determine whether Analytics collection should be re-enabled. Returns true
// if all consent mode values are either granted, not applicable, or not configured.
private func shouldReEnableAnalyticsCollection(_ consentModeValues: String?) -> Bool {
guard let consentModeValues = consentModeValues, !consentModeValues.isEmpty else {
return false
}
for consentModeValue in consentModeValues {
switch consentModeValue {
case "0":
// Consent mode data not ready yet.
return false
case "1":
// Consent mode is granted for this purpose.
break
case "2":
// Consent is denied for this consent mode purpose.
return false
case "3":
// Consent does not apply for this purpose at this time.
break
case "4":
// Consent mode is not configured for this purpose.
break
default:
// Unexpected value encountered.
return false
}
}
// If all checks pass, can re-enable Analytics collection.
return true
}
Objective-C
// Helper function that may re-enable Analytics collection based on the value of the
// UMP_consentModeValues local storage key.
- (void)maybeReEnableAnalyticsCollection {
NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
NSString *consentModeValues = [defaults stringForKey:@"UMP_consentModeValues"];
if ([self shouldReEnableAnalyticsCollection:consentModeValues]) {
[FIRAnalytics setAnalyticsCollectionEnabled:YES];
}
}
// Helper function to determine whether Analytics collection should be re-enabled. Returns true
// if all consent mode values are either granted, not applicable, or not configured.
- (BOOL)shouldReEnableAnalyticsCollection:(NSString *)consentModeValues {
if (!consentModeValues || [consentModeValues length] == 0) {
return NO;
}
for (NSUInteger i = 0; i < [consentModeValues length]; i++) {
unichar consentModeValue = [consentModeValues characterAtIndex:i];
switch (consentModeValue) {
case '0':
// Consent mode data not ready yet.
return NO;
case '1':
// Consent mode is granted for this purpose.
break;
case '2':
// Consent is denied for this consent mode purpose.
return NO;
case '3':
// Consent does not apply for this purpose at this time.
break;
case '4':
// Consent mode is not configured for this purpose.
break;
default:
// Unexpected value encountered.
return NO;
}
}
// If all checks pass, can re-enable Analytics collection.
return YES;
}
Panggil maybeReEnableAnalyticsCollection
saat:
- informasi izin diperbarui
- izin dikumpulkan.