Video Heartbeat v1.5 Implementation Posts: 1 – Now is the time to migrate to Video Heartbeat
In this post, I would like to explain how Adobe Analytics Video Heartbeat works in 5 minutes. If you would like to know further details, you can find all information on Adobe Online Video Heartbeat Guide.
How Video Heartbeat works at a glance
As its name states, Video Heartbeat sends the tracking server calls like “heartbeat” pulse. At the video start and the first ad start (if you enabled video ads tracking), the tracking server call is sent to your analytic server, the same server that your page tracking is sent. These analytic server calls are like “big pulse” in heartbeat. After that, in every ten seconds interval, video heartbeat server call (heartbeats.omtrdc.net) is sent to keep track the video playback events and total time spent. If the user closed the video player page or application, video heartbeat server automatically close the current video tracking session and generate summary reports. The summary reports will be sent to analytic server, and the data is processed and stored in the database.
In the image 1 below, let’s assume there are three chapters and two mid-roll ads in the video playback. You are trying to track video, chapters and ads reports.
1: At the video start, video start call is sent to analytic server.
2: At the first mid-roll ad start, ad start call is sent to analytic server.
3: All other video playback events such as play, pause, chapter start, the second ad start and ad complete are sent to heartbeat server as the event occurs. In order to track the total video time viewed, heartbeat server call is sent to increment the total time every ten seconds.
Video Reporting configurations
To start track the video heartbeat data, you need to activate the video reporting in your report suite. You go to Admin > Report Suites > Edit Settings > Video Management > Video Reporting. In Video Reporting, there are four items that you can activate or deactivate. Video Core is mandatory, but other three options are up to your report requirements. Once you activate each item, related variables, classifications and events are generated for the report.
- Video Core: Required for basic video heartbeat to track how many videos were started, completed and the total time watched.
- Video Ads: For ads video report that tracks how many ads were played, completed and the total time watched.
- Video Chapters: For chapter video report that tracks how many chapters were started, completed and total time watched.
- Video Quality: To track quality of video playback, such as number of errors, dropped frames or bitrate changes.
Get SDK and configuration information from Adobe
- Marketing Cloud ID: Video Heartbeat works with the new AppMeasurement library that requires the new Visitor API. Marketing Cloud ID is the required parameter to create a new visitor instance, new Visitor(“marketing_cloud_id”).
- Publisher: The required parameter for Adobe Heartbeat Plugin, new AdobeHeartbeatPluginConfig(“heartbeats.omtrdc.net”, publisher);
Processing Rules and context data
As I wrote in my post, v1.5 enables to correlate with custom variables for your report. If basic video heartbeat variables and metrics are good enough for your report, you don’t need to set custom context data and processing rules. Processing rules is another Adobe technology in report suite. Instead of sending actual variables such as props or eVars, processing rules assign or overwrite the variables based on context data. In order to access processing rules, you need to take and pass the processing rules exam on online to be certified by Adobe. The exam is free.
That’s the quick overview for Video Heartbeat and v1.5 implementation.
- In Video Heartbeat tracking, two analytic server calls + hundreds of heartbeat server calls are sent during the video playback.
- Activate video reporting in your report suite through admin menu.
- Download SDK from GitHub and get Marketing Cloud ID and Publisher from Adobe.
- Set custom context data and processing rules if you need to correlate with custom variables.