Method: gameStats.batchRecordEvents

Registra un lote de eventos de juegos de jugadores para un jugador específico. Este método permite enviar varios eventos en una sola solicitud.

Solicitud HTTP

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

Parámetros de ruta

Parámetros
playerId

string

Obligatorio: Es el ID del jugador que realizó los eventos.

Cuerpo de la solicitud

El cuerpo de la solicitud contiene datos con la siguiente estructura:

Representación JSON
{
  "packageName": string,
  "requestTime": string,
  "events": [
    {
      object (PlayerGameEvent)
    }
  ],
}
Campos
packageName

string

Obligatorio: Es el nombre del paquete de la aplicación (p.ej., "com.example.game").

requestTime

string (Timestamp format)

Obligatorio: Es la hora del cliente en la que se envió este lote específico de eventos.

Usa el formato RFC 3339, en el que el resultado generado siempre usará la normalización Z y los dígitos fraccionarios 0, 3, 6 o 9. También se aceptan otras compensaciones que no sean “Z”. Ejemplos: "2014-10-02T15:01:23Z", "2014-10-02T15:01:23.045123456Z" o "2014-10-02T15:01:23+05:30".

events[]

object (PlayerGameEvent)

Obligatorio: Es una lista de eventos de juegos de jugadores que se registrarán. Máximo de 30 eventos por solicitud por lotes.

Cuerpo de la respuesta

Una respuesta correcta indica que se procesó el lote de eventos.

Si se ejecuta de forma correcta, el cuerpo de la respuesta contendrá datos con la siguiente estructura:

Representación JSON
{
  "failedRequests": {
    integer: {
      object (Status)
    },
    ...
  }
}
Campos
failedRequests

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

Es un mapa de eventos fallidos, con clave por su índice basado en cero en BatchRecordEventsRequest.events. Las claves omitidas indican que el registro se realizó correctamente.

Un objeto que contiene una lista de "key": value pares. Ejemplo: { "name": "wrench", "mass": "1.3kg", "count": "3" }.

Permisos de autorización

Se necesita uno de los siguientes permisos de OAuth:

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

Para obtener más información, consulta OAuth 2.0 Overview.

PlayerGameEvent

Es una representación de un evento de juego de un solo jugador activado por el evento de un jugador en un juego. Esto podría ser completar un nivel, desbloquear un elemento o terminar una partida.

Representación JSON
{
  "eventId": string,
  "eventName": string,
  "eventProperties": {
    string: {
      object (PropertyValue)
    },
    ...
  },
  "eventTime": string
}
Campos
eventId

string

Obligatorio: Es un UUID único generado por el cliente para esta instancia de evento específica. Se usa para la idempotencia y la deduplicación del servidor. Se ignorará el envío de un evento con un eventId registrado anteriormente para el mismo jugador.

eventName

string

Obligatorio: Es el nombre del evento definido por el cliente (p.ej., "run_completed", "level_up"). Longitud máxima: 100 caracteres.

eventProperties

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

Opcional: Son propiedades par clave-valor que proporcionan detalles sobre el evento. - Cantidad máxima de propiedades: 25. - Longitud máxima de la clave de propiedad: 100 caracteres. - Valores de cadena dentro de la longitud máxima de PropertyValue: 1,024 caracteres.

Un objeto que contiene una lista de "key": value pares. Ejemplo: { "name": "wrench", "mass": "1.3kg", "count": "3" }.

eventTime

string (Timestamp format)

Obligatorio: Es la hora del cliente en la que se realizó este evento específico.

Usa el formato RFC 3339, en el que el resultado generado siempre usará la normalización Z y los dígitos fraccionarios 0, 3, 6 o 9. También se aceptan otras compensaciones que no sean “Z”. Ejemplos: "2014-10-02T15:01:23Z", "2014-10-02T15:01:23.045123456Z" o "2014-10-02T15:01:23+05:30".

PropertyValue

Wrapper para el valor.

Representación 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.
}
Campos
Campo de unión value. El valor del escalar. value solo admite los siguientes valores:
intValue

string (int64 format)

Un valor entero

doubleValue

number

Un valor doble

stringValue

string

Un valor de cadena

boolValue

boolean

Un valor booleano

Estado

El tipo de Status define un modelo de error lógico que es adecuado para entornos de programación diferentes, incluidas las API de REST y las API de RPC. Lo usa gRPC. Cada mensaje Status contiene tres datos: código de error, mensaje de error y detalles del error.

Puedes obtener más información sobre este modelo de error y cómo trabajar con él en la guía de diseño de API.

Representación JSON
{
  "code": integer,
  "message": string,
  "details": [
    {
      "@type": string,
      field1: ...,
      ...
    }
  ]
}
Campos
code

integer

El código de estado, que debe ser un valor enum de google.rpc.Code.

message

string

Un mensaje de error dirigido al desarrollador, que debe estar en inglés. Cualquier mensaje de error dirigido al usuario debe localizarse y enviarse al campo google.rpc.Status.details; o el cliente debe localizarlo.

details[]

object

Una lista de mensajes que contienen los detalles del error. Hay un conjunto común de tipos de mensajes para que usen las API.

Un objeto que contiene campos de un tipo arbitrario. Un campo adicional "@type" contiene una URI que identifica el tipo. Ejemplo: { "id": 1234, "@type": "types.example.com/standard/id" }.