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 toutes les règles pour les développeurs Google Play. Pour demander l'état et la tranche d'âge de l'utilisateur, vous appelez l'API à partir de 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 groupes d'âge définis par la juridiction et les régions concernées. Les âges par défaut renvoyés par l'API dans les juridictions et régions 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) et versions ultérieures. 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 juridictions et régions 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 ce faire, indiquez ces âges minimaux pour votre application sur la page "Signaux d'âge" de la Google Play Console.

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

Les tranches d'âge renvoyées remplaceront la réponse par défaut de l'API. Exemple :

  • Si vous définissez un âge minimal (15 ans) dans la Google Play Console :

    • Pour un utilisateur de 0 à 14 ans, ageLower = 0 et ageUpper = 14 seront renvoyés.
    • Pour un utilisateur de 15 ans et plus, ageLower = 15 sera renvoyé.
  • Si vous définissez deux âges minimaux (13 et 17 ans) :

    • Pour un utilisateur de 0 à 12 ans, ageLower = 0 et ageUpper = 12 seront renvoyés.
    • Pour un utilisateur de 13 à 16 ans, ageLower = 13 et ageUpper = 16 seront renvoyés.
    • Pour un utilisateur de 17 ans et plus, ageLower = 17 sera renvoyé.
  • Si vous définissez trois âges minimaux (11, 13 et 15 ans) :

    • Pour un utilisateur de 0 à 10 ans, ageLower = 0 et ageUpper = 10 seront renvoyés.
    • Pour un utilisateur de 11 ou 12 ans, ageLower = 11 et ageUpper = 12 seront renvoyés.
    • Pour un utilisateur de 13 ou 14 ans, ageLower = 13 et ageUpper = 14 seront renvoyés.
    • Pour un utilisateur de 15 ans et plus, ageLower = 15 sera renvoyé.

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 de changer. Si vous souhaitez obtenir les valeurs les plus récentes, demandez une réponse de l'API lorsque votre application s'ouvre. Vous êtes responsable de la fourniture d'expériences adaptées à l'âge à l'aide de ces signaux.

Champ de réponse Valeurs Description
userStatus VALIDÉ Google a validé l'âge de l'utilisateur à l'aide d'une méthode commercialement raisonnable, telle qu'une pièce d'identité officielle, une carte de crédit ou une estimation de l'âge à partir d'une photo du visage. Si userStatus est 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 possède un compte Google supervisé géré par un parent qui définit 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.
INCONNU L'âge de l'utilisateur est inconnu et l'utilisateur 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 d'accéder au Play Store pour résoudre son état.
null Soit l'utilisateur ne se trouve pas dans une juridiction ou une région concernée.

Soit 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 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 userStatus est supervisé et l'âge attesté par le parent de l'utilisateur est supérieur à 18 ans.

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

Soit userStatus est validé, inconnu ou null.
installID ID alphanumérique généré par Play. ID attribué aux installations d'utilisateurs supervisés par Google Play, utilisé pour vous informer de la révocation de l'approbation d'une application. Consultez la documentation sur la révocation de l'approbation d'une application.
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 le partage avec les applications, vous recevrez les informations suivantes :

  • userStatus sera AgeSignalsVerificationStatus.DECLARED.
  • ageLower sera un nombre (par exemple, 13).
  • ageUpper sera un nombre ou null (par exemple, 15).
  • Les autres champs de réponse seront null.

Pour un utilisateur dont l'âge est inconnu, vous recevrez les informations suivantes :

  • userStatus sera AgeSignalsVerificationStatus.UNKNOWN.
  • Les autres champs de réponse seront null.

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

  • userStatus sera null.
  • Les autres champs de réponse seront null.

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

Exemples de réponses pour les utilisateurs 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 informations suivantes :

  • userStatus sera AgeSignalsVerificationStatus.VERIFIED.
  • ageLower sera un nombre (par exemple, 18).
  • ageUpper sera un nombre ou null (par exemple, null).
  • Les autres champs de réponse seront null.

Pour un utilisateur supervisé, vous recevrez les informations suivantes :

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

Pour un utilisateur supervisé dont l'approbation d'une modification importante est en attente, vous recevrez les informations suivantes :

  • userStatus sera AgeSignalsVerificationStatus.SUPERVISED_APPROVAL_PENDING.
  • ageLower sera un nombre (par exemple, 13).
  • ageUpper sera un nombre ou null (par exemple, 15).
  • mostRecentApprovalDate sera un objet de date Java (par exemple, 2026-01-01) ou null (si aucune modification importante n'a été approuvée).
  • installID sera 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 n'est pas à jour.

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 Nouvelle tentative possible
-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, de mettre à jour 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 délai exponentiel. 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 depuis 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. Si l'échec est 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