Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Panel

On This Page:

Table of Contents
minLevel2

Banner

...

Selection Mechanism.

A knowledge base article on how Revive Adserver 's banner delivery mechanism worksselects which banner to display.

 

...

Zone

...

Level Invocation

The following described describes the banner delivery selection mechanism for zone-based 

Option 1: Use the Asynchronous or iFrame Tags

Probably the easiest way to prevent Revive Adserver banners from blocking the loading of website content is to use one of the two zone invocation tags that natively load asynchronously - the Asynchronous JS Tag and iFrame Tag.

These two zone level invocation tags are simple to use - simply generate the tag(s) for the zone(s) you want to display banners for, and put the tags into your HTML content where you want the banners to appear. That's it - the banners will be loaded asynchronously.

Option 2: Use the Single Page Call Tag

Technically, the Single Page Call tag is a blocking tag - it is not loaded asynchronously. However, SPC is delivered in two parts - firstly, a JavaScript script that (with a little configuration) efficiently gets all the banners you need for a page in one HTTP request (so, it is much more efficient than loading each banner with a separate request), and then a number of separate JavaScript scripts to place each banner's HTML content into the page.

So, while on its own, the Single Page Call tag isn't technically a non-blocking way of loading banners, you may want to consider if using it is easier than using Asynchronous JS Tags or iFrame Tags (if you have many banners per page) and/or if it is efficient enough that you don't actually need to use an asynchronous loading mechanism.

Option 3: Bottom Loading & CSS Positioning

The final option for non-blocking loading is, again, technically not an asynchronous mechanism. However, if you feel that the Asynchronous JS Tag or iFrame Tag types are not for you, and the Single Page Call tag isn't good enough - or you need to use one of the other zone invocation tag types for any number of other valid reasons - then putting the tag(s) at the very bottom of the page's HTML, and positioning the content via CSS, may be your best option.

Although the web browser will still show that it is loading the page until all of the banners have been loaded (hence it not being a truly asynchronous mechanism), by taking this approach, all of the "main" website content will at least be loaded first, with the banners being loaded at the end. Given that this is the whole purpose of the truly asynchronous approach, using an approximation in this way may be a viable alternative.

Notes

Please see the troubleshooting guide on Requests Higher than Impressions. The use of asynchronous loading of banner content, while perhaps "obviously" a good thing, can potentially have unintended consequences on the number of banner impressions recorded, especially if your Revive Adserver installation is underpowered (or not tuned) to handle serve the volume of banner impressions requested of itwhen using zone invocation tags or website invocation tags.

Step 1: Zone Capping Rules Applied

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.

Info

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.

(warning) 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).