روال‌های مطلوب برای شناسه‌های یکتا

این سند راهنمایی‌هایی برای انتخاب شناسه‌های مناسب برای برنامه‌تان براساس مورد استفاده شما ارائه می‌دهد.

برای نگاهی کلی به اجازه‌های Android، به نمای کلی اجازه‌ها مراجعه کنید. برای روال‌های مطلوب خاص برای کار با اجازه‌های Android، به روال‌های مطلوب اجازه‌های برنامه مراجعه کنید.

روال‌های مطلوب برای کار با شناسه‌های Android

برای محافظت از حریم خصوصی کاربران، از محدودکننده‌ترین شناسه‌ای استفاده کنید که مورد استفاده برنامه‌تان را برآورده می‌کند. به‌ویژه، این روال‌های مطلوب را دنبال کنید:

  1. هرزمان ممکن بود، شناسه‌های قابل‌بازنشانی توسط کاربر را انتخاب کنید. برنامه شما می‌تواند به اکثر موارد استفاده خود دست یابد، حتی زمانی که از شناسه‌هایی غیراز شناسه‌های سخت‌افزاری غیرقابل‌بازنشانی استفاده می‌کند.
  2. از شناسه‌های سخت‌افزاری استفاده نکنید. در اکثر موارد استفاده، می‌توانید بدون محدود کردن عملکرد موردنیاز، از شناسه‌های سخت‌افزاری مثل «شناسه جهانی تجهیزات سیار» (IMEI) استفاده نکنید.

    Android 10 (سطح API‏ ۲۹) محدودیت‌هایی برای شناسه‌های بازنشانی‌نشدنی اضافه می‌کند، که شامل IMEI و شماره سریال می‌شود. برنامه شما باید برنامه مالک نمایه یا دستگاه باشد، اجازه‌های ویژه شرکت مخابراتی داشته باشد، یا برای دسترسی به این شناسه‌ها، اجازه ممتاز READ_PRIVILEGED_PHONE_STATE را داشته باشد.

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

  4. بازنشانی‌های «شناسه تبلیغاتی» را پل نکنید.

  5. هرگاه ممکن بود، برای همه موارد استفاده دیگر، به‌جز جلوگیری از کلاهبرداری پرداخت و تلفن، از شناسه نصب Firebase (FID) یا شناسه یکتای جهانی (GUID) ذخیره‌شده به‌صورت خصوصی استفاده کنید. برای اکثر موارد استفاده غیرتبلیغاتی، FID یا GUID کافی است.

  6. از میاناهای برنامه‌سازی کاربردی مناسب برای مورد استفاده‌تان استفاده کنید تا خطر نقض حریم خصوصی را به‌حداقل برسانید. از DRM API برای محافظت از محتوای ارزشمند و از Play Integrity API برای محافظت دربرابر سوءاستفاده استفاده کنید. ‫Play Integrity API آسان‌ترین راه برای تعیین اصالت دستگاه بدون به‌خطر انداختن حریم خصوصی است.

بخش‌های باقی‌مانده این راهنما این قوانین را در بافت توسعه برنامه‌های Android شرح می‌دهد.

کار با شناسه‌های تبلیغاتی

«شناسه تبلیغاتی» شناسه‌ای است که کاربر می‌تواند آن را بازنشانی کند و برای موارد استفاده آگهی‌ها مناسب است. بااین‌حال، هنگام استفاده از این شناسه، چند نکته کلیدی وجود دارد که باید در نظر داشته باشید:

همیشه به قصد کاربر در بازنشانی شناسه تبلیغاتی احترام بگذارید. بازنشانی‌های کاربر را بااستفاده از شناسه یا اثر انگشت دیگری برای پیوند دادن «شناسه‌های تبلیغاتی» بعدی به یکدیگر بدون رضایت کاربر پل نزنید. خط‌مشی محتوای توسعه‌دهنده Google Play موارد زیر را بیان می‌کند:

«...اگر بازنشانی شود، شناسه تبلیغاتی جدید نباید بدون رضایت صریح کاربر به شناسه تبلیغاتی قبلی یا داده‌های مشتق‌شده از شناسه تبلیغاتی قبلی متصل شود.»

همیشه به پرچم «آگهی‌های شخصی‌سازی‌شده» مرتبط احترام بگذارید. شناسه‌های تبلیغاتی قابل‌پیکربندی هستند، به این معنی که کاربران می‌توانند میزان ردیابی مرتبط با شناسه را محدود کنند. همیشه از روش AdvertisingIdClient.Info.isLimitAdTrackingEnabled() استفاده کنید تا مطمئن شوید خواسته‌های کاربرانتان را دور نمی‌زنید. خط‌مشی محتوای توسعه‌دهنده Google Play موارد زیر را بیان می‌کند:

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

برای کسب اطلاعات بیشتر، به «راهنمای کنسول Play» مراجعه کنید.

از هرگونه خط‌مشی حریم خصوصی یا امنیتی مرتبط با کیت‌های توسعه نرم‌افزاری که استفاده می‌کنید و به استفاده از «شناسه تبلیغاتی» مربوط می‌شوند مطلع باشید. برای مثال، اگر true را به روش enableAdvertisingIdCollection() از کیت توسعه نرم‌افزار Google Analytics منتقل می‌کنید، حتماً همه خط‌مشی‌های کیت توسعه نرم‌افزار Analytics قابل‌اجرا را مرور کنید و از آن‌ها پیروی کنید.

همچنین، توجه داشته باشید که خط‌مشی محتوای توسعه‌دهنده Google Play ایجاب می‌کند که شناسه تبلیغاتی «نباید به اطلاعات شناساننده شخصی متصل باشد یا با شناسه دستگاه دائمی (برای مثال: SSAID، نشانی MAC،‏ IMEI، و غیره) مرتبط باشد.»

به‌عنوان مثال، فرض کنید می‌خواهید اطلاعاتی را برای پر کردن جدول‌های پایگاه داده با ستون‌های زیر جمع‌آوری کنید:

TABLE-01
timestamp ad_id account_id clickid
TABLE-02
account_id name dob country

در این مثال، ستون ad_id می‌تواند ازطریق ستون account_id در هر دو جدول به اطلاعات شناساننده شخصی بپیوندد که اگر اجازه صریح از کاربران دریافت نکرده باشید، این کار نقض خط‌مشی محتوای توسعه‌دهنده Google Play خواهد بود.

به‌خاطر داشته باشید که پیوند بین شناسه آگهی‌دهنده و اطلاعات شناساننده شخصی همیشه این‌قدر صریح نیست. ممکن است «شبه‌شناسه‌هایی» وجود داشته باشد که هم در جدول‌های کلیددار «اطلاعات شناساننده شخصی» و هم در جدول‌های کلیددار «شناسه آگهی» ظاهر شوند، که این نیز باعث بروز مشکل می‌شود. برای مثال، فرض کنید TABLE-01 و TABLE-02 را به‌صورت زیر تغییر دهیم:

TABLE-01
timestamp ad_id clickid dev_model
TABLE-02
timestamp demo account_id dev_model name

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

اگرچه اغلب دشوار است تضمین شود که هیچ شبه‌شناسه‌ای در مجموعه داده وجود ندارد، می‌توانید با تعمیم دادن داده‌های منحصربه‌فرد درصورت امکان، از واضح‌ترین خطرات پیوستن جلوگیری کنید. در مثال قبلی، این به‌معنای کاهش دقت مُهر زمان است تا چندین دستگاه با مدل یکسان برای هر مُهر زمان نشان داده شود.

راهکارهای دیگر شامل موارد زیر است:

  • طراحی نکردن جدول‌هایی که به‌طور صریح اطلاعات شناساننده شخصی را به شناسه‌های تبلیغاتی پیوند می‌دهند. در مثال اول بالا، این یعنی ستون account_id در TABLE-01 گنجانده نمی‌شود.

  • جداسازی و نظارت بر فهرست‌های کنترل دسترسی برای کاربران یا نقش‌هایی که به داده‌های کلیدشده «شناسه تبلیغاتی» و اطلاعات شناساننده شخص دسترسی دارند. با کنترل و ممیزی دقیق توانایی دسترسی به هر دو منبع به‌طور هم‌زمان (برای مثال، با انجام پیوستن بین جدول‌ها)، خطر ارتباط بین «شناسه تبلیغاتی» و اطلاعات شناساننده شخصی را کاهش می‌دهید. به‌طور کلی، کنترل دسترسی یعنی انجام کارهای زیر:

    1. فهرست‌های کنترل دسترسی (ACL) را برای داده‌های کلیددار شناسه آگهی‌دهنده و اطلاعات شناساننده شخصی جدا نگه دارید تا تعداد افراد یا نقش‌هایی که در هر دو فهرست کنترل دسترسی هستند به حداقل برسد.
    2. ثبت و ممیزی دسترسی را برای شناسایی و مدیریت هرگونه استثنا در این قانون پیاده‌سازی کنید.

برای اطلاعات بیشتر درباره کار مسئولانه با «شناسه‌های تبلیغاتی»، به مرجع میانای برنامه‌سازی کاربردی AdvertisingIdClient مراجعه کنید.

کار با FID و GUID

ساده‌ترین راه‌حل برای شناسایی نمونه برنامه درحال اجرا در دستگاه، استفاده از «شناسه نصب Firebase» (FID) است و این راه‌حل توصیه‌شده در اکثر موارد استفاده غیرتبلیغاتی است. فقط نمونه برنامه‌ای که برای آن فراهم شده است می‌تواند به این شناسه دسترسی داشته باشد و (نسبتاً) به‌راحتی بازنشانی می‌شود چون فقط تا زمانی که برنامه نصب باشد باقی می‌ماند.

درنتیجه، «شناسه‌های Firebase» درمقایسه با شناسه‌های سخت‌افزاری غیرقابل‌بازنشانی و در سطح دستگاه، ویژگی‌های حریم خصوصی بهتری ارائه می‌دهند. برای اطلاعات بیشتر، به firebase.installations مرجع میانای برنامه‌سازی کاربردی مراجعه کنید.

در مواردی که FID کاربردی نیست، می‌توانید از شناسه‌های یکتای جهانی (GUID) سفارشی نیز برای شناسایی یکتا نمونه برنامه استفاده کنید. ساده‌ترین راه برای انجام این کار، تولید GUID خودتان بااستفاده از کد زیر است:

کاتلین

var uniqueID = UUID.randomUUID().toString()

جاوا

String uniqueID = UUID.randomUUID().toString();

چون این شناسه در سطح جهانی یکتا است، می‌توان از آن برای شناسایی نمونه برنامه خاصی استفاده کرد. برای جلوگیری از نگرانی‌های مربوط به پیوند دادن شناسه در برنامه‌ها، شناسه‌های GUID را به‌جای فضای ذخیره‌سازی خارجی (مشترک) در فضای ذخیره‌سازی داخلی ذخیره کنید. برای اطلاعات بیشتر، به صفحه نمای کلی فضای ذخیره‌سازی داده و فایل مراجعه کنید.

با مک آدرس کار نمی‌کند

نشانی‌های MAC در سطح جهانی منحصربه‌فرد هستند، توسط کاربر قابل‌بازنشانی نیستند، و با بازنشانی کارخانه‌ای ازبین نمی‌روند. به این دلایل، برای محافظت از حریم خصوصی کاربر، در Android نسخه ۶ و بالاتر، دسترسی به نشانی‌های MAC به برنامه‌های سیستم محدود شده است. برنامه‌های شخص ثالث نمی‌توانند به آن‌ها دسترسی داشته باشند.

تغییرات دردسترس بودن مک آدرس در Android 11

در برنامه‌هایی که Android نسخه ۱۱ و بالاتر را هدف قرار می‌دهند، تصادفی‌سازی مک آدرس برای شبکه‌های Passpoint براساس نمایه Passpoint است و مک آدرس منحصربه‌فردی براساس فیلدهای زیر تولید می‌کند:

  • نام دامنه کاملاً واجدشرایط (FQDN)
  • Realm
  • اطلاعات کاربری، براساس اطلاعات کاربری استفاده‌شده در نمایه Passpoint:
    • اعتبارنامه کاربر: نام کاربری
    • اعتبارنامه گواهی: گواهی و نوع گواهی
    • اطلاعات اعتباری سیم‌کارت: نوع EAP و IMSI

به‌علاوه، برنامه‌های غیرممتاز نمی‌توانند به نشانی MAC دستگاه دسترسی داشته باشند؛ فقط میاناهای شبکه با نشانی IP قابل‌مشاهده هستند. این موضوع بر روش‌های getifaddrs() و NetworkInterface.getHardwareAddress() و همچنین ارسال پیام‌های Netlink RTM_GETLINK تأثیر می‌گذارد.

در زیر فهرستی از روش‌هایی که برنامه‌ها تحت‌تأثیر این تغییر قرار می‌گیرند آورده شده است:

  • ‫NetworkInterface.getHardwareAddress() برای هر میانایی مقدار تهی برمی‌گرداند.
  • برنامه‌ها نمی‌توانند از تابع bind() در سوکت‌های NETLINK_ROUTE استفاده کنند.
  • فرمان ip اطلاعاتی درباره میاناها برنمی‌گرداند.
  • برنامه‌ها نمی‌توانند پیام‌های RTM_GETLINK ارسال کنند.

توجه داشته باشید که اکثر توسعه‌دهندگان باید از میاناهای برنامه‌سازی کاربردی سطح بالاتر ConnectivityManager به‌جای میاناهای برنامه‌سازی کاربردی سطح پایین‌تر مثل NetworkInterface، getifaddrs()، یا سوکت‌های Netlink استفاده کنند. برای مثال، برنامه‌ای که به اطلاعات به‌روز درباره مسیرهای فعلی نیاز دارد می‌تواند این اطلاعات را با گوش دادن به تغییرات شبکه بااستفاده از ConnectivityManager.registerNetworkCallback() و فراخوانی LinkProperties.getRoutes() مرتبط با شبکه دریافت کند.

ویژگی‌های شناسه

سیستم‌عامل Android شناسه‌های متعددی با ویژگی‌های رفتاری متفاوت ارائه می‌دهد. اینکه از کدام شناسه باید استفاده کنید به نحوه عملکرد ویژگی‌های زیر با مورد استفاده شما بستگی دارد. بااین‌حال، این ویژگی‌ها پیامدهای حریم خصوصی نیز به‌همراه دارند، بنابراین مهم است که بدانید این ویژگی‌ها چگونه با یکدیگر تعامل دارند.

حوزه

محدوده شناسه توضیح می‌دهد کدام سیستم‌ها می‌توانند به شناسه دسترسی داشته باشند. گستره شناسه Android معمولاً سه نوع است:

  • برنامه واحد: شناسه برای برنامه داخلی است و برنامه‌های دیگر به آن دسترسی ندارند.
  • گروه برنامه‌ها: شناسه برای گروه ازپیش‌تعریف‌شده‌ای از برنامه‌های مرتبط دردسترس است.
  • دستگاه: شناسه برای همه برنامه‌های نصب‌شده در دستگاه دردسترس است.

هرچه دامنه اعطاشده به شناسه گسترده‌تر باشد، خطر استفاده از آن برای اهداف ردیابی بیشتر است. برعکس، اگر شناسه‌ای فقط توسط یک نمونه برنامه قابل‌دسترسی باشد، نمی‌توان از آن برای ردیابی دستگاه در تراکنش‌های برنامه‌های مختلف استفاده کرد.

بازنشانی‌پذیری و پایداری

بازنشانی‌پذیری و پایداری طول عمر شناسه را تعریف می‌کنند و توضیح می‌دهند که چگونه می‌توان آن را بازنشانی کرد. محرک‌های رایج بازنشانی عبارتند از: بازنشانی‌های درون‌برنامه، بازنشانی ازطریق «تنظیمات سیستم»، بازنشانی هنگام راه‌اندازی، و بازنشانی هنگام نصب. شناسه‌های Android می‌توانند طول عمر متفاوتی داشته باشند، اما طول عمر معمولاً به نحوه بازنشانی شناسه مربوط می‌شود:

  • فقط جلسه: هر بار که کاربر برنامه را بازراه‌اندازی می‌کند، از شناسه جدیدی استفاده می‌شود.
  • بازنشانی نصب: هر بار که کاربر برنامه را حذف نصب و بازنصب می‌کند، شناسه جدیدی استفاده می‌شود.
  • بازنشانی کارخانه‌ای: هر بار که کاربر دستگاه را بازنشانی کارخانه‌ای می‌کند، شناسه جدیدی استفاده می‌شود.
  • FDR-persistent: شناسه پس‌از بازنشانی کارخانه‌ای باقی می‌ماند.

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

بی‌همتایی

یکتایی احتمال تداخل را تعیین می‌کند؛ یعنی اینکه شناسه‌های یکسان در محدوده مرتبط وجود داشته باشند. در بالاترین سطح، شناسه یکتای جهانی هرگز تداخل ندارد، حتی در دستگاه‌ها یا برنامه‌های دیگر. درغیراین‌صورت، سطح یکتایی به آنتروپی شناسه و منبع تصادفی استفاده‌شده برای ایجاد آن بستگی دارد. برای مثال، احتمال تداخل برای شناسه‌های تصادفی که با تاریخ تقویمی نصب (مثل 2019-03-01) مقداردهی اولیه شده‌اند بسیار بیشتر از شناسه‌هایی است که با مُهر زمان Unix نصب (مثل 1551414181) مقداردهی اولیه شده‌اند.

به‌طور کلی، شناسه‌های حساب کاربری را می‌توان یکتا درنظر گرفت. یعنی هر ترکیب دستگاه/حساب شناسه یکتایی دارد. ازسوی دیگر، هرچه شناسه در یک جمعیت کمتر منحصربه‌فرد باشد، محافظت از حریم خصوصی بیشتر است زیرا برای ردیابی کاربر فردی کمتر مفید است.

محافظت یکپارچگی و غیرقابل‌انکار بودن

می‌توانید از شناسه‌ای استفاده کنید که جعل یا بازپخش آن دشوار باشد تا ثابت کنید که دستگاه یا حساب مرتبط دارای ویژگی‌های خاصی است. برای مثال، می‌توانید ثابت کنید دستگاهتان دستگاهی مجازی نیست که هرزفرست از آن استفاده می‌کند. شناسه‌هایی که جعل آن‌ها دشوار است، انکارناپذیری را نیز فراهم می‌کنند. اگر دستگاه پیامی را با کلید مخفی امضا کند، ادعای اینکه دستگاه شخص دیگری پیام را ارسال کرده است دشوار خواهد بود. انکارناپذیری می‌تواند چیزی باشد که کاربر می‌خواهد، مثلاً هنگام اصالت‌سنجی پرداخت، یا می‌تواند ویژگی نامطلوبی باشد، مثلاً وقتی پیامی ارسال می‌کند که از آن پشیمان می‌شود.

موارد استفاده رایج و شناسه مناسب برای استفاده

این بخش جایگزین‌هایی برای استفاده از شناسه‌های سخت‌افزاری، مانند IMEI، ارائه می‌دهد. استفاده از شناسه‌های سخت‌افزاری توصیه نمی‌شود زیرا کاربر نمی‌تواند آن‌ها را بازنشانی کند و این شناسه‌ها به دستگاه محدود هستند. در بسیاری از موارد، شناسه با دامنه برنامه کافی است.

حساب‌ها

وضعیت شرکت مخابراتی

در این حالت، برنامه‌تان بااستفاده از حساب شرکت مخابراتی با عملکرد تلفن و پیامک دستگاه تعامل برقرار می‌کند.

شناسه توصیه‌شده برای استفاده: IMEI،‏ IMSI، و Line1

چرا این توصیه؟

استفاده از شناسه‌های سخت‌افزاری درصورتی قابل‌قبول است که برای عملکرد مرتبط با شرکت مخابراتی لازم باشد. برای مثال، می‌توانید از این شناسه‌ها برای جابه‌جایی بین شرکت‌های مخابراتی تلفن همراه یا شکاف‌های سیم‌کارت، یا برای ارسال پیامک ازطریق IP (برای Line1) - حساب‌های کاربری مبتنی بر سیم‌کارت استفاده کنید. اما برای برنامه‌های بدون امتیاز، توصیه می‌کنیم از ورود به سیستم حساب برای بازیابی اطلاعات دستگاه کاربر در سمت سرور استفاده کنید. یکی از دلایل این امر این است که در Android نسخه ۶.۰ (سطح میانای برنامه‌سازی کاربردی ۲۳) و بالاتر، این شناسه‌ها فقط ازطریق اجازه زمان اجرا قابل‌استفاده هستند. کاربران ممکن است این اجازه را خاموش کنند، بنابراین برنامه شما باید این استثناها را به‌درستی مدیریت کند.

وضعیت اشتراک تلفن همراه

در این مورد، باید عملکرد برنامه را با اشتراک‌های سرویس تلفن همراه خاصی در دستگاه مرتبط کنید. برای مثال، ممکن است لازم باشد دسترسی به برخی‌از ویژگی‌های برنامه پولی را براساس اشتراک‌های تلفن همراه دستگاه ازطریق سیم‌کارت درستی‌سنجی کنید.

شناسه توصیه‌شده برای استفاده: Subscription ID API برای شناسایی سیم‌کارت‌هایی که در دستگاه استفاده می‌شود.

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

چرا این توصیه؟

برخی‌از برنامه‌ها ممکن است درحال‌حاضر از شناسه ICC برای این منظور استفاده کنند. چون شناسه ICC در سطح جهانی منحصربه‌فرد است و قابل‌بازنشانی نیست، از Android 10 دسترسی به آن به برنامه‌هایی که اجازه READ_PRIVILEGED_PHONE_STATE دارند محدود شده است. از Android 11،‏ Android دسترسی به ICCID را ازطریق getIccId() API بیشتر محدود کرده است، صرف‌نظر از سطح میانای برنامه‌سازی کاربردی هدف برنامه. برنامه‌های تحت‌تأثیرقرارگرفته باید به‌جای آن به استفاده از «شناسه اشتراک» منتقل شوند.

ورود به سیستم یک‌باره

در این حالت، برنامه‌تان تجربه ورود به سیستم تکی ارائه می‌دهد و به کاربران اجازه می‌دهد حساب موجودی را با سازمانتان مرتبط کنند.

شناسه توصیه‌شده برای استفاده: حساب‌های سازگار با مدیر حساب، مثل پیونددهی حساب Google

چرا این توصیه؟

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

Ads

هدف‌یابی

در این حالت، برنامه شما نمایه‌ای از علایق کاربر می‌سازد تا آگهی‌های مرتبط‌تری به او نشان دهد.

شناسه توصیه‌شده برای استفاده: اگر برنامه‌تان از شناسه‌ای برای آگهی‌ها استفاده می‌کند و در Google Play بارگذاری یا منتشر می‌شود، آن شناسه باید «شناسه تبلیغاتی» باشد.

چرا این توصیه؟

این مورد استفاده مربوط به آگهی است که ممکن است به شناسه‌ای نیاز داشته باشد که در برنامه‌های مختلف سازمان شما دردسترس باشد، بنابراین استفاده از «شناسه تبلیغاتی» مناسب‌ترین راه‌حل است. طبق خط‌مشی محتوای توسعه‌دهنده Google Play، استفاده از «شناسه تبلیغاتی» برای موارد استفاده تبلیغاتی الزامی است، زیرا کاربر می‌تواند آن را بازنشانی کند.

صرف‌نظر از اینکه داده‌های کاربر را در برنامه‌تان هم‌رسانی می‌کنید یا نه، اگر آن را برای اهداف تبلیغاتی جمع‌آوری و استفاده می‌کنید، باید اهداف تبلیغاتی را در بخش «ایمنی داده» صفحه محتوای برنامه در «کنسول Play» اعلام کنید.

اندازه‌گیری

در این حالت، برنامه‌تان براساس رفتار کاربر در برنامه‌های سازمانتان در همان دستگاه، نمایه‌ای برای کاربر ایجاد می‌کند.

شناسه توصیه‌شده برای استفاده: شناسه تبلیغاتی یا میاناهای برنامه‌سازی کاربردی ارجاع‌دهنده نصب Play

چرا این توصیه؟

این مورد استفاده مربوط به آگهی است که ممکن است به شناسه‌ای نیاز داشته باشد که در برنامه‌های مختلف سازمان شما دردسترس باشد، بنابراین استفاده از «شناسه تبلیغاتی» مناسب‌ترین راه‌حل است. اگر از شناسه‌ای برای موارد استفاده تبلیغاتی استفاده می‌کنید، آن شناسه باید «شناسه تبلیغاتی» باشد زیرا کاربر می‌تواند آن را بازنشانی کند. در خط‌مشی محتوای توسعه‌دهنده Google Play بیشتر بدانید.

تبدیل‌ها

در این مورد، شما تبدیل‌ها را ردیابی می‌کنید تا تشخیص دهید که آیا استراتژی بازاریابی شما موفقیت‌آمیز است یا خیر.

شناسه توصیه‌شده برای استفاده: شناسه تبلیغاتی یا میاناهای برنامه‌سازی کاربردی ارجاع‌دهنده نصب Play

چرا این توصیه؟

این مورد استفاده مرتبط با آگهی است که ممکن است به شناسه‌ای نیاز داشته باشد که در برنامه‌های مختلف سازمان شما دردسترس باشد، بنابراین استفاده از «شناسه تبلیغاتی» مناسب‌ترین راه‌حل است. طبق خط‌مشی محتوای توسعه‌دهنده Google Play، استفاده از «شناسه تبلیغاتی» برای موارد استفاده تبلیغاتی الزامی است، زیرا کاربر می‌تواند آن را بازنشانی کند.

بازاریابی مجدد

در این حالت، برنامه‌تان آگهی‌ها را براساس علایق قبلی کاربر نشان می‌دهد.

شناسه توصیه‌شده برای استفاده: شناسه تبلیغاتی

چرا این توصیه؟

این مورد استفاده مرتبط با آگهی است که ممکن است به شناسه‌ای نیاز داشته باشد که در برنامه‌های مختلف سازمان شما دردسترس باشد، بنابراین استفاده از «شناسه تبلیغاتی» مناسب‌ترین راه‌حل است. طبق خط‌مشی محتوای توسعه‌دهنده Google Play، استفاده از «شناسه تبلیغاتی» برای موارد استفاده تبلیغاتی الزامی است، زیرا کاربر می‌تواند آن را بازنشانی کند.

تحلیل داده‌های برنامه

در این حالت، برنامه‌تان رفتار کاربر را ارزیابی می‌کند تا به شما کمک کند موارد زیر را تعیین کنید:

  • کدام‌یک از محصولات یا برنامه‌های دیگر سازمان شما ممکن است برای کاربر مناسب باشد.
  • چگونه کاربران را به استفاده از برنامه‌تان علاقه‌مند نگه دارید.
  • سنجش آمار کاربرد و تجزیه‌وتحلیل برای کاربران ناشناس یا کاربرانی که به سیستم وارد نشده‌اند.

راه‌حل‌های احتمالی عبارت‌اند از:

  • شناسه مجموعه برنامه: «شناسه مجموعه برنامه» به شما امکان می‌دهد رفتار کاربر را در چندین برنامه متعلق به سازمانتان تجزیه‌وتحلیل کنید، به‌شرطی که از داده‌های کاربر برای اهداف تبلیغاتی استفاده نکنید. اگر دستگاه‌های مجهز به خدمات Google Play را هدف قرار می‌دهید، توصیه می‌کنیم از «شناسه مجموعه برنامه» استفاده کنید.
  • شناسه Firebase‏ (FID): شناسه Firebase به برنامه‌ای که آن را ایجاد می‌کند محدود می‌شود، که از استفاده از شناسه برای ردیابی کاربران در برنامه‌ها جلوگیری می‌کند. همچنین به‌راحتی قابل‌بازنشانی است، زیرا کاربر می‌تواند داده‌های برنامه را پاک کند یا برنامه را دوباره نصب کند. فرایند ایجاد FID ساده است؛ راهنمای نصب Firebase را ببینید.

توسعه نرم‌افزار

گزارش خرابی

دراین‌صورت، برنامه‌تان داده‌های مربوط به زمان و دلیل ازکارافتادن برنامه در دستگاه‌های کاربر را جمع‌آوری می‌کند.

شناسه توصیه‌شده برای استفاده: شناسه Firebase یا شناسه مجموعه برنامه

چرا این توصیه؟

«شناسه نصب Firebase» به برنامه‌ای که آن را ایجاد می‌کند محدود می‌شود، که مانع از استفاده از شناسه برای ردیابی کاربران در برنامه‌ها می‌شود. همچنین به‌راحتی قابل‌بازنشانی است، زیرا کاربر می‌تواند داده‌های برنامه را پاک کند یا برنامه را بازنصب کند. فرایند ایجاد FID ساده است؛ به راهنمای نصب Firebase مراجعه کنید. «شناسه مجموعه برنامه» به شما امکان می‌دهد رفتار کاربر را در چندین برنامه که متعلق به سازمان شما است تجزیه‌وتحلیل کنید، به‌شرطی که از داده‌های کاربر برای اهداف تبلیغاتی استفاده نکنید.

گزارش عملکرد

در این مورد، برنامه‌تان سنجه‌های عملکرد، مثل زمان بار کردن و مصرف باتری، را جمع‌آوری می‌کند تا به بهبود کیفیت برنامه‌تان کمک کند.

شناسه توصیه‌شده برای استفاده: پایشگر کارایی Firebase

چرا این توصیه؟

«پایشگر کارایی Firebase» به شما کمک می‌کند روی معیارهایی تمرکز کنید که برایتان مهم‌تر است و تأثیر تغییرات اخیر در برنامه‌تان را آزمایش کنید.

آزمایش برنامه

در این حالت، برنامه‌تان تجربه کاربر را با برنامه‌تان برای اهداف آزمایشی یا اشکال‌زدایی ارزیابی می‌کند.

شناسه توصیه‌شده برای استفاده: شناسه Firebase یا شناسه مجموعه برنامه

چرا این توصیه؟

«شناسه نصب Firebase» به برنامه‌ای که آن را ایجاد می‌کند محدود می‌شود، که مانع از استفاده از شناسه برای ردیابی کاربران در برنامه‌ها می‌شود. همچنین به‌راحتی قابل‌بازنشانی است، زیرا کاربر می‌تواند داده‌های برنامه را پاک کند یا برنامه را بازنصب کند. فرایند ایجاد FID ساده است؛ به راهنمای نصب Firebase مراجعه کنید. «شناسه مجموعه برنامه» به شما امکان می‌دهد رفتار کاربر را در چندین برنامه که متعلق به سازمان شما است تجزیه‌وتحلیل کنید، به‌شرطی که از داده‌های کاربر برای اهداف تبلیغاتی استفاده نکنید.

نصب بین‌دستگاهی

در این حالت، برنامه‌تان باید نمونه صحیح برنامه را وقتی در چند دستگاه برای یک کاربر نصب شده است شناسایی کند.

شناسه توصیه‌شده برای استفاده: FID یا GUID

چرا این توصیه؟

«شناسه نصب برنامه» صریحاً برای این هدف طراحی شده است؛ دامنه آن به برنامه محدود است تا نتوان از آن برای ردیابی کاربران در برنامه‌های مختلف استفاده کرد و هنگام بازنصب برنامه بازنشانی می‌شود. در موارد نادری که FID کافی نیست، می‌توانید از GUID نیز استفاده کنید.

امنیت

تشخیص سوءاستفاده

در این مورد، شما در تلاشید چندین دستگاه جعلی را که به سرویس‌های پسین شما حمله می‌کنند شناسایی کنید.

شناسه توصیه‌شده برای استفاده: کد تمامیت Google Play Integrity API

چرا این توصیه؟

برای تأیید اینکه درخواست از دستگاه Android واقعی ارسال شده است (نه از شبیه‌ساز یا کد دیگری که دستگاه دیگری را جعل می‌کند)، از Google Play Integrity API استفاده کنید.

کلاهبرداری ازطریق آگهی

در این حالت، برنامه‌تان بررسی می‌کند که ظهورها و کنش‌های کاربر در برنامه‌تان واقعی و قابل‌تأیید باشد.

شناسه توصیه‌شده برای استفاده: شناسه تبلیغاتی

چرا این توصیه؟

طبق خط‌مشی محتوای توسعه‌دهنده Google Play، استفاده از «شناسه تبلیغاتی» برای موارد استفاده تبلیغاتی الزامی است زیرا کاربر می‌تواند آن را بازنشانی کند.

مدیریت حقوق دیجیتال

در این مورد، برنامه شما می‌خواهد از دسترسی کلاهبردارانه به مالکیت فکری یا محتوای پولی محافظت کند.

شناسه توصیه‌شده برای استفاده: استفاده از FID یا GUID کاربر را مجبور می‌کند برنامه را بازنصب کند تا بتواند محدودیت‌های محتوا را دور بزند، که این کار مانع کافی برای بازداشتن اکثر افراد است. اگر این محافظت کافی نیست، Android یک DRM API ارائه می‌دهد که می‌تواند برای محدود کردن دسترسی به محتوا استفاده شود و شامل یک شناسه برای هر APK، یعنی شناسه Widevine است.

اولویت‌های کاربر

در این حالت، برنامه‌تان وضعیت کاربر را برای هر دستگاه در برنامه‌تان ذخیره می‌کند، به‌ویژه برای کاربرانی که به سیستم وارد نشده‌اند. ممکن است این وضعیت را به برنامه دیگری که با همان کلید در همان دستگاه امضا شده است منتقل کنید.

شناسه توصیه‌شده برای استفاده: FID یا GUID

چرا این توصیه؟

حفظ اطلاعات در بازنصب‌ها توصیه نمی‌شود زیرا ممکن است کاربران بخواهند با بازنصب برنامه، اولویت‌هایشان را بازنشانی کنند.