Ao usar a API Play Age Signals (Beta), você concorda com os Termos de Serviço e com todas as políticas para desenvolvedores do Google Play. Para solicitar o status e a faixa etária do usuário, chame a API do seu app durante a execução. A API Play Age Signals só retorna dados de usuários em regiões onde a legislação exige que o Google Play forneça dados de faixa etária.
O Google Play retorna uma faixa etária com base nas faixas definidas pela jurisdição e regiões aplicáveis. As idades padrão que a API retorna em jurisdições e regiões aplicáveis são 0 a 12, 13 a 15, 16 a 17 e 18 anos ou mais, mas faixas etárias personalizadas podem ser recebidas. O Google Play atualiza automaticamente os indicadores de idade armazenados em cache de um usuário de 2 a 8 semanas após o aniversário dele.
Integrar a API Play Age Signals ao app
A API Play Age Signals é compatível com smartphones, dobráveis e tablets que executam o Android 6.0 (nível 23 da API) e versões mais recentes. Para integrar a API Play Age Signals ao seu app, adicione a seguinte dependência ao arquivo build.gradle do app:
implementation 'com.google.android.play:age-signals:0.0.3'
Solicitar indicadores de idade
Confira um exemplo de como fazer uma solicitação de indicadores de idade:
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. } });
(Opcional) Receber faixas etárias personalizadas
As faixas etárias padrão que a API retorna em jurisdições e regiões aplicáveis são 0 a 12, 13 a 15, 16 a 17 e 18 anos ou mais.
Como alternativa, para personalizar as faixas etárias padrão de acordo com as idades mínimas do seu app, você pode informar essas idades mínimas na página Indicadores de idade do Google Play Console.
- Acesse a página "Indicadores de idade" no Play Console.
- Na guia Faixas etárias personalizadas, insira até três idades mínimas para o app. Elas precisam ter uma diferença de pelo menos 2 anos e podem ser alteradas uma vez por ano.
- Clique em Salvar.
As faixas etárias retornadas vão substituir a resposta padrão da API. Exemplo:
Se você definir uma idade mínima (15) no Google Play Console:
- Uma pessoa de 0 a 14 anos vai retornar
ageLower = 0eageUpper = 14. - Uma pessoa de 15 anos ou mais vai retornar
ageLower = 15.
- Uma pessoa de 0 a 14 anos vai retornar
Se você definir duas idades mínimas (13 e 17):
- Uma pessoa de 0 a 12 anos vai retornar
ageLower = 0eageUpper = 12. - Uma pessoa de 13 a 16 anos vai retornar
ageLower = 13eageUpper = 16. - Uma pessoa de 17 anos ou mais vai retornar
ageLower = 17.
- Uma pessoa de 0 a 12 anos vai retornar
Se você definir três idades mínimas (11, 13 e 15):
- Uma pessoa de 0 a 10 anos vai retornar
ageLower = 0eageUpper = 10. - Uma pessoa de 11 ou 12 anos vai retornar
ageLower = 11eageUpper = 12. - Uma pessoa de 13 ou 14 anos vai retornar
ageLower = 13eageUpper = 14. - Uma pessoa de 15 anos ou mais vai retornar
ageLower = 15.
- Uma pessoa de 0 a 10 anos vai retornar
Respostas de indicadores de idade
A resposta da API Play Age Signals (Beta) inclui os campos e valores a seguir. Os valores estão sujeitos a mudanças. Se você quiser os valores mais recentes, solicite uma resposta da API quando o app for aberto. Você é responsável por oferecer experiências adequadas à idade usando esses indicadores.
| Campo de resposta | Valores | Descrição |
|---|---|---|
userStatus |
VERIFICADO | O Google verificou a idade do usuário usando um método comercialmente razoável, como um documento de identidade oficial, um cartão de crédito ou uma estimativa facial da idade. Se userStatus for VERIFIED, você poderá ignorar os outros campos.
Use ageLower e ageUpper para determinar a faixa etária do usuário.
|
| DECLARADO | A idade do usuário foi declarada por ele, pelo familiar responsável ou pelo tutor legal.
Use ageLower e ageUpper para determinar a faixa etária do usuário. |
|
| SUPERVISIONADO | O usuário tem uma Conta do Google supervisionada gerenciada por um familiar responsável que define a idade.
Use ageLower e ageUpper para determinar a faixa etária do usuário.
Use mostRecentApprovalDate para determinar a última mudança significativa aprovada. |
|
| SUPERVISED_APPROVAL_PENDING | O usuário tem uma Conta do Google supervisionada, e o familiar responsável ainda não aprovou uma ou mais mudanças significativas pendentes.
Use ageLower e ageUpper para determinar a faixa etária do usuário.
Use mostRecentApprovalDate para determinar a última mudança significativa aprovada. |
|
| SUPERVISED_APPROVAL_DENIED | O usuário tem uma Conta do Google supervisionada, e o familiar responsável negou a aprovação de uma ou mais mudanças significativas.
Use ageLower e ageUpper para determinar a faixa etária do usuário.
Use mostRecentApprovalDate para determinar a última mudança significativa aprovada. |
|
| DESCONHECIDO | A idade do usuário é desconhecida, e ele está em uma jurisdição ou região aplicável.
Aplicável apenas aos estados dos EUA:para receber um indicador de idade do Google Play, peça ao usuário para acessar a Play Store e resolver o status. |
|
null |
Ou o usuário não está em jurisdições e regiões aplicáveis.
Ou o usuário não compartilha a idade com apps. |
|
ageLower |
0 a 18 | O limite inferior (inclusivo) da faixa etária de um usuário supervisionado.
Use ageLower e ageUpper para determinar a faixa etária do usuário. |
null |
userStatus é desconhecido ou null. |
|
ageUpper |
2 a 18 | O limite superior (inclusivo) da faixa etária de um usuário supervisionado.
Use ageLower e ageUpper para determinar a faixa etária do usuário. |
null |
Ou o userStatus é supervisionado e a idade atestada do familiar responsável é maior que 18.
Ou o userStatus é desconhecido ou null. |
|
mostRecentApprovalDate |
Carimbo de data/hora | A data de effective from da mudança significativa mais recente que foi aprovada. Quando um app é instalado, a data da mudança significativa mais recente antes da instalação é usada. |
null |
Ou o userStatus é supervisionado e nenhuma mudança significativa foi enviada.
Ou userStatus é verificado, desconhecido ou null. |
|
installID |
ID alfanumérico gerado pelo Google Play. | Um ID atribuído a instalações de usuários supervisionados pelo Google Play, usado para notificar você sobre a aprovação revogada do app. Consulte a documentação sobre aprovações revogadas de apps. |
null |
userStatus é verificado, desconhecido ou null. |
Exemplos de respostas para usuários no Brasil
No Brasil, userStatus só pode ser DECLARED, UNKNOWN ou null.
Para um usuário que declarou a idade e a compartilha com apps, você receberá o seguinte:
userStatusseráAgeSignalsVerificationStatus.DECLARED.ageLowerserá um número (por exemplo, 13).ageUpperserá um número ounull(por exemplo, 15).- Outros campos de resposta serão
null.
Para um usuário cuja idade é desconhecida, você receberá o seguinte:
userStatusseráAgeSignalsVerificationStatus.UNKNOWN.- Outros campos de resposta serão
null.
Para um usuário cuja idade não é compartilhada com apps, você receberá o seguinte:
userStatusseránull.- Outros campos de resposta serão
null.
O status do usuário poderá mudar para DECLARED quando a idade dele estiver disponível para compartilhamento.
Exemplos de respostas para usuários em estados dos EUA
Nos estados aplicáveis dos EUA, userStatus pode ser VERIFIED,
SUPERVISED, SUPERVISED_APPROVAL_PENDING,
SUPERVISED_APPROVAL_DENIED, UNKNOWN, ou
null.
Para um usuário verificado, você receberá o seguinte:
userStatusseráAgeSignalsVerificationStatus.VERIFIED.ageLowerserá um número (por exemplo, 18).ageUpperserá um número ounull(por exemplo,null).- Outros campos de resposta serão
null.
Para um usuário supervisionado, você receberá o seguinte:
userStatusseráAgeSignalsVerificationStatus.SUPERVISED.ageLowerserá um número (por exemplo, 13).ageUpperserá um número ounull(por exemplo, 15).mostRecentApprovalDateserá um objeto de data Java (por exemplo,2026-01-01) ounull(se nenhuma mudança significativa tiver sido aprovada).installIDserá um ID alfanumérico gerado pelo Google Play (por exemplo,550e8400-e29b-41d4-a716-446655441111).
Para um usuário supervisionado com uma aprovação de mudança significativa pendente, você receberá o seguinte:
userStatusseráAgeSignalsVerificationStatus.SUPERVISED_APPROVAL_PENDING.ageLowerserá um número (por exemplo, 13).ageUpperserá um número ounull(por exemplo, 15).mostRecentApprovalDateserá um objeto de data Java (por exemplo,2026-01-01) ounull(se nenhuma mudança significativa tiver sido aprovada).installIDserá um ID alfanumérico gerado pelo Google Play (por exemplo,550e8400-e29b-41d4-a716-446655441111).
Processar códigos de erro da API
Se o app fizer uma solicitação de API Play Age Signals e a chamada falhar, ele vai receber um código de erro. Esses erros podem acontecer por vários motivos, como o app Google Play Store estar desatualizado.
Repetir estratégia
Em situações em que o usuário está em sessão, recomendamos implementar uma estratégia de nova tentativa com um número máximo de tentativas como condição de saída para que o erro interfira o mínimo possível na experiência do usuário.
| Valor numérico do código de erro | Código de erro | Descrição | Pode ser repetido |
|---|---|---|---|
| -1 | API_NOT_AVAILABLE | A API Play Age Signals não está disponível. A versão do app Google Play Store instalada no dispositivo pode ser antiga. Possível resolução
|
Sim |
| -2 | PLAY_STORE_NOT_FOUND | Nenhum app Google Play Store foi encontrado no dispositivo. Peça ao usuário para instalar ou ativar a Google Play Store. | Sim |
| -3 | NETWORK_ERROR | Nenhuma rede foi encontrada. Peça para o usuário conferir se há conexão. | Sim |
| -4 | PLAY_SERVICES_NOT_FOUND | O Google Play Services não está disponível ou a versão é muito antiga. Peça ao usuário para instalar, atualizar ou ativar o Google Play Services. | Sim |
| -5 | CANNOT_BIND_TO_SERVICE | Falha ao vincular ao serviço na Google Play Store. Isso pode ocorrer porque uma versão antiga da Google Play Store está instalada no dispositivo ou a memória está sobrecarregada. Peça para o usuário atualizar o app Google Play Store. Tente novamente com uma espera exponencial. | Sim |
| -6 | PLAY_STORE_VERSION_OUTDATED | O app Google Play Store precisa ser atualizado. Peça para o usuário atualizar o app Google Play Store. | Sim |
| -7 | PLAY_SERVICES_VERSION_OUTDATED | O Google Play Services precisa ser atualizado. Peça ao usuário para atualizar o Google Play Services. | Sim |
| -8 | CLIENT_TRANSIENT_ERROR | Ocorreu um erro temporário no dispositivo cliente. Implemente uma estratégia de nova tentativa com um número máximo de tentativas como condição de saída. Se o problema ainda não for resolvido, peça ao usuário para tentar novamente mais tarde. | Sim |
| -9 | APP_NOT_OWNED | O app não foi instalado pelo Google Play. Peça ao usuário para baixar seu app no Google Play. | Não |
| -10 | SDK_VERSION_OUTDATED | A versão do SDK Play Age Signals não tem mais suporte. Peça ao usuário para atualizar o app para uma versão mais recente que use uma versão recente do SDK Play Age Signals. | Não |
| -100 | INTERNAL_ERROR | Erro interno desconhecido. Implemente uma estratégia de nova tentativa com um número máximo de tentativas como condição de saída. Se o problema ainda não for resolvido, peça ao usuário para tentar novamente mais tarde. Se o problema persistir, entre em contato com o suporte para desenvolvedores do Google Play, inclua a API Play Age Signals no assunto e inclua o máximo de detalhes técnicos possível (como um relatório de bugs). | Não |