Skip to main content
View as Markdown

Progress Tracking - Kaltura Player

Playback Progress Tracking (Quartile Events)​

Track playback milestones (25%, 50%, 75%, 100%) using the TIME_UPDATE event:

player.ready().then(() => {
const milestones = { 25: false, 50: false, 75: false, 100: false };

player.addEventListener(player.Event.Core.TIME_UPDATE, () => {
const duration = player.duration;
if (!duration) return;
const pct = Math.floor((player.currentTime / duration) * 100);

for (const mark of [25, 50, 75, 100]) {
if (pct >= mark && !milestones[mark]) {
milestones[mark] = true;
console.log('Reached ' + mark + '% milestone');
// Send analytics beacon: fetch('/api/track', { method: 'POST', body: ... })
}
}
});

player.addEventListener(player.Event.Core.ENDED, () => {
if (!milestones[100]) {
milestones[100] = true;
console.log('Reached 100% milestone (ENDED)');
}
});
});

Use quartile tracking for custom engagement analytics, completion-gated content (e.g., unlock next module after 75%), or third-party analytics integration.