Zones may be capped, to display a certain number of impressions in total, or per session, to any given user, with or without a reset of the counters after a certain amount of time.
In the event that a zone's capping rules prevent the zone from displaying, then no banners will be displayed for the zone - in which case, Revive Adserver will skip ahead to Step 4 below.
Step 2: Select All Banners
Next, Revive Adserver retrieves all banners which can potentially be displayed in the zone, based on a cache of which banners are linked to the zone.
The cache is updated periodically - but may mean, depending on the Revive Adserver configuration and deployment, that some changes to banner/zone links in the user interface take a little while before appearing.
Step 3: Campaign Type Iteration
Next, Revive Adserver iterates over the possible banners by campaign type.
Specifically, Revive Adserver follows the process below, in the following order:
Inspection of banners from Override campaigns; then
Inspection of banners from Contract campaigns; then
Inspection of banners from Remnant campaigns.
This process ensures that if (for example) there are banners from all three types of campaign linked to a zone, then, if it is possible to deliver a banner from the Override campaign, then that will happen.
Step 3.1: Invalid Banners Discarded
For the banners which could potentially be displayed, from all of the campaigns of the campaign type being considered, any invalid banners which cannot be displayed are excluded. Specifically:
If the invocation tag is not the first on the page (and where supported), then if any banner from a campaign where companion positioning has been enabled has already been selected for display, then all banners from all other campaigns will be excluded. That is, only banners from the same companion positioning campaign will be able to be displayed.
Revive Adserver forces the expiration of any campaigns, so that banners from any campaigns that have just passed their end date are excluded, even if scheduled maintenance has not run yet.
A list of excluded and included items is checked. Specifically:
A list of excluded banners, campaigns and advertisers are checked.
Any banner in the excluded banners lists will be excluded.
Any banner in a campaign that is in the excluded campaigns list will be excluded.
Any banner in a campaign, in an advertiser that is in the excluded advertisers list will be excluded.
A list of included banners and campaign are checked.
If the included banners list is set, then any banner not in the included banners list will be excluded.
If the included campaigns list is set, then any banner not in a campaign in the included campaigns list will be excluded.
The list of excluded and included items is taken from the context of the banner delivery. That is:
There are some specific UI options to control the context. For example:
It is possible for banners to be added to the excluded banners list when the banner has previously been shown on a page, and the banner request is on the same page via an invocation tag with the "don't show the banner again on the same page" option set.
It is possible for campaigns to be added to the excluded campaigns list when any banner from that campaign has previously been shown on a page, and the banner request is on the same page via an invocation tag with the "don't show a banner from the same campaign again on the same page" option set.
It is possible for advertisers to be added to the excluded advertisers list when any banner from any campaign in that advertiser has previously been shown on a page, and the advertiser "display only one banner from this advertiser" property has been set.
However, it is also possible to control the context via URL or API parameters.
As with zones, banners may be capped, to display a certain number of impressions in total, or per session, to any given user, with or without a reset of the counters after a certain amount of time. In the event that a banner's capping rules prevent the banner from displaying, then the banner will be excluded.
If the zone invocation tag is being called over HTTPS, then any HTML banners which are not safe to be displayed over HTTPS will be excluded (to prevent HTTPS/HTTP mixed content warning messages).
Banners can be configured with a number of different Delivery Rules. These delivery rules are checked, and any banners which would fail their delivery rules are excluded.
At this point, it is possible that there are no remaining banners available to be displayed for the campaign type being considered. In this case, Revive Adserver considers the next type of campaign. If there are no further campaign types to consider, then Revive Adserver skips ahead to Step 4 below.
Step 3.2: Banner Selection
At this point, Revive Adserver has determined that there is at least one banner from the campaign type being considered which it is valid to display.
If there is only one such possible banner, then it is displayed.
If there are two or more such possible banners, then Revive Adserver calculates the relative desired delivery probability of the remaining banners, generates a random number, and selects a banner based on this random number.
Revive Adserver selects a banner based on the relative desired probability of the remaining banners to ensure that, of the banners that it is possible to deliver, one of these banners will definitely be delivered.
However, this means that, where banners in a zone are regularly excluded from being displayed in Step 3.1 above, the actual relative delivery distribution in any given zone may end up being quite different from the apparent desired delivery distribution as shown in the zone's probability tab.
Be careful with how highly capped or limited banners can affect delivery!
Step 4: Zone Chaining
In the event that, after all of the above, no banner has been selected for display, then Revive Adserver will check if there is zone chaining in place. If so, then Revive Adserver will go to the next zone in the chain, and start the process from Step 1 above, with the new zone.
Step 5: Default Banner
In the event that Revive Adserver has not selected any banner to display at the end of all zones that have been considered, then Revive Adserver will display the default banner, if configured.
Otherwise, no banner will be displayed (i.e. a blank impression).