با 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 ایجاد کنید.
- در کنسول Firebase، پویش In-App Messaging جدیدی ایجاد کنید.
- پیامهای درونبرنامه را با محتوای دلخواهتان پر کنید و پیام را تنظیم کنید تا با رویداد
app_launchراهاندازی شود. - در بخش هدفیابی، مطمئن شوید که پویش فقط جدیدترین نسخه برنامهتان و نسخههای بالاتر را هدفیابی میکند.
میتوانید با دنبال کردن دستورالعملهای موجود در 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 را بخوانید.