ב-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 ישירים, כמו כניסה באמצעות חשבון 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.
- במסוף Firebase, יוצרים קמפיין In-App Messaging חדש.
- מאכלסים את ההודעות באפליקציה בתוכן הרצוי ומגדירים את ההודעה כך שתופעל באירוע
app_launch
. - בקטע טירגוט, מוודאים שהקמפיין מטרגט רק את הגרסה העדכנית ביותר של האפליקציה ואילך.
אתם יכולים להתאים אישית את המראה של מסך ההסבר לפי ההוראות במאמרי העזרה של 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 ופועלים לפי ההוראות במסכים שמופיעים.
- בקטע טירגוט, מוודאים שהקמפיין מטרגט רק את הגרסה העדכנית ביותר של האפליקציה ואילך.
- בקטע Goals (יעדים), בוחרים את אירוע ההמרה שיצרתם באמצעות הקוד לדוגמה שלמעלה, וגם כל מדד אחר שאחריו רוצים לעקוב.
לאחר פרסום הניסוי, הוא יצטרך לאסוף נתונים למשך זמן מה לפני שיוכלו להניב תוצאות חד-משמעיות.
במסמכי התיעוד של Firebase A/B Testing מוסבר איך לעקוב אחרי ניסוי ולהשיק וריאנט מוצלח.