Method: gameStats.batchRecordEvents

Enregistre un lot d'événements de jeu pour un joueur spécifique. Cette méthode permet d'envoyer plusieurs événements dans une même requête.

Requête HTTP

POST https://games.googleapis.com/games/v1/players/{playerId}/gameStats:batchRecordEvents

Paramètres de chemin

Paramètres
playerId

string

Obligatoire. ID du joueur ayant effectué les événements.

Corps de la requête

Le corps de la requête contient des données présentant la structure suivante :

Représentation JSON
{
  "packageName": string,
  "requestTime": string,
  "events": [
    {
      object (PlayerGameEvent)
    }
  ],
}
Champs
packageName

string

Obligatoire. Nom du package de l'application (par exemple, "com.example.game").

requestTime

string (Timestamp format)

Obligatoire. Heure à laquelle ce lot d'événements spécifique a été envoyé par le client.

Utilise la norme RFC 3339, où la sortie générée utilise toujours le format UTC (indiqué par "Z" pour le temps universel coordonné) avec des secondes fractionnaires de 0, 3, 6 ou 9 chiffres décimaux. Des décalages horaires autres que "Z" (UTC) sont également acceptés. Exemples : "2014-10-02T15:01:23Z", "2014-10-02T15:01:23.045123456Z" ou "2014-10-02T15:01:23+05:30".

events[]

object (PlayerGameEvent)

Obligatoire. Liste des événements de jeu du joueur à enregistrer. 30 événements maximum par requête par lot.

Corps de la réponse

Une réponse positive indique que le lot d'événements a été traité.

Si la requête aboutit, le corps de la réponse contient des données qui ont la structure suivante :

Représentation JSON
{
  "failedRequests": {
    integer: {
      object (Status)
    },
    ...
  }
}
Champs
failedRequests

map (key: integer, value: object (Status))

Carte des événements ayant échoué, indexés sur zéro dans BatchRecordEventsRequest.events. Les clés omises indiquent que l'enregistrement a réussi.

Objet contenant une liste de paires "key": value. Exemple : { "name": "wrench", "mass": "1.3kg", "count": "3" }.

Champs d'application des autorisations

Nécessite l'un des niveaux d'accès OAuth suivants :

  • https://www.googleapis.com/auth/games
  • https://www.googleapis.com/auth/games_lite

Pour plus d'informations, consultez la OAuth 2.0 Overview.

PlayerGameEvent

Représentation d'un événement de jeu solo déclenché par un événement de joueur dans un jeu. Il peut s'agir de terminer un niveau, de débloquer un objet ou de terminer un match.

Représentation JSON
{
  "eventId": string,
  "eventName": string,
  "eventProperties": {
    string: {
      object (PropertyValue)
    },
    ...
  },
  "eventTime": string
}
Champs
eventId

string

Obligatoire. UUID unique généré par le client pour cette instance d'événement spécifique. Utilisé pour l'idempotence et la déduplication côté serveur. L'envoi d'un événement avec un eventId déjà enregistré pour le même lecteur sera ignoré.

eventName

string

Obligatoire. Nom de l'événement défini par le client (par exemple, "run_completed" ou "level_up"). Longueur maximale : 100 caractères.

eventProperties

map (key: string, value: object (PropertyValue))

Facultatif. Propriétés clé-valeur fournissant des détails sur l'événement. – Nombre maximal de propriétés : 25. - La longueur maximale de la clé de propriété est de 100 caractères. - Les valeurs de chaîne dans PropertyValue ne doivent pas dépasser 1 024 caractères.

Objet contenant une liste de paires "key": value. Exemple : { "name": "wrench", "mass": "1.3kg", "count": "3" }.

eventTime

string (Timestamp format)

Obligatoire. Heure à laquelle cet événement spécifique a été effectué par le client.

Utilise la norme RFC 3339, où la sortie générée utilise toujours le format UTC (indiqué par "Z" pour le temps universel coordonné) avec des secondes fractionnaires de 0, 3, 6 ou 9 chiffres décimaux. Des décalages horaires autres que "Z" (UTC) sont également acceptés. Exemples : "2014-10-02T15:01:23Z", "2014-10-02T15:01:23.045123456Z" ou "2014-10-02T15:01:23+05:30".

PropertyValue

Wrapper pour la valeur.

Représentation JSON
{

  // The following is a list of mutually exclusive fields. At most one of the
  // fields will be set in a response:
  "intValue": string,
  "doubleValue": number,
  "stringValue": string,
  "boolValue": boolean,
  "durationValue": string
}
Champs
Valeur du scalaire. Vous trouverez ci-dessous la liste des champs mutuellement exclusifs. Au maximum, un seul des champs sera défini dans une réponse :
intValue

string (int64 format)

Valeur entière.

doubleValue

number

Valeur double.

stringValue

string

Valeur de chaîne.

boolValue

boolean

Une valeur booléenne.

durationValue

string (Duration format)

Valeur de durée.

Durée en secondes avec neuf chiffres au maximum après la virgule et se terminant par "s". Exemple : "3.5s"

Fin des champs qui s'excluent mutuellement.

État

Le type Status définit un modèle d'erreur logique adapté aux différents environnements de programmation, y compris les API REST et RPC. Il est utilisé par le protocole gRPC. Chaque message Status contient trois éléments de données : un code d'erreur, un message d'erreur et les détails de l'erreur.

Pour en savoir plus sur ce modèle d'erreur et sur son utilisation, consultez le Guide de conception d'API.

Représentation JSON
{
  "code": integer,
  "message": string,
  "details": [
    {
      "@type": string,
      field1: ...,
      ...
    }
  ]
}
Champs
code

integer

Code d'état, qui doit être une valeur d'énumération de google.rpc.Code.

message

string

Message d'erreur destiné au développeur, qui doit être en anglais. Tout message d'erreur destiné aux utilisateurs doit être localisé et envoyé dans le champ google.rpc.Status.details, ou localisé par le client.

details[]

object

Liste de messages comportant les détails de l'erreur. Il existe un ensemble commun de types de message utilisable par les API.

Objet contenant des champs d'un type arbitraire. Un champ supplémentaire "@type" contient un URI identifiant le type. Exemple : { "id": 1234, "@type": "types.example.com/standard/id" }.