Playlist Generation
On this page, we describe how Broadsign Control Player automates playlist creation.
Broadsign Control Player generates a playlist by ensuring all campaign specifications are met according to the rules specified in the loop policy.
A deeper understanding of this function will help you get the most out of the playback engine.
Broadsign Control Player creates the playlist in the following order:
- The player visits each campaign in the loop and lists a schedule.
- From the listed schedule, the player extracts an ad copy bundle. It is at this level that the software executes upon slot schedules and slot rotations.
- The player performs ad copy criteria matching to select the best content choice from the bundle.
- The previous three steps result in a playlist of ad copies. The software filters the playlist through loop transformation rules, as specified in the loop policy (see Loop Policy Transforms). The possible filters are:
- Category Separator
- Condition
- Exclusive Loop Preprocessor
- Loop Preprocessor
- Loop Segments
- Loop Slot Filler
- Manual Adjustments
- Over-saturation Loop
- Preemption
- Program
- Random Loop Slot Filler
- Under-saturation Loop
Slots are either created manually in a frame or in batch through the campaign wizard. Different content may play depending on the time of day, the day of the week and the day of the month. To program what content plays when, associate the ad copy to the desired schedule. When building the playlist from its slots, Broadsign Control Player will only take into account ad copy bundles that are in schedules that are in effect at the current moment in time.
It is possible to schedule a rotation of content in a slot in a way that each time the player visits a slot while playing the loop, it will play the next item in the rotation. You can perform rotations in two ways in Broadsign Control Administrator:
- Place multiple ad copy bundles on the same schedule. The bundles will then rotate and playback in an undefined order.
- Place multiple schedules with specific weighting in a campaign. The ad copy bundles in those schedules will rotate in ascending order by the schedule weight, e.g., schedule weight '0' will play before schedule weight '100', etc.
If you wish to book a campaign across a heterogeneous network of displays, one which would require multiple different versions of the same ad copy to satisfy all its media requirements, then you wish to use ad copy criteria matching. This is performed by adding multiple ad copies to an ad copy bundle, one for each media requirement, and to set appropriate criteria to match ad copies to requirements.
For example, a campaign may be targeted to 3 different aspect ratio displays:
- 16:9 Wide-screen
- 4:3 Normal
- 4:3 Anamorphic (stretches across a 16:9 display)
If you were to schedule the same file to all these players, it may fit perfectly on one of them, but it would be distorted on the others. The solution here is to create one criterion for each aspect ratio and to assign them to the appropriate display units or frames. You would then create one ad copy for each aspect ratio and you would also set the criteria for these ad copies. When you schedule the three ad copies in an ad copy bundle, the player will match the criteria on its display unit with that of the ad copy to decide which ad copy to download and play.
Ad copy criteria matching operates using a “best fit” strategy, meaning that the ad copy that best matches the display unit or frame criteria will be played. Even if an ad copy has no matches with the display unit, it might still be displayed if there are no other, better matches in the bundle.
Broadsign Control Player filters your playlist through loop transformation rules, as specified in the loop policy (see Loop Transformation Tab).
Category separation ensures that ad copy bundles of the same category do not play back to back. This is key to automating playlist creation by spacing out editorial content, competitive ads, and even ads from the same advertiser.
For more information, see Use Category Separation.
In cases where not only it is required to separate competing ads but it is also desired to separate them from other items in different categories judged inappropriate to be adjacent (i.e. separate car ads, but also separate cars from alcohol ads, and both cars and alcohol ads from prescription drugs), it is possible to implement secondary levels of separation.
In these cases, the secondary-level separation works by first determining the precedence level of the secondary categories with a count, and then proceeding to swap slot positions only if primary and any preceding secondary separation are not violated.
The separation precedence is determined as follows:
- The primary separation category for all campaigns in the loop takes precedence over any secondary categories that have been assigned. Any re-ordering to accommodate secondary categories can only take place if primary category separation is not degraded.
-
For the secondary separation to work, the primary separation of the campaigns must be in the other's list, either as primary or secondary separation. To determine if campaigns will be separated, Broadsign Control Administrator compares the list of separation categories in a campaign only with the primary separation categories of other campaigns.
- The relative importance of the secondary categories is dynamically determined by how many items in the loop have a particular secondary category. The more a secondary category is present in the loop, the higher the precedence of that secondary category.
Note: As with regular category separation, if a loop contains more than 50% of slots that have the same primary/secondary separation rules it will not be possible to avoid adjacent playback. The more secondary categories assigned the more likely this is to happen.
For more information, see Use Category Separation.
This transformation is designed for use with conditions. Conditions are criteria that are set on the campaign or the bundle that must be met in order for the associated content to play. This transformation is responsible for removing playlist items that do not have appropriate conditions set.
The exclusive loop preprocessor transform will only insert the complete set of ad copies from the playlist once they have all been downloaded and are present on disk. This transform eliminates a partial playlist from appearing on the player.
When used as part of a loop's transformations, exclusive loop slot filler will remove all filler content from future loops when a scheduled ad copy is downloaded and on disk. When used together with Exclusive Preprocessor this strategy plays only filler content until the entire list of ad copies are downloaded and present on disk of the player.
Note: Filler content is unable to respect triggers (synchronization), e.g., Frame Synchronization. If you would like to synchronize filler content, use the same ad copies in a pre-emptible campaign, instead.
The preprocessor removes all ad copies from the loop that are not yet downloaded and on disk.
Since the preprocessor is performed after ad copies are extracted from the slots, a slot rotation that is missing one or more files on disk will lead to the slot being omitted from the loop for some iterations.
Filler slots are added to the loop based on the loop policy using the following formula:
(Loop Policy’s Loop Duration) - (Actual Duration of Loop) = Default Slot Duration
Using the same process as slot rotation, loop policy schedules are then sourced to produce content to fill those filler slots. If there are not enough unique Ad Copy Bundles to fill in all the filler slots, then Broadsign completes the loop by repeating the filler content that is available.
Since all the filler slots are of the same length (the default slot duration), the content strategy should take into account all filler ads being of the same duration.
Note: Filler content is unable to respect triggers (synchronization), e.g., Frame Synchronization. If you would like to synchronize filler content, use the same ad copies in a pre-emptible campaign, instead.
You can create a campaign that reserves multiple slots in the same loop. This is called over-saturation and is described as multiple plays per loop. You can also create a campaign that reserves partial slots where the slot can be shared by multiple campaigns. This is called under-saturation and is described as multiple loops per play.
This strategy will select ad copies at random from the default loop policy schedules present in a loop policy's properties. Any ad copy from any schedule will be selected for playback. This feature randomizes the order of filler content that is selected to be played back in a loop.
Note: Filler content is unable to respect triggers (synchronization), e.g., Frame Synchronization. If you would like to synchronize filler content, use the same ad copies in a pre-emptible campaign, instead.
Category segmentation is the complement to category separation where you can set a specific weight to all the ads in the loop. You use categories to create a playlist template, i.e. define your segments and their relative order. You then add ad copy bundles to segments by setting a segment category and you can weight the order of ads within a segment by setting a weight on the ad copy bundle.
For more information, see Use Category Segmentation.
It is possible to use the category separation and segmentation transforms together in a loop. The resulting effect will have the bundles with a category appearing in between segmented bundles for a television-like display of content.
The Share of Loop feature allows network operators to apply contractual or planning quotas to a loop policy, splitting it up.
The player will intelligently increase or decrease playback of each type of content to meet the quota. We achieve this by making one category of content the primary, normally “advertising”; then, the player adjusts the other categories of content.
For more information, see Share of Loop.
Note: Share of loop disables certain other loop transforms. If you enable share of loop, and navigate to Settings > Loop Transformation in the loop policy properties, incompatible loop transforms will appear greyed out. Also, a note appears saying "Incompatible with share of loop".