Drop-in Kaltura Player plugin that replicates all 12 AWS TV analytics events, auto-detected from native player events and bridged to AWS's Libra/Experience Builder framework via CustomEvent dispatch, which relays to Adobe Analytics.
Further reading: Kaltura Player Embed Guide · playkit-js-plugin-example — reference implementation for custom player plugins
Clicks play, pauses, seeks, changes volume…
Fires native events: PLAYING, PAUSE, TIME_UPDATE…
Dedup, thresholds, seek filtering, payload formatting
Listens for CustomEvents, relays via AWSMA to Adobe Analytics
"Libra" is part of AWS's internal Experience Builder platform. It has no network code of its own here — it forwards events through AWS's internal AWSMA wrapper, which sends them to Adobe Analytics (Omniture/SiteCatalyst) as the actual backend.
custom_aws_eb-analytics_notify-listenerdocumentcustom_awstv_video-player-statedocument.bodycustom_aws_eb-logger_notify-listenerdocumentloadMedia().
First playback starts (FIRST_PLAYING)
fire-onceUser pauses (deferred, filtered during seek/ended)
fire-oncePlayback resumes after ended state
fire-onceAccumulated watch time exceeds threshold (default 30s)
fire-onceWatch ratio exceeds threshold (default 95%)
fire-oncePage hidden or unloaded — sends accumulated watch time
repeatableVolume level changed (VOLUME_CHANGE)
fire-onceEnter or exit fullscreen (ENTER/EXIT_FULLSCREEN)
fire-onceAuto-detected: seek delta > 1s forward (SEEKED)
fire-onceAuto-detected: seek delta > 1s backward (SEEKED)
fire-onceAuto-detected: video track switch (VIDEO_TRACK_CHANGED)
fire-onceAuto-detected: caption/subtitle change (TEXT_TRACK_CHANGED)
fire-oncecustom_aws_eb-logger_notify-listener channel.
Duration spent buffering, fires each time player exits buffering state
Time from plugin init to CAN_PLAY (milliseconds), fires once
Player errors with code, message, videoId, and videoTitle
This plugin is a CustomEvent bridge, not an HTTP transport. It dispatches browser events that AWS's Libra/Experience Builder framework (already on the page) listens for. That framework relays events through AWS's internal AWSMA layer to Adobe Analytics, which handles all network transport, authentication, batching, and retries. The plugin itself has zero network code.
videoId and videoTitle auto-resolve from the Kaltura Player's media info.
| Option | Type | Default | Description |
|---|---|---|---|
videoId |
string | auto | Auto-resolved from player.sources.id. Set to override. |
videoTitle |
string | auto | Auto-resolved from player.sources.metadata.name. Set to override. |
orgId |
string | 'awsm_tv' | Organization ID in buffer-time logger events. |
watchThresholdSeconds |
number | 30 | Seconds of watch time before Watch fires. |
completeThresholdPercent |
number | 0.95 | Fraction of duration before Complete fires. |