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 etárias 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 duas a oito semanas após o aniversário dele.
Integrar a API Play Age Signals ao app
A API Play Age Signals é compatível com smartphones, dispositivos 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 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
Veja 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.
Se quiser personalizar as faixas etárias padrão de acordo com as idades mínimas do seu app, informe essas idades na página Indicadores de idade do Google Play Console. As faixas etárias retornadas vão substituir a resposta padrão da API. Por exemplo, se você inserir idades mínimas de 9, 15 e 17 anos, um usuário de 14 anos vai se enquadrar na faixa etária de 10 a 15 anos.
Para personalizar as faixas etárias padrão retornadas pela API Age Signals, você pode informar as idades mínimas do seu app:
- Acesse a página Indicadores de idade no Play Console.
- Na guia Faixas etárias personalizadas, insira até três idades mínimas para seu app. Elas precisam ter uma diferença de pelo menos 2 anos e podem ser alteradas uma vez por ano.
- Clique em Salvar.
Respostas de indicadores de idade
A resposta da API Play Age Signals (Beta) inclui os seguintes campos e valores. 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 de idade facial. Se userStatus for VERIFIED, ignore os outros campos.
Use ageLower e ageUpper para determinar a faixa etária do usuário.
|
| DECLARED | A idade do usuário foi declarada por ele, pelo responsável ou pelo tutor legal.
Use ageLower e ageUpper para determinar a faixa etária do usuário. |
|
| SUPERVISED | 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 da Google Play, peça ao usuário para acessar a Play Store e resolver o status dele. |
|
null |
O usuário não está nas 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 declarada do familiar responsável é maior de 18 anos.
ou o userStatus é desconhecido ou null. |
|
mostRecentApprovalDate |
Carimbo de data | A data 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 revogação da aprovação de apps. Leia a documentação sobre aprovações de apps revogadas. |
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ê receberia o seguinte:
userStatusseriaAgeSignalsVerificationStatus.DECLARED.ageLowerseria um número (por exemplo, 13).ageUpperseria um número ounull(por exemplo, 15).- Outros campos de resposta seriam
null.
Para um usuário com idade desconhecida, você receberia o seguinte:
userStatusseriaAgeSignalsVerificationStatus.UNKNOWN.- Outros campos de resposta seriam
null.
Para um usuário cuja idade não é compartilhada com apps, você receberia o seguinte:
userStatusserianull.- Outros campos de resposta seriam
null.
O status do usuário pode mudar para DECLARED quando a idade dele estiver disponível para compartilhamento.
Exemplos de respostas para usuários nos 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ê receberia o seguinte:
userStatusseriaAgeSignalsVerificationStatus.VERIFIED.ageLowerseria um número (por exemplo, 18).ageUpperseria um número ounull(por exemplo,null).- Outros campos de resposta seriam
null.
Para um usuário supervisionado, você receberia o seguinte:
userStatusseriaAgeSignalsVerificationStatus.SUPERVISED.ageLowerseria um número (por exemplo, 13).ageUpperseria um número ounull(por exemplo, 15).mostRecentApprovalDateseria um objeto de data Java (por exemplo,2026-01-01) ounull(se nenhuma mudança significativa tiver sido aprovada).installIDseria 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ê vai receber o seguinte:
userStatusseriaAgeSignalsVerificationStatus.SUPERVISED_APPROVAL_PENDING.ageLowerseria um número (por exemplo, 13).ageUpperseria um número ounull(por exemplo, 15).mostRecentApprovalDateseria um objeto de data Java (por exemplo,2026-01-01) ounull(se nenhuma mudança significativa tiver sido aprovada).installIDseria 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 da Google Play Store estar desatualizado.
Estratégia de repetição
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.
| Valor numérico do código de erro | Código de erro | Descrição | Retryable |
|---|---|---|---|
| -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 solução
|
Sim |
| -2 | PLAY_STORE_NOT_FOUND | Nenhum app da 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 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 de novo 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 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 com um número máximo de tentativas como uma condição de saída. Se o problema persistir, peça para o usuário tentar de novo mais tarde. | Sim |
| -9 | APP_NOT_OWNED | O app não foi instalado pelo Google Play. Peça para o usuário baixar seu app no Google Play. | Não |
| -10 | SDK_VERSION_OUTDATED | A versão do SDK de indicadores de idade do Google Play não é mais compatível. Peça ao usuário para atualizar o app para uma versão mais recente que use uma versão recente do SDK do Play Age Signals. | Não |
| -100 | INTERNAL_ERROR | Erro interno desconhecido. Implemente uma estratégia com um número máximo de tentativas como uma condição de saída. Se o problema persistir, peça para o usuário tentar de novo mais tarde. Se a falha for consistente, entre em contato com o suporte para desenvolvedores do Google Play, inclua a API Play Age Signals no assunto e forneça o máximo de detalhes técnicos possível (como um relatório de bug). | Não |