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

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

.

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

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

يسرد الجدول أدناه منتجات Firebase المتوفّرة على منصات Apple ويوضّح مدى تأثُّر وظائف كل منتج في حال عدم التمكّن من الوصول إلى معرّف 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.

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

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

إذا أردت أن يتمكّن تطبيقك المتوافق مع أجهزة Apple من الوصول إلى معرّف المعلِنين (IDFA)، يمكنك إضافة إطار عمل شفافية تتبُّع التطبيقات (ATT) من 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 عند معالجة استجابة Permissions (أذونات) تتبُّع التطبيقات، عليك إجراء ذلك لقياس التغييرات في معدّل الردّ عند إجراء تجربة أ/ب.

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