이벤트 요청 확인 validating-event-requests

각 이벤트 유형에 대한 JSON 요청 본문은 백 엔드에서 JSON 스키마를 사용하여 확인됩니다. API 호출에 대한 유효성 검사가 실패하면 HTTP 응답 본문이 오류 메시지로 채워집니다.

각 이벤트 유형에 대한 JSON 유효성 검사 스키마는 {uri}/api/v1/schemas/{eventType}에서 공개적으로 액세스할 수 있습니다(예: {uri}/api/v1/schemas/sessionEnd). 이러한 JSON 유효성 검사 스키마는 각 이벤트 유형에 대한 현재 올바른 요청 본문 매개 변수를 결정하는 절대 권한입니다.

예를 들어, sessionStart 유효성 검사 스키마 요청에 대한 응답은 다음 샘플처럼 표시됩니다(여기서는 읽기 쉽게 포맷이 지정됨).

HTTP/1.1 200 OK
Server: nginx/1.13.5
Date: Thu, 18 Jan 2018 15:44:50 GMT
Content-Type: application/json
Content-Length: 2716
Connection: keep-alive

{
  "$schema":"https://json-schema.org/draft-04/schema#",
  "id":"https://alpha.hb-api.omtrdc.net/api/v1/schemas/sessionStart",
  "definitions":
  {
    "playerTime":
    {
      "type":"object","properties":
      {
        "playhead":
        {"type":"number"},
        "ts":
        {"type":"integer"}
      },
      "required":["playhead","ts"],
      "additionalProperties":false
    },
    "eventType":
    {
      "type":"string",
      "enum":[
        "sessionStart",
        "play",
        "ping",
        "bufferStart",
        "pauseStart",
        "sessionComplete",
        "bitrateChange",
        "error",
        "adBreakStart",
        "adBreakComplete",
        "adStart",
        "adComplete",
        "adSkip",
        "sessionEnd"
      ]
    },
    "qoeData":
    {
      "type":"object","properties":
      {
        "media.qoe.bitrate":
        {"type":"integer"},
        "media.qoe.droppedFrames":
        {"type":"integer"},
        "media.qoe.framesPerSecond":
        {"type":"integer"},
        "media.qoe.timeToStart":
        {"type":"integer"}
      },
      "required":[],
      "additionalProperties":false
    },
    "customMetadata":
    {
      "type":"object",
      "patternProperties":
      {
        "^[a-zA-Z0-9_\\.]+$":
        {"type":"string"}
      },
      "additionalProperties":false
    },
    "sessionStart":
    {
      "properties":
      {
        "eventType":
        {"type":"string","enum":["sessionStart"]},
        "playerTime":
        {"$ref":"#/definitions/playerTime"},
        "params":
        {"type":"object",
          "properties":
          {
            "appInstallationId":
            {"type":"string"},
            "analytics.trackingServer":
            {"type":"string"},
            "analytics.reportSuite":
            {"type":"string"},
            <...>
            "visitor.marketingCloudOrgId"],
            "additionalProperties":false
          },
          "customMetadata":
          {"$ref":"#/definitions/customMetadata"},
          "qoeData":
          {"$ref":"#/definitions/qoeData"}
        },
        "required":["eventType","playerTime","params"],
        "additionalProperties":false
      }
    },
    "type":"object","$ref":"#/definitions/sessionStart"
  }
}
NOTE
세션 컨텍스트는 컬렉션 계층에서 사용할 수 없으므로 세션 수준 유효성 검사가 불가능합니다.
recommendation-more-help
c8eee520-cef5-4f8c-a38a-d4952cfae4eb