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