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:
- 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 | 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:
userStatusakan menjadiAgeSignalsVerificationStatus.DECLARED.ageLowerakan berupa angka (misalnya, 13).ageUpperakan berupa angka ataunull(misalnya, 15).- Kolom respons lainnya adalah
null.
Untuk pengguna yang usianya tidak diketahui, Anda akan menerima hal berikut:
userStatusakan menjadiAgeSignalsVerificationStatus.UNKNOWN.- Kolom respons lainnya adalah
null.
Untuk pengguna yang usianya tidak dibagikan ke aplikasi, Anda akan menerima hal berikut:
userStatusakan menjadinull.- 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:
userStatusakan menjadiAgeSignalsVerificationStatus.VERIFIED.ageLowerakan berupa angka (misalnya, 18).ageUpperakan berupa angka ataunull(misalnya,null).- Kolom respons lainnya adalah
null.
Untuk pengguna yang diawasi, Anda akan menerima hal berikut:
userStatusakan menjadiAgeSignalsVerificationStatus.SUPERVISED.ageLowerakan berupa angka (misalnya, 13).ageUpperakan berupa angka ataunull(misalnya, 15).mostRecentApprovalDateakan menjadi objek tanggal Java (misalnya,2026-01-01) ataunull(jika tidak ada perubahan signifikan yang disetujui).installIDakan 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:
userStatusakan menjadiAgeSignalsVerificationStatus.SUPERVISED_APPROVAL_PENDING.ageLowerakan berupa angka (misalnya, 13).ageUpperakan berupa angka ataunull(misalnya, 15).mostRecentApprovalDateakan menjadi objek tanggal Java (misalnya,2026-01-01) ataunull(jika tidak ada perubahan signifikan yang disetujui).installIDakan 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
|
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 |