What’s the best way to track video views, including full vs. partial views?

There are several options for tracking video, specifically how much of a video a user has viewed, in Mixpanel.

Fire Events at certain checkpoints

The recommended approach to tracking video views is to fire Events at certain points in the video to understand how much of a video someone has watched - think of the Events you’re firing as checkpoints.

For example, you can have one Event for Video Start, followed by one Event for Video 25% watched (which you would send a quarter of the way through any video session), Video 50% watched, Video 75% watched, Video 100% watched.

From there, you can get a good idea of how much of your videos in general, or of a certain video, your users are watching.

Track video states

If you want a more general idea of how your users are interacting with a video, track an Event for each video state change whether that’s the user selecting to start the video, pause the video, or finish the video. In JavaScript you’ll have something like this:

mixpanel.track(Video Play Started, {
Video title:Title,
Video completed: true,
Video length in seconds:200
});

mixpanel.track(Video Paused,{
Video title:Title,
Video completed: false,
Video time of pause:112
});

Use time_event()

Another option would be to use the time_event() function in the JavaScript library: fire an Event when the video starts playing, and fire another Event when the video stops, and then you'd be able to tell the time in between as how much video they watched.