Privacy Nutrition Label برچسبهای حریم خصوصی در App Store هستند که به کاربر نشان میدهند برنامه چه دادههایی را جمعآوری میکند و برای چه اهدافی. Apple از هر برنامه میخواهد قبل از انتشار یا بهروزرسانی، برچسب پر شده داشته باشد. به گزارش Apple App Privacy Details، برچسبهای حریم خصوصی 14 دسته داده و 5 هدف جمعآوری، از تحلیل تا شخصیسازی محتوا را پوشش میدهند.
نکات اصلی
Privacy Nutrition Label یک بلوک بصری در صفحه برنامه در App Store است که خلاصهای از جمعآوری داده را نمایش میدهد. Apple این برچسبها را در دسامبر 2020 به عنوان مشابه ارزش غذایی روی محصولات معرفی کرد: به جای کالری و چربی، کاربر میبیند برنامه چه دادههایی را جمعآوری میکند و چگونه استفاده میشوند.
برچسبها از دو بخش تشکیل شدهاند: «دادههای استفاده شده برای ردیابی» و «دادههای مرتبط با کاربر». در بخش اول دادههایی که به اشخاص ثالث برای ردیابی منتقل میشوند نشان داده میشود. در بخش دوم — تمام دادههایی که برنامه جمعآوری میکند و با حساب یا دستگاه کاربر مرتبط میکند.
هر عنصر داده با رنگ مشخص میشود: زرد (داده مرتبط با کاربر) یا سبز (داده غیرمرتبط با کاربر). هرچه برچسبهای زرد بیشتر باشد، کاربر توجه بیشتری به دادههای جمعآوری شده نشان میدهد. به گزارش Adjust (2024)، برنامههای دارای 8+ برچسب زرد، 22% تبدیل نصب کمتری دارند.
پر کردن برچسبها در App Store Connect از طریق رابط وب انجام میشود. توسعهدهنده به سؤالات پاسخ میدهد: آیا برنامه نوع خاصی از داده را جمعآوری میکند، آیا با کاربر مرتبط است و برای چه اهدافی استفاده میشود. Apple صحت برچسبها را به صورت برنامهای بررسی نمیکند، اما عدم تطابق اعلامیه با رفتار واقعی میتواند منجر به رد شدن شود.
Apple برچسبها را در WWDC 2020 به همراه iOS 14 اعلام کرد. در ابتدا آنها بخشی از ابتکار گستردهتر حریم خصوصی شامل ATT و Privacy Manife بودند. پر کردن برچسبها از 8 دسامبر 2020 برای همه برنامهها و بهروزرسانیها اجباری شد.
برچسبها پاسخی از سوی Apple به توجه روزافزون نهادهای نظارتی و کاربران به جمعآوری داده بود. برخلاف GDPR و CCPA که نیاز به رضایت رسمی دارند، Apple بر شفافیت تأکید کرد: کاربر بلافاصله میبیند چه دادههایی جمعآوری میشود، حتی قبل از نصب برنامه.
در سال 2022 Apple به برچسبها تعاملپذیری اضافه کرد: کاربر میتواند روی هر دسته کلیک کند و ببیند دادهها برای چه اهدافی استفاده میشوند. در سال 2024 Apple شروع به الزام تطابق برچسبها با دادههای اعلام شده در Privacy Manife داخل باینری کرد.
Google بخش مشابه «ایمنی داده» (Data Safety) را در آوریل 2022 در Google Play معرفی کرد. تفاوت اصلی: Google برچسبها را با اسکن خودکار کد بررسی میکند و میتواند تأییدیه از توسعهدهنده بخواهد، در حالی که Apple به اعلامیه توسعهدهنده با بررسی در بازبینی تکیه میکند.
علاوه بر این، Google Play نیاز به ذکر اقدامات امنیتی دارد (رمزگذاری داده در حال سکون و انتقال، تطابق با برنامههای امنیتی). Apple این اطلاعات را درخواست نمیکند، اما رعایت الزامات را از طریق ویژگیهای اجباری مانند ATS (App Transport Security) بررسی میکند.
Apple کد برنامه را برای پر کردن برچسبها تحلیل نمیکند — توسعهدهنده به طور مستقل دادههای جمعآوری شده را اعلام میکند. با این حال در سال 2024 Apple شروع به تطبیق برچسبها با Privacy Manife داخل باینری کرد که فرآیند را رسمیتر میکند.
توسعهدهنده وارد App Store Connect میشود → برنامه را انتخاب میکند → بخش «حریم خصوصی برنامه» → «برچسبهای حریم خصوصی». پرسشنامهای با سؤالات مربوط به هر یک از 14 دسته داده باز میشود. برای هر دسته باید مشخص کنید: آیا این نوع داده را جمعآوری میکنید، آیا با کاربر مرتبط است (linked) و برای چه اهدافی.
اهداف جمعآوری شامل: تبلیغات اشخاص ثالث، تحلیل توسعهدهنده، توسعه محصول (Product Personalization)، شخصیسازی محتوا، انجام وظایف برنامه (App Functionality). یک دسته داده میتواند برای چندین هدف استفاده شود. مهم: اگر دادهها به اشخاص ثالث منتقل میشوند، باید به عنوان ردیابی علامتگذاری شود.
پس از ذخیره تغییرات، Apple نسخه جدیدی از برچسبها را تولید میکند که ظرف 24 ساعت در App Store نمایش داده میشود. هنگام ارسال بیلد جدید، برچسبها به صورت خودکار بررسی میشوند: اگر پر نشده باشند، دکمه ارسال مسدود میشود. Apple Developer (2024) توصیه میکند برچسبها را با هر تغییر در منطق جمعآوری داده بهروز کنید.
تا سال 2024 برچسبها کاملاً self-reported بودند — Apple به پاسخهای توسعهدهنده اعتماد میکند. با ظهور Privacy Manife و یکپارچهسازی برچسبها با مانیفست، Apple شروع به تطبیق خودکار کرد. به عنوان مثال، اگر مانیفست جمعآوری شناسهها (IDFA) برای تبلیغات را اعلام کند اما برچسبها این دسته را علامتگذاری نکنند، App Store Connect هشدار میدهد.
با این حال بررسی خودکار کامل هنوز وجود ندارد. توسعهدهنده موظف است هر دو منبع داده (برچسبها + مانیفست) را در وضعیت بهروز نگه دارد. عدم تطابق ممکن است در بررسی دستی توسط بازبین، به ویژه برای بهروزرسانیهای بزرگ یا برنامههای با حجم داده زیاد، شناسایی شود.
| روش بررسی | Apple | |
|---|---|---|
| Self-reporting | بله، اساس | بله، اساس |
| بررسی خودکار کد | تا حدی (از 2024، از طریق مانیفست) | بله |
| بررسی دستی توسط بازبین | در صورت مشکوک | به ندرت |
Apple دادهها را به 14 دسته تقسیم میکند که در 3 بخش گروهبندی شدهاند: دادههای استفاده شده برای ردیابی؛ دادههای مرتبط با کاربر؛ دادههای غیرمرتبط با کاربر. دستههای اصلی را بررسی میکنیم.
دسته «اطلاعات تماس» شامل نام، ایمیل، تلفن، آدرس فیزیکی است. دسته «شناسهها» — IDFA، User ID، نام کاربری. اگر برنامه از ورود از طریق شبکههای اجتماعی استفاده میکند و ایمیل کاربر را دریافت میکند، باید این دسته را با هدف «انجام وظایف» مشخص کنید.
دسته «دادههای پرداخت» شامل اطلاعات خرید است: شماره کارت (اگر Apple Pay استفاده نمیشود)، تاریخچه خرید. Apple Pay نیازی به ذکر این دسته ندارد، زیرا Apple پرداختها را در سمت خود پردازش میکند و دادهها را به توسعهدهنده منتقل نمیکند.
دسته «دادههای استفاده» شامل لاگهای تعامل، کلیکهای تبلیغاتی، بازدید صفحات، زمان جلسه است. بیشتر برنامهها این دادهها را برای تحلیل جمعآوری میکنند. مهم: اگر دادهها به اشخاص ثالث (Google Analytics، Firebase) منتقل میشوند، باید هدف «تحلیل» علامتگذاری شود.
دسته «تشخیص» شامل لاگهای کرش، دادههای عملکرد، گزارشهای راهاندازی است. این دادهها معمولاً با کاربر مرتبط نیستند (not linked) و به صورت تجمیعی جمعآوری میشوند. با وجود این، اگر برنامه از Crashlytics یا Sentry استفاده میکند باید در برچسبها منعکس شوند.
دسته «محتوای کاربر» شامل عکس، ویدئو، صدا، فایلها، محتوای ایجاد شده توسط کاربر (پیامها، نظرات) است. اگر برنامه به عکسها یا فایلها دسترسی درخواست میکند، این دسته اجباری است. حتی اگر برنامه فقط عکسها را بخواند، این جمعآوری داده محسوب میشود.
دسته «تاریخچه خرید» — دادههای تجمیعی درباره خریدهای درون برنامه، اشتراکها، پرداختها. با «اطلاعات مالی» اشتباه نگیرید. تاریخچه خرید فراداده تراکنشها است، نه مشخصات پرداخت.
راهنمای گام به گام پر کردن Privacy Nutrition Label در App Store Connect برای برنامه جدید یا در حال بهروزرسانی.
قبل از پر کردن برچسبها، فهرست کاملی از تمام SDKها و سرویسهایی که داده جمعآوری میکنند تهیه کنید: Firebase، AppsFlyer، Google Ads، Facebook SDK، Sentry، Amplitude. برای هر SDK بررسی کنید چه دادههایی جمعآوری میکند و آیا آنها را به اشخاص ثالث منتقل میکند. Adjust (2024) توصیه میکند جدولی با انواع داده، اهداف و ارتباط برای هر SDK داشته باشید.
مشخص کنید کد شما مستقیماً چه دادههایی جمعآوری میکند. به عنوان مثال، اگر برنامه تاریخچه جستجو را ذخیره میکند و آن را با حساب کاربر مرتبط میکند — این «دادههای استفاده» linked برای هدف «توسعه محصول» است. همیشه بررسی کنید آیا دادهها به اشخاص ثالث (شبکههای تبلیغاتی، تحلیل) منتقل میشوند یا خیر.
در App Store Connect برنامه را انتخاب کنید → بخش «حریم خصوصی برنامه». روی «شروع» کلیک کنید و انتخاب کنید آیا برنامه شما دادههایی برای ردیابی جمعآوری میکند یا خیر. اگر نه، به پرسشنامه بروید. به هر سؤال به ترتیب برای تمام 14 دسته داده پاسخ دهید.
مثال: اگر برنامه از Firebase Analytics استفاده میکند، برای دسته «دادههای استفاده» پاسخ «بله» دهید، linked (Firebase دادهها را به Instance ID مرتبط میکند) و هدف «تحلیل» را مشخص کنید. اگر همچنین از Firebase Crashlytics استفاده میکنید، دسته «تشخیص» را با هدف «توسعه محصول» اضافه کنید.
پس از پر کردن برچسبها را ذخیره کنید. اگر چندین برنامه دارید، برچسبها برای هر یک منحصر به فرد هستند — کپی کردن پیشبینی نشده است. برچسبها را با هر تغییر در منطق جمعآوری داده بهروز کنید، در غیر این صورت برچسبهای قدیمی ممکن است با قابلیت جدید مطابقت نداشته باشند.
// مثال: بررسی ارسال داده برای تحلیل
import FirebaseAnalytics
final class AnalyticsService {
static func logEvent(_ name: String, params: [String: Any]) {
Analytics.logEvent(name, parameters: params)
}
static func logPurchase(amount: Double, currency: String) {
Analytics.logEvent(AnalyticsEventPurchase, parameters: [
AnalyticsParameterValue: amount,
AnalyticsParameterCurrency: currency
])
}
}
برای بهروزرسانی برچسبهای یک برنامه منتشر شده، نسخه برنامه را در App Store Connect باز کنید و تغییرات را در بخش «حریم خصوصی برنامه» اعمال کنید. تغییرات پس از گذراندن بازبینی اعمال میشوند. برچسبهای جدید ظرف 24 ساعت پس از انتشار بهروزرسانی به کاربران نمایش داده میشوند.
مهم: حذف داده از برچسبها (مثلاً انتقال داده به اشخاص ثالث را متوقف کردهاید) نیاز به بیلد جدید ندارد — کافی است برچسبها را در App Store Connect تغییر دهید. افزودن دادههای جدید هم نیاز به تغییر برچسبها و هم بهروزرسانی متناظر Privacy Manife در کد دارد.
توسعهدهندگان اغلب هنگام پر کردن برچسبها اشتباه میکنند که منجر به رد بهروزرسانیها یا شکایات کاربران میشود.
رایجترین اشتباه — توسعهدهنده برچسبها را فقط بر اساس کد خود پر میکند و SDKهای شخص ثالث را فراموش میکند. Firebase، AppsFlyer، Facebook SDK و دیگران دادهها را به طور خودکار بدون کد اضافی توسعهدهنده جمعآوری میکنند. به عنوان مثال، Firebase Analytics دادههای استفاده (رویدادها، صفحهها) و شناسهها (Instance ID، IDFV) را جمعآوری میکند.
توصیه: برای هر SDK یکپارچه شده، بخش «Data Collected» در مستندات را بخوانید و دستههای مربوطه را به برچسبها اضافه کنید. AppsFlyer (2024) فهرست دادههای جمعآوری شده برای هر نسخه از SDK را منتشر میکند که به توسعهدهندگان در تطبیق برچسبها کمک میکند.
بسیاری از توسعهدهندگان دادهها را به عنوان not linked علامتگذاری میکنند در حالی که با حساب مرتبط هستند. اگر کاربر حسابی دارد و شما نام یا ایمیل او را ذخیره میکنید — این linked است. اگر لاگهای کرش را بدون ارتباط با حساب جمعآوری میکنید — این not linked است. اشتباه در ارتباط ممکن است به عنوان گمراهکننده کاربر تلقی شود.
دادههای linked با رنگ زرد نمایش داده میشوند و توجه بیشتری از کاربر جلب میکنند. اگر مطمئن نیستید که یک نوع داده خاص linked است یا خیر، بهتر است linked را مشخص کنید و در بازبینی توضیح دهید. Apple برای اعلام بیش از حد جریمه نمیکند، اما میتواند برای اعلام ناکافی رد کند.
اگر دادهها به اشخاص ثالث منتقل میشوند و برای تبلیغات هدفمند استفاده میشوند، باید به عنوان «دادههای استفاده شده برای ردیابی» علامتگذاری شوند. برخی توسعهدهندگان ردیابی را پنهان میکنند و دادهها را به بهانه تحلیل منتقل میکنند — این قوانین Apple را نقض میکند و میتواند منجر به ممنوعیت شود.
قانون Apple: اگر دادهها به شخص ثالث منتقل میشوند و برای شخصیسازی تبلیغات یا انتساب استفاده میشوند — این ردیابی است. حتی اگر برنامه خود تبلیغات نشان نمیدهد اما از Google Ads برای انتساب نصب استفاده میکند، دادههای بازدید ردیابی محسوب میشوند.
برچسبهای قدیمی که با منطق فعلی جمعآوری داده مطابقت ندارند — مشکل رایج در نگهداری طولانی مدت برنامه. توسعهدهندگان SDKها را تغییر میدهند، قابلیتهای جدید اضافه میکنند اما بهروزرسانی برچسبها را فراموش میکنند. در نتیجه کاربر اطلاعات نادرست میبیند که اعتماد را کاهش میدهد.
بهترین روش: با هر تغییر کد مرتبط با دادهها، برچسبها و مانیفست را بررسی کنید. توصیه میشود بررسی CI راهاندازی شود که هنگام تغییر فایلهای PrivacyInfo.xcprivacy یا فهرست SDKها در مورد نیاز بهروزرسانی برچسبها هشدار دهد.
سؤالات متداول
بله، برچسبها برای همه برنامهها از جمله رایگان، رایگان با خرید و پولی اجباری هستند. استثنا فقط برنامههای دسته «برای کودکان» هستند که قوانین سختتری دارند.
App Store Connect بدون برچسبهای پر شده اجازه ارسال بیلد برای بازبینی را نمیدهد. برنامههای منتشر شده در فروشگاه باقی میمانند اما بدون برچسب نمیتوانند بهروزرسانی دریافت کنند.
با هر تغییر در منطق جمعآوری داده: افزودن SDK جدید، تغییر اهداف استفاده، انتقال داده به اشخاص ثالث. حداقل هر 6-12 ماه یکبار برچسبها را از نظر تطابق با کد فعلی بررسی کنید.
بله، هر کاربر میتواند عدم تطابق برچسبها با رفتار واقعی برنامه را از طریق فرم Apple گزارش دهد. پس از دریافت چند شکایت، Apple میتواند بررسی انجام دهد و بهروزرسانی بعدی را رد کند.
بله، برچسبها در صفحه برنامه قابل مشاهده هستند اما در نتایج جستجو یا توصیهها نمایش داده نمیشوند. کاربر هنگام مشاهده صفحه برنامه قبل از نصب آنها را میبیند.
خلاصه
ما یک اپلیکیشن موبایل به صورت کلید در دست توسعه خواهیم داد
IT Sectr از سال 2017 برنامههای iOS و Android را برای استارتاپها و کسبوکارها ایجاد میکند. ما به شما مشاوره میدهیم و بهترین راهحل را پیشنهاد خواهیم کرد.
همچنین بخوانید