Utilizzando l'API Play Age Signals (beta), accetti i Termini di servizio e ti impegni a rispettare tutte le Norme per gli sviluppatori di Google Play. Per richiedere lo stato e la fascia d'età dell'utente, chiami l'API dalla tua app in fase di runtime. L'API Play Age Signals restituisce dati solo per gli utenti che si trovano in regioni in cui Play è tenuto per legge a fornire dati sulle categorie di età.
Play restituisce una fascia d'età in base alle fasce d'età definite dalle giurisdizioni e dalle regioni applicabili. Le età predefinite che l'API restituisce nelle giurisdizioni e nelle regioni applicabili sono 0-12, 13-15, 16-17 e 18+, ma potrebbero essere ricevute fasce d'età personalizzate. Google Play aggiorna automaticamente gli indicatori dell'età memorizzati nella cache per un utente entro 2-8 settimane dopo il suo compleanno.
Integra l'API Play Age Signals nella tua app
L'API Play Age Signals è supportata su smartphone, pieghevoli e tablet con
Android 6.0 (livello API 23) e versioni successive. Per integrare l'API Play Age Signals
nella tua app, aggiungi la seguente dipendenza al file build.gradle dell'app:
implementation 'com.google.android.play:age-signals:0.0.3'
Richiedi indicatori dell'età
Ecco un esempio di come effettuare una richiesta di indicatori dell'età:
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. } });
(Facoltativo) Ricevi fasce d'età personalizzate
Le fasce d'età predefinite che l'API restituisce nelle giurisdizioni e nelle regioni applicabili sono 0-12, 13-15, 16-17 e 18+.
In alternativa, per personalizzare le fasce d'età predefinite in base alle età minime della tua app, puoi indicarle nella pagina Indicatori dell'età di Google Play Console. Le fasce d'età restituite ignorano la risposta API predefinita. Ad esempio, se indichi età minime di 9, 15 e 17 anni, un utente di 14 anni rientrerà nella fascia di età 10-15 anni.
Per personalizzare le fasce d'età predefinite restituite dall'API Age Signals, puoi fornire le età minime per la tua app:
- Vai alla pagina Indicatori dell'età in Play Console.
- Nella scheda Fasce d'età personalizzate, inserisci fino a tre età minime per la tua app. Le età minime devono essere separate da almeno 2 anni e possono essere modificate una volta all'anno.
- Fai clic su Salva.
Risposte dell'API Age Signals
La risposta dell'API Play Age Signals (beta) include i seguenti campi e valori. I valori sono soggetti a modifica. Se vuoi i valori più recenti, richiedi una risposta dell'API all'apertura dell'app. È tua responsabilità fornire esperienze adatte all'età utilizzando questi indicatori.
| Campo di risposta | Valori | Descrizione |
|---|---|---|
userStatus |
VERIFICATO | Google ha verificato l'età dell'utente utilizzando un metodo commercialmente ragionevole, ad esempio un documento di identità ufficiale, una carta di credito o la stima dell'età dal volto. Se userStatus è VERIFIED, puoi ignorare gli altri campi.
Utilizza ageLower e ageUpper per determinare la fascia d'età dell'utente.
|
| DICHIARATO | L'età dell'utente è stata dichiarata dall'utente, dal suo genitore o tutore legale.
Utilizza ageLower e ageUpper per determinare la fascia d'età dell'utente. |
|
| SUPERVISED | L'utente ha un Account Google supervisionato gestito da un genitore che ne imposta l'età.
Utilizza ageLower e ageUpper per determinare la fascia d'età dell'utente.
Utilizza mostRecentApprovalDate per determinare l'ultima modifica significativa approvata. |
|
| SUPERVISED_APPROVAL_PENDING | L'utente ha un Account Google supervisionato e il genitore supervisore non ha ancora approvato una o più modifiche significative in attesa.
Utilizza ageLower e ageUpper per determinare la fascia d'età dell'utente.
Utilizza mostRecentApprovalDate per determinare l'ultima modifica significativa approvata. |
|
| SUPERVISED_APPROVAL_DENIED | L'utente ha un Account Google supervisionato e il genitore supervisore ha negato l'approvazione per una o più modifiche significative.
Utilizza ageLower e ageUpper per determinare la fascia d'età dell'utente.
Utilizza mostRecentApprovalDate per determinare l'ultima modifica significativa approvata. |
|
| SCONOSCIUTO | L'età dell'utente è sconosciuta e l'utente si trova in una giurisdizione o regione applicabile. Applicabile solo agli stati degli Stati Uniti: per ottenere un indicatore dell'età da Google Play, chiedi all'utente di visitare il Play Store per risolvere il suo stato. |
|
null |
Tutti gli altri utenti restituiscono questo valore. Se userStatus è null, puoi ignorare gli altri campi. |
|
ageLower |
0 to 18 | Il limite inferiore (incluso) della fascia d'età di un utente supervisionato.
Utilizza ageLower e ageUpper per determinare la fascia d'età dell'utente. |
null |
userStatus è sconosciuto o null. |
|
ageUpper |
2 to 18 | Il limite superiore (incluso) della fascia d'età di un utente supervisionato.
Utilizza ageLower e ageUpper per determinare la fascia d'età dell'utente. |
null |
userStatus è supervisionato e l'età attestata dal genitore dell'utente è maggiore di 18 anni
oppure userStatus è sconosciuto o null. |
|
mostRecentApprovalDate |
Datestamp | La data effective from della modifica significativa più recente approvata. Quando viene installata un'app, viene utilizzata la data dell'ultima modifica significativa precedente all'installazione. |
null |
userStatus è supervisionato e non è stata inviata alcuna modifica significativa
oppure userStatus è verificato, sconosciuto o null. |
|
installID |
ID alfanumerico generato da Google Play | Un ID assegnato alle installazioni degli utenti supervisionati da Google Play, utilizzato per comunicarti l'approvazione revocata dell'app. Consulta la documentazione relativa alle approvazioni delle app revocate. |
null |
userStatus è verificato, sconosciuto o null. |
Risposte di esempio per gli utenti in Brasile
In Brasile, userStatus può essere solo DECLARED e
UNKNOWN.
Per un utente che ha dichiarato la propria età, riceverai quanto segue:
userStatussarebbeAgeSignalsVerificationStatus.DECLARED.ageLowersarebbe un numero (ad esempio 13).ageUppersarebbe un numero onull(ad esempio, 15).- Gli altri campi di risposta sarebbero
null.
Per un utente di cui non è nota l'età, riceverai quanto segue:
userStatussarebbeAgeSignalsVerificationStatus.UNKNOWN.- Gli altri campi di risposta sarebbero
null.
Lo stato dell'utente potrebbe cambiare da UNKNOWN a DECLARED
una volta che l'età dell'utente è disponibile per la condivisione.
Esempi di risposte per gli utenti negli stati degli Stati Uniti
Negli stati degli Stati Uniti applicabili, userStatus può essere VERIFIED,
SUPERVISED, SUPERVISED_APPROVAL_PENDING,
SUPERVISED_APPROVAL_DENIED, UNKNOWN o
null.
Per un utente verificato, riceverai quanto segue:
userStatussarebbeAgeSignalsVerificationStatus.VERIFIED.ageLowersarebbe un numero (ad esempio, 18).ageUppersarebbe un numero onull(ad esempio,null).- Gli altri campi di risposta sarebbero
null.
Per un utente supervisionato, riceverai quanto segue:
userStatussarebbeAgeSignalsVerificationStatus.SUPERVISED.ageLowersarebbe un numero (ad esempio 13).ageUppersarebbe un numero onull(ad esempio, 15).mostRecentApprovalDatesarebbe un oggetto data Java (ad esempio,2026-01-01) onull(se non è stata approvata alcuna modifica significativa).installIDsarebbe un ID alfanumerico generato da Google Play (ad esempio,550e8400-e29b-41d4-a716-446655441111).
Per un utente supervisionato con un'approvazione di modifica significativa in attesa, riceverai quanto segue:
userStatussarebbeAgeSignalsVerificationStatus.SUPERVISED_APPROVAL_PENDING.ageLowersarebbe un numero (ad esempio 13).ageUppersarebbe un numero onull(ad esempio, 15).mostRecentApprovalDatesarebbe un oggetto data Java (ad esempio,2026-01-01) onull(se non è stata approvata alcuna modifica significativa).installIDsarebbe un ID alfanumerico generato da Google Play (ad esempio,550e8400-e29b-41d4-a716-446655441111).
Gestisci i codici di errore dell'API
Se la tua app effettua una richiesta API Play Age Signals e la chiamata non va a buon fine, l'app riceve un codice di errore. Questi errori possono verificarsi per vari motivi, ad esempio perché l'app Play Store è obsoleta.
Strategia di ripetizione dei tentativi
Nelle situazioni in cui l'utente è in sessione, ti consigliamo di implementare una strategia di ripetizione dei tentativi con un numero massimo di tentativi come condizione di uscita, in modo che l'errore interrompa l'esperienza utente il meno possibile.
| Valore numerico del codice di errore | Codice di errore | Descrizione | Ripetibile |
|---|---|---|---|
| -1 | API_NOT_AVAILABLE | L'API Play Age Signals non è disponibile. La versione dell'app Play Store installata sul dispositivo potrebbe essere precedente. Possibile soluzione
|
Sì |
| -2 | PLAY_STORE_NOT_FOUND | Non è stata trovata alcuna app Play Store sul dispositivo. Chiedi all'utente di installare o attivare l'app Play Store. | Sì |
| -3 | NETWORK_ERROR | Nessuna rete disponibile trovata. Chiedi all'utente di verificare la presenza di una connessione. | Sì |
| -4 | PLAY_SERVICES_NOT_FOUND | Play Services non è disponibile o la sua versione è troppo vecchia. Chiedi all'utente di installare, aggiornare o attivare Play Services. | Sì |
| -5 | CANNOT_BIND_TO_SERVICE | Il binding al servizio nel Play Store non è riuscito. Ciò può essere dovuto a una vecchia versione del Play Store installata sul dispositivo o alla memoria del dispositivo sovraccarica. Chiedi all'utente di aggiornare l'app Play Store. Riprova con un backoff esponenziale. | Sì |
| -6 | PLAY_STORE_VERSION_OUTDATED | L'app Play Store deve essere aggiornata. Chiedi all'utente di aggiornare l'app Play Store. | Sì |
| -7 | PLAY_SERVICES_VERSION_OUTDATED | È necessario aggiornare Play Services. Chiedi all'utente di aggiornare Play Services. | Sì |
| -8 | CLIENT_TRANSIENT_ERROR | Si è verificato un errore temporaneo nel dispositivo client. Implementa una strategia di ripetizione dei tentativi con un numero massimo di tentativi come condizione di uscita. Se il problema persiste, chiedi all'utente di riprovare più tardi. | Sì |
| -9 | APP_NOT_OWNED | L'app non è stata installata da Google Play. Chiedi all'utente di scaricare la tua app da Google Play. | No |
| -10 | SDK_VERSION_OUTDATED | La versione dell'SDK Play Age Signals non è più supportata. Chiedi all'utente di aggiornare la tua app a una versione successiva che utilizzi una versione recente dell'SDK Play Age Signals. | No |
| -100 | INTERNAL_ERROR | Errore interno sconosciuto. Implementa una strategia di ripetizione dei tentativi con un numero massimo di tentativi come condizione di uscita. Se il problema persiste, chiedi all'utente di riprovare più tardi. Se l'operazione continua a non andare a buon fine, contatta l'assistenza per gli sviluppatori Google Play, includi API Play Age Signals nell'oggetto e fornisci quanti più dettagli tecnici possibili (ad esempio una segnalazione di bug). | No |