Usar a API Play Age Signals (Beta)

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 elas podem mudar com base em requisitos regionais.

Integrar a API Play Age Signals ao app

A API Play Age Signals é compatível com 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.2'

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 SUPERVISED, VERIFIED, 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.
          }
        });

Os indicadores de idade são armazenados pelo Google Play no dispositivo para cada usuário. Quando um usuário com uma Conta do Google supervisionada entra em uma nova faixa etária, o Google Play atualiza automaticamente os indicadores de idade armazenados em cache para esse usuário em um período de 2 a 8 semanas após o aniversário dele.

(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. Elas podem mudar no futuro com base nos requisitos locais.

Se quiser personalizar as faixas etárias de acordo com as idades mínimas do seu app, informe essas idades na página Indicadores de idade do Google Play Console. A API Age Signals retorna as faixas etárias personalizadas. Por exemplo, se você inserir 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 retornadas pela API Age Signals, informe as idades mínimas do seu app:

  1. Acesse a página Indicadores de idade no Play Console.
  2. 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.
  3. 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 usuário tem mais de 18 anos. 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.
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 O usuário está em uma jurisdição ou região aplicável, mas não foi verificado ou supervisionado. Esses usuários podem ter mais ou menos de 18 anos. Para receber um indicador de idade do Google Play, peça ao usuário para acessar a Play Store e resolver o status dele.
null Todos os outros usuários retornam esse valor. Se userStatus for null, ignore os outros campos.
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 está vazio.
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 é verificado, desconhecido ou vazio.
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 vazio.
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 vazio.

Exemplos de respostas

Para um usuário verificado, você receberia o seguinte:

  • userStatus seria AgeSignalsVerificationStatus.VERIFIED.
  • Os outros campos de resposta ficariam vazios.

Para um usuário supervisionado, você receberia o seguinte:

  • userStatus seria AgeSignalsVerificationStatus.SUPERVISED.
  • ageLower seria um número (por exemplo, 13).
  • ageUpper seria um número (por exemplo, 15).
  • mostRecentApprovalDate seria um objeto de data Java (por exemplo, 2026-01-01) ou vazio (se nenhuma mudança significativa tiver sido aprovada).
  • installID seria 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ê receberia o seguinte:

  • userStatus seria AgeSignalsVerificationStatus.SUPERVISED_APPROVAL_PENDING.
  • ageLower seria um número (por exemplo, 13).
  • ageUpper seria um número (por exemplo, 15).
  • mostRecentApprovalDate seria um objeto de data Java (por exemplo, 2026-01-01) ou vazio (se nenhuma mudança significativa tiver sido aprovada).
  • installID seria 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 da 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 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 Pode ser repetida
-1 API_NOT_AVAILABLE A API Play Age Signals não está disponível. A versão do app Play Store instalada no dispositivo pode ser antiga.

Possível solução
  • Peça para o usuário atualizar a Play Store.
Sim
-2 PLAY_STORE_NOT_FOUND Nenhum app da Play Store foi encontrado no dispositivo. Peça ao usuário para instalar ou ativar a 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 Play Store está instalada no dispositivo ou a memória está sobrecarregada. Peça para o usuário atualizar o app Play Store. Tente de novo com uma espera exponencial. Sim
-6 PLAY_STORE_VERSION_OUTDATED O app 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
-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 constante, 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