ReactionSaaS
Documentation

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

ReactionSDK

Emitted 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

Stored event
{
  "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

ReactionSDK

Emitted 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

Stored event
{
  "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

ReactionSDK

Emitted 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

Stored event
{
  "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

ReactionSDK

Emitted 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

Stored event
{
  "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

ReactionSDK

Emitted 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

Stored event
{
  "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

ReactionSDK

Emitted 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

Stored event
{
  "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.