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