Show Menu
TOPICS×

イベントリクエストの検証

各イベントタイプの 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" } }
セッションコンテキストはコレクション層で使用できないので、セッションレベルの検証はできません。