مع نظام التشغيل iOS 14.5، تطلب Apple من المطوّرين الحصول على إذن المستخدم من خلال إطار عمل "شفافية تتبُّع التطبيقات" لتتبُّعه أو الوصول إلى معرّف المعلِنين (IDFA) الخاص بجهازه. لمزيد من التفاصيل، يُرجى الاطّلاع على مستندات Apple بشأن خصوصية المستخدم واستخدام البيانات ومستندات Apple بشأن إطار عمل "شفافية تتبُّع التطبيقات".
منتجات Firebase المتأثّرة
لا تصل حِزم تطوير البرامج (SDK) من Firebase إلى معرّف المعلِنين (IDFA)، على الرغم من أنّ بعضها يتضمّن عمليات دمج مع Google Analytics قد تتضمّن الوصول إلى معرّف المعلِنين (IDFA).
يعرض الجدول أدناه منتجات Firebase المتوفّرة على منصّات Apple ويصف كيفية تأثُّر وظائف كل منتج في حال عدم إمكانية الوصول إلى معرّف المعلِنين (IDFA).
| المنتج | التأثير في حال عدم إمكانية الوصول إلى معرّف المعلِنين (IDFA) |
|---|---|
| A/B Testing | تستند بعض بيانات الاستهداف (مثل البيانات الديمغرافية) في عملية الدمج A/B Testing مع Google Analytics إلى معرّف المعلِنين (IDFA). وفي التطبيقات التي لا يمكنها الوصول إلى معرّف المعلِنين (IDFA)، لا يكون هذا الاستهداف متاحًا. |
| Firebase AI Logic 1 | لا يوجد تأثير |
| App Check | لا يوجد تأثير |
| App Distribution | لا يوجد تأثير |
| Authentication | لا يوجد تأثير في Authentication ومزوّدي Authentication التابعين للطرف الأول، مثل ميزة "تسجيل الدخول باستخدام حساب Google" و"مصادقة الهاتف". |
| Cloud Firestore | لا يوجد تأثير |
| Cloud Functions | لا يوجد تأثير |
| Cloud Messaging | عند استخدام Google Analytics، سيسجّل Google Analytics تلقائيًا بعض أحداث الإحالات الناجحة ذات الصلة بـ FCM. ويتطلّب تحديد مصدر هذه الأحداث الوصول إلى معرّف المعلِنين (IDFA). |
| Cloud Storage | لا يوجد تأثير |
| Crashlytics | لا يوجد تأثير. لا يعتمد الدمج بين Crashlytics وGoogle Analytics الذي يوفّر بيانات الأعطال في الوقت الفعلي والمسارات على معرّف المعلِنين (IDFA). |
| Dynamic Links | لا يوجد تأثير في وظيفة فتح الروابط. عند استخدام Google Analytics، لا يكون تحديد مصدر أحداث الإحالات الناجحة للروابط متاحًا. |
| In-App Messaging | لا يوجد تأثير |
| عمليات تثبيت Firebase | لا يوجد تأثير |
| InstanceID | لا يوجد تأثير |
| Firebase ML | لا يوجد تأثير |
| Performance Monitoring | لا يوجد تأثير |
| Realtime Database | لا يوجد تأثير |
| Remote Config | عند استخدام Google Analytics مع Remote Config، لا يسمح بإنشاء خصائص المستخدم تلقائيًا للاستهداف بدون الوصول إلى معرّف المعلِنين (IDFA). |
1 Firebase AI Logic كان يُطلق عليه سابقًا "Vertex AI in Firebase".
عمليات دمج Firebase المتأثّرة
يعرض الجدول أدناه المنتجات المدمجة مع Firebase التي تتأثّر في حال عدم إمكانية الوصول إلى معرّف المعلِنين (IDFA).
| المنتج | التأثير في حال عدم إمكانية الوصول إلى معرّف المعلِنين (IDFA) |
|---|---|
| Google Analytics | Analytics لا يتأثّر تسجيل الأحداث وإعداد تقارير الأحداث وقياس الإحالات الناجحة ، ولكن يتأثّر تحديد المصدر في حال عدم إمكانية الوصول إلى معرّف المعلِنين (IDFA). لمزيد من المعلومات عن ردّ Google على نظام التشغيل iOS 14، يُرجى الاطّلاع على مشاركة المدونة. |
طلب إذن تتبُّع التطبيقات على نظام التشغيل iOS 14
إذا أردت أن يتمكّن تطبيقك على أجهزة Apple من الوصول إلى معرّف المعلِنين (IDFA)، يمكنك إضافة إطار عمل "شفافية تتبُّع التطبيقات" من Apple إلى تطبيقك وطلب الإذن بتتبُّع معرّف المعلِنين (IDFA) الخاص بالمستخدمين أو الوصول إليه.
تختار العديد من التطبيقات عرض شاشة تمهيدية أو شاشة توضيحية قبل طلب الإذن. تسمح لك الشاشة التوضيحية بمنح المستخدمين سياقًا إضافيًا حول كيفية استخدام تطبيقك لمعرّف المعلِنين (IDFA) قبل طلب الوصول إليه.
إذا كنت ناشر تطبيقات على AdMob أو "مدير الإعلانات"، ننصحك باستخدام خيارات التمويل، التي تتعامل تلقائيًا مع الحصول على الموافقة لعرض إعلانات مخصّصة بالإضافة إلى الموافقة على تتبُّع المستخدم وفقًا لإرشادات Apple. لمزيد من التفاصيل، يُرجى الاطّلاع على صفحة AdMob الموافقة باستخدام رسائل المستخدمين.
يقدّم الدليل التالي حلاً باستخدام Firebase In-App Messaging لإنشاء شاشة توضيحية وعرضها قبل طلب إذن الوصول إلى التتبُّع من خلال إطار عمل "شفافية تتبُّع التطبيقات".
إضافة 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 للتعامل مع الأحداث عندما يغلق المستخدم الشاشة التوضيحية. إذا نقر المستخدم على "موافق"، سيتم عرض رسالة المطالبة في النظام من خلال إطار عمل "شفافية تتبُّع التطبيقات".
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 عند التعامل مع ردّ أذونات تتبُّع التطبيقات، عليك تسجيله لقياس التغييرات في معدّل ال101}ردّ عند إجراء تجربة 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، يُرجى الانتقال إلى قائمة الإحالات الناجحة، ثم إضافة حدث إحالة ناجحة جديد بالاسم نفسه الذي تم تسجيله باستخدام رمز نموذجي أعلاه.
إنشاء تجربة جديدة
في قائمة In-App Messagingفي وحدة التحكّم، انقر على تجربة جديدة، ثم اتّبع التعليمات الظاهرة على الشاشات الناتجة.
- في قسم الاستهداف ، يُرجى التأكّد من أنّ الحملة تستهدف أحدث إصدار من تطبيقك والإصدارات الأحدث فقط.
- في قسم الأهداف ، يُرجى اختيار حدث الإحالة الناجحة الذي أنشأته باستخدام رمز نموذجي أعلاه، بالإضافة إلى أي مقاييس أخرى تريد تتبُّعها.
بعد نشر تجربتك، ستحتاج إلى جمع البيانات لفترة من الوقت قبل أن تتمكّن من تقديم نتائج نهائية.
يُرجى الاطّلاع على Firebase A/B Testing المستندات للحصول على معلومات عن كيفية مراقبة تجربة وطرح نُسخة ناجحة.