The Adobe Heartbeat tag allows you to collect extensive data on how visitors interact with videos on your site. When your video loads on a page, Heartbeat triggers server calls every second through the length of the video, capturing its playhead positions, pause and resume actions, ad views, and several other video performance parameters. Additionally, if your implementation is integrated with the Nielsen DCR plugin, you can configure those parameters together in this tag. In this article, you will learn how to set up the tag in your Tealium iQ profile and send the aggregated data to Adobe destination variables.
utag.js on all pages.In the Tags tab, ensure that the bundled Marketing Cloud ID tag is placed above the bundled Appmeasurement tag. This ensures the Marketing Cloud ID tag will load first.
This tag is available in the Tealium Tag Marketplace. Refer to the Tags Tab article to learn how to add a tag to your Tealium iQ profile.
You may either hard code the field values or set them dynamically using the Data Mappings toolbox. Set the values as follows:
| Field Name | Field Value |
|---|---|
| Title |
|
| Tracking Server |
|
| Publisher |
|
| Use SSL |
|
| S-Object Name |
|
| Video Platform Name |
Enter the name of the online platform that is rendering your video content. |
| Video Platform Name |
Enter the version of the video player app/SDK. |
| Tag Version |
|
The fields described in the following table are only required if you set the tag version to Adobe Heartbeat 1.6.7 with Nielsen 5.0.
If you do not have the required Nielsen values, contact your Nielsen or Adobe representative.
| Field Name | Field Value |
|---|---|
| Adobe Nielsen SDK Configuration Key | Enter the Nielsen configuration key |
| Nielsen Collection Environment | Enter the location of Nielsen's collection environment |
| Nielsen Player ID | Enter the unique identifier assigned to the video player |
| Nielsen APN | Enter a description for the player/site |
| Nielsen Client ID | Enter your Nielsen client identifier |
| Nielsen VCID | Enter the video channel identifier |
Load Rules determine when and where to load an instance of this tag on your site. The Load on All Pages rule is the default load rule. To load this tag on a specific page, create relevant rule conditions to apply to the tag.
Best Practice: Create and apply custom rules to load this tag on any pages where the videos are made available.
Mapping is the simple process of sending data from a Variable, in your data layer, to the matching destination variable of the vendor tag. The destination variables for Adobe Heartbeat tag are available in the Data Mapping toolbox and grouped in different categories.
For instructions on how to map a Variable to a tag destination, see Mapping Variables.
The Standard category corresponds to the configuration fields for the tag. If desired, you can map to these destinations. Dynamically send values for the tag fields that are left blank or override the current values.
| Destination Name | Description |
|---|---|
|
Adobe Heartbeat Tracking Server
|
URL of the server where all heartbeat tracking calls are sent |
|
Adobe Heartbeat Publisher
|
Publisher name as assigned by your Adobe representative |
|
Adobe Heartbeat SSL Flag
|
Boolean flag that determines whether or not to send heartbeat calls over HTTPS. Ensure the Variable you are mapping is populated with a Boolean value, either "true" or "false". Mapping also overrides the current drop-down selection. |
|
Adobe Heartbeat Channel
|
Name of the channel syndication |
|
Adobe Heartbeat Video Platform Name |
Name of the online platform that is rendering your video content |
|
Adobe Heartbeat Player SDK
|
Version of the video player app/SDK |
|
Adobe Heartbeat Debug Logging Flag
|
Boolean flag to enable/disable logging of each component within the Heartbeat plugin. Adobe recommends disabling this flag for the production version of your player because active logging impacts performance. |
Required only if Adobe Heartbeat 1.6.7 with Nielsen 5.0 is selected in the Tag Version drop-down list.
| Destination Name | Description |
|---|---|
|
Adobe Nielsen SDK Configuration Key
|
Nielsen configuration key to integrate with Adobe Heartbeat |
|
Nielsen Client ID
|
Your Nielsen client identifier |
|
Nielsen VCID
|
Video channel identifier |
|
Nielsen Collection Environment
|
Location of Nielsen's collection environment |
|
Nielsen Player ID
|
The unique identifier for the video player |
|
Nielsen APN
|
Description of the player/site, expressed as a string value |
|
Nielsen Device ID
|
Unique identifier of mobile/tablet where you wish to track the video |
|
Nielsen SDK Debug Flag
|
Boolean flag to enable/disable logging of the Nielsen integration |
|
Nielsen Opt Out Flag
|
|
Video event destinations are event listeners that trigger when a certain action or change occurs in the video player. To trigger an event, you must map your variable to the desired event in the toolbox and set the value of the variable as the trigger. The mapped event will fire when the supplied trigger value is found in the data layer.
To begin, use the following steps to map an event:
The following tables lists the available event destinations:
| Destination Name | Description |
|---|---|
|
Video Load
|
Indicates the video is ready to be played |
|
Video Start
|
Indicates the video has started playing, possibly after one of the following three (3) scenarios:
|
|
Video Playing
|
|
|
Video Pause
|
Indicates that video was paused |
|
Video Play
|
Indicates that the video is playing, possibly after the buffering or seeking has completed |
|
Video Stop
|
Indicates that the video has been manually stopped |
|
Video Resume
|
Indicates the viewer has unpaused the video to resume playing |
|
Video Complete
|
Indicates that the video has ended |
|
Video Seek
|
Indicates the viewer has started seeking the video |
|
Video Buffer
|
Indicates the video has started buffering |
|
Video Skip
|
Indicates the viewer has skipped the video or ad |
|
Video Error
|
Indicates the video has encountered an error |
|
Nielsen Opt Out Status Change
|
Indicates the viewer has switched from opt-in to opt-out OR vice versa. |
These destinations correspond to the Adobe Video Measurement parameters.
| Destination Name | Description |
|---|---|
|
Video Title
|
Name of the video being tracked |
|
Video Length
|
The duration (in seconds) of the video asset |
|
Video Current Playhead
|
The current position of the player (in seconds) in the video, excluding ad content |
|
Video Stream Type
|
Type of the video asset |
|
Video Is Full Episode
|
Boolean flag to indicate if the video content is a full episode ("Y") or a partial clip ("N") |
|
Video Original Air Date For Nielsen
|
The original air date of the episode, format YYYYMMDDHH24:MI:SS |
|
Video Channel Name
|
Name of the program or feed being sent |
|
Video Series Name
|
Name of the program (series name) being viewed |
|
Video Player Name
|
Name of the video player that is playing the content |
|
Video Is Ad
|
Boolean value to indicate whether or not the video is an advertisement |
|
Video FPS
|
The frame rate of the media, in frames per second |
|
Video Bitrate
|
The bits per second attribute of the video content |
|
Video Startup Time
|
The start time, in seconds, of the video content |
Video Dropped Frames video.dropped_frames |
The sum of all frames dropped during a playback session |
|
Video Error ID
|
The ID of the error encountered during playback |
|
Video Error Is Fatal
|
Boolean value to indicate whether or not the error prevents playback from continuing |
These destinations correspond to Adobe Video Chapter Parameters.
| Destination Name | Description |
|---|---|
|
Chapter Name |
Name of the individual chapters |
|
Chapter Length
|
Total duration of the chapter in seconds |
|
Chapter Position
|
Position of the chapter inside the video content |
|
Chapter Start Time
|
The offset inside the main content where the chapter starts. |
|
Chapter Custom Metadata
|
Additional custom value related to the chapter |
These destinations correspond to Adobe Video Ad Parameters.
| Destination Name | Description |
|---|---|
|
Ad Break Name
|
The name of the individual cad breaks |
|
Ad Break Position
|
|
|
Ad Break Start Time
|
The offset inside the main content where the ad break starts |
|
Ad ID
|
Unique identifier of the ad being displayed |
|
Ad Title
|
Name of the ad |
|
Ad Type
|
Type or category of the ad |
|
Ad Length
|
Total duration of the ad (in seconds) |
|
Ad Position
|
|
These destinations correspond to Adobe Standard Metadata Parameters.
| Destination Name | Description |
|---|---|
|
Video Custom Metadata
|
Additional custom value related to the video |
|
Video Metadata Show
|
Name of the show |
|
Video Metadata Season
|
The season number |
|
Video Metadata Episode
|
The episode number |
|
Video Metadata Asset
|
The video asset identifier also known as TMS ID (Tribune Media Service) |
|
Video Metadata Genre
|
Genre of the video content |
|
Video Metadata Air Date
|
The date on which the asset was first aired on TV |
|
Video Metadata Digital Air Date
|
The date on which the asset was first available as digital |
|
Video Metadata Rating
|
Ratings available for the video content |
|
Video Metadata Originator
|
Name of the video originator |
|
Video Metadata Network
|
The name of the network associated with the show |
|
Video Metadata Type
|
Type of the show |
|
Video Metadata Ad Load
|
Metadata for the ad load |
|
Video Metadata Day Part
|
The day part for which the ad display is scheduled |
|
Video Metadata Feed
|
The type of programming feed |
|
Video Metadata Format
|
Stream format of the video |
These destinations correspond to Adobe Standard Ad Metadata Parameters.
| Destination Name | Description |
|---|---|
|
Ad Custom Metadata
|
Additional custom value related to the ad being displayed |
|
Ad Metadata Advertiser
|
Name of the company/brand that is displaying the ad |
|
Ad Metadata Campaign
|
Ad campaign Identifier |
|
Ad Metadata Creative
|
Creative asset for rendering the ad |
|
Ad Metadata Placement
|
Metadata related to the position of the ad inside the video |
|
Ad Metadata Site
|
Site associated with the ad |
|
Ad Metadata Creative URL
|
URL of the ad being displayed |
That's it! You have successfully set up the tag in your profile.
If your data layer is already using these values, then mapping is not required, as Tealium typically sends data to the matching tag destinations. If your data layer uses different variables names from those listed in this table, then you will need to manually map.
| Built-in Variables | Toolbox Destination Variable | Description | ||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
event_name |
Video Event destinations |
If you use any of the following values in your
|
||||||||||||||||||||||||
video_id |
-- | Unique identifier of the video | ||||||||||||||||||||||||
video_name |
Video Title
|
Name of the video being tracked | ||||||||||||||||||||||||
video_length |
Video Length
|
The duration (in seconds) of the video asset | ||||||||||||||||||||||||
video_player_name |
Video Player Name
|
Name of the video player that is playing the content | ||||||||||||||||||||||||
video_current_playhead |
Video Current Playhead
|
The current position of the player (in seconds) in the video, excluding ad content | ||||||||||||||||||||||||
video_stream_type |
Video Stream Type
|
Type of the video assest | ||||||||||||||||||||||||
video_fps |
Video FPS
|
The frame rate of the media, in frames per second | ||||||||||||||||||||||||
video_bitrate |
Video Bitrate
|
The bits per second attribute of the video content | ||||||||||||||||||||||||
video_dropped_frames |
Video Dropped Frames
|
The sum of all frames dropped during a playback session | ||||||||||||||||||||||||
video_is_ad |
Video Is Ad
|
Boolean value to indicate whether or not the video is an advertisement | ||||||||||||||||||||||||
|
- OR -
|
Ad Position
|
|
||||||||||||||||||||||||
video_chapter_name |
Chapter Name
|
Name of the individual chapters | ||||||||||||||||||||||||
video_chapter_length |
Chapter Length
|
Total duration of the chapter in seconds | ||||||||||||||||||||||||
video_chapter_position |
Chapter Position
|
Position of the chapter inside the video content | ||||||||||||||||||||||||
video_chapter_start_time |
Chapter Start Time
|
The offset inside the main content where the chapter starts. | ||||||||||||||||||||||||
video_ad_pod_name |
Ad ID
|
Unique identifier of the ad being displayed | ||||||||||||||||||||||||
program |
Video Series Name
|
Name of the program (series name) being viewed | ||||||||||||||||||||||||
is_full_episode |
Video Is Full Episode
|
Boolean flag to indicate if the video content is a full episode ("Y") or a partial clip ("N") | ||||||||||||||||||||||||
original_air_date |
Video Original Air Date For Nielsen
|
The original air date of the episode, in the following format:
YYYYMMDDHH24:MI:SS |
The Hearbeat tag is event-based and leverages the utag.track("video", data) call to differentiate itself from other utag calls. For this reason, it is crucial to properly set up the video event triggers in the Data Mapping toolbox.
Once configured, the tag will fire continuously every second in order to keep the video data current. This is accomplished by firing the "playing" event within your video player's "playing" event handler. Other video events should also be fired via their corresponding Adobe heartbeat events. Network calls are aggregated and reported to Adobe every 10 seconds; including those for event changes.
An easy way to set both the Heartbeat and Nielsen debug flags is by adding a querystring parameter to the URL of the video page. For example: adobe_debug=1&Nielsen=1
You can then add the Query parameter variables to your data layer in Tealium iQ and map them accordingly.
Mapping destinations for both the Heartbeat and Nielsen debug flags are available under the Standard category (see "Adobe Heartbeat Debug Logging Flag" and "Nielsen SDK Debug Flag").
When complete, you can run the following Tealium debug command in your browser console.
document.cookie = "utagdb=true";
The following screenshots show network calls for a sample Heartbeat implementation. Primary parameters to note are s:event:type and s:asset:type. These parameters, respectively, indicate the type of video event and which video component it pertains to. The following screenshot shows the beginning of the main video before the ad display. The l:event:playhead, also shown, refers to the elapsed time on the main video.
The network call looks for the ad display, as follows:
The s:asset:type value equals ad and the l:event:playhead value is 8. This means that the ad started playing at ewight (8) seconds into the video.