Ad break start

The ad break start event signals the beginning of an ad break. An ad break is a sequence of one or more ads. Every adStart, adComplete, and adSkip event must occur between an adBreakStart and adBreakComplete pair, even when a single ad plays.

IMPORTANT
Ad events (adStart, adComplete, adSkip) are ignored without adBreakStart and adBreakComplete bookends. Without them, the ad duration is attributed to main content duration, which affects aggregated reporting data.
Web SDK

Call sendEvent with eventType: "media.adBreakStart" and the required advertisingPodDetails:

code language-javascript
alloy("sendEvent", {
  xdm: {
    eventType: "media.adBreakStart",
    mediaCollection: {
      advertisingPodDetails: {
        friendlyName: "pre-roll",
        index: 1,
        offset: 0
      },
      sessionID: "{sid}",
      playhead: 0
    }
  }
});
iOS

Pass the ad break name, position, and start time to createAdBreakObject, then call trackEvent.

code language-swift
let adBreakObject = Media.createAdBreakObjectWith(name: "pre-roll",
                                              position: 1,
                                             startTime: 0)

tracker.trackEvent(event: MediaEvent.AdBreakStart, info: adBreakObject, metadata: nil)
Android

Pass the ad break name, position, and start time to createAdBreakObject, then call trackEvent.

code language-kotlin
val adBreakObject = Media.createAdBreakObject("pre-roll",
                                              1,
                                              0)

tracker.trackEvent(Media.Event.AdBreakStart, adBreakObject, null)
Roku

Call sendMediaEvent with eventType: "media.adBreakStart" and the required advertisingPodDetails:

code language-brightscript
m.aepSdk.sendMediaEvent({
    "xdm": {
        "eventType": "media.adBreakStart",
        "mediaCollection": {
            "advertisingPodDetails": {
                "friendlyName": "pre-roll",
                "index": 1,
                "offset": 0
            },
            "playhead": 0
        }
    }
})
Media Edge API

Call the adBreakStart endpoint with the required advertisingPodDetails:

code language-sh
curl -X POST "https://edge.adobedc.net/ee/va/v1/adBreakStart?configId={datastreamID}" \
--header 'Content-Type: application/json' \
--data '{
  "events": [{
    "xdm": {
      "eventType": "media.adBreakStart",
      "mediaCollection": {
        "sessionID": "{sid}",
        "playhead": 0,
        "advertisingPodDetails": {
          "index": 0,
          "offset": 0
        }
      },
      "timestamp": "YYYY-08-20T22:41:40+00:00"
    }
  }]
}'

Legacy implementation types (Analytics-only)

Media SDK JS 3.x

Pass the ad break name, position, and start time to ADB.Media.createAdBreakObject:

code language-javascript
var adBreakInfo = ADB.Media.createAdBreakObject(
  "pre-roll",  // name
  1,           // position
  0            // start time (seconds)
);

tracker.trackEvent(ADB.Media.Event.AdBreakStart, adBreakInfo, null);
Chromecast

Pass the ad break name, position, and start time to ADBMobile.media.createAdBreakObject:

code language-javascript
var adBreakInfo = ADBMobile.media.createAdBreakObject(
  "pre-roll",  // name
  1,           // position
  0            // start time (seconds)
);

ADBMobile.media.trackEvent(ADBMobile.media.Event.AdBreakStart, adBreakInfo);
Media Collection API

Send an adBreakStart POST to the events endpoint:

code language-json
{
  "playerTime": { "playhead": 0, "ts": 1699523820000 },
  "eventType": "adBreakStart",
  "params": {
    "media.ad.podFriendlyName": "pre-roll",
    "media.ad.podIndex": 1,
    "media.ad.podSecond": 0
  }
}
recommendation-more-help
media-analytics-help