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

مع نظام التشغيل 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 وحدة تحكّم.

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

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