بااستفاده از Play Age Signals API (نسخه بتا)، با شرایط خدمات موافقت میکنید و موافقت میکنید که از همه خطمشیهای توسعهدهندگان Google Play تبعیت کنید. برای درخواست وضعیت و گروه سنی کاربر، API را از برنامهتان در زمان اجرا فراخوانی میکنید. Play Age Signals API فقط دادههای مربوط به کاربرانی را برمیگرداند که در مناطقی ساکن هستند که Play طبق قانون ملزم به ارائه دادههای دسته سنی است.
Play براساس گروههای سنی تعریفشده توسط حوزههای قضایی و مناطق ذیربط، گروه سنی را برمیگرداند. سنین پیشفرضی که API در حوزههای قضایی و مناطق ذیربط برمیگرداند عبارتاند از ۰-۱۲، ۱۳-۱۵، ۱۶-۱۷، و +۱۸، اما ممکن است گروههای سنی سفارشی دریافت شود. Google Play بهطور خودکار نشانههای سن ذخیرهشده در حافظه نهان را برای کاربر ظرف ۲ تا ۸ هفته پساز تولد کاربر بهروز میکند.
ادغام کردن Play Age Signals API در برنامه
Play Age Signals API در تلفنها، دستگاههای تاشو، و رایانههای لوحی دارای Android نسخه ۶.۰ (سطح میانای برنامهسازی کاربردی ۲۳) و بالاتر پشتیبانی میشود. برای ادغام Play Age Signals API
در برنامهتان، وابستگی زیر را به فایل build.gradle برنامهتان اضافه کنید:
implementation 'com.google.android.play:age-signals:0.0.3'
درخواست نشانهای سن
در اینجا نمونهای از درخواست نشانهای سن آورده شده است:
کاتلین
// Create an instance of a manager val ageSignalsManager = AgeSignalsManagerFactory.create(ApplicationProvider.getApplicationContext()) // Request an age signals check ageSignalsManager .checkAgeSignals(AgeSignalsRequest.builder().build()) .addOnSuccessListener { ageSignalsResult -> // Store the install ID for later... val installId = ageSignalsResult.installId() if (ageSignalsResult.userStatus() == AgeSignalsVerificationStatus.SUPERVISED_APPROVAL_DENIED) { // Disallow access... } else { // Do something else if the user is VERIFIED, DECLARED, SUPERVISED, etc. } }
جاوا
// Create an instance of a manager AgeSignalsManager ageSignalsManager = AgeSignalsManagerFactory.create(ApplicationProvider.getApplicationContext()); // Request an age signals check ageSignalsManager .checkAgeSignals(AgeSignalsRequest.builder().build()) .addOnSuccessListener( ageSignalsResult -> { // Store the install ID for later... String installId = ageSignalsResult.installId(); if (ageSignalsResult .userStatus() .equals(AgeSignalsVerificationStatus.SUPERVISED_APPROVAL_DENIED)) { // Disallow access ... } else { // Do something else if the user is SUPERVISED, VERIFIED, etc. } });
(اختیاری) دریافت گروههای سنی سفارشی
گروههای سنی پیشفرض که API در حوزههای قضایی و مناطق ذیربط برمیگرداند عبارتاند از ۰-۱۲، ۱۳-۱۵، ۱۶-۱۷، و +۱۸.
یا برای سفارشیسازی کردن گروههای سنی پیشفرض براساس حداقل سنهای برنامهتان، میتوانید این حداقل سنها را برای برنامهتان در صفحه نشانهای سن در «کنسول Google Play» ارائه دهید.
- به صفحه نشانهای سن در «کنسول Play» بروید.
- در برگه گروههای سنی سفارشی، حداکثر سه حداقل سن برای برنامهتان وارد کنید. حداقل سنها باید حداقل ۲ سال باهم فاصله داشته باشند و میتوان آنها را سالی یکبار تغییر داد.
- روی ذخیره کلیک کنید.
گروههای سنی برگرداندهشده پاسخ پیشفرض میانای برنامهسازی کاربردی را لغو خواهد کرد. برای مثال:
اگر یک حداقل سن (۱۵) در «کنسول Google Play» تنظیم کنید:
- برای سنین ۰ تا ۱۴ سال،
ageLower = 0وageUpper = 14را برمیگرداند. - فردی که ۱۵ سال یا بیشتر دارد،
ageLower = 15را برمیگرداند.
- برای سنین ۰ تا ۱۴ سال،
اگر دو حداقل سن (۱۳ و ۱۷) تنظیم کنید:
- برای کودک ۰ تا ۱۲ ساله،
ageLower = 0وageUpper = 12برگردانده میشود. - برای فرد ۱۳ تا ۱۶ ساله،
ageLower = 13وageUpper = 16برگردانده میشود. - فردی ۱۷ سال به بالا،
ageLower = 17را برمیگرداند.
- برای کودک ۰ تا ۱۲ ساله،
اگر سه حداقل سن (۱۱، ۱۳، و ۱۵) تنظیم کنید:
- برای کودک ۰ تا ۱۰ ساله،
ageLower = 0وageUpper = 10برگردانده میشود. - برای ۱۱ یا ۱۲ سالهها،
ageLower = 11وageUpper = 12برگردانده میشود. - ۱۳ یا ۱۴ ساله،
ageLower = 13وageUpper = 14را برمیگرداند. - برای فردی که ۱۵ سال یا بیشتر دارد،
ageLower = 15برگردانده میشود.
- برای کودک ۰ تا ۱۰ ساله،
پاسخهای نشانهای سن
پاسخ Play Age Signals API (نسخه بتا) شامل فیلدها و مقادیر زیر است. مقادیر ممکن است تغییر کنند. اگر جدیدترین مقادیر را میخواهید، هنگام باز شدن برنامهتان، پاسخ میانای برنامهسازی کاربردی را درخواست کنید. شما مسئول ارائه تجربههای مناسب سن کاربر بااستفاده از این نشانها هستید.
| فیلد پاسخ | مقدار | شرح |
|---|---|---|
userStatus |
درستیسنجیشده | Google سن کاربر را بااستفاده از روشی از نظر اقتصادی معقول مانند مدرک شناسایی معتبر، کارت اعتباری، یا تخمین سن از روی چهره درستیسنجی کرده است. اگر userStatus VERIFIED است، میتوانید فیلدهای دیگر را نادیده بگیرید.
از ageLower و ageUpper برای تعیین محدوده سنی کاربر استفاده کنید.
|
| اعلامشده | سن کاربر توسط خود کاربر، ولی، یا سرپرست قانونی او اعلام شده است.
از ageLower و ageUpper برای تعیین محدوده سنی کاربر استفاده کنید. |
|
| تحتنظارت | کاربر «حساب Google» تحت نظارتی دارد که توسط ولیای مدیریت میشود که سن او را تنظیم میکند.
از ageLower و ageUpper برای تعیین محدوده سنی کاربر استفاده کنید.
از mostRecentApprovalDate برای تعیین آخرین تغییر قابلتوجهی که تأیید شده است استفاده کنید. |
|
| SUPERVISED_APPROVAL_PENDING | کاربر «حساب Google» تحت نظارت دارد و ولی ناظر او هنوز یک یا چند تغییر مهم معلقه را تأیید نکرده است.
از ageLower و ageUpper برای تعیین محدوده سنی کاربر استفاده کنید.
از mostRecentApprovalDate برای تعیین آخرین تغییر قابلتوجهی که تأیید شده است استفاده کنید. |
|
| SUPERVISED_APPROVAL_DENIED | کاربر «حساب Google» تحت نظارت دارد و ولی ناظر او یک یا چند تغییر مهم را تأیید نکرده است.
از ageLower و ageUpper برای تعیین محدوده سنی کاربر استفاده کنید.
از mostRecentApprovalDate برای تعیین آخرین تغییر قابلتوجهی که تأیید شده است استفاده کنید. |
|
| نامشخص | سن کاربر مشخص نیست و کاربر در حوزه قضایی یا منطقه ذیربط قرار دارد.
فقط برای ایالتهای ایالات متحده قابلاجرا است: برای دریافت سیگنال سن از Google Play، از کاربر بخواهید برای حل مشکل وضعیت خود به «فروشگاه Play» مراجعه کند. |
|
null |
یا کاربر در حوزههای قضایی و مناطق مربوطه نیست.
یا کاربر سن خود را با برنامهها همرسانی نمیکند. |
|
ageLower |
۰ تا ۱۸ | کران پایین (شامل) محدوده سنی کاربر تحت نظارت.
از ageLower و ageUpper برای تعیین محدوده سنی کاربر استفاده کنید. |
null |
userStatus ناشناس است یا null. |
|
ageUpper |
۲ تا ۱۸ | کران بالای (شامل) محدوده سنی کاربر تحت نظارت.
از ageLower و ageUpper برای تعیین محدوده سنی کاربر استفاده کنید. |
null |
یا userStatus تحت نظارت است و والدین کاربر تأیید کردهاند که سن او بالای ۱۸ سال است.
یا userStatus ناشناخته یا null است. |
|
mostRecentApprovalDate |
مُهر تاریخ | effective from تاریخ جدیدترین تغییر قابلتوجهی که تأیید شده است. وقتی برنامهای نصب میشود، تاریخ آخرین تغییر قابلتوجه قبلاز نصب استفاده میشود. |
null |
یا userStatus تحت نظارت است و هیچ تغییر مهمی ارسال نشده است.
یا userStatus درستیسنجیشده، ناشناخته، یا null است. |
|
installID |
شناسه الفباعددی تولیدشده توسط Play. | شناسهای که Google Play به نصبهای کاربر تحت نظارت اختصاص میدهد و برای اطلاعرسانی به شما درباره تأییدیه برنامه باطلشده استفاده میشود. اسناد مربوط به تأییدیههای لغوشده برنامه را مرور کنید. |
null |
userStatus درستیسنجیشده، ناشناخته، یا null است. |
پاسخهای نمونه برای کاربران در برزیل
در برزیل، userStatus فقط میتواند DECLARED،
UNKNOWN، یا null باشد.
برای کاربری که سن خود را اعلام کرده و آن را با برنامهها همرسانی میکند، موارد زیر را دریافت خواهید کرد:
userStatusAgeSignalsVerificationStatus.DECLAREDخواهد بود.ageLowerیک عدد خواهد بود (برای مثال، ۱۳).ageUpperباید عدد یاnullباشد (برای مثال، ۱۵).- فیلدهای پاسخ دیگر
nullخواهد بود.
برای کاربری که سنش مشخص نیست، موارد زیر را دریافت میکنید:
userStatusAgeSignalsVerificationStatus.UNKNOWNخواهد بود.- فیلدهای پاسخ دیگر
nullخواهد بود.
برای کاربری که سنش با برنامهها همرسانی نمیشود، موارد زیر را دریافت خواهید کرد:
userStatusnullخواهد بود.- فیلدهای پاسخ دیگر
nullخواهد بود.
وقتی سن کاربر برای همرسانی دردسترس باشد، وضعیت کاربر میتواند به DECLARED تغییر کند.
پاسخهای نمونه برای کاربران در ایالتهای امریکا
در ایالتهای ذیربط ایالات متحده، userStatus میتواند VERIFIED،
SUPERVISED، SUPERVISED_APPROVAL_PENDING،
SUPERVISED_APPROVAL_DENIED، UNKNOWN، یا
null باشد.
برای کاربر تأییدشده، موارد زیر را دریافت میکنید:
userStatusAgeSignalsVerificationStatus.VERIFIEDخواهد بود.ageLowerیک عدد خواهد بود (برای مثال، ۱۸).ageUpperعددی خواهد بود یاnull(برای مثال،null).- فیلدهای پاسخ دیگر
nullخواهد بود.
برای کاربر تحت نظارت، موارد زیر را دریافت خواهید کرد:
userStatusAgeSignalsVerificationStatus.SUPERVISEDخواهد بود.ageLowerیک عدد خواهد بود (برای مثال، ۱۳).ageUpperباید عدد یاnullباشد (برای مثال، ۱۵).mostRecentApprovalDateیک شیء تاریخ Java خواهد بود (برای مثال،2026-01-01) یاnull(اگر هیچ تغییر قابلتوجهی تأیید نشده باشد).installIDشناسه الفباعددی تولیدشده توسط Play خواهد بود (برای مثال،550e8400-e29b-41d4-a716-446655441111).
برای کاربر تحت نظارتی که تأییدیه تغییر مهم او درانتظار است، موارد زیر را دریافت خواهید کرد:
userStatusAgeSignalsVerificationStatus.SUPERVISED_APPROVAL_PENDINGخواهد بود.ageLowerیک عدد خواهد بود (برای مثال، ۱۳).ageUpperباید عدد یاnullباشد (برای مثال، ۱۵).mostRecentApprovalDateیک شیء تاریخ Java خواهد بود (برای مثال،2026-01-01) یاnull(اگر هیچ تغییر قابلتوجهی تأیید نشده باشد).installIDشناسه الفباعددی تولیدشده توسط Play خواهد بود (برای مثال،550e8400-e29b-41d4-a716-446655441111).
رسیدگی به کدهای خطای میانای برنامهسازی کاربردی
اگر برنامهتان درخواست Play Age Signals API ارائه دهد و فراخوانی ناموفق باشد، برنامهتان کد خطا دریافت میکند. این خطاها ممکن است بهدلایل مختلفی رخ دهد، مثلاً قدیمی بودن برنامه «فروشگاه Play».
استراتژی امتحان مجدد
در شرایطی که کاربر در جلسه است، توصیه میکنیم راهبرد تلاش مجدد را با حداکثر تعداد تلاش بهعنوان شرط خروج اجرا کنید تا خطا کمترین اختلال را در تجربه کاربر ایجاد کند.
| مقدار عددی کد خطا | کد خطا | شرح | قابل امتحان مجدد |
|---|---|---|---|
| ۱- | API_NOT_AVAILABLE | Play Age Signals API دردسترس نیست. نسخه برنامه «فروشگاه Play» نصبشده در دستگاه ممکن است قدیمی باشد. راهحل احتمالی
|
بله |
| ۲- | PLAY_STORE_NOT_FOUND | هیچ برنامه «فروشگاه Play» در دستگاه پیدا نشد. از کاربر بخواهید «فروشگاه Play» را نصب یا فعال کند. | بله |
| -3 | NETWORK_ERROR | هیچ شبکه دردسترسی پیدا نشد. از کاربر بخواهید اتصال را بررسی کند. | بله |
| -4 | PLAY_SERVICES_NOT_FOUND | «خدمات Play» دردسترس نیست یا نسخه آن خیلی قدیمی است. از کاربر بخواهید «خدمات Play» را نصب، بهروزرسانی، یا فعال کند. | بله |
| -5 | CANNOT_BIND_TO_SERVICE | اتصال به سرویس در «فروشگاه Play» ناموفق بود. این مشکل میتواند بهدلیل نصب بودن نسخه قدیمی «فروشگاه Play» در دستگاه یا پر شدن بیشازحد حافظه دستگاه باشد. از کاربر بخواهید برنامه «فروشگاه Play» را بهروز کند. با عقبنشینی نمایی دوباره امتحان کنید. | بله |
| -6 | PLAY_STORE_VERSION_OUTDATED | برنامه «فروشگاه Play» باید بهروزرسانی شود. از کاربر بخواهید برنامه «فروشگاه Play» را بهروز کند. | بله |
| -7 | PLAY_SERVICES_VERSION_OUTDATED | «خدمات Play» باید بهروزرسانی شود. از کاربر بخواهید «خدمات Play» را بهروز کند. | بله |
| -8 | CLIENT_TRANSIENT_ERROR | خطایی گذرا در دستگاه کارخواه روی داد. یک استراتژی تلاش مجدد با حداکثر تعداد تلاش بهعنوان شرط خروج پیادهسازی کنید. اگر مشکل همچنان برطرف نشد، از کاربر بخواهید بعداً دوباره امتحان کند. | بله |
| -9 | APP_NOT_OWNED | برنامه توسط Google Play نصب نشده است. از کاربر بخواهید برنامهتان را از Google Play دریافت کند. | نه |
| -10 | SDK_VERSION_OUTDATED | از این نسخه Play Age Signals SDK دیگر پشتیبانی نمیشود. از کاربر بخواهید برنامهتان را به نسخه جدیدتری که از نسخه اخیر Play Age Signals SDK استفاده میکند بهروز کند. | نه |
| -100 | INTERNAL_ERROR | خطای داخلی ناشناخته. یک استراتژی تلاش مجدد با حداکثر تعداد تلاش بهعنوان شرط خروج پیادهسازی کنید. اگر مشکل همچنان برطرف نشد، از کاربر بخواهید بعداً دوباره امتحان کند. اگر بهطور مداوم ناموفق بود، با پشتیبانی «توسعهدهنده Google Play» تماس بگیرید، Play Age Signals API را در موضوع قرار دهید، و تا حد امکان جزئیات فنی (مانند گزارش اشکال) را اضافه کنید. | نه |