Search
Clear search
Close search
Google apps
Main menu
true

  Not available in DFP Small Business.

Target ad breaks with SCTE-35 signals

DFP supports broadcast standard SCTE-35 signals for Dynamic Ad Insertion on live stream content. This allows you to use metadata from SCTE-35 markers to perform break-level ad targeting (for example, the first break in live sporting event).

While the SCTE-35 specification has many use cases, DFP supports the following two commands, for ad insertion:

  1. splice_insert: a simple ad break start and end like EXT-X-CUE-OUT and EXT-X-CUE-IN
  2. time_signal: can include arbitrary metadata or ad break ownership information, such as local versus national. Metadata is embedded in what is called a segmentation descriptor.

Requirements and restrictions


  • Your stream should conform to all live stream requirements, including OUT and IN cuepoints.
  • Only one command type is used: time_signal or splice_insert.
  • Markers are encoded in the playlist in base64 format as the only attribute of the EXT-OATCLS-SCTE35 tag.

If there are multiple markers on the same cue-point, only the first is used.

SCTE-35 cue-out markers occur on the same segment as the EXT-X-CUE-OUT. This means that segments are split at the ad break boundary and the SCTE-35 message occurs at the exact moment of cue-out.

SCTE-35 markers occur either at cue-out only, or at cue-out and cue-in. Overlapping or nested ranges of SCTE-35 markers are not supported.

SCTE-35 messages are not yet supported for video on demand.

See an example

The SCTE-35 message is binary so the representation in the manifest is encoded base64.


#EXT-OATCLS-SCTE35:/DAvAAAAAAAAAP/wBQb/ftuzOAAZAhdDVUVJAAAABX/PAABSZcABAwEjRTIAAMn60f4= 
#EXT-X-CUE-OUT:60.003

#EXTINF:4.638,
master_1000/00013/master_1000_00902.ts
[...]
#EXTINF:5.339,
master_1000/00013/master_1000_00908.ts
#EXT-OATCLS-SCTE35:/DAvAAAAAAAAAP/wBQb/fy4aJwAZAhdDVUVJAAAABX/PAABSZcABAwEjRTMAAHxwMag= #EXT-X-CUE-IN
#EXTINF:4.671,

master_1000/00013/master_1000_00909.ts
[...]

In this example, the encoder has generated the HLS markup and you can see the existing EXT-X-CUE-OUT and EXT-X-CUE-IN markers, plus additional EXT-OATCLS-SCTE35 that includes the SCTE-35 message as an attribute. DFP assumes the following about how the encoder renders the in-band SCTE-35 message:

  • For splice_insert, the splice_event_id field is used for ad targeting. For time_signal, either the unique_program_id (converted to a string) or the splice_event_id fields are used.
  • All feeds indicate return to content through EXT-X-CUE-IN, not a return or end SCTE-35 command.
  • The ad break duration is always extracted from EXT-X-CUE-OUT, not the SCTE-35 message.
  • Commands do not overlap.

DFP does not currently support markup syntax for SCTE-35 other than EXT-OATCLS-SCTE35.

Enable SCTE-35 for Dynamic Ad Insertion on live stream content

If your feed includes EXT-OATCLS-SCTE35 markup, the metadata is automatically extracted and made available through custom key-values. You need to set up the custom key-values, and insert them as macros when you generate ad tags.

When you set up the new custom key-values for the SCTE-35 fields, use a custom key (for example, "scte35") and set the value to the macro(s) that correspond to which type of field is available in your feed:

  1. %%SPLICE_INSERT_EVENT_ID%%
  2. %%SPLICE_INSERT_UPID%%
  3. %%TIME_SIGNAL_EVENT_ID%%
  4. %%TIME_SIGNAL_UPID%%

The first three macros, which are unsigned integers in the SCTE35 message, are converted to strings as decimal numbers. Also, %%TIME_SIGNAL_UPID%% is rendered as lowercase hexadecimal, with no 0x prefix.

Was this article helpful?
How can we improve it?
false