Method: gameStats.batchRecordEvents

Enregistre un lot d'événements de jeu de joueur pour un joueur spécifique. Cette méthode permet d'envoyer plusieurs événements dans une seule 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 qui a 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 de 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 par leur index de base zéro dans BatchRecordEventsRequest.events. Les clés omises indiquent un enregistrement réussi.

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

Niveaux d'accès 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 l'événement d'un joueur dans un jeu. Il peut s'agir de terminer un niveau, de déverrouiller un élément ou de terminer une partie.

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 précédemment enregistré pour le même joueur sera ignoré.

eventName

string

Obligatoire : nom de l'événement défini par le client (par exemple, "run_completed", "level_up"). La longueur maximale est fixée à 100 caractères.

eventProperties

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

Facultatif : propriétés clé-valeur fournissant des informations sur l'événement. - Nombre maximal de propriétés : 25. - Longueur maximale de la clé de propriété : 100 caractères. - Longueur maximale des valeurs de chaîne dans PropertyValue : 1 024 caractères.

Objet contenant une liste de "key": value paires. 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
{

  // Union field value can be only one of the following:
  "intValue": string,
  "doubleValue": number,
  "stringValue": string,
  "boolValue": boolean,
  // End of list of possible types for union field value.
}
Champs
Champ d'union value. Valeur du scalaire. value ne peut être qu'un des éléments suivants :
intValue

string (int64 format)

Valeur entière.

doubleValue

number

Valeur double.

stringValue

string

Valeur de chaîne.

boolValue

boolean

Une valeur booléenne.

É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" }.