Delivery Logic

Ad Forecaster is provided with a default delivery algorithm that tries to fulfill most use cases.

Impression Limit

While creating a campaign there are multiple attributes that can limit the delivered impressions:

  • impressions: sets a maximum number of impressions to be delivered by the campaign in its lifetime;
  • dailyCap: sets a maximum number of impressions to be delivered by the campaign per day;
  • frequencyCap: sets the impression limit per user and time period (e.g. a user can only see this campaign at most 2 times per hour).

Frequency caps can be applied across multiple campaigns using frequency groups.

Priority and Weight

Campaigns have a priority and a weight.

The weight value of each campaign is the probability of the campaign being considered for delivery. A campaign with a weight of 75 will have a 25% chance that the impression will not be delivered, even if there are no competing campaigns.

After randomly discarding campaigns based on their weight, if two campaigns with different priorities are competing for an impression, the campaign with the highest priority will always be the one to be delivered. If two or more competing campaigns have the highest priority, one of them is chosen randomly.


While defining a campaign it is possible to set the retargeting parameter with a list of IDs of the campaigns to retarget. This means that this campaign will only deliver to users who have seen at least one impression from each of the campaigns in the retargeting list.

Delivery Schedule

The campaign’s delivery schedule can be defined with the deliverySchedule attribute. There are three types of delivery schedules asap, even, frontloaded.

ASAP Delivery

By default, every campaign is delivered with an asap schedule, which means that it will try to deliver as much impressions as possible.

Even Delivery

Campaigns with an even schedule will estimate the future impression distribution and deliver impressions in an evenly fashion during the campaign’s lifetime. For example, a campaign that lasts 31 days with a 1 000 000 impression goal will attempt to deliver 1 000 000 / 31 = 32258 impressions per day.

Note that campaigns with an even schedule will still behave as asap for a short period of time, in order to estimate the required impression distribution.

Frontloaded Delivery

The frontloaded delivery schedule also has an associated percentage field to define the frontloaded percentage.

This strategy works in a similar fashion to the even schedule, however, it will attempt to deliver an extra percentage of impressions on each day. That is, if the even schedule would attempt to deliver goal/days impressions per day, the frontloaded schedule would attempt to deliver goal/days * (1 + percentage/100).

The following image shows an example of a campaign with a 1 000 000 impression goal that needs to be delivered in 31 days with different frontloading percentages.


In the picture above it is observable an increased delivery during the first day, which is a result of the delivery strategy algorithm optimizing itself to the available inventory.