پشتیبانی از iOS 14

با iOS 14.5،‏ Apple توسعه‌دهندگان را ملزم می‌کند تا ازطریق چارچوب App Tracking Transparency (شفاف‌سازی ردگیری برنامه) برای ردگیری کاربران یا دسترسی به شناسه تبلیغاتی (IDFA) دستگاهشان از آن‌ها اجازه بگیرند. برای جزئیات بیشتر، به اسناد حریم خصوصی کاربر و استفاده از داده Apple و شفافیت ردیابی برنامه Apple مراجعه کنید.

محصولات Firebase تحت‌تأثیر قرارگرفته

کیت‌های توسعه نرم‌افزار Firebase به IDFA دسترسی ندارند، اگرچه برخی‌از آن‌ها با Google Analytics ادغام شده‌اند که ممکن است شامل دسترسی به IDFA باشد.

جدول زیر محصولات Firebase را که در پلاتفرم‌های Apple دردسترس هستند فهرست می‌کند و شرح می‌دهد که اگر IDFA دردسترس نباشد، عملکرد هر محصول چگونه تحت تأثیر قرار می‌گیرد.

محصول تأثیر درصورت دردسترس نبودن IDFA
A/B Testing برخی‌از داده‌های هدف‌یابی (مانند جمعیت‌شناسی) در ادغام A/B Testing با Google Analytics از IDFA مشتق شده است. در برنامه‌هایی که به IDFA دسترسی ندارند، این هدف‌یابی دردسترس نیست.
Firebase AI Logic ۱ تأثیری ندارد
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 وابسته نیست.
In-App Messaging تأثیری ندارد
Firebase نصب تأثیری ندارد
Performance Monitoring تأثیری ندارد
Realtime Database تأثیری ندارد
Remote Config وقتی با Google Analytics استفاده می‌شود، Remote Config اجازه نمی‌دهد ویژگی‌های کاربر به‌طور خودکار برای هدف‌یابی بدون دسترسی IDFA ایجاد شود.
کتابخانه‌های منسوخ‌شده یا پشتیبانی‌نشده
Dynamic Links تأثیری بر عملکرد باز کردن پیوند ندارد. وقتی با Google Analytics استفاده شود، ارجاع برای رویدادهای تبدیل پیوند دردسترس نیست.
InstanceID تأثیری ندارد
Firebase ML تأثیری ندارد

۱ Firebase AI Logic قبلاً «Vertex AI in Firebase» نام داشت.

ادغام‌های Firebase تحت‌تأثیر قرارگرفته

جدول زیر محصولات ادغام‌شده با Firebase را فهرست می‌کند که اگر IDFA دردسترس نباشد تحت‌تأثیر قرار می‌گیرند.

محصول تأثیر درصورت دردسترس نبودن IDFA
Google Analytics Analytics ثبت رویداد، گزارش رویداد، و سنجش تبدیل تحت تأثیر قرار نمی‌گیرند، اما اگر IDFA دردسترس نباشد، اسناددهی تحت تأثیر قرار می‌گیرد. برای کسب اطلاعات بیشتر درباره پاسخ Google به iOS 14، پست وبلاگ ما را ببینید.

درخواست اجازه ردیابی برنامه در iOS 14

اگر می‌خواهید برنامه Apple شما بتواند به «شناسه تبلیغ‌کنندگان» دسترسی داشته باشد، می‌توانید چارچوب «شفاف‌سازی ردگیری برنامه» Apple را به برنامه‌تان اضافه کنید و برای ردگیری یا دسترسی به «شناسه تبلیغ‌کنندگان» کاربران درخواست اجازه کنید.

بسیاری از برنامه‌ها ترجیح می‌دهند قبل‌از درخواست اجازه، صفحه آماده‌سازی یا توضیحی را ارائه دهند. صفحه توضیح‌دهنده به شما امکان می‌دهد پیش‌از درخواست دسترسی، اطلاعات بیشتری درباره نحوه استفاده برنامه‌تان از «شناسه آگهی‌دهندگان» به کاربران ارائه دهید.

اگر ناشر برنامه AdMob یا Ad Manager هستید، استفاده از Funding Choices را مدنظر قرار دهید، که به‌طور خودکار کسب رضایت برای ارائه آگهی‌های شخصی‌سازی‌شده و همچنین کسب رضایت برای ردیابی کاربر را طبق دستورالعمل‌های 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 را بخوانید.