Menggunakan Play Age Signals API (beta)

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.

  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 bisa diubah sekali setahun.
  3. 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 = 0 dan ageUpper = 14.
    • Pengguna berusia 15 tahun ke atas akan menampilkan ageLower = 15.
  • Jika Anda menetapkan dua usia minimum (13 dan 17):

    • Pengguna berusia 0 hingga 12 tahun akan menampilkan ageLower = 0 dan ageUpper = 12.
    • Pengguna berusia 13 hingga 16 tahun akan menampilkan ageLower = 13 dan ageUpper = 16.
    • Pengguna berusia 17 tahun ke atas akan menampilkan ageLower = 17.
  • Jika Anda menetapkan tiga usia minimum (11, 13, dan 15):

    • Pengguna berusia 0 hingga 10 tahun akan menampilkan ageLower = 0 dan ageUpper = 10.
    • Pengguna berusia 11 atau 12 tahun akan menampilkan ageLower = 11 dan ageUpper = 12.
    • Pengguna berusia 13 atau 14 tahun akan menampilkan ageLower = 13 dan ageUpper = 14.
    • Pengguna berusia 15 tahun ke atas akan menampilkan ageLower = 15.

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:

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

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

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

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

  • userStatus akan berupa null.
  • 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:

  • userStatus akan menjadi AgeSignalsVerificationStatus.VERIFIED.
  • ageLower akan berupa angka (misalnya, 18).
  • ageUpper akan berupa angka atau null (misalnya, null).
  • Kolom respons lainnya akan berupa 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 berupa 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 tertunda, Anda akan menerima hal berikut:

  • userStatus akan menjadi AgeSignalsVerificationStatus.SUPERVISED_APPROVAL_PENDING.
  • ageLower akan berupa angka (misalnya, 13).
  • ageUpper akan berupa angka atau null (misalnya, 15).
  • mostRecentApprovalDate akan berupa 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 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
  • Minta pengguna untuk mengupdate Google Play Store.
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