JavaScript 3.x Media SDK API reference

This page covers the Analytics-only JavaScript 3.x SDK. For the recommended implementation, see Implement Streaming Media using the Edge Network.

ADB.Media

Static methods

configure

Configures MediaSDK for tracking. This method should be called once before creating any tracker instances in a page.

Syntax

code language-javascript
ADB.Media.configure(mediaConfig, appMeasurement);
table 0-row-3 1-row-3 2-row-3
Variable Name Type Description
mediaConfig ADB.MediaConfig Valid media configuration
appMeasurement object AppMeasurement instance

Example

code language-javascript
var mediaConfig = new ADB.MediaConfig();
mediaConfig.trackingServer = "company.hb-api.omtrdc.net";
mediaConfig.playerName = "player_name";
mediaConfig.channel = "sample_channel";
mediaConfig.appVersion = "app_version";
mediaConfig.debugLogging = true;
mediaConfig.ssl = true;

ADB.Media.configure(mediaConfig, appMeasurement);
getInstance

Creates an instance of media to track the playback session. Returns null if called before configuring media.

Syntax

code language-javascript
ADB.Media.getInstance(trackerConfig)
table 0-row-4 1-row-4 1-align-left 2-align-left 3-align-center 4-align-left 6-align-left 7-align-left 8-align-center 9-align-left
Variable Name Type Required Description
trackerConfig Tracker configuration No Tracker configuration object.

Example

code language-javascript
var tracker = ADB.Media.getInstance();

To override channel or playerName per tracker instance, pass the override values in the tracker configuration object.

Example with tracker configuration

code language-javascript
const trackerConfig = {
  [Media.TrackerConfig.Channel]: "custom_channel_name",
  [Media.TrackerConfig.PlayerName]: "custom_player_name",
}
this._mediaTracker = Media.getInstance(trackerConfig);
createMediaObject

Creates an object containing media information. Returns empty object if invalid parameters are passed.

Syntax

code language-javascript
ADB.Media.createMediaObject(name, id, length, streamType, mediaType)
table 0-row-3 1-row-3 2-row-3 3-row-3 4-row-3 5-row-3 1-align-left 2-align-left 3-align-left 5-align-left 6-align-left 7-align-left 9-align-left 10-align-left 11-align-left 13-align-left 14-align-left 15-align-left 17-align-left 18-align-left 19-align-left 21-align-left 22-align-left 23-align-left
Variable Name Type Description
name string Non empty string denoting media name
id string Non empty string denoting unique media identifier
length number Positive number denoting length of media in seconds. Use 0 if length is unknown.
streamType string Stream type or non empty string to denote media stream type.
mediaType Media type Type of media (Audio or Video)

Example

code language-javascript
var mediaObject = ADB.Media.createMediaObject("video-name",
                                              "video-id",
                                              60.0,
                                              ADB.Media.StreamType.VOD,
                                              ADB.Media.MediaType.Video);
createAdBreakObject

Creates an object containing adbreak information. Returns empty object if invalid parameters are passed.

Syntax

code language-javascript
ADB.Media.createAdBreakObject(name, position, startTime);
table 0-row-3 1-row-3 2-row-3 3-row-3 1-align-left 2-align-left 3-align-left 5-align-left 6-align-left 7-align-left 9-align-left 10-align-left 11-align-left 13-align-left 14-align-left 15-align-left
Variable Name Type Description
name string Non empty string denoting adbreak name (pre-roll, mid-roll, and post-roll)
position number The number position of the ad break within the content, starting with 1
startTime number Playhead value at the start of the ad break.

Example

code language-javascript
var adbreakObject = ADB.Media.createAdBreakObject("midroll", 2, 30.0);
createAdObject

Creates an object containing ad information. Returns empty object if invalid parameters are passed.

Syntax

code language-javascript
ADB.Media.createAdObject(name, id, position, length);
table 0-row-3 1-row-3 2-row-3 3-row-3 4-row-3 1-align-left 2-align-left 3-align-left 5-align-left 6-align-left 7-align-left 9-align-left 10-align-left 11-align-left 13-align-left 14-align-left 15-align-left 17-align-left 18-align-left 19-align-left
Variable Name Type Description
name string Non empty string denoting ad name
id string Non empty string denoting ad id
position number The number position of the ad within the adbreak, starting with 1
length number Positive number denoting length of the ad

Example

code language-javascript
var adObject = ADB.Media.createAdObject("ad-name", "ad-id", 1, 15.0)
createChapterObject

Creates an object containing chapter information. Returns empty object if invalid parameters are passed.

Syntax

code language-javascript
ADB.Media.createChapterObject(name, position, length, startTime)
table 0-row-3 1-row-3 2-row-3 3-row-3 4-row-3 1-align-left 2-align-left 3-align-left 5-align-left 6-align-left 7-align-left 9-align-left 10-align-left 11-align-left 13-align-left 14-align-left 15-align-left 17-align-left 18-align-left 19-align-left
Variable Name Type Description
name string Non empty string denoting chapter name
position number The position of the chapter within the content, starting with 1
length number Positive number denoting length of the chapter
startTime number Playhead value at start of chapter

Example

code language-javascript
var chapterObject = ADB.Media.createChapterObject("name", 1, 30.0, 0)
createStateObject

Creates an object containing state information. Returns empty object if invalid parameters are passed.

Syntax

code language-javascript
ADB.Media.createStateObject(name)
table 0-row-3 1-row-3 1-align-left 2-align-left 3-align-left 5-align-left 6-align-left 7-align-left
Variable Name Type Description
name string Player State or non empty string denoting state name

Example

code language-javascript
var stateObject = ADB.Media.createStateObject("customstate");
createQoEObject

Creates an object containing QoE information. Returns empty object if invalid parameters are passed.

Syntax

code language-javascript
ADB.Media.createQoEObject(bitrate, startupTime, fps, droppedFrames)
table 0-row-3 1-row-3 2-row-3 3-row-3 4-row-3 1-align-left 2-align-left 3-align-left 5-align-left 6-align-left 7-align-left 9-align-left 10-align-left 11-align-left 13-align-left 14-align-left 15-align-left 17-align-left 18-align-left 19-align-left
Variable Name Type Description
bitrate number Positive number denoting current bitrate (0 if unknown)
startupTime number Positive number denoting startup time (0 if unknown)
fps number Positive number denoting current fps (0 if unknown)
droppedFrames number Positive number denoting number of dropped frames (0 if unknown)

Example

code language-javascript
qoeObject = ADB.Media.createQoEObject(10000000, 2, 23, 10);
version

Returns MediaSDK version.

Syntax

code language-javascript
ADB.Media.version

Example

code language-javascript
console.log(ADB.Media.version);

Instance methods

trackSessionStart

Track the intention to start playback. This starts a tracking session on the media tracker instance. Also see Media Resume.

Syntax

code language-javascript
ADB.Media.trackSessionStart(mediaObject, contextData);
table 0-row-3 1-row-3 2-row-3 1-align-left 2-align-left 3-align-center 5-align-left 6-align-left 7-align-center 9-align-left 10-align-left 11-align-center
Variable Name Description Required
mediaObject Media information created using the createMediaObject method. Yes
contextData Optional Media context data. For standard metadata keys, use standard video constants or standard audio constants. No

Example

code language-javascript
var mediaObject = ADB.Media.createMediaObject("media-name", "media-id", 60, ADB.Media.StreamType.VOD, ADB.Media.MediaType.Video);

var contextData = {};
contextData[ADB.Media.VideoMetadataKeys.Episode] = "Sample Episode";
contextData[ADB.Media.VideoMetadataKeys.Show] = "Sample Show";
contextData["isUserLoggedIn"] = "false";
contextData["tvStation"] = "Sample TV Station";

tracker.trackSessionStart(mediaObject, contextData);
trackPlay

Track media play or resume after a previous pause.

Syntax

code language-javascript
ADB.Media.trackPlay();

Example

code language-javascript
tracker.trackPlay();
trackPause

Track media pause.

Syntax

code language-javascript
ADB.Media.trackPause();

Example

code language-javascript
tracker.trackPause();
trackComplete

Track media complete. Call this method only when the media has been completely viewed.

Syntax

code language-javascript
ADB.Media.trackComplete();

Example

code language-javascript
tracker.trackComplete();
trackSessionEnd

Track the end of a viewing session. Call this method even if the user does not view the media to completion.

Syntax

code language-javascript
ADB.Media.trackSessionEnd();

Example

code language-javascript
tracker.trackSessionEnd();
trackError

Track an error in media playback.

Syntax

code language-javascript
ADB.Media.trackError(errorId);
table 0-row-3 1-row-3 1-align-left 2-align-left 3-align-center 5-align-left 6-align-left 7-align-center
Variable Name Description Required
errorId Non empty string containing error information Yes

Example

code language-javascript
tracker.trackError("errorId");
trackEvent

Method to track media events.

table 0-row-2 1-row-2 2-row-2 3-row-2 1-align-left 2-align-left 4-align-left 5-align-left 7-align-left 8-align-left 10-align-left 11-align-left
Variable Name Description
event Media event
info For AdBreakStart event, the adbreak information is created by using the createAdBreakObject method. For AdStart event, the ad information is created by using the createAdObject method. For ChapterStart event, the chapter information is created by using the createChapterObject method. For StateStart and StateEnd events, the state information is created by using the createStateObject method. This is not required for other events.
contextData Optional context data can be provided for AdStart and ChapterStart events. This is not required for other events.

Syntax

code language-javascript
ADB.Media.trackEvent(event, info, contextData);

Examples

Tracking AdBreaks

code language-javascript
// AdBreakStart
  var adBreakObject = ADB.Media.createAdBreakObject("preroll", 1, 0)
  tracker.trackEvent(ADB.Media.Event.AdBreakStart, adBreakObject);

// AdBreakComplete
  tracker.trackEvent(ADB.Media.Event.AdBreakComplete);

Tracking ads

code language-javascript
// AdStart
  var adObject = ADB.Media.createAdObject("ad-name", "ad-id", 1, 15.0);

  var adMetadata = {};
  // Standard metadata keys provided by adobe.
  adMetadata[ADB.Media.AdMetadataKeys.Advertiser]  ="Sample Advertiser";
  adMetadata[ADB.Media.AdMetadataKeys.CampaignId] = "Sample Campaign";
  // Custom metadata keys
  adMetadata["affiliate"] = "Sample affiliate";

  tracker.trackEvent(ADB.Media.Event.AdStart, adObject, adMetadata);

// AdComplete
  tracker.trackEvent(ADB.Media.Event.AdComplete);

// AdSkip
  tracker.trackEvent(ADB.Media.Event.AdSkip);

Tracking chapters

code language-javascript
// ChapterStart
  var chapterObject = ADB.Media.createChapterObject("chapter-name", 1, 60.0, 15.0);

  var chapterMetadata = {};
  chapterMetadata["segmentType"] = "Sample segment type";

  tracker.trackEvent(ADB.Media.Event.ChapterStart, chapterObject, chapterMetadata);

// ChapterComplete
  tracker.trackEvent(ADB.Media.Event.ChapterComplete);

// ChapterSkip
  tracker.trackEvent(ADB.Media.Event.ChapterSkip);

Tracking states

code language-javascript
// StateStart (ex: Mute is switched on)
  var stateObject = ADB.Media.createStateObject(ADB.Media.PlayerState.Mute);
  tracker.trackEvent(ADB.Media.Event.StateStart, stateObject);

// StateEnd (ex: Mute is switched off)
  tracker.trackEvent(ADB.Media.Event.StateEnd, stateObject);

Tracking playback events

code language-javascript
// BufferStart
  tracker.trackEvent(ADB.Media.Event.BufferStart);

// BufferComplete
  tracker.trackEvent(ADB.Media.Event.BufferComplete);

// SeekStart
  tracker.trackEvent(ADB.Media.Event.SeekStart);

// SeekComplete
  tracker.trackEvent(ADB.Media.Event.SeekComplete);

Tracking bitrate changes

code language-javascript
// If the new bitrate value is available provide it to the tracker.
  var qoeObject = ADB.Media.createQoEObject(1000000, 2.4, 25, 10);
  tracker.updateQoEObject(qoeObject);

// Bitrate change
  tracker.trackEvent(ADB.Media.Event.BitrateChange);
updatePlayhead

Provide current media playhead to media tracker. For accurate tracking, call this method whenever playhead changes during playback.

Syntax

code language-javascript
ADB.Media.updatePlayhead(time);
table 0-row-2 1-row-2 1-align-left 2-align-left 4-align-left 5-align-left
Variable Name Description
time Current playhead in seconds. For video-on-demand (VOD), the value is specified in seconds from the beginning of the media item. For live streaming, if the player does not provide information about the content duration, the value can be specified as the number of seconds since midnight UTC of that day. Note: When using progress markers, the content duration is required and the playhead needs to be updated as number of seconds from the beginning of the media item, starting with 0.

Example

code language-javascript
tracker.updatePlayhead(13.3);

// For live streams
var UTCTimeInSeconds = Math.floor(Date.now() / 1000)
var timeFromMidnightInSecond = UTCTimeInSeconds % 86400

tracker.updatePlayhead(timeFromMidnightInSecond);
updateQoEObject

Provides current QoE information to the media tracker. For accurate tracking, call this method multiple times when the media player provides the updated QoE information.

Syntax

code language-javascript
ADB.Media.updateQoEObject(qoeObject);
table 0-row-2 1-row-2 1-align-left 2-align-left 4-align-left 5-align-left
Variable Name Description
qoeObject Current QoE information that was created by using the createQoEObject method.

Example

code language-javascript
var qoeObject = ADB.Media.createQoEObject(1000000, 2.4, 25, 10);
tracker.updateQoEObject(qoeObject);
destroy

Destroys the tracker instance.

Syntax

code language-javascript
ADB.Media.destroy();

Example

code language-javascript
tracker.destroy();

Constants

Tracker config

Defines the configuration keys that can be set per tracker instance.

code language-javascript
ADB.Media.TrackerConfig = {
  Channel: "media.channel",
  PlayerName: "media.playerName"
}
Media type

Defines the type of a media that is currently tracked.

code language-javascript
ADB.Media.MediaType = {
  Video: "video",
  Audio: "audio"
}
Stream type

Defines the stream type of the content that is currently tracked.

code language-javascript
ADB.Media.StreamType = {
  VOD: "vod",
  Live: "live",
  Linear: "linear",
  Podcast: "podcast",
  Audiobook: "audiobook",
  AOD: "aod"
}
Standard metadata keys
ADB.Media.VideoMetadataKeys, ADB.Media.AudioMetadataKeys, and ADB.Media.AdMetadataKeys provide the context data key strings for standard metadata. For the full list of keys and their corresponding reporting variables, see the Standard metadata variable reference.
Media events

Defines the type of a tracking event.

code language-javascript
ADB.Media.Event = {
  AdBreakStart: "adBreakStart",
  AdBreakComplete: "adBreakComplete",
  AdStart: "adStart",
  AdComplete: "adComplete",
  AdSkip: "adSkip",
  ChapterStart: "chapterStart",
  ChapterComplete: "chapterComplete",
  ChapterSkip: "chapterSkip",
  SeekStart: "seekStart",
  SeekComplete: "seekComplete",
  BufferStart: "bufferStart",
  BufferComplete: "bufferComplete",
  BitrateChange: "bitrateChange",
  StateStart: "stateStart",
  StateEnd: "stateEnd"
}
Player states

Defines standard values for tracking player state.

code language-javascript
ADB.Media.PlayerState = {
  FullScreen: "fullScreen",
  ClosedCaption: "closedCaptioning",
  Mute: "mute",
  PictureInPicture: "pictureInPicture",
  InFocus: "inFocus"
}
Media resume

Constant to denote that the current tracking session is resuming a previously closed session. This information must be provided when starting a tracking session.

Syntax

code language-javascript
ADB.Media.MediaObjectKey = {
  MediaResumed: "resumed"
}

Example

code language-javascript
var mediaObject = ADB.Media.createMediaObject("media-name", "media-id", 60, ADB.Media.StreamType.VOD, ADB.Media.MediaType.Video);

mediaObject[ADB.Media.MediaObjectKey.MediaResumed] = true;

tracker.trackSessionStart(mediaObject);

ADB.MediaConfig

Key
Required
Description
trackingServer
Yes
Type the name of the media collection API server to which the downloaded media tracking data should be sent. Contact your Adobe account representative to receive this information.
channel
No
Channel name property
playerName
No
Name of the media player in use
appVersion
No
Type the version of the media player application/SDK
debugLogging
No
Enables or disables Media SDK logs (Default value: false)
ssl
No
Sends pings over SSL (Default value: true)
recommendation-more-help
media-analytics-help