استخدام واجهة برمجة التطبيقات Play Age Signals API (إصدار تجريبي)

باستخدام واجهة برمجة التطبيقات Play Age Signals API (الإصدار التجريبي)، أنت توافق على بنود الخدمة وتوافق على الالتزام بجميع سياسات المطوّرين على Google Play. لطلب حالة المستخدم والفئة العمرية، عليك إرسال طلب إلى واجهة برمجة التطبيقات من تطبيقك في وقت التشغيل. لا تعرض واجهة Play Age Signals API بيانات إلا للمستخدمين المقيمين في المناطق التي يفرض فيها القانون على Play تقديم بيانات الفئة العمرية.

تعرض Play فئة عمرية استنادًا إلى الفئات العمرية المحدّدة في الولايات القضائية والمناطق السارية. إنّ الأعمار التلقائية التي تعرضها واجهة برمجة التطبيقات في نطاقات السلطة والمناطق المؤهَّلة هي من 0 إلى 12 عامًا، ومن 13 إلى 15 عامًا، ومن 16 إلى 17 عامًا، و18 عامًا فأكثر، ولكن قد تتغيّر هذه الأعمار استنادًا إلى المتطلبات الإقليمية.

دمج واجهة Play Age Signals API في تطبيقك

لدمج واجهة Play Age Signals API في تطبيقك، أضِف التبعية التالية إلى ملف build.gradle في تطبيقك:

implementation 'com.google.android.play:age-signals:0.0.1-beta02'

طلب مؤشرات الفئات العمرية

في ما يلي مثال على تقديم طلب للحصول على إشارات العمر:

Kotlin

// 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 SUPERVISED, VERIFIED, etc.
        }
    }

Java

// 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.
          }
        });

يخزِّن Google Play إشارات العمر على الجهاز لكل مستخدم. عندما ينتقل مستخدم لديه حساب خاضع للإشراف على Google إلى فئة عمرية جديدة، يحدِّث Google Play تلقائيًا إشارات العمر المخزّنة مؤقتًا لهذا المستخدم خلال مدة تتراوح بين أسبوعَين و8 أسابيع بعد تاريخ ميلاده.

(اختياري) تلقّي فئات عمرية مخصّصة

إنّ الفئات العمرية التلقائية التي تعرضها واجهة برمجة التطبيقات في نطاقات السلطة والمناطق المؤهَّلة هي من 0 إلى 12 عامًا، ومن 13 إلى 15 عامًا، ومن 16 إلى 17 عامًا، و18 عامًا فأكثر. وقد تتغيّر هذه الفئات في المستقبل استنادًا إلى المتطلبات المحلية.

بدلاً من ذلك، لتخصيص الفئات العمرية وفقًا للحدّ الأدنى للعمر المسموح به في تطبيقك، يمكنك تقديم هذه الفئات في صفحة إشارات العمر في Google Play Console. تعرض واجهة Age Signals API الفئات العمرية المخصّصة. على سبيل المثال، إذا حدّدت الحد الأدنى للعمر بـ 9 و15 و17 عامًا، فإنه سيتم تصنيف المستخدم البالغ من العمر 14 عامًا ضمن الفئة العمرية من 10 إلى 15 عامًا. يجب ألا يقل الفارق العمري عن سنتَين، ويمكن تغييره مرة واحدة سنويًا.

لتخصيص الفئات العمرية التي تعرضها واجهة Age Signals API، يمكنك تقديم الحدّ الأدنى للعمر المسموح به في تطبيقك:

  1. انتقِل إلى صفحة إشارات العمر في حسابك على Play Console.
  2. في علامة التبويب الحدّ الأدنى للعمر المسموح به لاستخدام التطبيق، أدخِل ما يصل إلى ثلاث فئات ضمن الحدّ الأدنى للعمر المسموح به لاستخدام تطبيقك.
  3. انقر على حفظ.

ردود مؤشرات الفئات العمرية

يتضمّن الردّ من واجهة Play Age Signals API (الإصدار التجريبي) الحقول والقيم التالية. وقد تتغيّر القيم. إذا كنت تريد الحصول على أحدث القيم، اطلب الحصول على ردّ من واجهة برمجة التطبيقات عند فتح تطبيقك. أنت المسؤول عن توفير تجارب مناسبة للفئة العمرية باستخدام هذه الإشارات.

حقل الردّ القيم الوصف
userStatus تم التحقق يتجاوز عمر المستخدم 18 عامًا. أثبتت Google عمر المستخدم باستخدام طريقة معقولة تجاريًا، مثل مستند تعريف هوية صادر عن جهة حكومية أو بطاقة ائتمان أو تقدير العمر من خلال الوجه.
SUPERVISED لدى المستخدم حساب Google خاضع للإشراف يديره أحد الوالدَين الذي يحدّد عمره. استخدِم الرمزَين ageLower وageUpper لتحديد الفئة العمرية للمستخدم.
SUPERVISED_APPROVAL_PENDING لدى المستخدم حساب Google خاضعًا للإشراف، ولم يوافق بعد الوالد المشرف على تغيير واحد أو أكثر من التغييرات المهمة المعلّقة. استخدِم الرمزَين ageLower وageUpper لتحديد الفئة العمرية للمستخدم. استخدِم mostRecentApprovalDate لتحديد آخر تغيير مهم تمت الموافقة عليه.
SUPERVISED_APPROVAL_DENIED لدى المستخدم حساب Google خاضعًا للإشراف، ورفض الوالد المشرف الموافقة على تغيير واحد أو أكثر من التغييرات المهمة. استخدِم الرمزين ageLower وageUpper لتحديد الفئة العمرية للمستخدم. استخدِم mostRecentApprovalDate لتحديد آخر تغيير مهم تمت الموافقة عليه.
UNKNOWN لم يتم إثبات هوية المستخدم أو إشراف أحد الوالدَين عليه في الولايات القضائية والمناطق المعنيّة. قد يكون عمر هؤلاء المستخدمين أكثر أو أقل من 18 عامًا. للحصول على إشارة العمر من Google Play، اطلب من المستخدم الانتقال إلى "متجر Play" لحلّ مشكلة حالته.
فارغ (قيمة فارغة) تعرض جميع الحسابات الأخرى هذه القيمة.
ageLower من 0 إلى 18 الحدّ الأدنى (شامل) للنطاق العمري للمستخدم الخاضع للإشراف. استخدِم ageLower وageUpper لتحديد الفئة العمرية للمستخدم.
فارغ (قيمة فارغة)
userStatus غير معروف أو فارغ.
ageUpper من 2 إلى 18 الحدّ الأعلى (شامل) للنطاق العمري للمستخدم الخاضع للإشراف استخدِم ageLower وageUpper لتحديد الفئة العمرية للمستخدم.
فارغ (قيمة فارغة) إما أن يكون حساب userStatus خاضعًا للإشراف وأن يكون عمر المستخدم الذي أكده أحد الوالدَين أكبر من 18 عامًا. أو أنّ userStatus تم التحقّق منه أو غير معروف أو فارغ.
mostRecentApprovalDate الطابع الزمني تمثّل هذه السمة تاريخ effective from لآخر تغيير مهم تمت الموافقة عليه. عند تثبيت تطبيق، يتم استخدام تاريخ آخر تغيير مهم قبل التثبيت.
فارغ (قيمة فارغة) إما أنّ حساب userStatus خاضع للإشراف ولم يتم إرسال أي تغيير مهم. أو تم التحقّق من userStatus أو كانت قيمته غير معروفة أو فارغة.
installID معرّف أبجدي رقمي من إنشاء Play معرّف يخصّ عمليات تثبيت التطبيقات التي يجريها المستخدمون الخاضعون للإشراف، ويتم تعيينه من قِبل Google Play، ويُستخدَم لإعلامك بإلغاء الموافقة على التطبيق. راجِع المستندات المتعلّقة بإبطال الموافقات على التطبيقات.
فارغ (قيمة فارغة) userStatus تم التحقّق منه أو غير معروف أو فارغ.

أمثلة على الردود

بالنسبة إلى المستخدم الذي تم التحقّق من حسابه، ستتلقّى ما يلي:

  • سيصبح userStatus هو AgeSignalsVerificationStatus.VERIFIED.
  • ستكون حقول الردود الأخرى فارغة.

بالنسبة إلى المستخدم الذي يتم الإشراف عليه، ستتلقّى ما يلي:

  • ستكون قيمة userStatus هي AgeSignalsVerificationStatus.SUPERVISED.
  • سيكون ageLower رقمًا (مثل 13).
  • سيكون ageUpper رقمًا (مثل 15).
  • سيكون mostRecentApprovalDate كائن تاريخ Java (مثل 2026-01-01) أو فارغًا (في حال عدم الموافقة على أي تغيير مهم).
  • سيكون installID معرّفًا أبجديًا رقميًا من إنشاء Play (مثلاً 550e8400-e29b-41d4-a716-446655441111).

بالنسبة إلى مستخدم خاضع للإشراف ينتظر الموافقة على تغيير مهم، ستتلقّى ما يلي:

  • ستكون قيمة userStatus هي AgeSignalsVerificationStatus.SUPERVISED_APPROVAL_PENDING.
  • سيكون ageLower رقمًا (مثل 13).
  • سيكون ageUpper رقمًا (مثل 15).
  • سيكون mostRecentApprovalDate كائن تاريخ Java (مثل 2026-01-01) أو فارغًا (في حال عدم الموافقة على أي تغيير مهم).
  • سيكون installID معرّفًا أبجديًا رقميًا من إنشاء Play (مثلاً 550e8400-e29b-41d4-a716-446655441111).

التعامل مع رموز الخطأ في واجهة برمجة التطبيقات

إذا أرسل تطبيقك طلبًا إلى Play Age Signals API (إصدار تجريبي) وتعذّر تنفيذ الطلب، سيتلقّى تطبيقك رمز خطأ. ويمكن أن تحدث هذه الأخطاء لأسباب مختلفة، مثل أن يكون تطبيق "متجر Play" قديمًا.

استراتيجية إعادة المحاولة

في الحالات التي يكون فيها المستخدم في جلسة، ننصحك بتنفيذ استراتيجية إعادة المحاولة مع تحديد الحد الأقصى لعدد المحاولات كشرط للخروج، وذلك حتى لا يؤدي الخطأ إلى تعطيل تجربة المستخدم قدر الإمكان.

القيمة العددية لرمز الخطأ رمز الخطأ الوصف قابلة لإعادة المحاولة
-1 API_NOT_AVAILABLE واجهة Play Age Signals API غير متاحة. قد يكون إصدار تطبيق "متجر Play" المثبَّت على الجهاز قديمًا.

الحل المحتمل
  • اطلب من المستخدم تحديث "متجر Play".
نعم
-2 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. لا
-100 INTERNAL_ERROR حدث خطأ داخلي غير معروف. تنفيذ استراتيجية إعادة المحاولة مع تحديد الحد الأقصى لعدد المحاولات كشرط للخروج إذا استمرّت المشكلة، اطلب من المستخدم إعادة المحاولة لاحقًا. إذا تعذّر ذلك باستمرار، يُرجى التواصل مع فريق دعم المطوّرين على Google Play وتضمين Play Age Signals API في الموضوع، بالإضافة إلى أكبر قدر ممكن من التفاصيل الفنية (مثل تقرير عن الخطأ). لا