How ScreenSoft builds the advertising loop
First understand the three content types, then the hourly media space, and finally how ScreenSoft decides what to play next.
First: three types of content
Commercial campaign = scheduled plays. You define how many times per hour it should be shown. ScreenSoft distributes those plays across the hourly cycle and makes sure the campaign is inserted when its planned time arrives.
Non-commercial campaign = content for free space. When no scheduled commercial play is due, ScreenSoft can fill the remaining media space with suitable non-commercial content.
Default Visual = fallback. If no commercial play is due and no suitable non-commercial content is available, ScreenSoft shows the company Default Visual.
Simply put: commercial content has scheduled plays, non-commercial content fills free space, and the Default Visual is the fallback.
How hourly media space is calculated
ScreenSoft calculates media space in an hourly cycle. 1 hour = 3,600 seconds = 100% of the media space. Every play consumes the amount of this capacity equal to the duration of the visual that is actually played. If campaigns together use all 3,600 seconds, the hourly capacity is 100% full.
Example: each campaign has its own schedule
Each commercial campaign is calculated independently according to its own number of plays per hour. The example below shows three independent schedules. It is not yet the final playlist order.
The concrete example below assumes a 10-second playback duration for campaigns A, B and C. Ten seconds is only an illustrative value – ScreenSoft calculates with the actual configured duration of each campaign.
How the three schedules become one playlist
ScreenSoft combines the planned points of all active commercial campaigns into one playback order. The gaps can be used by the loop for suitable non-commercial content. If several planned points coincide, the system has to place them one after another; a visual already playing is not interrupted mid-play.
Now two important rules make the mechanism clear
Example: commercial campaign A is set to 10 plays per hour and its visual lasts, for example, 10 seconds. One hour contains 3,600 seconds, so the basic spacing of its planned plays is exactly 3,600 ÷ 10 = 360 seconds = 6 minutes. Campaign A therefore receives planned points within the hour (for example 00:00, 06:00, 12:00, 18:00…). When its planned time arrives, campaign A must be inserted into playback; this is more than a general priority. The same calculation is performed independently for every other commercial campaign B, C, and so on. A visual that is already playing is not interrupted in the middle.
If it is not currently the time when any commercial campaign must be inserted into the 3,600-second hourly loop, the system fills the available space with non-commercial content. For this selection, both a campaign marked non-commercial only and a campaign marked commercial and non-commercial count as non-commercial. “Suitable” also means that it can be played at that moment without breaking the advertising-loop rules – for example, so that the same campaign does not play twice immediately in a row or so that the required spacing between campaigns is maintained.
What does the system play next?
This process repeats after every visual finishes. Always read it from top to bottom.
Safety reserve for commercial-only campaigns
Example 1: only one commercial campaign
Campaign A is commercial only. There are no non-commercial campaigns. Between commercial impressions, the system therefore repeats the company Default Visual.
Example 2: commercial + non-commercial content
Whenever no commercial impression is due, the system fills the time with non-commercial content. Non-commercial content is not randomly drawn: the system keeps a rotating list and cycles through suitable campaigns.
Example 3: one campaign is both commercial and non-commercial
This is an important special case. The same campaign A belongs to both pools. ScreenSoft also tracks the group of the last campaign played. It therefore does not leave A running continuously: if A would immediately follow itself, another permitted item is inserted; if none exists, the Default Visual is used.
Why can an ad still sometimes appear twice in a row?
ScreenSoft prevents the same campaign from immediately following itself. After every item, its group is temporarily restricted and the next selection looks for another permitted item; if none exists, the Default Visual is used. If a client sees two visually identical creatives in a row, first verify whether the same media file is being used by two different campaigns/groups. The algorithm also validates the transition between the end and the beginning of the hourly loop.
How non-commercial rotation works
- The system first looks for a non-commercial item whose scheduled time has already arrived and which does not violate current restrictions.
- If none is available, it takes the first permitted item from the rotating list. The used item is moved to the end of that list.
- If campaign-separation rules prevent every non-commercial item from being used, the Default Visual is inserted.
Other rules that affect the final loop
- Campaign validity, days and time windows determine whether a campaign is available at all.
- Excluded days remove a campaign from that playlist.
- Campaign separation rules can prevent selected campaigns from following each other directly.
- The duration of each visual advances the next decision time. A visual is not cut off because a commercial time point has just been reached.
- Dynamic Visuals are selected inside the chosen campaign according to conditions, time, weather and the configured rotation mode.
- At the end of the hourly loop, the system resolves any remaining commercial impressions and validates the last-to-first transition so campaign separation is respected.
Longer interactions in IMPRESSION mode
In IMPRESSION mode, you specify the number of plays per hour. If interaction lasts longer than the scheduled item, subsequent plays of that campaign may be affected depending on configuration.
Example: with a 10-second item and a 27-second game, REDUCE_IMPRESSIONS calculates two future opportunities to skip the same campaign (integer division 27 ÷ 10 = 2), when this mode applies. This does not automatically mean two lost visible impressions or skips of other campaigns. The exact effect on other ads and any make-up playback has not been confirmed by an integration test.
How to check the actual result on a device
The resulting planned playlist can be downloaded directly from the device detail. The export shows the order and calculated times of campaigns; the specific visual within a campaign may be selected only at actual playback time.
Checking the device playlist →
In one sentence
Contact ScreenSoft support at support@screensoft.org
