Dengan menggunakan Play Age Signals API (beta), Anda menyetujui persyaratan layanan dan 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 rentang 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 mengupdate 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 (level API 23) dan yang lebih baru. 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 cara membuat 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.
- 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 bisa diubah sekali setahun.
- Klik Simpan.
Rentang usia yang ditampilkan akan mengganti respons API default. Contoh:
Jika Anda menetapkan satu usia minimum (15) di Konsol Google Play:
- Pengguna berusia 0 hingga 14 tahun akan menampilkan
ageLower = 0danageUpper = 14. - Pengguna berusia 15 tahun ke atas akan menampilkan
ageLower = 15.
- Pengguna berusia 0 hingga 14 tahun akan menampilkan
Jika Anda menetapkan dua usia minimum (13 dan 17):
- Pengguna berusia 0 hingga 12 tahun akan menampilkan
ageLower = 0danageUpper = 12. - Pengguna berusia 13 hingga 16 tahun akan menampilkan
ageLower = 13danageUpper = 16. - Pengguna berusia 17 tahun ke atas akan menampilkan
ageLower = 17.
- Pengguna berusia 0 hingga 12 tahun akan menampilkan
Jika Anda menetapkan tiga usia minimum (11, 13, dan 15):
- Pengguna berusia 0 hingga 10 tahun akan menampilkan
ageLower = 0danageUpper = 10. - Pengguna berusia 11 atau 12 tahun akan menampilkan
ageLower = 11danageUpper = 12. - Pengguna berusia 13 atau 14 tahun akan menampilkan
ageLower = 13danageUpper = 14. - Pengguna berusia 15 tahun ke atas akan menampilkan
ageLower = 15.
- Pengguna berusia 0 hingga 10 tahun akan menampilkan
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 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.
|
| DECLARED | Usia pengguna dinyatakan oleh pengguna, orang tua, atau wali hukumnya.
Gunakan ageLower dan ageUpper untuk menentukan rentang usia pengguna. |
|
| SUPERVISED | 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 yang mengawasinya 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 yang mengawasinya 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 hukum atau wilayah yang berlaku.
Hanya berlaku untuk negara bagian AS: Untuk mendapatkan sinyal usia dari Google Play, minta pengguna untuk membuka Play Store guna menyelesaikan statusnya. |
|
null |
Baik pengguna tidak berada di wilayah hukum dan wilayah yang berlaku.
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 dikonfirmasi orang tua pengguna berusia 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 memberi tahu Anda tentang persetujuan aplikasi yang dicabut. 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 akan berupa
null.
Untuk pengguna yang usianya tidak diketahui, Anda akan menerima hal berikut:
userStatusakan menjadiAgeSignalsVerificationStatus.UNKNOWN.- Kolom respons lainnya akan berupa
null.
Untuk pengguna yang usianya tidak dibagikan ke aplikasi, Anda akan menerima hal berikut:
userStatusakan berupanull.- Kolom respons lainnya akan berupa
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 yang terverifikasi, Anda akan menerima hal berikut:
userStatusakan menjadiAgeSignalsVerificationStatus.VERIFIED.ageLowerakan berupa angka (misalnya, 18).ageUpperakan berupa angka ataunull(misalnya,null).- Kolom respons lainnya akan berupa
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 berupa 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 tertunda, Anda akan menerima hal berikut:
userStatusakan menjadiAgeSignalsVerificationStatus.SUPERVISED_APPROVAL_PENDING.ageLowerakan berupa angka (misalnya, 13).ageUpperakan berupa angka ataunull(misalnya, 15).mostRecentApprovalDateakan berupa 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 Google Play Store yang sudah tidak berlaku.
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 Google Play Store yang diinstal di perangkat mungkin sudah lama. Kemungkinan resolusi
|
Ya |
| -2 | PLAY_STORE_NOT_FOUND | Tidak ada aplikasi Google Play Store yang ditemukan di perangkat. Minta pengguna untuk menginstal atau mengaktifkan Google 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 Google Play Store. Hal ini dapat disebabkan oleh adanya versi Google Play Store lama yang diinstal di perangkat atau memori perangkat kelebihan beban. Minta pengguna mengupdate aplikasi Google Play Store. Coba lagi dengan backoff eksponensial. | Ya |
| -6 | PLAY_STORE_VERSION_OUTDATED | Aplikasi Play Store perlu diupdate. Minta pengguna untuk mengupdate aplikasi Google 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. Implementasikan 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 Play Age Signals SDK tidak lagi didukung. Minta pengguna untuk mengupdate aplikasi Anda ke versi yang lebih baru yang menggunakan versi terbaru Play Age Signals SDK. | Tidak |
| -100 | INTERNAL_ERROR | Error internal tidak diketahui. Implementasikan strategi percobaan ulang dengan jumlah maksimum upaya sebagai kondisi keluar. Jika masalah masih belum teratasi, minta pengguna untuk mencoba lagi nanti. Jika terus gagal, hubungi dukungan Developer Google Play, sertakan Play Age Signals API di subjek, dan sertakan detail teknis sebanyak mungkin (seperti laporan bug). | Tidak |