Event Schema
ReactionSDK: overlay and playback analytics (tap, poll, rating, slider, and CTA—not recorded viewer reaction video). ReactifySDK: thread and creator / recording events via ReactifySDK event schema (POST /api/reactify/events).
tap
ReactionSDKEmitted when the viewer taps a tap-style overlay (e.g. like/dislike or a single CTA). The stored event uses interactionType 'tap' and value 0 or 1 (or custom).
When captured
When the user taps the tap overlay on a video (e.g. thumbs up/down or a custom tap button).
Data structure stored
{
"eventId": "evt_abc123",
"accountId": "acct_xyz",
"campaignId": "camp_001",
"eventType": "interaction",
"deviceHash": "sha256...",
"timestamp": 1705315938500,
"createdAt": "2024-01-15T14:32:18.500Z",
"sessionId": "sess_xyz",
"videoId": "vid_001",
"source": "sdk",
"interactionType": "tap",
"value": 1,
"overlayType": "tap"
}rating
ReactionSDKEmitted when the viewer submits a star (or numeric) rating. Value is the selected rating (e.g. 1–5).
When captured
When the user selects a rating (e.g. 1–5 stars) and the overlay records the choice.
Data structure stored
{
"eventId": "evt_abc123",
"accountId": "acct_xyz",
"campaignId": "camp_001",
"eventType": "interaction",
"deviceHash": "sha256...",
"timestamp": 1705315938500,
"createdAt": "2024-01-15T14:32:18.500Z",
"sessionId": "sess_xyz",
"videoId": "vid_001",
"source": "sdk",
"interactionType": "rating",
"value": 4,
"overlayType": "rating"
}poll_vote
ReactionSDKEmitted when the viewer votes in a poll overlay. Value can be the option index or option id (e.g. 'A', 'B').
When captured
When the user selects a poll option (e.g. Option A / Option B) and the vote is recorded.
Data structure stored
{
"eventId": "evt_abc123",
"accountId": "acct_xyz",
"campaignId": "camp_001",
"eventType": "interaction",
"deviceHash": "sha256...",
"timestamp": 1705315938500,
"createdAt": "2024-01-15T14:32:18.500Z",
"sessionId": "sess_xyz",
"videoId": "vid_001",
"source": "sdk",
"interactionType": "poll",
"value": "A",
"overlayType": "poll"
}slider
ReactionSDKEmitted when the viewer sets a value on the slider overlay (e.g. sentiment or interest 0–100). Value is the chosen position.
When captured
When the user releases or confirms the slider after dragging on the video overlay.
Data structure stored
{
"eventId": "evt_abc123",
"accountId": "acct_xyz",
"campaignId": "camp_001",
"eventType": "interaction",
"deviceHash": "sha256...",
"timestamp": 1705315938500,
"createdAt": "2024-01-15T14:32:18.500Z",
"sessionId": "sess_xyz",
"videoId": "vid_001",
"source": "sdk",
"interactionType": "slider",
"value": 72,
"overlayType": "slider"
}cta_click
ReactionSDKEmitted when the viewer clicks a CTA button in or near an overlay (e.g. 'Buy Now', 'Learn more'). Optional metadata can include the CTA label or link.
When captured
When the user clicks a configured CTA (e.g. cta-text on the overlay or a custom CTA button).
Data structure stored
{
"eventId": "evt_abc123",
"accountId": "acct_xyz",
"campaignId": "camp_001",
"eventType": "interaction",
"deviceHash": "sha256...",
"timestamp": 1705315938500,
"createdAt": "2024-01-15T14:32:18.500Z",
"sessionId": "sess_xyz",
"videoId": "vid_001",
"source": "sdk",
"interactionType": "cta_click",
"value": "Buy Now",
"overlayType": "tap"
}interaction_complete
ReactionSDKEmitted when the viewer has completed an interaction flow (e.g. dismissed the overlay after rating or voting). Used for funnel and engagement analytics.
When captured
When the overlay is dismissed after a meaningful interaction (rating submitted, poll voted, or tap recorded).
Data structure stored
{
"eventId": "evt_abc123",
"accountId": "acct_xyz",
"campaignId": "camp_001",
"eventType": "interaction",
"deviceHash": "sha256...",
"timestamp": 1705315938500,
"createdAt": "2024-01-15T14:32:18.500Z",
"sessionId": "sess_xyz",
"videoId": "vid_001",
"source": "sdk",
"interactionType": "completion",
"value": null,
"interactionOccurred": true,
"lastInteractionType": "rating",
"lastInteractionValue": 5,
"watchedSeconds": 42,
"videoLength": 120,
"percentWatched": 35
}Common fields
ReactionSDK events include: eventId, accountId, campaignId, eventType (impression | interaction), deviceHash, timestamp, createdAt, and when available sessionId, videoId, source (sdk). Interaction events also include interactionType and value. Playback-related events may include watchedSeconds, videoLength, percentWatched.

