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 yang diwajibkan oleh hukum untuk menyediakan 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 ini dapat berubah berdasarkan persyaratan regional.
Mengintegrasikan Play Age Signals API ke dalam aplikasi Anda
Play Age Signals API didukung di Android 6.0 (level API 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.2'
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 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. } });
Sinyal usia disimpan oleh Google Play di perangkat untuk setiap pengguna. Saat pengguna dengan Akun Google yang diawasi memasuki rentang usia baru, Google Play akan otomatis memperbarui sinyal usia yang di-cache untuk pengguna tersebut dalam waktu 2 hingga 8 minggu setelah ulang tahun pengguna.
(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+. Rentang usia ini dapat berubah di masa mendatang berdasarkan persyaratan lokal.
Atau, untuk menyesuaikan rentang usia sesuai usia minimum aplikasi Anda, Anda dapat memberikan usia minimum ini untuk aplikasi Anda di halaman Sinyal usia di Konsol Google Play. Age Signals API menampilkan rentang usia yang disesuaikan. 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 yang ditampilkan oleh Age Signals API, Anda dapat memberikan usia minimum untuk aplikasi Anda:
- Buka halaman Sinyal usia di Konsol Play.
- 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.
- 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 | Pengguna berusia di atas 18 tahun. 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. |
| 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 | Pengguna berada di yurisdiksi yang berlaku atau wilayah, tetapi tidak diverifikasi atau diawasi. Pengguna ini bisa berusia di atas atau di bawah 18 tahun. Untuk mendapatkan sinyal usia dari Google Play, minta pengguna membuka Play Store untuk menyelesaikan status mereka. | |
null |
Semua pengguna lain akan menampilkan nilai ini. Jika userStatus adalah null, Anda dapat mengabaikan kolom lainnya. |
|
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 kosong. |
|
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 diverifikasi, tidak diketahui, atau kosong. |
|
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.
Or userStatus diverifikasi, tidak diketahui, atau kosong. |
|
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 kosong. |
Contoh respons
Untuk pengguna terverifikasi, Anda akan menerima hal berikut:
userStatusakan menjadiAgeSignalsVerificationStatus.VERIFIED.- Kolom respons lainnya akan kosong.
Untuk pengguna yang diawasi, Anda akan menerima hal berikut:
userStatusakan menjadiAgeSignalsVerificationStatus.SUPERVISED.ageLowerakan berupa angka (misalnya, 13).ageUpperakan berupa angka (misalnya, 15).mostRecentApprovalDateakan menjadi objek tanggal Java (misalnya,2026-01-01) atau kosong (jika tidak ada perubahan signifikan yang disetujui).installIDakan menjadi 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:
userStatusakan menjadiAgeSignalsVerificationStatus.SUPERVISED_APPROVAL_PENDING.ageLowerakan berupa angka (misalnya, 13).ageUpperakan berupa angka (misalnya, 15).mostRecentApprovalDateakan menjadi objek tanggal Java (mis.2026-01-01) atau kosong (jika tidak ada perubahan signifikan yang disetujui).installIDakan menjadi 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
|
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 |
| -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 |