Skip to main content
View as Markdown

stats.collect - Analytics

stats.collect​

Server-side event collection via the standard API v3 endpoint. Use this for backend systems, kiosks, set-top boxes, digital signage, and any non-browser playback environment.

curl -X POST "$KALTURA_SERVICE_URL/service/stats/action/collect" \
-d "ks=$KALTURA_KS" \
-d "format=1" \
-d "event[objectType]=KalturaStatsEvent" \
-d "event[partnerId]=$KALTURA_PARTNER_ID" \
-d "event[entryId]=$KALTURA_ENTRY_ID" \
-d "event[eventType]=3" \
-d "event[sessionId]=$SESSION_ID" \
-d "event[eventTimestamp]=$(date +%s)"

Event Type IDs​

IDEventDescription
1WIDGET_LOADEDPlayer widget initialized
2MEDIA_LOADEDMedia entry loaded
3PLAYPlayback started
4PLAY_REACHED_2525% of content played
5PLAY_REACHED_5050% of content played
6PLAY_REACHED_7575% of content played
7PLAY_REACHED_100100% of content played
8OPEN_EDITEdit dialog opened
9OPEN_VIRALShare dialog opened
10OPEN_DOWNLOADDownload dialog opened
11OPEN_REPORTReport dialog opened
12BUFFER_STARTBuffering started
13BUFFER_ENDBuffering ended
14OPEN_FULL_SCREENFullscreen activated
15CLOSE_FULL_SCREENFullscreen deactivated
16REPLAYContent replayed
17SEEKUser seeked
18OPEN_UPLOADUpload dialog opened
19SAVE_PUBLISHPublish action completed
20CLOSE_EDITOREditor closed
21PRE_BUMPER_PLAYEDPre-roll bumper played
22POST_BUMPER_PLAYEDPost-roll bumper played
23BUMPER_CLICKEDBumper ad clicked
24PREROLL_STARTEDPre-roll ad started
25MIDROLL_STARTEDMid-roll ad started
26POSTROLL_STARTEDPost-roll ad started
27OVERLAY_STARTEDOverlay ad started
28PREROLL_CLICKEDPre-roll ad clicked
29MIDROLL_CLICKEDMid-roll ad clicked
30POSTROLL_CLICKEDPost-roll ad clicked
31OVERLAY_CLICKEDOverlay ad clicked
32PREROLL_25Pre-roll ad 25%
33PREROLL_50Pre-roll ad 50%
34PREROLL_75Pre-roll ad 75%
35MIDROLL_25Mid-roll ad 25%
36MIDROLL_50Mid-roll ad 50%
37MIDROLL_75Mid-roll ad 75%
38POSTROLL_25Post-roll ad 25%
39POSTROLL_50Post-roll ad 50%
40POSTROLL_75Post-roll ad 75%

Required Fields​

FieldTypeDescription
event[partnerId]intYour Kaltura partner ID
event[entryId]stringThe media entry ID being played
event[eventType]intEvent type ID (see table above)
event[sessionId]stringAnalytics session identifier (unique per playback session)
event[eventTimestamp]intUnix timestamp in seconds

Optional Fields​

FieldTypeDescription
event[uiconfId]intPlayer configuration ID
event[clientVer]stringClient version string
event[referrer]stringPage URL where playback occurred
event[currentPoint]intCurrent playback position in seconds
event[duration]intTotal content duration in seconds
event[seek]booleanWhether user is seeking

Reporting a Complete Playback Session​

Fire events in lifecycle order for a complete session:

SESSION_ID="analytics_$(date +%s)_$$"

# Widget loaded
curl -s -X POST "$KALTURA_SERVICE_URL/service/stats/action/collect" \
-d "ks=$KALTURA_KS" \
-d "format=1" \
-d "event[objectType]=KalturaStatsEvent" \
-d "event[partnerId]=$KALTURA_PARTNER_ID" \
-d "event[entryId]=$KALTURA_ENTRY_ID" \
-d "event[eventType]=1" \
-d "event[sessionId]=$SESSION_ID" \
-d "event[eventTimestamp]=$(date +%s)"

# Media loaded
curl -s -X POST "$KALTURA_SERVICE_URL/service/stats/action/collect" \
-d "ks=$KALTURA_KS" \
-d "format=1" \
-d "event[objectType]=KalturaStatsEvent" \
-d "event[partnerId]=$KALTURA_PARTNER_ID" \
-d "event[entryId]=$KALTURA_ENTRY_ID" \
-d "event[eventType]=2" \
-d "event[sessionId]=$SESSION_ID" \
-d "event[eventTimestamp]=$(date +%s)"

# Play
curl -s -X POST "$KALTURA_SERVICE_URL/service/stats/action/collect" \
-d "ks=$KALTURA_KS" \
-d "format=1" \
-d "event[objectType]=KalturaStatsEvent" \
-d "event[partnerId]=$KALTURA_PARTNER_ID" \
-d "event[entryId]=$KALTURA_ENTRY_ID" \
-d "event[eventType]=3" \
-d "event[sessionId]=$SESSION_ID" \
-d "event[eventTimestamp]=$(date +%s)"

# Quartiles (25%, 50%, 75%, 100%)
for EVENT_TYPE in 4 5 6 7; do
curl -s -X POST "$KALTURA_SERVICE_URL/service/stats/action/collect" \
-d "ks=$KALTURA_KS" \
-d "format=1" \
-d "event[objectType]=KalturaStatsEvent" \
-d "event[partnerId]=$KALTURA_PARTNER_ID" \
-d "event[entryId]=$KALTURA_ENTRY_ID" \
-d "event[eventType]=$EVENT_TYPE" \
-d "event[sessionId]=$SESSION_ID" \
-d "event[eventTimestamp]=$(date +%s)"
done