Method: gameStats.batchRecordEvents

특정 플레이어의 플레이어 게임 이벤트를 일괄적으로 기록합니다. 이 메서드를 사용하면 단일 요청으로 여러 이벤트를 전송할 수 있습니다.

HTTP 요청

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

경로 매개변수

매개변수
playerId

string

필수 항목입니다. 이벤트를 실행한 플레이어의 플레이어 ID입니다.

요청 본문

요청 본문에는 다음과 같은 구조의 데이터가 포함됩니다.

JSON 표현
{
  "packageName": string,
  "requestTime": string,
  "events": [
    {
      object (PlayerGameEvent)
    }
  ],
}
필드
packageName

string

필수 항목입니다. 애플리케이션 패키지 이름 (예: 'com.example.game')입니다.

requestTime

string (Timestamp format)

필수 항목입니다. 이 특정 이벤트 배치가 제출된 클라이언트의 시간입니다.

생성된 출력은 항상 Z-정규화되고 소수점 이하 0, 3, 6 또는 9자리인 RFC 3339를 사용합니다. 'Z' 이외의 오프셋도 허용됩니다. 예를 들면 "2014-10-02T15:01:23Z", "2014-10-02T15:01:23.045123456Z" 또는 "2014-10-02T15:01:23+05:30"입니다.

events[]

object (PlayerGameEvent)

필수 항목입니다. 기록할 플레이어 게임 이벤트 목록입니다. 일괄 요청당 최대 30개의 이벤트

응답 본문

성공적인 응답은 이벤트 배치가 처리되었음을 나타냅니다.

성공한 경우 응답 본문은 다음과 같은 구조의 데이터를 포함합니다.

JSON 표현
{
  "failedRequests": {
    integer: {
      object (Status)
    },
    ...
  }
}
필드
failedRequests

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

실패한 이벤트의 맵으로, BatchRecordEventsRequest.events의 0부터 시작하는 색인을 키로 사용합니다. 생략된 키는 녹화가 성공했음을 나타냅니다.

"key": value 쌍 목록을 포함하는 객체입니다. 예: { "name": "wrench", "mass": "1.3kg", "count": "3" }

승인 범위

다음 OAuth 범위 중 하나가 필요합니다.

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

자세한 내용은 OAuth 2.0 Overview를 참조하세요.

PlayerGameEvent

게임에서 플레이어의 이벤트에 의해 트리거된 싱글 플레이어 게임 이벤트의 표현입니다. 레벨 완료, 아이템 잠금 해제, 경기 완료 등이 이에 해당합니다.

JSON 표현
{
  "eventId": string,
  "eventName": string,
  "eventProperties": {
    string: {
      object (PropertyValue)
    },
    ...
  },
  "eventTime": string
}
필드
eventId

string

필수 항목입니다. 이 특정 이벤트 인스턴스에 대해 클라이언트가 생성한 고유 UUID입니다. 서버 측 멱등성 및 중복 삭제에 사용됩니다. 이전에 기록된 eventId를 사용하여 동일한 플레이어의 이벤트를 제출하면 무시됩니다.

eventName

string

필수 항목입니다. 이벤트의 클라이언트 정의 이름입니다 (예: 'run_completed', 'level_up'). 최대 길이: 100자(영문 기준)

eventProperties

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

선택사항. 이벤트에 관한 세부정보를 제공하는 키-값 속성입니다. - 최대 속성 수: 25개 - 속성 키 최대 길이: 100자 - PropertyValue 내 문자열 값의 최대 길이: 1024자(영문 기준)

"key": value 쌍 목록을 포함하는 객체입니다. 예: { "name": "wrench", "mass": "1.3kg", "count": "3" }

eventTime

string (Timestamp format)

필수 항목입니다. 이 특정 이벤트가 실행된 클라이언트의 시간입니다.

생성된 출력은 항상 Z-정규화되고 소수점 이하 0, 3, 6 또는 9자리인 RFC 3339를 사용합니다. 'Z' 이외의 오프셋도 허용됩니다. 예를 들면 "2014-10-02T15:01:23Z", "2014-10-02T15:01:23.045123456Z" 또는 "2014-10-02T15:01:23+05:30"입니다.

PropertyValue

값의 래퍼입니다.

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
}
필드
스칼라 값입니다. 다음은 상호 배타적인 필드 목록입니다. 응답에는 다음 필드 중 최대 하나가 설정됩니다.
intValue

string (int64 format)

정수 값입니다.

doubleValue

number

double 값입니다.

stringValue

string

문자열 값입니다.

boolValue

boolean

부울 값

durationValue

string (Duration format)

지속 시간 값입니다.

소수점 아래가 최대 9자리까지이고 's'로 끝나는 초 단위 기간입니다. 예를 들면 "3.5s"입니다.

상호 배타적 필드의 끝입니다.

상태

Status 유형은 REST API, RPC API를 비롯하여 다양한 프로그래밍 환경에 적합한 논리적 오류 모델을 정의하며, gRPC에서 사용됩니다. 각 Status 메시지에는 오류 코드, 오류 메시지, 오류 세부정보라는 3가지 데이터가 포함됩니다.

API 설계 가이드에서 이 오류 모델과 모델 작업 방법에 대해 자세히 알아볼 수 있습니다.

JSON 표현
{
  "code": integer,
  "message": string,
  "details": [
    {
      "@type": string,
      field1: ...,
      ...
    }
  ]
}
필드
code

integer

상태 코드로, google.rpc.Code의 열거형 값이어야 합니다.

message

string

개발자에게 정보를 제공하는 오류 메시지로, 영어로 작성되어야 합니다. 사용자에게 표시되는 모든 오류 메시지는 현지화되어 google.rpc.Status.details 필드에 전송되거나, 클라이언트 측에서 현지화되어야 합니다.

details[]

object

오류 세부정보를 설명하는 메시지 목록입니다. API에서 사용할 일반적인 메시지 유형 집합이 있습니다.

임의 유형의 필드를 포함하는 객체입니다. 추가 필드 "@type"은 유형을 식별하는 URI를 포함합니다. 예: { "id": 1234, "@type": "types.example.com/standard/id" }