<img src="https://img.shields.io/badge/%20-ALL-%2300B180" style="float:left"/><br />

JWP’s JavaScript Player API enables you to listen for specific changes to the player and return information about those changes. With this data, you can build your own analytics tracking or integrate with another system.

If your analytics service can receive information from the Javascript Player API, all API events can be tracked and measured. Please see our <a href="https://docs.jwplayer.com/players/docs/jw8-reference" target="_blank">Web Player Reference</a> for more information.

<br />

<hr />

## Listen for events

To listen for an event, follow these steps:

  1. Within your player implementation, listen for an event.

  2. Send the event data to a third-party analytics platform.

The following recipe shows a simple example of how to listen for the volume and mute events in an embedded player.

🎬
WEB PLAYER: Listen for events
Open Recipe


<br />

<hr />

## Listening event reference

The table below contains all events for which the JWP JavaScript Player API can listen. To see the complete information returned for each event, please visit our <a href="https://docs.jwplayer.com/players/reference/javascript-player-api-introduction" target="_blank">JavaScript API Reference</a>.



This table only references `on` events. All events listed can also use `off`, `once`, and `trigger` listeners.

You can build your analytics tracking around any of these listeners.

ClassEvents
<a href="https://docs.jwplayer.com/players/reference/player-initiation#events" target="_blank">Setup</a>.on('ready') .on('setupError')
<a href="https://docs.jwplayer.com/players/reference/playlist#events" target="_blank">Playlist</a>.on('playlist') .on('playlistItem') .on('playlistComplete')
<a href="https://docs.jwplayer.com/players/reference/buffer#events" target="_blank">Buffer</a>.on('bufferChange')
<a href="https://docs.jwplayer.com/players/reference/playback#events" target="_blank">Playback</a>.on('play') .on('pause') .on('buffer') .on('idle') .on('complete') .on('error')
<a href="https://docs.jwplayer.com/players/reference/seek#events" target="_blank">Seek</a>.on('seek') .on('seeked') .on('time')
<a href="https://docs.jwplayer.com/players/reference/volume#events" target="_blank">Volume</a>.on('mute') .on('volume')
<a href="https://docs.jwplayer.com/players/reference/resize#events" target="_blank">Resize</a>.on('fullscreen') .on('resize')
<a href="https://docs.jwplayer.com/players/reference/quality#events" target="_blank">Quality</a>.on('levels') .on('levelsChanged') .on('visualQuality')
<a href="https://docs.jwplayer.com/players/reference/captions#events" target="_blank">Captions</a>.on('captionsList') .on('captionsChange')
<a href="https://docs.jwplayer.com/players/reference/controls#events" target="_blank">Controls</a>.on('controls') .on('displayClick')
<a href="https://docs.jwplayer.com/players/reference/advertising#events" target="_blank">Advertising</a>.on('adClick') .on('adCompanions') .on('adComplete') .on('adError') .on('adImpression') .on('adTime') .on('adSkipped') .on('beforePlay') .on('beforeComplete')
<a href="https://docs.jwplayer.com/players/reference/metadata#events" target="_blank">Metadata</a>.on('meta')
<a href="https://docs.jwplayer.com/players/reference/sharing#events" target="_blank">Sharing</a>getPlugin('sharing').on('open') getPlugin('sharing').on('close') getPlugin('sharing').on('click')
<a href="https://docs.jwplayer.com/players/reference/related#events" target="_blank">Related</a>getPlugin('related').on('open') getPlugin('related').on('close') getPlugin('related').on('play')

<br />

<!-- Removes the automatic page-to-page navigation at the bottom of the page -->

<style> .rm-Pagination { display: none; } </style>