التوافق مع نظام التشغيل iOS 14

مع نظام التشغيل iOS 14.5، تشترط Apple على المطوّرين الحصول على إذن المستخدمين من خلال إطار عمل "شفافية تتبُّع التطبيقات" لتتبُّعهم أو الوصول إلى معرّف الإعلانات (IDFA) على أجهزتهم. اطّلِع على مستندات خصوصية المستخدم واستخدام البيانات في Apple وإطار عمل شفافية تتبُّع التطبيقات في Apple لمزيد من التفاصيل.

.

منتجات Firebase المتأثّرة

لا تحصل حِزم تطوير البرامج (SDK) لمنصّة Firebase على معرّف المعلِنين (IDFA)، إلا أنّ بعضها لدمج مع Google Analytics قد يتضمّن الوصول إلى معرّف المعلِنين (IDFA).

يسرد الجدول التالي منتجات Firebase المتاحة على منصات Apple ويوضّح مدى تأثُّر وظائف كل منتج في حال عدم التمكّن من الوصول إلى معرّف IDFA.

Product التأثير في حال عدم توفّر معرّف IDFA
A/B Testing يتم الحصول على بعض بيانات الاستهداف (مثل الخصائص الديمغرافية) في عملية دمج A/B Testing مع Google Analytics من معرّف IDFA. ولا يتوفّر هذا الاستهداف في التطبيقات التي لا يمكنها الوصول إلى معرّف المعلِنين (IDFA).
App Check ما مِن تأثير
App Distribution ما مِن تأثير
Authentication لن يكون هناك أي تأثير على Authentication وموفّري Authentication التابعين للطرف الأول، مثل ميزة "تسجيل الدخول باستخدام حساب Google" و"المصادقة عبر الهاتف".
Crashlytics ما مِن تأثير. لا يعتمد دمج Crashlytics مع Google Analytics الذي يقدّم بيانات الأعطال ومسارات التنقّل في الوقت الفعلي على معرّف 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، لا يسمحRemote Config بخصائص المستخدِمين التي تم إنشاؤها تلقائيًا للاستهداف بدون الوصول إلى معرّف المعلِنين (IDFA).
Realtime Database ما مِن تأثير
Cloud Storage ما مِن تأثير
Vertex AI in Firebase ما مِن تأثير

عمليات دمج Firebase المتأثرة

يسرد الجدول أدناه المنتجات المدمجة مع Firebase والتي تتأثّر في حال عدم إمكانية الوصول إلى معرّف IDFA.

Product التأثير في حال عدم توفّر معرّف IDFA
Google Analytics لا يتأثّر تسجيل Analytics للأحداث وإعداد تقاريرها وقياس الإحالات الناجحة، ولكن تتأثّر عملية تحديد المصدر في حال تعذّر الوصول إلى معرّف IDFA. لمزيد من المعلومات عن ردّ Google على نظام التشغيل iOS 14، يمكنك الاطّلاع على مشاركة المدونة.

طلب إذن تتبُّع التطبيقات على نظام التشغيل iOS 14

إذا أردت أن يتمكّن تطبيقك على أجهزة Apple من الوصول إلى معرّف المعلِنين (IDFA)، يمكنك إضافة إطار عمل "شفافية تتبُّع التطبيقات" من Apple إلى تطبيقك وطلب الإذن لتتبُّع معرّف المعلِنين (IDFA) الخاص بالمستخدمين أو الوصول إليه.

تختار العديد من التطبيقات عرض شاشة استعداد أو شاشة توضيحية قبل طلب الإذن. تسمح لك الشاشة التوضيحية بمنح المستخدمين مزيدًا من السياق حول كيفية استخدام تطبيقك لمعرّف المعلِنين (IDFA) قبل طلب الوصول إليه.

إذا كنت ناشر تطبيقات على AdMob أو "مدير إعلانات Google"، ننصحك باستخدام خيارات التمويل التي تتعامل تلقائيًا مع الحصول على موافقة لعرض الإعلانات المخصّصة وكذلك موافقة لتتبُّع المستخدِم وفقًا لإرشادات 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.

  1. في وحدة تحكّم Firebase، أنشئ حملة In-App Messaging جديدة.
  2. املأ الرسائل داخل التطبيق بالمحتوى المطلوب واضبط الرسالة لبدء الحدث app_launch.
  3. في قسم الاستهداف، تأكَّد من أنّ الحملة لا تستهدف سوى أحدث إصدار من تطبيقك والإصدارات الأحدث.

يمكنك تخصيص مظهر الشاشة التوضيحية باتّباع تعليمات مستندات In-App Messaging.

اختياري: إجراء اختبار أ/ب لشاشات الشرح المختلفة

تتضمّن In-App Messaging عملية دمج مدمجة مع Firebase A/B Testing، والتي يمكنك استخدامها لتجربة استخدام شاشات توضيحية مختلفة.

Firebase A/B Testing تنشئ مجموعات تجارب تلقائيًا وتساعدك على الاطّلاع على كيفية تفاعل المستخدمين مع الصيغ المختلفة لتطبيقك.

تسجيل أذونات تتبُّع التطبيقات

إذا لم تسجِّل حدث Google Analytics عند معالجة استجابة أذونات التتبُّع في التطبيق، عليك إجراء ذلك لقياس التغييرات في معدّل الردّ عند إجراء تجربة أ/ب.

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 للحصول على معلومات عن كيفية مراقبة تجربة وطرح خيار ناجح.