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

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

برای نگاهی کلی به اجازه‌های 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) را برای داده‌های کلیددار شناسه آگهی‌دهنده و اطلاعات شناساننده شخصی جدا نگه دارید تا تعداد افراد یا نقش‌هایی که در هر دو ACL هستند به حداقل برسد.
    2. ثبت و ممیزی دسترسی را برای شناسایی و مدیریت هرگونه استثنا در این قانون اجرا کنید.

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

کار با FID و GUID

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

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

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

کاتلین

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

جاوا

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

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

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

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

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

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

  • نام دامنه کاملاً واجدشرایط (FQDN)
  • قلمرو
  • اطلاعات کاربری، براساس اطلاعات کاربری استفاده‌شده در نمایه 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 6.0 (سطح میانای برنامه‌سازی کاربردی ۲۳) و بالاتر، این شناسه‌ها فقط با اجازه زمان اجرا قابل‌استفاده هستند. کاربران ممکن است این اجازه را خاموش کنند، بنابراین برنامه‌تان باید این استثناها را به‌درستی مدیریت کند.

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

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

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

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

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

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

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

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

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

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

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

Ads

هدف‌یابی

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

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

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

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

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

اندازه‌گیری

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

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

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

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

تبدیل‌ها

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

گزارش خرابی

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

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

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

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

گزارش عملکرد

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

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

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

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

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

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

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

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

‫FID به برنامه‌ای که آن را ایجاد می‌کند محدود می‌شود، که مانع از استفاده از شناسه برای ردیابی کاربران در برنامه‌ها می‌شود. همچنین کاربر می‌تواند آن را بازنشانی کند، زیرا کاربر می‌تواند داده‌های برنامه را پاک کند یا برنامه را دوباره نصب کند. فرایند ایجاد 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

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

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