Method: gameStats.batchRecordEvents

Registra un lote de eventos de juego del jugador 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. Nombre del paquete de la aplicación (p.ej., "com.example.game").

requestTime

string (Timestamp format)

Obligatorio. Es la fecha y 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 juego del jugador que se registrarán. Se pueden incluir hasta 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 los eventos fallidos, con clave según su índice basado en cero en BatchRecordEventsRequest.events. Las claves omitidas indican que la grabación se realizó correctamente.

Un objeto que contiene una lista de pares "key": value. 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 para un solo jugador que se activa por un evento del jugador en un juego. Esto puede 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 anulación de duplicados del servidor. Se ignorará el envío de un evento con un eventId registrado anteriormente para el mismo reproductor.

eventName

string

Obligatorio. Es el nombre del evento definido por el cliente (p.ej., "run_completed", "level_up"). La longitud máxima es de 100 caracteres.

eventProperties

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

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

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

eventTime

string (Timestamp format)

Obligatorio. Es la fecha y 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
{

  // 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
}
Campos
Es el valor del escalar. La siguiente es una lista de campos mutuamente excluyentes. Como máximo, se establecerá uno de los campos en una respuesta:
intValue

string (int64 format)

Es un valor entero.

doubleValue

number

Es un valor doble.

stringValue

string

Es un valor de cadena.

boolValue

boolean

Un valor booleano

durationValue

string (Duration format)

Es un valor de duración.

Una duración en segundos con hasta nueve dígitos decimales, que terminan en “s”. Ejemplo: "3.5s".

Fin de los campos mutuamente excluyentes.

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