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

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

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

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

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

المنتج التأثير في حال عدم إمكانية الوصول إلى معرّف المعلنين
A/B Testing يتم استخلاص بعض بيانات الاستهداف (مثل الخصائص الديمغرافية) في عملية الدمج بين A/B Testing وGoogle Analytics من معرّف المعلِنات على أجهزة Apple. ولا يتوفّر هذا الاستهداف في التطبيقات التي لا يمكنها الوصول إلى معرّف المعلِنين (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 عند استخدام Remote Config مع Google Analytics، لا تسمح Remote Config بإنشاء سمات مستخدمين تلقائيًا للاستهداف بدون إذن الوصول إلى معرّف المعلِنين (IDFA).

1 كان اسم Firebase AI Logic في السابق "Vertex AI in Firebase".

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

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

المنتج التأثير في حال عدم إمكانية الوصول إلى معرّف المعلنين
Google Analytics لا تتأثّر عمليات تسجيل الأحداث وإعداد تقارير الأحداث وقياس الإحالات الناجحة، ولكن تتأثّر عملية تحديد المصدر إذا لم يكن معرّف المعلنين متاحًا.Analytics لمزيد من المعلومات حول ردّ 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المستندات للحصول على معلومات حول كيفية مراقبة تجربة وطرح إصدار ناجح.