This article describes how to set up the tag in your Tealium iQ Tag Management profile and send the aggregated data to Adobe destination variables.

Table of Contents Placeholder

How it Works

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.

Prerequisites

  • jQuery
    Ensure that your site has jQuery installed on it. If you are not using jQuery, you can add and configure a new jQuery tag from the Tealium iQ tag Marketplace.
  • Adobe Enterprise Cloud ID Service Tag
    The Adobe Cloud Service generates a unique ID for every visitor on your site and persists the ID across all their Enterprise Cloud Solutions, thus preventing duplicate counts. Add and configure the tag in your profile, if you have not already done and enable the bundle flag setting for the tag so that it can be bundled into utag.js on all pages.
  • AppMeasurement JavaScript Tag
    Add and configure the tag in the same profile and enable the bundle flag, if you have not done so already. This is required for JavaScript implementations. Bundling is only required for Tag version 1.6.3, as the prior versions already have the Enterprise Cloud Service bundled by default.

    In the Tags tab, ensure that the bundled Enterprise Cloud ID tag is placed above the bundled AppMeasurement tag. This ensures the Enterprise Cloud ID tag will load first.

Supported Vendor Libraries

  • Adobe Heartbeat v2.0.2 (default)
  • Adobe Heartbeat v1.6.7
  • Adobe Heartbeat v1.6.7 with Nielsen v5.0 integration

Tag Tips

  • Heartbeat requires the Adobe Experience Cloud ID Service as well as AppMeasurement for JS to be loaded first, preferably bundled.
  • This tag is fired via "utag.track('video', data);" which should be implemented in your video event handlers.
  • jQuery is required by Adobe Heartbeat.

Adding and Configuring

Tag Configuration

First, go to Tealium's tag marketplace and add the Adobe Heartbeat tag (Learn more about how to add a tag).

After adding the tag, configure the following settings:

FIELD NAME FIELD VALUE
Title
  • Required.
  • Enter a unique name to identify the tag.
  • This is important if you are adding multiple instances of this tag.
Tracking Server
  • Required.
  • Adobe Heartbeat tracking server.
  • Enter the server URL where all heartbeat tracking calls are sent.
  • If you do not have the URL, contact your Adobe representative.
  • Example: .hb.omtrdc.net
Publisher
  • Required.
  • Enter your publisher name as assigned by your Adobe representative.
Use SSL
  • This flag determines whether or not to send heartbeat calls over HTTPS.
  • The default value is False, meaning SSL is disabled.
  • You may toggle the value to True if you prefer the tracking calls are sent securely.
S-Object Name
  • Required.
  • Set your own custom s-object variable name.
  • If you are unsure, use the default value of s.
Video Platform Name
  • Optional.
  • The name of the online video platform through which content gets distributed.
Video Player SDK
  • Optional.
  • The version of the video player app/SDK.
Tag Version
  • This drop-down list allows you to choose Adobe Heartbeat tracking with or without Nielsen integration.
  • The available options are:
    • Adobe Heartbeat 2.0.2 (default)
    • Adobe Heartbeat 1.6.7
    • Adobe Heartbeat 1.6.7 with Nielsen 5.0
The following fields 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.
Adobe Nielsen SDK Configuration Key
  • Required for Nielsen.
  • Enter the Nielsen configuration key
  • Configuration SDK key for Nielsen integration with Adobe Heartbeat.
Nielsen Collection Environment
  • Required for Nielsen.
  • Location of collection environment.
  • Enter the location of Nielsen's collection environment
  • Example: eu-cert or eu.
Nielsen Player ID
  • Required for Nielsen.
  • Enter the unique identifier assigned to the video player
  • Unique ID assigned to player/site, provided by Nielsen.
Nielsen APN
  • Required for Nielsen.
  • Enter a description for the player/site
  • User-defined string value for describing the player/site.
Nielsen Client ID
  • Required for Nielsen.
  • Enter your Nielsen client identifier
  • Unique ID for VA Beacon Measurement.
Nielsen VCID
  • Required for Nielsen.
  • Enter the video channel identifier.
  • Unique ID for VA Beacon Measurement.

Apply Load Rules

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 videos are made available.

Data Mappings

Mapping is the process of sending data from a data layer variable to the corresponding destination variable of the vendor tag. For instructions on how to map a variable to a tag destination, see Data Mappings.

The following sections provide detailed tables for each available category.

Standard

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
tracking_server
  • Adobe Heartbeat Tracking Server.
  • URL of the server where all heartbeat tracking calls are sent.
publisher
  • Adobe Heartbeat Publisher.
  • Publisher name as assigned by your Adobe representative.
ssl
  • 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 overrides the current drop-down selection.
syndication_channel
  • Adobe Heartbeat Channel.
  • Name of the channel syndication.
online_video_platform_name
  • Adobe Heartbeat Video Platform Name.
  • Name of the online platform that is rendering your video content.
player_sdk
  • Adobe Heartbeat Player SDK.
  • Version of the video player app/SDK.
debug_logging
  • 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.
The following fields 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.
nielsen_config_key
  • Adobe Nielsen SDK Configuration Key.
  • Nielsen configuration key to integrate with Adobe Heartbeat.
nielsen_client_id
  • Nielsen Client ID.
  • Your Nielsen client identifier.
nielsen_vcid
  • Nielsen VCID.
  • Video channel identifier.
nielsen_collection_environment
  • Nielsen Collection Environment.
  • Location of Nielsen's collection environment.
nielsen_player_id
  • Nielsen Player ID.
  • The unique identifier for the video player.
nielsen_apn
  • Nielsen APN.
  • Description of the player/site, expressed as a string value.
nielsen_device_id
  • Nielsen Device ID.
  • Unique identifier of mobile/tablet where you wish to track the video.
nielsen_sdk_debug
  • Nielsen SDK Debug Flag.
  • Boolean flag to enable/disable logging of the Nielsen integration.
nielsen_opt_out
  • Nielsen Opt Out Flag.
  • Disable all Nielsen tracking for the current visitor.
  • Requires triggering the "opt-out" event.

Video Events

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 fires when the supplied trigger value is found in the data layer.

The following tables lists the available event destinations:

Destination Name Description
video_load
  • Video Load.
  • Indicates the video is ready to be played.
video_start
  • Video Start.
  • Indicates the video has started playing, possibly after one of the following three (3) scenarios:
    • initial loading
    • buffering
    • ad display
video_playing
  • Video Playing.
  • Indicates that the video is currently playing.
  • Use to update QoS data.
  • Should not be called when ads are playing.
video_pause
  • Video Pause.
  • Indicates that video was paused.
video_play
  • Video Play.
  • Indicates that the video is playing, possibly after the buffering or seeking has completed.
video_stop
  • Video Stop.
  • Indicates that the video has been manually stopped.
video_resume
  • Video Resume.
  • Indicates the viewer has unpaused the video to resume playing.
video_complete
  • Video Complete.
  • Indicates that the video has ended.
video_seek
  • Video Seek.
  • Indicates the viewer has started seeking the video.
video_buffer
  • Video Buffer.
  • Indicates the video has started buffering.
video_skip
  • Video Skip.
  • Indicates the viewer has skipped the video or ad.
video_error
  • Video Error.
  • Indicates the video has encountered an error.
nielsen_opt_out_status_changed
  • Nielsen Opt Out Status Change.
  • Indicates the viewer has switched from opt-in to opt-out OR vice-versa.

Video

These destinations correspond to the Adobe Video Measurement parameters.

Destination Name Description
video.id
  • Video ID.
  • Unique identifier of the video.
video.title
  • Video Title.
  • Name of the video being tracked.
video.length
  • Video Length.
  • The duration (in seconds) of the video asset.
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 asset.
video.is_full_episode
  • Video Is Full Episode.
  • Boolean flag to indicate if the video content is a full episode.
    • Y for full episode.
    • N for a partial clip.
video.original_air_date_nielsen
  • Video Original Air Date For Nielsen.
  • The original air date of the episode, format.
  • Example: YYYYMMDDHH24:MI:SS
video.channel_name
  • Video Channel Name.
  • Name of the program or feed being sent.
video.series_name
  • Video Series Name.
  • Name of the program (series name) being viewed.
video.player_name
  • Video Player Name.
  • Name of the video player that is playing the content.
video.is_ad
  • Video Is Ad.
  • Boolean value to indicate whether or not the video is an advertisement.
video.fps
  • Video FPS.
  • The frame rate of the media, in frames per second (FPS).
video.bit_rate
  • Video Bitrate.
  • The bits per second attribute of the video content.
video.startup.time
  • 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
  • Video Error ID.
  • The ID of the error encountered during playback.
video.error_is_fatal
  • Video Error Is Fatal.
  • Boolean value to indicate whether or not the error prevents playback from continuing.

Chapter

These destinations correspond to Adobe Video Chapter Parameters.

Destination Name Description
chapter.name
  • Chapter Name.
  • Name of the individual chapters.
chapter.length
  • Chapter Length.
  • Total duration of the chapter in seconds.
chapter.position
  • Chapter Position.
  • Position of the chapter inside the video content.
chapter.start_time
  • Chapter Start Time.
  • The offset inside the main content where the chapter starts.
chapter_meta_data.custom
  • Chapter Custom Metadata.
  • Additional custom value related to the chapter.

Ad

These destinations correspond to Adobe Video Ad Parameters.

Destination Name Description
adbreak.name
  • Ad Break Name.
  • The name of the individual cad breaks.
adbreak.position
  • Ad Break Position.
  • The position (index) of the ad break inside the video content.
  • Required when the video.is_ad flag is set to True.
dbreak.start_time
  • Ad Break Start Time.
  • The offset inside the main content where the ad break starts.
ad.id
  • Ad ID.
  • Unique identifier of the ad being displayed.
ad.title
  • Ad Title.
  • Name of the ad.
ad.type
  • Ad Type.
  • Type or category of the ad.
ad.length
  • Ad Length.
  • Total duration of the ad (in seconds).
ad.position
  • Ad Position.
  • The position (index) of the ad inside the video content.
  • Required when the video.is_ad flag is set to True.

Video Metadata

These destinations correspond to Adobe Standard Metadata Parameters.

Destination Name Description
meta_data.custom
  • Video Custom Metadata.
  • Additional custom value related to the video.
meta_data.show
  • Video Metadata Show.
  • Name of the show.
meta_data.season
  • Video Metadata Season.
  • The season number.
meta_data.episode
  • Video Metadata Episode.
  • The episode number.
meta_data.asset
  • Video Metadata Asset.
  • The video asset identifier also known as TMS ID (Tribune Media Service).
meta_data.genre
  • Video Metadata Genre.
  • Genre of the video content.
meta_data.airDate
  • Video Metadata Air Date.
  • The date on which the asset was first aired on TV.
meta_data.digitalDate
  • Video Metadata Digital Air Date.
  • The date on which the asset was first available as digital.
meta_data.rating
  • Video Metadata Rating.
  • Ratings available for the video content.
meta_data.originator
  • Video Metadata Originator.
  • Name of the video originator.
meta_data.network
  • Video Metadata Network.
  • The name of the network associated with the show.
meta_data.type
  • Video Metadata Type.
  • Type of the show.
meta_data.adLoad
  • Video Metadata Ad Load.
  • Metadata for the ad load.
meta_data.dayPart
  • Video Metadata Day Part.
  • The day part for which the ad display is scheduled.
meta_data.feed
  • Video Metadata Feed.
  • The type of programming feed.
meta_data.format
  • Video Metadata Format.
  • Stream format of the video.

Ad Metadata

These destinations correspond to Adobe Standard Ad Metadata Parameters.

Destination Name Description
ad_meta_data.custom
  • Ad Custom Metadata.
  • Additional custom value related to the ad being displayed.
ad_meta_data.advertiser
  • Ad Metadata Advertiser.
  • Name of the company/brand that is displaying the ad.
ad_meta_data.campaign
  • Ad Metadata Campaign.
  • Ad campaign Identifier.
ad_meta_data.creative
  • Ad Metadata Creative.
  • Creative asset for rendering the ad.
ad_meta_data.placement
  • Ad Metadata Placement.
  • Metadata related to the position of the ad inside the video.
ad_meta_data.site
  • Ad Metadata Site.
  • Site associated with the ad.
ad_meta_data.creativeURL
  • Ad Metadata Creative URL.
  • URL of the ad being displayed.

Built-in Video Data Layer Variables

Mapping is not required if your data layer is already using these values. 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 event_name variable, you do not need to map again in the toolbox.

Value

Is Sent To

load video_load
start video_start
playing video_playing
pause video_pause
play video_play
stop video_stop
resume video_resume
complete video_complete
seek video_seek
buffer video_buffer
optstatus Nielsen_opt_out_status_changed
video_id --
  • Unique identifier of the video.
video_name video.title
  • Video Title.
  • Name of the video being tracked.
video_length video.length
  • Video Length.
  • The duration (in seconds) of the video asset.
video_player_name video.player_name
  • Video Player Name.
  • Name of the video player that is playing the content.
video_current_playhead 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
  • Video Stream Type.
  • Type of the video asset.
video_fps video.fps
  • Video FPS.
  • The frame rate of the media, in frames per second (FPS).
video_bitrate video.bit_rate
  • Video Bitrate.
  • The bits per second attribute of the video content.
video_dropped_frames video.dropped_frames
  • Video Dropped Frames.
  • The sum of all frames dropped during a playback session.
video_is_ad video.is_ad
  • Video Is Ad.
  • Boolean value to indicate whether or not the video is an advertisement.
video_ad_position

- OR -

video_ad_pod_position
ad.position
  • Ad Position.
  • The position (index) of the ad inside the video content.
  • Required when the video.is_ad flag is set to true.
video_chapter_name chapter.name
  • Chapter Name.
  • Name of the individual chapters.
video_chapter_length chapter.length
  • Chapter Length.
  • Total duration of the chapter in seconds.
video_chapter_position chapter.position
  • Chapter Position.
  • Position of the chapter inside the video content.
video_chapter_start_time chapter.start_time
  • Chapter Start Time.
  • The offset inside the main content where the chapter starts.
video_ad_pod_name ad.id
  • Ad ID.
  • Unique identifier of the ad being displayed.
program video.series_name
  • Video Series Name.
  • Name of the program (series name) being viewed.
is_full_episode video.is_full_episode
  • Video Is Full Episode.
  • Boolean flag to indicate if the video content is a full episode.
    • Y for full episode
    • N for a partial clip
original_air_date video.original_air_date_nielsen
  • Video Original Air Date For Nielsen.
  • The original air date of the episode, in the following format:
    YYYYMMDDHH24:MI:SS

Validation

The Heartbeat 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 fires 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";

Sample Implementation

The following examples 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 example 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.

mainstart.pngThe 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 eight (8) seconds into the video.

adstart.png

Vendor Documentation