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

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

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

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

تتوفّر واجهة Play Age Signals API على الهواتف والأجهزة القابلة للطي والأجهزة اللوحية التي تعمل بنظام التشغيل Android 6.0 (المستوى 23 من واجهة برمجة التطبيقات) والإصدارات الأحدث. لدمج واجهة Play Age Signals API في تطبيقك، أضِف التبعية التالية إلى ملف build.gradle في تطبيقك:

implementation 'com.google.android.play:age-signals:0.0.3'

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

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

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 VERIFIED, DECLARED, SUPERVISED, 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.
          }
        });

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

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

بدلاً من ذلك، لتخصيص الفئات العمرية التلقائية وفقًا للحدّ الأدنى للعمر المسموح به في تطبيقك ، يمكنك تقديم هذه الحدود الدنيا للعمر في تطبيقك على صفحة "مؤشرات الفئات العمرية" في Google Play Console.

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

ستحل الفئات العمرية المعروضة محل الردّ التلقائي من واجهة برمجة التطبيقات. على سبيل المثال:

  • إذا ضبطت حدًا أدنى واحدًا للعمر (15) في Google Play Console:

    • بالنسبة إلى المستخدمين الذين تتراوح أعمارهم بين 0 و14 عامًا، سيتم عرض ageLower = 0 وageUpper = 14.
    • بالنسبة إلى المستخدمين الذين تزيد أعمارهم عن 15 عامًا، سيتم عرض ageLower = 15.
  • إذا ضبطت حدّين أدنيَين للعمر (13 و17):

    • بالنسبة إلى المستخدمين الذين تتراوح أعمارهم بين 0 و12 عامًا، سيتم عرض ageLower = 0 وageUpper = 12.
    • بالنسبة إلى المستخدمين الذين تتراوح أعمارهم بين 13 و16 عامًا، سيتم عرض ageLower = 13 وageUpper = 16.
    • بالنسبة إلى المستخدمين الذين تزيد أعمارهم عن 17 عامًا، سيتم عرض ageLower = 17.
  • إذا ضبطت ثلاثة حدود دنيا للعمر (11 و13 و15):

    • بالنسبة إلى المستخدمين الذين تتراوح أعمارهم بين 0 و10 أعوام، سيتم عرض ageLower = 0 وageUpper = 10.
    • بالنسبة إلى المستخدمين الذين تتراوح أعمارهم بين 11 و12 عامًا، سيتم عرض ageLower = 11 وageUpper = 12.
    • بالنسبة إلى المستخدمين الذين تتراوح أعمارهم بين 13 و14 عامًا، سيتم عرض ageLower = 13 وageUpper = 14.
    • بالنسبة إلى المستخدمين الذين تزيد أعمارهم عن 15 عامًا، سيتم عرض ageLower = 15.

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

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

حقل الردّ القيم الوصف
userStatus تم التحقق من صحته أثبتت Google عمر المستخدم باستخدام طريقة معقولة تجاريًا، مثل مستند تعريف هوية صادر عن جهة حكومية أو بطاقة ائتمان أو تقدير العمر من خلال الوجه. إذا كانت قيمة userStatus هي VERIFIED، يمكنك تجاهل الحقول الأخرى.

استخدِم ageLower وageUpper لتحديد الفئة العمرية للمستخدم.
تم الإعلان عن العمر أعلن المستخدم أو أحد والدَيه أو الوصي القانوني عنه عن عمره.

استخدِم ageLower وageUpper لتحديد الفئة العمرية للمستخدم.
خاضع للإشراف لدى المستخدم حساب Google خاضع للإشراف يديره أحد الوالدَين الذي يضبط عمره.

استخدِم ageLower وageUpper لتحديد الفئة العمرية للمستخدم.

استخدِم mostRecentApprovalDate لتحديد آخر تغيير مهم تمت الموافقة عليه.
خاضع للإشراف، بانتظار الموافقة لدى المستخدم حساب Google خاضعًا للإشراف، ولم يوافق بعد الوالد المشرف على تغيير واحد أو أكثر من التغييرات المهمة المعلّقة.

استخدِم ageLower وageUpper لتحديد الفئة العمرية للمستخدم.

استخدِم mostRecentApprovalDate لتحديد آخر تغيير مهم تمت الموافقة عليه.
خاضع للإشراف، تم رفض الموافقة لدى المستخدم حساب Google خاضعًا للإشراف، ورفض الوالد المشرف الموافقة على تغيير واحد أو أكثر من التغييرات المهمة.

استخدِم ageLower وageUpper لتحديد الفئة العمرية للمستخدم.

استخدِم mostRecentApprovalDate لتحديد آخر تغيير مهم تمت الموافقة عليه.
UNKNOWN عمر المستخدم غير معروف وهو موجود في نطاق سلطة أو منطقة معنيّة.

لا ينطبق إلا على الولايات الأمريكية: للحصول على مؤشر فئة عمرية من Google Play، اطلب من المستخدم الانتقال إلى "متجر Play" لحلّ حالته.
null إما أنّ المستخدم ليس في نطاقات السلطة والمناطق المعنيّة.

أو أنّ المستخدم لا يشارك عمره مع التطبيقات.
ageLower من 0 إلى 18 الحدّ الأدنى (شامل) للفئة العمرية لمستخدم خاضع للإشراف.

استخدِم ageLower وageUpper لتحديد الفئة العمرية للمستخدم.
null
إنّ userStatus غير معروف أو null.
ageUpper من 2 إلى 18 الحدّ الأعلى (شامل) للفئة العمرية لمستخدم خاضع للإشراف.

استخدِم ageLower وageUpper لتحديد الفئة العمرية للمستخدم.
null إما أنّ userStatus خاضع للإشراف وعمر المستخدم الذي أكّده أحد والدَيه يزيد عن 18 عامًا.

أو أنّ userStatus غير معروف أو null.
mostRecentApprovalDate طابع زمني تاريخ effective from لآخر تغيير مهم تمت الموافقة عليه. عند تثبيت أحد التطبيقات، يتم استخدام تاريخ آخر تغيير مهم قبل التثبيت.
null إما أنّ userStatus خاضع للإشراف ولم يتم إرسال أي تغيير مهم.

أو أنّ userStatus تم التحقق من صحته أو غير معروف أو null.
installID رقم تعريف أبجدي رقمي تم إنشاؤه بواسطة Play رقم تعريف يخصّ عمليات تثبيت المستخدمين الخاضعين للإشراف من Google Play، ويُستخدم لإعلامك بالموافقة على التطبيق التي تم إبطالها. راجِع مستندات الموافقات على التطبيقات التي تم إبطالها .
null إنّ userStatus تم التحقق من صحته أو غير معروف أو null.

أمثلة على الردود للمستخدمين في البرازيل

في البرازيل، لا يمكن أن تكون قيمة userStatus إلا DECLARED أو UNKNOWN أو null.

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

  • ستكون قيمة userStatus هي AgeSignalsVerificationStatus.DECLARED.
  • سيكون ageLower رقمًا (على سبيل المثال، 13).
  • سيكون ageUpper رقمًا أو null (على سبيل المثال، 15).
  • ستكون حقول الردّ الأخرى null.

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

  • ستكون قيمة userStatus هي AgeSignalsVerificationStatus.UNKNOWN.
  • ستكون حقول الردّ الأخرى null.

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

  • ستكون قيمة userStatus هي null.
  • ستكون حقول الردّ الأخرى null.

يمكن أن تتغيّر حالة المستخدم إلى DECLARED عندما يصبح عمر المستخدم متاحًا للمشاركة.

أمثلة على الردود للمستخدمين في الولايات الأمريكية

في الولايات الأمريكية المعنيّة، يمكن أن تكون قيمة userStatus هي VERIFIED، SUPERVISED، SUPERVISED_APPROVAL_PENDING، SUPERVISED_APPROVAL_DENIED، UNKNOWN، أو null.

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

  • ستكون قيمة userStatus هي AgeSignalsVerificationStatus.VERIFIED.
  • سيكون ageLower رقمًا (على سبيل المثال، 18).
  • سيكون ageUpper رقمًا أو null (على سبيل المثال، null).
  • ستكون حقول الردّ الأخرى null.

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

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

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

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

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

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

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

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

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

الحلّ المحتمَل
  • اطلب من المستخدم تحديث "متجر Google Play".
نعم
-2 PLAY_STORE_NOT_FOUND لم يتم العثور على تطبيق "متجر Google Play" على الجهاز. اطلب من المستخدم تثبيت "متجر Google Play" أو تفعيله. نعم
-3 NETWORK_ERROR لم يتم العثور على أي شبكة متاحة. اطلب من المستخدم التحقّق من وجود اتصال. نعم
-4 PLAY_SERVICES_NOT_FOUND خدمات Play غير متاحة أو أنّ إصدارها قديم جدًا. اطلب من المستخدم تثبيت "خدمات Play" أو تحديثها أو تفعيلها. نعم
-5 CANNOT_BIND_TO_SERVICE تعذّر الربط بالخدمة في "متجر Google Play". يمكن أن يرجع ذلك إلى تثبيت إصدار قديم من "متجر Google Play" على الجهاز أو إلى زيادة تحميل ذاكرة الجهاز. اطلب من المستخدم تحديث تطبيق "متجر Google Play". أعد المحاولة باستخدام خوارزمية الرقود الأسي الثنائي. نعم
‎-6 PLAY_STORE_VERSION_OUTDATED يجب تحديث تطبيق "متجر Google Play". اطلب من المستخدم تحديث تطبيق "متجر Google 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 في الموضوع، وأدرِج أكبر قدر ممكن من التفاصيل الفنية (مثل تقرير عن الخطأ). لا