הדף הזה מיועד למפתחים שמשתמשים ב-Google Analytics for Firebase SDK באפליקציה שלהם ורוצים לשלב את סטטוס ההסכמה. לקבלת מבוא לסטטוס ההסכמה, כדאי לקרוא את הסקירה הכללית על סטטוס ההסכמה.
ב-Google Analytics יש סטטוס הסכמה שמאפשר לשנות את אופן הפעולה של ה-SDK בהתאם לסטטוס ההסכמה של המשתמשים. אפשר להטמיע את סטטוס ההסכמה באופן בסיסי או מתקדם. לא בטוחים אם להטמיע את סטטוס ההסכמה הבסיסי או המתקדם
לפני שמתחילים
כדי לנהל את הסכמת המשתמשים, צריך להטמיע את:
- Google Analytics for Firebase SDK
באנר של הגדרות הסכמה כדי לתעד את הסכמת המשתמש
הגדרה של סטטוס הסכמה
כדי להגדיר סטטוס הסכמה:
- לפני שמשתמש מביע הסכמה: משביתים באופן זמני את איסוף הנתונים ב-Analytics.
- הגדרת ברירת המחדל של מצב ההסכמה.
- לעדכן את מצב ההסכמה על סמך האינטראקציה של המשתמש עם הגדרות ההסכמה.
- מפעילים מחדש את איסוף הנתונים ב-Analytics.
השבתה זמנית של איסוף הנתונים ב-Analytics
יישום בסיסי של סטטוס ההסכמה פירושו חסימת הטעינה של ה-SDK של Google Analytics for Firebase עד שהמשתמש מביע הסכמה.
כדי להשבית באופן זמני את איסוף הנתונים ב-Analytics, צריך להגדיר את הערך של firebase_analytics_collection_enabled
כ-false
ב-AndroidManifest.xml
של האפליקציה בתג של האפליקציה. למשל:
<meta-data android:name="firebase_analytics_collection_enabled" android:value="false" />
הגדרת מצב ההסכמה שמוגדר כברירת מחדל
כברירת מחדל, לא מוגדרים ערכים לסטטוס הסכמה. כדי להגדיר את מצב ההסכמה שמוגדר כברירת מחדל באפליקציה:
- פותחים את הקובץ AndroidManifest.xml של האפליקציה.
מוסיפים את צמדי המפתח/ערך של סטטוס ההסכמה. המפתח מתאר את סוג ההסכמה והערך מציין את מצב ההסכמה. הערכים יכולים להיות
true
, כלומר, ההסכמה אושרה, אוfalse
. המשמעות היא שההסכמה נדחתה. מגדירים את ההגדרות הבאות: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
שומרים את השינויים. בשלב הבא, צריך להטמיע את המנגנון לעדכון ערכי ההסכמה.
לדוגמה, כדי להגדיר כברירת מחדל את כל אישורי ההסכמה לכל הפרמטרים:
<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" />
הפעלה מחדש של איסוף ב-Analytics
אחרי שהמשתמש מביע הסכמה, מפעילים שוב את האיסוף ב-Analytics באמצעות השיטהsetAnalyticsCollectionEnabled()
.
הערך שנקבע על ידי השיטה setAnalyticsCollectionEnabled
נשאר בכל ההפעלות של האפליקציה, ומבטל את הערך של FIREBASE_ANALYTICS_COLLECTION_ENABLED
בקובץ AndroidManifest.xml
של האפליקציה. אחרי שמגדירים את הערך בשדה setAnalyticsCollectionEnabled
, איסוף הנתונים ב-Analytics נשאר במצב הזה עד שמפעילים שוב את setAnalyticsCollectionEnabled
, גם אם המשתמש סוגר את האפליקציה ופותח אותה מחדש.
כדי לעדכן את אוסף Analytics:
setAnalyticsCollectionEnabled(true);
עדכון ההסכמה
כדי לעדכן את ערכי ההסכמה אחרי השקת האפליקציה, צריך לבצע קריאה ל-method setConsent
.
הערך שנקבע בשיטה setConsent
מבטל את הגדרת ברירת המחדל וממשיך לפעול בכל ההפעלות של האפליקציה. הערך יישאר במצב הזה עד שתתבצע קריאה שוב ל-setConsent
, גם אם המשתמש סוגר את האפליקציה ופתח אותה מחדש.
הפרמטר setConsent
מעדכן רק את הפרמטרים שצוינו.
אם משתמש מבטל את ההסכמה שנתנו בעבר ל-Analytics או לאחסון מודעות, מערכת Google Analytics מוחקת את כל מאפייני המשתמשים, כולל ההסכמה ל-
ad_personalization
. כדי לשמר את אפשרות ההסכמה של המשתמש להתאמה אישית של מודעות, צריך לשחזר את הערך הקודם של ההתאמה האישית של המודעות באמצעותsetConsent
(Kotlin+KTX | Java) .
בדוגמה הבאה מוצגת השיטה setConsent
שמעדכנת את ערכי ההסכמה השונים ל-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)
}