با iOS 14.5، شرکت Apple توسعهدهندگان را ملزم میکند که برای ردیابی کاربران یا دسترسی به شناسه تبلیغاتی (IDFA) دستگاه آنها، ازطریق چارچوب «شفافسازی ردیابی برنامه» اجازه کاربر را دریافت کنند. برای جزئیات بیشتر، حریم خصوصی کاربر و استفاده از دادههای Apple و شفافسازی ردیابی برنامه Apple را ببینید.
محصولات Firebase تحتتأثیر قرارگرفته
«کیتهای توسعه نرمافزار Firebase» به IDFA دسترسی ندارند، اگرچه برخیاز آنها با Google Analytics ادغام شدهاند که ممکن است شامل دسترسی به IDFA باشد.
جدول زیر محصولات Firebase را که در پلاتفرمهای Apple دردسترس هستند فهرست میکند و توضیح میدهد که اگر IDFA دردسترس نباشد، عملکرد هر محصول چگونه تحت تأثیر قرار میگیرد.
| محصول | تأثیر درصورتیکه IDFA دردسترس نباشد |
|---|---|
| A/B Testing | برخیاز دادههای هدفیابی (مثل جمعیتشناسی) در ادغام A/B Testing با Google Analytics از 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 اجازه نمیدهد داراییهای کاربر بهطور خودکار برای هدفیابی بدون دسترسی به «شناسه تبلیغکننده» ایجاد شود. |
| کتابخانههای منسوخ یا پشتیبانینشده | |
| Dynamic Links | عملکرد باز کردن پیوند تحت تأثیر قرار نمیگیرد. وقتی با Google Analytics استفاده میشود، ارجاع رویدادهای تبدیل پیوند دردسترس نیست. |
| InstanceID | تأثیری ندارد |
| Firebase ML | تأثیری ندارد |
1 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 اسناد را بخوانید.