תמיכה ב-iOS 14

ב-iOS מגרסה 14.5 ואילך, Apple דורשת ממפתחים לקבל את הרשאת המשתמש באמצעות מסגרת App Tracking Transparency כדי לעקוב אחרי המשתמשים או לגשת למזהה הפרסום (IDFA) של המכשיר שלהם. פרטים נוספים זמינים במסמכי התיעוד של השימוש בנתונים ופרטיות המשתמשים ב-Apple ושל התוכנית של Apple לשקיפות לגבי מעקב אחר אפליקציות.

המוצרים המושפעים ב-Firebase

ערכות ה-SDK של Firebase לא ניגשות ל-IDFA, אבל לחלק מהן יש שילובים עם Google Analytics שעשויים לכלול גישה ל-IDFA.

בטבלה הבאה מפורטים מוצרי Firebase שזמינים בפלטפורמות של Apple, ומוסבר איך הפונקציונליות של כל מוצר מושפעת אם אין גישה למזהה IDFA.

מוצר ההשפעה אם לא ניתן לגשת למזהה IDFA
A/B Testing חלק מנתוני הטירגוט (כמו נתונים דמוגרפיים) בשילוב של A/B Testing עם Google Analytics נגזרים מה-IDFA. באפליקציות שאין להן גישה ל-IDFA, הטירגוט הזה לא זמין.
App Check אין השפעה
App Distribution אין השפעה
Authentication אין השפעה על Authentication ועל ספקי Authentication מאינטראקציה ישירה (First-party), כמו כניסה באמצעות חשבון Google ואימות טלפוני.
Crashlytics אין השפעה. השילוב של Crashlytics עם Google Analytics שמספק נתוני תאונות ונתוני breadcrumbs בזמן אמת לא תלוי ב-IDFA.
Dynamic Links אין השפעה על הפונקציונליות של פתיחת קישורים. כשמשתמשים ב-Google Analytics, אי אפשר לשייך אירועי המרה מסוג קישור.
Cloud Firestore אין השפעה
Cloud Functions אין השפעה
In-App Messaging אין השפעה
Firebase התקנות אין השפעה
InstanceID אין השפעה
Cloud Messaging כשמשתמשים ב-Google Analytics עם Google Analytics, Google Analytics מתעד באופן אוטומטי חלק מאירועי ההמרה שקשורים ל-FCM. כדי לשייך את האירועים האלה למודעות, נדרשת גישה ל-IDFA.
Firebase ML אין השפעה
Performance Monitoring אין השפעה
Remote Config כשמשתמשים ב-Google Analytics, הערך Remote Config לא מאפשר להשתמש במאפייני משתמשים שנוצרו באופן אוטומטי לצורכי טירגוט בלי גישה ל-IDFA.
Realtime Database אין השפעה
Cloud Storage אין השפעה
Vertex AI in Firebase אין השפעה

שילובי Firebase שהושפעו

בטבלה הבאה מפורטים מוצרים משולבים של Firebase שהושפעו מהמצב שבו אין גישה למזהה IDFA.

מוצר ההשפעה אם לא ניתן לגשת למזהה IDFA
Google Analytics הרישום ביומן של אירועי Analytics, הדיווח על אירועים ומדידת ההמרות לא מושפעים, אבל אם אין גישה ל-IDFA, יש לכך השפעה על השיוך. מידע נוסף על התגובה של Google ל-iOS 14 זמין בפוסט הזה בבלוג.

בקשה להרשאת מעקב אחר אפליקציות ב-iOS 14

אם אתם רוצים לאפליקציה שלכם ל-Apple להיות גישה ל-IDFA, תוכלו להוסיף לאפליקציה את מסגרת App Tracking Transparency של Apple ולבקש הרשאה למעקב אחרי ה-IDFA של המשתמשים או לגישה אליו.

באפליקציות רבות מוצג מסך מקדים או מסך הסבר לפני הבקשה לקבלת הרשאה. במסך ההסבר תוכלו לספק למשתמשים מידע נוסף על האופן שבו אתם משתמשים ב-IDFA באפליקציה לפני ששולחים בקשה לגישה.

אם אתם בעלי אפליקציה ב-AdMob או ב-Ad Manager, מומלץ להשתמש ב-Funding Choices, שמטפלת באופן אוטומטי בקבלת הסכמה להצגת מודעות מותאמות אישית וגם בקבלת הסכמה למעקב אחר המשתמשים בהתאם להנחיות של Apple. פרטים נוספים זמינים בדף AdMob הסכמה באמצעות הודעות למשתמשים.

המדריך הבא מספק פתרון באמצעות Firebase In-App Messaging ליצירה ולהצגה של מסך הסבר לפני בקשת גישה למעקב באמצעות App Tracking Transparency.

הוספת In-App Messaging לאפליקציה

פועלים לפי ההוראות כדי להוסיף את In-App Messaging לאפליקציה של Apple.

טיפול בהסרת הודעות בתוך האפליקציה

קודם כול, מומלץ להימנע מהצגת המסך עם ההסבר במכשירים שלא יכולים להציג את תיבת הדו-שיח לבקשת הסכמה, כמו מכשירים עם מערכת iOS 13. חשוב לוודא שהקוד הזה יבוצע מיד אחרי FirebaseApp.configure().

Swift

if NSClassFromString("ATTrackingManager") == nil {
  // Avoid showing the App Tracking Transparency explainer if the
  // framework is not linked.
  InAppMessaging.inAppMessaging().messageDisplaySuppressed = true
}

מטמיעים את פרוטוקול InAppMessagingDisplayDelegate כדי לטפל באירועים כשהמשתמש סוגר את המסך עם ההסבר. אם המשתמש מקייש על 'אישור', מציגים את ההנחיה של המערכת דרך מסגרת App Tracking Transparency.

Swift

// The InAppMessaging delegate must be assigned before events can be handled.
InAppMessaging.inAppMessaging().delegate = self

func messageClicked(_ inAppMessage: InAppMessagingDisplayMessage,
                    with action: InAppMessagingAction) {
  switch action.actionText {
  case "OK":
    ATTrackingManager.requestTrackingAuthorization { status in
      switch status {
      case .authorized:
        // Optionally, log an event when the user accepts.
        Analytics.logEvent("tracking_authorized", parameters: nil)
      case _:
        // Optionally, log an event here with the rejected value.
      }
    }
  case _:
    // do nothing
  }
}

יצירת קמפיין In-App Messaging

אחרי שמוסיפים את הקוד לאפליקציה, יוצרים הודעה באפליקציה במסוף Firebase.

  1. במסוף Firebase, יוצרים קמפיין In-App Messaging חדש.
  2. מאכלסים את ההודעות באפליקציה בתוכן הרצוי ומגדירים את ההודעה כך שתופעל באירוע app_launch.
  3. בקטע טירגוט, מוודאים שהקמפיין מטרגט רק את הגרסה העדכנית ביותר של האפליקציה ואילך.

תוכלו להתאים אישית את המראה של מסך ההסבר לפי ההוראות שמפורטות במסמכי העזרה של In-App Messaging.

אופציונלי: בדיקת A/B של מסכים שונים עם הסברים

ל-In-App Messaging יש שילוב מובנה עם Firebase A/B Testing, שבעזרתו אפשר להתנסות במסכים שונים עם הסברים.

Firebase A/B Testing יוצרת באופן אוטומטי קבוצות ניסוי ומאפשרת לכם לראות באופן חזותי איך המשתמשים מקיימים אינטראקציה עם גרסאות שונות של האפליקציה.

תיעוד ההרשאות למעקב אחר האפליקציה

אם לא רשמתם אירוע Google Analytics בזמן הטיפול בתגובה לבקשת ההרשאה למעקב אחר האפליקציה, תצטרכו לעשות זאת כדי למדוד שינויים בשיעור התשובות כשאתם מריצים ניסוי A/B.

Swift

ATTrackingManager.requestTrackingAuthorization { status in
  switch status {
  case .authorized:
    // Optionally, log an event when the user accepts.
    Analytics.logEvent("tracking_authorized", parameters: nil)
  case _:
    // Optionally, log an event here with the rejected value.
  }
}

יצירת אירוע המרה חדש

בקטע Analytics במסוף Firebase, עוברים לתפריט Conversions ומוסיפים אירוע המרה חדש עם אותו שם כמו האירוע שרשום ביומן באמצעות הקוד לדוגמה שלמעלה.

צור ניסוי חדש

בתפריט In-App Messaging של המסוף, לוחצים על New Experiment ופועלים לפי ההוראות במסכים שמופיעים.

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

אחרי שתפרסמו את הניסוי, הוא יצטרך לאסוף נתונים במשך זמן מה כדי שיהיה אפשר להפיק ממנו תוצאות חותכות.

במסמכי התיעוד של Firebase A/B Testing מוסבר איך לעקוב אחרי ניסוי ולהשיק וריאנט מוצלח.