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

با استفاده از API سیگنال‌های سن بازی (بتا)، شما با شرایط خدمات موافقت می‌کنید و موافقت می‌کنید که از تمام سیاست‌های توسعه‌دهندگان Google Play پیروی کنید. برای درخواست وضعیت و محدوده سنی کاربر، API را در زمان اجرا از برنامه خود فراخوانی می‌کنید. API سیگنال‌های سن بازی فقط داده‌های مربوط به کاربران مستقر در مناطقی را که Play طبق قانون موظف به ارائه داده‌های رده سنی است، برمی‌گرداند.

Play یک محدوده سنی را بر اساس گروه‌های سنی تعریف‌شده توسط حوزه قضایی و مناطق مربوطه برمی‌گرداند. سنین پیش‌فرضی که API در حوزه‌های قضایی و مناطق مربوطه برمی‌گرداند، 0-12، 13-15، 16-17 و 18+ سال هستند، اما ممکن است محدوده‌های سنی سفارشی نیز دریافت شود. Google Play به‌طور خودکار سیگنال‌های سنی ذخیره‌شده برای یک کاربر را ظرف 2 تا 8 هفته پس از تولد کاربر به‌روزرسانی می‌کند.

API سیگنال‌های سن بازی را در برنامه خود ادغام کنید

API سیگنال‌های Play Age روی تلفن‌ها، تبلت‌های تاشو و تبلت‌هایی که اندروید ۶.۰ (سطح API ۲۳) و بالاتر دارند پشتیبانی می‌شود. برای ادغام API سیگنال‌های Play Age در برنامه خود، وابستگی زیر را به فایل 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 در حوزه‌های قضایی و مناطق مربوطه برمی‌گرداند، ۰-۱۲، ۱۳-۱۵، ۱۶-۱۷ و ۱۸+ سال است.

روش دیگر، برای سفارشی‌سازی محدوده‌های سنی پیش‌فرض بر اساس حداقل سن برنامه‌تان، می‌توانید این حداقل سن‌ها را برای برنامه‌تان در صفحه Age signals در کنسول گوگل پلی خود ارائه دهید. محدوده‌های سنی برگردانده شده، پاسخ پیش‌فرض API را نادیده می‌گیرند. برای مثال، اگر حداقل سن ۹، ۱۵ و ۱۷ سال را ارائه دهید، یک کاربر ۱۴ ساله در محدوده سنی ۱۰ تا ۱۵ سال قرار می‌گیرد.

برای سفارشی‌سازی محدوده‌های سنی پیش‌فرض که توسط API سیگنال‌های سن برگردانده می‌شوند، می‌توانید حداقل سن را برای برنامه خود ارائه دهید:

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

پاسخ‌های سیگنال‌های سنی

پاسخ API سیگنال‌های سن بازی (بتا) شامل فیلدها و مقادیر زیر است. مقادیر ممکن است تغییر کنند. اگر جدیدترین مقادیر را می‌خواهید، هنگام باز شدن برنامه خود، پاسخ API را درخواست کنید. شما مسئول ارائه تجربیات متناسب با سن با استفاده از این سیگنال‌ها هستید.

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

برای تعیین محدوده سنی کاربر ageLower و ageUpper استفاده کنید.
اعلام شد سن کاربر توسط خود کاربر، والدین یا قیم قانونی او اعلام شده باشد.

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

برای تعیین محدوده سنی کاربر ageLower و ageUpper استفاده کنید.

برای تعیین آخرین تغییر مهمی که تأیید شده است، mostRecentApprovalDate استفاده کنید.
تایید تحت نظارت در انتظار کاربر یک حساب گوگل تحت نظارت دارد و والد ناظر او هنوز یک یا چند تغییر مهم در حال بررسی را تأیید نکرده است.

برای تعیین محدوده سنی کاربر ageLower و ageUpper استفاده کنید.

برای تعیین آخرین تغییر مهمی که تأیید شده است، mostRecentApprovalDate استفاده کنید.
تایید_نظارت_شده_رد_شده کاربر یک حساب گوگل تحت نظارت دارد و والد ناظر او، تأیید یک یا چند تغییر مهم را رد کرده است.

برای تعیین محدوده سنی کاربر ageLower و ageUpper استفاده کنید.

برای تعیین آخرین تغییر مهمی که تأیید شده است، mostRecentApprovalDate استفاده کنید.
ناشناخته
سن کاربر نامشخص است و کاربر در حوزه قضایی یا منطقه مربوطه قرار دارد.

فقط برای ایالت‌های آمریکا قابل اجرا است: برای دریافت سیگنال سنی از گوگل پلی، از کاربر بخواهید که برای حل مشکل خود به فروشگاه پلی مراجعه کند.
null همه کاربران دیگر این مقدار را برمی‌گردانند. اگر userStatus null باشد، می‌توانید فیلدهای دیگر را نادیده بگیرید.
ageLower ۰ تا ۱۸ حد پایین (شامل) محدوده سنی کاربر تحت نظارت.

برای تعیین محدوده سنی کاربر، از ageLower و ageUpper استفاده کنید.
null
userStatus ناشناخته یا null است.
ageUpper ۲ تا ۱۸ حد بالای (شامل) محدوده سنی یک کاربر تحت نظارت.

برای تعیین محدوده سنی کاربر، از ageLower و ageUpper استفاده کنید.
null یا userStatus تحت نظارت است و سن تأیید شده والدین کاربر بالای ۱۸ سال است.

یا اینکه userStatus ناشناخته یا null است.
mostRecentApprovalDate مهر تاریخ تاریخ effective from آخرین تغییر مهمی که تأیید شده است. هنگام نصب یک برنامه، تاریخ آخرین تغییر مهم قبل از نصب استفاده می‌شود.
null یا userStatus تحت نظارت است و هیچ تغییر قابل توجهی ارسال نشده است.

یا userStatus تأیید شده، ناشناخته یا null است.
installID شناسه الفبایی عددی تولید شده توسط بازی. شناسه‌ای که توسط گوگل پلی به نصب‌های تحت نظارت کاربران اختصاص داده شده و برای اطلاع‌رسانی در مورد لغو تأیید برنامه استفاده می‌شود. مستندات مربوط به لغو تأیید برنامه‌ها را بررسی کنید.
null userStatus تأیید شده، ناشناخته یا null است.

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

در برزیل، userStatus فقط می‌تواند DECLARED و UNKNOWN باشد.

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

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

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

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

پس از اینکه سن کاربر برای اشتراک‌گذاری در دسترس قرار گرفت، وضعیت کاربر ممکن است از UNKNOWN به 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 می‌تواند یک شیء تاریخ جاوا (برای مثال، 2026-01-01 ) یا null (اگر هیچ تغییر قابل توجهی تأیید نشده باشد) باشد.
  • installID یک شناسه‌ی الفبایی-عددی تولید شده توسط Play خواهد بود (برای مثال، 550e8400-e29b-41d4-a716-446655441111 ).

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

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

مدیریت کدهای خطای API

اگر برنامه شما درخواست API مربوط به سیگنال‌های سن بازی (Play Age Signals API) را ارسال کند و فراخوانی ناموفق باشد، برنامه شما یک کد خطا دریافت می‌کند. این خطاها می‌توانند به دلایل مختلفی مانند قدیمی بودن برنامه فروشگاه Play رخ دهند.

استراتژی تلاش مجدد

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

مقدار عددی کد خطا کد خطا توضیحات قابل امتحان مجدد
-1 API_NOT_AVAILABLE رابط برنامه‌نویسی کاربردی سیگنال‌های سن بازی (Play Age Signals API) در دسترس نیست. نسخه برنامه فروشگاه پلی که روی دستگاه نصب شده است ممکن است قدیمی باشد.

قطعنامه احتمالی
  • از کاربر بخواهید که فروشگاه Play را به‌روزرسانی کند.
بله
فروشگاه_بازیافت_نشد هیچ برنامه‌ای از فروشگاه Play روی دستگاه یافت نمی‌شود. از کاربر بخواهید که Play Store را نصب یا فعال کند. بله
-3 خطای شبکه هیچ شبکه‌ای یافت نشد. از کاربر بخواهید که اتصال را بررسی کند. بله
-4 خدمات_بازی_یافت_نشد خدمات Play در دسترس نیست یا نسخه آن خیلی قدیمی است. از کاربر بخواهید خدمات Play را نصب، به‌روزرسانی یا فعال کند. بله
-5 نمی‌توان به سرویس متصل شد اتصال به سرویس در فروشگاه Play ناموفق بود. این می‌تواند به دلیل نصب نسخه قدیمی فروشگاه Play روی دستگاه یا پر بودن بیش از حد حافظه دستگاه باشد. از کاربر بخواهید برنامه فروشگاه Play را به‌روزرسانی کند. با یک backoff نمایی دوباره امتحان کنید. بله
-6 نسخه_فروشگاه_بازی_خارج_از_تاریخ برنامه‌ی Play Store نیاز به به‌روزرسانی دارد. از کاربر بخواهید که برنامه‌ی Play Store را به‌روزرسانی کند. بله
-7 نسخه_خدمات_بازی_خارج_از_تاریخ سرویس‌های Play نیاز به به‌روزرسانی دارند. از کاربر بخواهید که سرویس‌های Play را به‌روزرسانی کند. بله
-8 خطای گذرای کلاینت یک خطای گذرا در دستگاه کلاینت رخ داده است. یک استراتژی تلاش مجدد با حداکثر تعداد تلاش به عنوان شرط خروج پیاده‌سازی کنید. اگر مشکل هنوز حل نشده است، از کاربر بخواهید بعداً دوباره امتحان کند. بله
-9 APP_NOT_OWNED برنامه توسط گوگل پلی نصب نشده است. از کاربر بخواهید برنامه شما را از گوگل پلی دریافت کند. خیر
-10 SDK_VERSION_OUTDATED نسخه SDK مربوط به Play Age Signals دیگر پشتیبانی نمی‌شود. از کاربر بخواهید برنامه شما را به نسخه جدیدتری که از نسخه اخیر SDK مربوط به Play Age Signals استفاده می‌کند، به‌روزرسانی کند. خیر
-100 خطای داخلی خطای داخلی ناشناخته. یک استراتژی تلاش مجدد با حداکثر تعداد تلاش به عنوان شرط خروج پیاده‌سازی کنید. اگر مشکل هنوز حل نشده است، از کاربر بخواهید بعداً دوباره امتحان کند. اگر مرتباً ناموفق بود، با پشتیبانی توسعه‌دهندگان Google Play تماس بگیرید ، عبارت Play Age Signals API را در موضوع وارد کنید و تا حد امکان جزئیات فنی (مانند گزارش اشکال) را نیز ذکر کنید. خیر