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.