Menggunakan Play Age Signals API (beta)

Dengan menggunakan Play Age Signals API (beta), Anda menyetujui persyaratan layanan dan Anda setuju untuk mematuhi semua kebijakan developer Google Play. Untuk meminta status dan rentang usia pengguna, Anda memanggil API dari aplikasi saat runtime. Play Age Signals API hanya menampilkan data untuk pengguna yang berada di wilayah tempat Google Play diwajibkan oleh hukum untuk memberikan data kategori usia.

Play menampilkan rentang usia berdasarkan kelompok usia yang ditentukan oleh wilayah hukum dan wilayah yang berlaku. Usia default yang ditampilkan API di wilayah hukum dan wilayah yang berlaku adalah 0—12, 13—15, 16—17, dan 18+, tetapi rentang usia kustom dapat diterima. Google Play otomatis memperbarui sinyal usia yang di-cache untuk pengguna dalam waktu 2 hingga 8 minggu setelah ulang tahun pengguna.

Mengintegrasikan Play Age Signals API ke dalam aplikasi Anda

Play Age Signals API didukung di ponsel, perangkat foldable, dan tablet yang menjalankan Android 6.0 (API level 23) dan yang lebih tinggi. Untuk mengintegrasikan Play Age Signals API ke dalam aplikasi Anda, tambahkan dependensi berikut ke file build.gradle aplikasi Anda:

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

Meminta sinyal usia

Berikut adalah contoh pembuatan permintaan sinyal usia:

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

(Opsional) Menerima rentang usia kustom

Rentang usia default yang ditampilkan API di wilayah hukum dan wilayah yang berlaku adalah 0—12, 13—15, 16—17, dan 18+.

Atau, untuk menyesuaikan rentang usia default sesuai usia minimum aplikasi Anda, Anda dapat memberikan usia minimum ini untuk aplikasi Anda di halaman Sinyal usia di Konsol Google Play. Rentang usia yang ditampilkan akan menggantikan respons API default. Misalnya, jika Anda memberikan usia minimum 9, 15, dan 17, pengguna berusia 14 tahun akan termasuk dalam rentang usia 10-15 tahun.

Untuk menyesuaikan rentang usia default yang ditampilkan oleh Age Signals API, Anda dapat memberikan usia minimum untuk aplikasi Anda:

  1. Buka halaman Sinyal usia di Konsol Play.
  2. Di tab Rentang usia kustom, masukkan hingga tiga usia minimum untuk aplikasi Anda. Usia minimum harus memiliki selisih setidaknya 2 tahun dan dapat diubah sekali setahun.
  3. Klik Simpan.

Respons sinyal usia

Respons Play Age Signals API (beta) mencakup kolom dan nilai berikut. Nilai dapat berubah sewaktu-waktu. Jika Anda menginginkan nilai terbaru, minta respons API saat aplikasi Anda dibuka. Anda bertanggung jawab untuk memberikan pengalaman yang sesuai dengan usia menggunakan sinyal ini.

Kolom respons Nilai Deskripsi
userStatus TERVERIFIKASI Google memverifikasi usia pengguna menggunakan metode yang wajar secara komersial seperti tanda pengenal yang dikeluarkan pemerintah, kartu kredit, atau estimasi usia wajah. Jika userStatus adalah VERIFIED, Anda dapat mengabaikan kolom lainnya.

Gunakan ageLower dan ageUpper untuk menentukan rentang usia pengguna.
DEKLARASI Usia pengguna dinyatakan oleh pengguna, orang tua, atau wali sahnya.

Gunakan ageLower dan ageUpper untuk menentukan rentang usia pengguna.
DIAWASI Pengguna memiliki Akun Google yang diawasi dan dikelola oleh orang tua yang menetapkan usianya.

Gunakan ageLower dan ageUpper untuk menentukan rentang usia pengguna.

Gunakan mostRecentApprovalDate untuk menentukan perubahan signifikan terakhir yang disetujui.
SUPERVISED_APPROVAL_PENDING Pengguna memiliki Akun Google yang diawasi, dan orang tua pengawasnya belum menyetujui satu atau beberapa perubahan signifikan yang tertunda.

Gunakan ageLower dan ageUpper untuk menentukan rentang usia pengguna.

Gunakan mostRecentApprovalDate untuk menentukan perubahan signifikan terakhir yang disetujui.
SUPERVISED_APPROVAL_DENIED Pengguna memiliki Akun Google yang diawasi, dan orang tua pengawasnya menolak menyetujui satu atau beberapa perubahan signifikan.

Gunakan ageLower dan ageUpper untuk menentukan rentang usia pengguna.

Gunakan mostRecentApprovalDate untuk menentukan perubahan signifikan terakhir yang disetujui.
TIDAK DIKETAHUI Usia pengguna tidak diketahui dan pengguna berada di wilayah atau negara yang relevan.

Hanya berlaku untuk negara bagian AS: Untuk mendapatkan sinyal usia dari Google Play, minta pengguna membuka Play Store untuk menyelesaikan status mereka.
null Pengguna tidak berada di wilayah dan negara yang relevan.

Atau pengguna tidak membagikan usianya ke aplikasi.
ageLower 0 hingga 18 Batas bawah (inklusif) rentang usia pengguna yang diawasi.

Gunakan ageLower dan ageUpper untuk menentukan rentang usia pengguna.
null
userStatus tidak diketahui atau null.
ageUpper 2 hingga 18 Batas atas (inklusif) rentang usia pengguna yang diawasi.

Gunakan ageLower dan ageUpper untuk menentukan rentang usia pengguna.
null Baik userStatus diawasi dan usia yang dinyatakan orang tua pengguna adalah di atas 18 tahun.

Atau userStatus tidak diketahui atau null.
mostRecentApprovalDate Stempel tanggal Tanggal effective from perubahan signifikan terbaru yang disetujui. Saat aplikasi diinstal, tanggal perubahan signifikan terbaru sebelum penginstalan digunakan.
null Baik userStatus diawasi dan tidak ada perubahan signifikan yang dikirimkan.

Atau userStatus diverifikasi, tidak diketahui, atau null.
installID ID alfanumerik yang dibuat Play. ID yang ditetapkan ke penginstalan pengguna yang diawasi oleh Google Play, yang digunakan untuk tujuan memberi tahu Anda tentang pencabutan persetujuan aplikasi. Tinjau dokumentasi untuk persetujuan aplikasi yang dicabut.
null userStatus diverifikasi, tidak diketahui, atau null.

Contoh respons untuk pengguna di Brasil

Di Brasil, userStatus hanya dapat berupa DECLARED, UNKNOWN, atau null.

Untuk pengguna yang menyatakan usianya dan membagikannya ke aplikasi, Anda akan menerima hal berikut:

  • userStatus akan menjadi AgeSignalsVerificationStatus.DECLARED.
  • ageLower akan berupa angka (misalnya, 13).
  • ageUpper akan berupa angka atau null (misalnya, 15).
  • Kolom respons lainnya adalah null.

Untuk pengguna yang usianya tidak diketahui, Anda akan menerima hal berikut:

  • userStatus akan menjadi AgeSignalsVerificationStatus.UNKNOWN.
  • Kolom respons lainnya adalah null.

Untuk pengguna yang usianya tidak dibagikan ke aplikasi, Anda akan menerima hal berikut:

  • userStatus akan menjadi null.
  • Kolom respons lainnya adalah null.

Status pengguna dapat berubah menjadi DECLARED setelah usia pengguna tersedia untuk dibagikan.

Contoh respons untuk pengguna di negara bagian AS

Di negara bagian AS yang berlaku, userStatus dapat berupa VERIFIED, SUPERVISED, SUPERVISED_APPROVAL_PENDING, SUPERVISED_APPROVAL_DENIED, UNKNOWN, atau null.

Untuk pengguna terverifikasi, Anda akan menerima hal berikut:

  • userStatus akan menjadi AgeSignalsVerificationStatus.VERIFIED.
  • ageLower akan berupa angka (misalnya, 18).
  • ageUpper akan berupa angka atau null (misalnya, null).
  • Kolom respons lainnya adalah null.

Untuk pengguna yang diawasi, Anda akan menerima hal berikut:

  • userStatus akan menjadi AgeSignalsVerificationStatus.SUPERVISED.
  • ageLower akan berupa angka (misalnya, 13).
  • ageUpper akan berupa angka atau null (misalnya, 15).
  • mostRecentApprovalDate akan menjadi objek tanggal Java (misalnya, 2026-01-01) atau null (jika tidak ada perubahan signifikan yang disetujui).
  • installID akan berupa ID alfanumerik yang dibuat Play (misalnya, 550e8400-e29b-41d4-a716-446655441111).

Untuk pengguna yang diawasi dengan persetujuan perubahan signifikan yang tertunda, Anda akan menerima pesan berikut:

  • userStatus akan menjadi AgeSignalsVerificationStatus.SUPERVISED_APPROVAL_PENDING.
  • ageLower akan berupa angka (misalnya, 13).
  • ageUpper akan berupa angka atau null (misalnya, 15).
  • mostRecentApprovalDate akan menjadi objek tanggal Java (misalnya, 2026-01-01) atau null (jika tidak ada perubahan signifikan yang disetujui).
  • installID akan berupa ID alfanumerik yang dibuat Play (misalnya, 550e8400-e29b-41d4-a716-446655441111).

Menangani kode error API

Jika aplikasi Anda membuat permintaan Play Age Signals API dan panggilan gagal, aplikasi Anda akan menerima kode error. Error ini dapat terjadi karena berbagai alasan, seperti aplikasi Play Store yang sudah tidak update.

Strategi percobaan ulang

Dalam situasi ketika pengguna sedang berada dalam sesi, sebaiknya implementasikan strategi percobaan ulang dengan jumlah maksimum upaya sebagai kondisi keluar sehingga error tersebut tidak akan mengganggu pengalaman pengguna.

Nilai numerik kode error Kode Error Deskripsi Dapat dicoba lagi
-1 API_NOT_AVAILABLE Play Age Signals API tidak tersedia. Versi aplikasi Play Store yang diinstal di perangkat mungkin sudah lama.

Kemungkinan solusi
  • Minta pengguna untuk mengupdate Play Store.
Ya
-2 PLAY_STORE_NOT_FOUND Tidak ada aplikasi Play Store yang ditemukan di perangkat. Minta pengguna menginstal atau mengaktifkan Play Store. Ya
-3 NETWORK_ERROR Tidak ditemukan jaringan yang tersedia. Minta pengguna untuk memeriksa koneksi internet. Ya
-4 PLAY_SERVICES_NOT_FOUND Layanan Play tidak tersedia atau versinya terlalu lama. Minta pengguna untuk menginstal, mengupdate, atau mengaktifkan Layanan Play. Ya
-5 CANNOT_BIND_TO_SERVICE Gagal melakukan binding ke layanan di Play Store. Hal ini dapat disebabkan oleh adanya versi Play Store lama yang diinstal di perangkat atau memori perangkat kelebihan beban. Minta pengguna mengupdate aplikasi Play Store. Coba lagi dengan backoff eksponensial. Ya
-6 PLAY_STORE_VERSION_OUTDATED Aplikasi Play Store perlu diupdate. Minta pengguna mengupdate aplikasi Play Store. Ya
-7 PLAY_SERVICES_VERSION_OUTDATED Layanan Play perlu diupdate. Minta pengguna untuk mengupdate Layanan Play. Ya
-8 CLIENT_TRANSIENT_ERROR Terjadi error sementara di perangkat klien. Terapkan strategi percobaan ulang dengan jumlah maksimum upaya sebagai kondisi keluar. Jika masalah masih belum teratasi, minta pengguna untuk mencoba lagi nanti. Ya
-9 APP_NOT_OWNED Aplikasi tidak diinstal oleh Google Play. Minta pengguna untuk mendapatkan aplikasi Anda dari Google Play. Tidak
-10 SDK_VERSION_OUTDATED Versi SDK Sinyal Usia Play tidak lagi didukung. Minta pengguna untuk mengupdate aplikasi Anda ke versi yang lebih baru yang menggunakan SDK Sinyal Usia Play versi terbaru. Tidak
-100 INTERNAL_ERROR Error internal tidak diketahui. Terapkan strategi percobaan ulang dengan jumlah maksimum upaya sebagai kondisi keluar. Jika masalah masih belum teratasi, minta pengguna untuk mencoba lagi nanti. Jika gagal secara konsisten, hubungi dukungan Developer Google Play, sertakan Play Age Signals API dalam subjek, dan sertakan detail teknis sebanyak mungkin (seperti laporan bug). Tidak