הגדרת סטטוס הסכמה באפליקציות

הדף הזה מיועד למפתחים שמשתמשים ב-Google Analytics for Firebase SDK באפליקציה שלהם ורוצים לשלב את סטטוס ההסכמה. לקבלת מבוא לסטטוס ההסכמה, כדאי לקרוא את הסקירה הכללית על סטטוס ההסכמה.

ב-Google Analytics יש סטטוס הסכמה שמאפשר לשנות את אופן הפעולה של ה-SDK בהתאם לסטטוס ההסכמה של המשתמשים. אפשר להטמיע את סטטוס ההסכמה באופן בסיסי או מתקדם. לא בטוחים אם להטמיע את סטטוס ההסכמה הבסיסי או המתקדם

לפני שמתחילים

כדי לנהל את הסכמת המשתמשים, צריך להטמיע את:

  • Google Analytics for Firebase SDK
  • באנר של הגדרות הסכמה כדי לתעד את הסכמת המשתמש

כדי להגדיר סטטוס הסכמה:

  1. לפני שמשתמש מביע הסכמה: משביתים באופן זמני את איסוף הנתונים ב-Analytics.
  2. הגדרת ברירת המחדל של מצב ההסכמה.
  3. לעדכן את מצב ההסכמה על סמך האינטראקציה של המשתמש עם הגדרות ההסכמה.
  4. מפעילים מחדש את איסוף הנתונים ב-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" />

כברירת מחדל, לא מוגדרים ערכים לסטטוס הסכמה. כדי להגדיר את מצב ההסכמה שמוגדר כברירת מחדל באפליקציה:

  1. פותחים את הקובץ AndroidManifest.xml של האפליקציה.
  2. מוסיפים את צמדי המפתח/ערך של סטטוס ההסכמה. המפתח מתאר את סוג ההסכמה והערך מציין את מצב ההסכמה. הערכים יכולים להיות 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
  3. שומרים את השינויים. בשלב הבא, צריך להטמיע את המנגנון לעדכון ערכי ההסכמה.

לדוגמה, כדי להגדיר כברירת מחדל את כל אישורי ההסכמה לכל הפרמטרים:

<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)
}