استفاده از Play Age Signals API (نسخه بتا)

بااستفاده از 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» ارائه دهید.

  1. به صفحه نشان‌های سن در «کنسول Play» بروید.
  2. در برگه گروه‌های سنی سفارشی، حداکثر سه حداقل سن برای برنامه‌تان وارد کنید. حداقل سن‌ها باید حداقل ۲ سال باهم فاصله داشته باشند و می‌توان آن‌ها را سالی یک‌بار تغییر داد.
  3. روی ذخیره کلیک کنید.

گروه‌های سنی برگردانده‌شده پاسخ پیش‌فرض میانای برنامه‌سازی کاربردی را لغو خواهد کرد. برای مثال:

  • اگر یک حداقل سن (۱۵) در «کنسول 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 باشد.

برای کاربری که سن خود را اعلام کرده و آن را با برنامه‌ها هم‌رسانی می‌کند، موارد زیر را دریافت خواهید کرد:

  • userStatus AgeSignalsVerificationStatus.DECLARED خواهد بود.
  • ageLower یک عدد خواهد بود (برای مثال، ۱۳).
  • ageUpper باید عدد یا null باشد (برای مثال، ۱۵).
  • فیلدهای پاسخ دیگر null خواهد بود.

برای کاربری که سنش مشخص نیست، موارد زیر را دریافت می‌کنید:

  • userStatus AgeSignalsVerificationStatus.UNKNOWN خواهد بود.
  • فیلدهای پاسخ دیگر null خواهد بود.

برای کاربری که سنش با برنامه‌ها هم‌رسانی نمی‌شود، موارد زیر را دریافت خواهید کرد:

  • userStatus null خواهد بود.
  • فیلدهای پاسخ دیگر null خواهد بود.

وقتی سن کاربر برای هم‌رسانی دردسترس باشد، وضعیت کاربر می‌تواند به DECLARED تغییر کند.

پاسخ‌های نمونه برای کاربران در ایالت‌های امریکا

در ایالت‌های ذی‌ربط ایالات متحده، userStatus می‌تواند VERIFIED، SUPERVISED، SUPERVISED_APPROVAL_PENDING، SUPERVISED_APPROVAL_DENIED، UNKNOWN، یا null باشد.

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

  • userStatus AgeSignalsVerificationStatus.VERIFIED خواهد بود.
  • ageLower یک عدد خواهد بود (برای مثال، ۱۸).
  • ageUpper عددی خواهد بود یا null (برای مثال، null).
  • فیلدهای پاسخ دیگر null خواهد بود.

برای کاربر تحت نظارت، موارد زیر را دریافت خواهید کرد:

  • userStatus AgeSignalsVerificationStatus.SUPERVISED خواهد بود.
  • ageLower یک عدد خواهد بود (برای مثال، ۱۳).
  • ageUpper باید عدد یا null باشد (برای مثال، ۱۵).
  • mostRecentApprovalDate یک شیء تاریخ Java خواهد بود (برای مثال، 2026-01-01) یا null (اگر هیچ تغییر قابل‌توجهی تأیید نشده باشد).
  • installID شناسه الفباعددی تولیدشده توسط Play خواهد بود (برای مثال، 550e8400-e29b-41d4-a716-446655441111).

برای کاربر تحت نظارتی که تأییدیه تغییر مهم او درانتظار است، موارد زیر را دریافت خواهید کرد:

  • userStatus AgeSignalsVerificationStatus.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» را به‌روز کند.
بله
‫۲- 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 را در موضوع قرار دهید، و تا حد امکان جزئیات فنی (مانند گزارش اشکال) را اضافه کنید. نه