Utiliser l'API Play Age Signals (bêta)

En utilisant l'API Play Age Signals (bêta), vous acceptez les Conditions d'utilisation et vous vous engagez à respecter l'ensemble du Règlement pour les développeurs Google Play. Pour demander l'état et la tranche d'âge de l'utilisateur, vous appelez l'API depuis votre application au moment de l'exécution. L'API Play Age Signals ne renvoie des données que pour les utilisateurs situés dans les régions où Play est légalement tenu de fournir des données sur les catégories d'âge.

Play renvoie une tranche d'âge en fonction des tranches d'âge définies par la juridiction et les régions applicables. Les tranches d'âge par défaut renvoyées par l'API dans les régions et juridictions concernées sont 0-12, 13-15, 16-17 et 18 ans et plus, mais des tranches d'âge personnalisées peuvent être reçues. Google Play met automatiquement à jour les signaux d'âge mis en cache pour un utilisateur dans un délai de deux à huit semaines après son anniversaire.

Intégrer l'API Play Age Signals à votre application

L'API Play Age Signals est compatible avec les téléphones, les appareils pliables et les tablettes équipés d'Android 6.0 (niveau d'API 23) ou version ultérieure. Pour intégrer l'API Play Age Signals à votre application, ajoutez la dépendance suivante au fichier build.gradle de votre application :

implementation 'com.google.android.play:age-signals:0.0.3'

Demander des signaux d'âge

Voici un exemple de requête de signaux d'âge :

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

(Facultatif) Recevoir des tranches d'âge personnalisées

Les tranches d'âge par défaut renvoyées par l'API dans les régions et juridictions concernées sont 0-12, 13-15, 16-17 et 18 ans et plus.

Vous pouvez également personnaliser les tranches d'âge par défaut en fonction des âges minimaux pour votre application. Pour cela, indiquez ces âges minimaux sur la page Signaux d'âge de la Google Play Console. Les tranches d'âge renvoyées remplaceront la réponse par défaut de l'API. Par exemple, si vous définissez des âges minimaux de 9, 15 et 17 ans, un utilisateur de 14 ans sera classé dans la tranche d'âge 10-15.

Pour personnaliser les tranches d'âge par défaut renvoyées par l'API Age Signals, vous pouvez fournir les âges minimaux pour votre application :

  1. Accédez à la page Signaux d'âge dans la Play Console.
  2. Dans l'onglet Tranches d'âge personnalisées, saisissez jusqu'à trois âges minimaux pour votre application. Les âges minimaux doivent être espacés d'au moins deux ans et ne peuvent être modifiés qu'une fois par an.
  3. Cliquez sur Enregistrer.

Réponses des signaux d'âge

La réponse de l'API Play Age Signals (bêta) inclut les champs et valeurs suivants. Les valeurs sont susceptibles d'être modifiées. Si vous souhaitez obtenir les valeurs les plus récentes, demandez une réponse API lorsque votre application s'ouvre. Il vous incombe de proposer des expériences adaptées à l'âge des utilisateurs à l'aide de ces signaux.

Champ de réponse Valeurs Description
userStatus VÉRIFIÉ Google a vérifié l'âge de l'utilisateur à l'aide d'une méthode commercialement raisonnable, comme une pièce d'identité officielle, une carte de crédit ou l'estimation de l'âge à partir du visage. Si userStatus est défini sur VERIFIED, vous pouvez ignorer les autres champs.

Utilisez ageLower et ageUpper pour déterminer la tranche d'âge de l'utilisateur.
DÉCLARÉ L'âge de l'utilisateur a été déclaré par l'utilisateur, son parent ou son représentant légal.

Utilisez ageLower et ageUpper pour déterminer la tranche d'âge de l'utilisateur.
SUPERVISÉ L'utilisateur dispose d'un compte Google supervisé géré par un parent qui a défini son âge.

Utilisez ageLower et ageUpper pour déterminer la tranche d'âge de l'utilisateur.

Utilisez mostRecentApprovalDate pour déterminer la dernière modification importante qui a été approuvée.
SUPERVISED_APPROVAL_PENDING L'utilisateur possède un compte Google supervisé et son parent superviseur n'a pas encore approuvé une ou plusieurs modifications importantes en attente.

Utilisez ageLower et ageUpper pour déterminer la tranche d'âge de l'utilisateur.

Utilisez mostRecentApprovalDate pour déterminer la dernière modification importante qui a été approuvée.
SUPERVISED_APPROVAL_DENIED L'utilisateur possède un compte Google supervisé, et son parent superviseur a refusé d'approuver une ou plusieurs modifications importantes.

Utilisez ageLower et ageUpper pour déterminer la tranche d'âge de l'utilisateur.

Utilisez mostRecentApprovalDate pour déterminer la dernière modification importante qui a été approuvée.
INCONNUE L'âge de l'utilisateur est inconnu et il se trouve dans une juridiction ou une région concernée.

Applicable uniquement aux États américains : pour obtenir un signal d'âge de Google Play, demandez à l'utilisateur de se rendre sur le Play Store pour résoudre son problème de statut.
null Soit l'utilisateur ne se trouve pas dans les juridictions et régions concernées.

Ou l'utilisateur ne partage pas son âge avec les applications.
ageLower 0 à 18 Limite inférieure (incluse) de la tranche d'âge d'un utilisateur supervisé.

Utilisez ageLower et ageUpper pour déterminer la tranche d'âge de l'utilisateur.
null
userStatus est inconnu ou null.
ageUpper De 2 à 18 Limite supérieure (incluse) de la tranche d'âge d'un utilisateur supervisé.

Utilisez ageLower et ageUpper pour déterminer la tranche d'âge de l'utilisateur.
null Soit le userStatus est supervisé et l'âge attesté par le parent de l'utilisateur est supérieur à 18 ans.

Ou le userStatus est inconnu ou null.
mostRecentApprovalDate Date Date effective from de la dernière modification importante approuvée. Lorsqu'une application est installée, la date de la dernière modification importante avant l'installation est utilisée.
null Soit la fiche userStatus est supervisée et aucune modification importante n'a été envoyée.

Ou userStatus est validé, inconnu ou null.
installID ID alphanumérique généré par Play. ID attribué aux installations des utilisateurs supervisés par Google Play, utilisé pour vous informer de l'annulation de l'approbation d'une application. Consultez la documentation sur les autorisations d'applications révoquées.
null userStatus est validé, inconnu ou null.

Exemples de réponses pour les utilisateurs au Brésil

Au Brésil, userStatus ne peut être que DECLARED, UNKNOWN ou null.

Pour un utilisateur qui a déclaré son âge et l'a partagé avec des applications, vous recevrez les informations suivantes :

  • userStatus serait AgeSignalsVerificationStatus.DECLARED.
  • ageLower doit être un nombre (par exemple, 13).
  • ageUpper doit être un nombre ou null (par exemple, 15).
  • Les autres champs de réponse seraient null.

Pour un utilisateur dont l'âge est inconnu, vous recevrez le message suivant :

  • userStatus serait AgeSignalsVerificationStatus.UNKNOWN.
  • Les autres champs de réponse seraient null.

Pour un utilisateur dont l'âge n'est pas partagé avec les applications, vous recevrez les informations suivantes :

  • userStatus serait null.
  • Les autres champs de réponse seraient null.

L'état de l'utilisateur peut passer à DECLARED une fois que son âge peut être partagé.

Exemples de réponses pour les utilisateurs situés dans les États américains

Dans les États américains concernés, userStatus peut être VERIFIED, SUPERVISED, SUPERVISED_APPROVAL_PENDING, SUPERVISED_APPROVAL_DENIED, UNKNOWN ou null.

Pour un utilisateur validé, vous recevrez les éléments suivants :

  • userStatus serait AgeSignalsVerificationStatus.VERIFIED.
  • ageLower doit être un nombre (par exemple, 18).
  • ageUpper doit être un nombre ou null (par exemple, null).
  • Les autres champs de réponse seraient null.

Pour un utilisateur supervisé, vous recevrez le message suivant :

  • userStatus serait AgeSignalsVerificationStatus.SUPERVISED.
  • ageLower doit être un nombre (par exemple, 13).
  • ageUpper doit être un nombre ou null (par exemple, 15).
  • mostRecentApprovalDate serait un objet de date Java (par exemple, 2026-01-01) ou null (si aucune modification importante n'a été approuvée).
  • installID correspond à un ID alphanumérique généré par Play (par exemple, 550e8400-e29b-41d4-a716-446655441111).

Si l'approbation d'une modification importante est en attente pour un utilisateur supervisé, vous recevrez le message suivant :

  • userStatus serait AgeSignalsVerificationStatus.SUPERVISED_APPROVAL_PENDING.
  • ageLower doit être un nombre (par exemple, 13).
  • ageUpper doit être un nombre ou null (par exemple, 15).
  • mostRecentApprovalDate serait un objet de date Java (par exemple, 2026-01-01) ou null (si aucune modification importante n'a été approuvée).
  • installID correspond à un ID alphanumérique généré par Play (par exemple, 550e8400-e29b-41d4-a716-446655441111).

Gérer les codes d'erreur de l'API

Si votre application envoie une requête à l'API Play Age Signals et que l'appel échoue, elle reçoit un code d'erreur. Ces erreurs peuvent se produire pour diverses raisons, par exemple si l'application Play Store est obsolète.

Stratégie de nouvelle tentative

Lorsqu'une session utilisateur est en cours, nous vous recommandons d'implémenter une stratégie de nouvelle tentative avec un nombre maximal de tentatives comme condition de sortie afin que l'erreur perturbe le moins possible l'expérience utilisateur.

Valeur numérique du code d'erreur Code d'erreur Description Récupérable
-1 API_NOT_AVAILABLE L'API Play Age Signals n'est pas disponible. La version de l'application Play Store installée sur l'appareil est peut-être ancienne.

Résolution possible
  • Demandez à l'utilisateur de mettre à jour le Play Store.
Oui
-2 PLAY_STORE_NOT_FOUND Aucune application Play Store n'a été trouvée sur l'appareil. Demandez à l'utilisateur d'installer ou d'activer le Play Store. Oui
-3 NETWORK_ERROR Aucun réseau n'est disponible. Demandez à l'utilisateur de vérifier la connexion. Oui
-4 PLAY_SERVICES_NOT_FOUND Services Play n'est pas disponible ou sa version est trop ancienne. Demandez à l'utilisateur d'installer ou d'activer les Services Play. Oui
-5 CANNOT_BIND_TO_SERVICE Échec de la liaison avec le service sur le Play Store. Ce problème peut être dû au fait qu'une ancienne version du Play Store est installée sur l'appareil ou que la mémoire de celui-ci est surchargée. Demandez à l'utilisateur de mettre à jour l'application Play Store. Réessayez avec un intervalle exponentiel entre les tentatives. Oui
-6 PLAY_STORE_VERSION_OUTDATED L'application Play Store doit être mise à jour. Demandez à l'utilisateur de mettre à jour l'application Play Store. Oui
-7 PLAY_SERVICES_VERSION_OUTDATED Vous devez mettre à jour les Services Play. Demandez à l'utilisateur de mettre à jour les services Play. Oui
-8 CLIENT_TRANSIENT_ERROR Une erreur temporaire s'est produite sur l'appareil client. Implémentez une stratégie de nouvelle tentative avec un nombre maximal de tentatives comme condition de sortie. Si le problème persiste, demandez à l'utilisateur de réessayer plus tard. Oui
-9 APP_NOT_OWNED L'application n'a pas été installée par Google Play. Demandez à l'utilisateur de télécharger votre application sur Google Play. Non
-10 SDK_VERSION_OUTDATED La version du SDK Play Age Signals n'est plus compatible. Demandez à l'utilisateur de mettre à jour votre application vers une version ultérieure qui utilise une version récente du SDK Play Age Signals. Non
-100 INTERNAL_ERROR Erreur interne inconnue. Implémentez une stratégie de nouvelle tentative avec un nombre maximal de tentatives comme condition de sortie. Si le problème persiste, demandez à l'utilisateur de réessayer plus tard. En cas d'échec systématique, contactez l'assistance Google Play pour les développeurs, incluez l'API Play Age Signals dans l'objet et fournissez autant de détails techniques que possible (par exemple, un rapport de bug). Non