Ad Pacing (Goals)
Overview
Ad pacing, or goals, refers to the automatic balancing of impressions for a Flight or Ad so that the campaign hits a desired metric over the course of its lifetime.
For instance, if you've negotiated a 30M impression deal with an advertiser over the month of June, Kevel's Ad Decision Engine will show the ad for 30M impressions over 30 days and throttle the campaign so that it shows the ads evenly each day, or ~1M impressions a day.
This is an automated, constantly-updating feature that helps ensure your advertisers hit their goals.
NotesKevel's pacing algorithm will attempt to deliver 100% of goal over the desired time period. The actual goal achieved can vary by +/- 5%, due to varying amounts of request traffic. Also, please bear in mind that very small goals, e.g. $10 Revenue or 100 clicks, can exceed goal by a large percentage during high traffic scenarios.
Ad Goals are different from Ad Caps. You use Ad Goals to pace ads evenly over time. It involves complex logic and intra-day adjustments. Ad Caps, on the other hand, don't use logic. They'll just turn off an ad if it hits the cap.
Choosing a Goal Type
Most setups only need one of these. Find the row that matches what you sold, and follow the link for the detail.
| If you sold... | Use | Notes |
|---|---|---|
| A number of impressions by a date | Impressions | The most common goal type. Requires an End Date. |
| A number of clicks by a date | Clicks | Paced against recorded clicks, so delivery depends on CTR. |
| A number of conversions by a date | Conversions | Requires conversion tracking to be set up. |
| A fixed budget over a fixed period | Revenue | Requires an End Date. See Revenue Goals. |
| A budget to spend per day, indefinitely | Daily Revenue | Resets at midnight. Use without an End Date. See Revenue Goals. |
| A budget to spend per month | Monthly Revenue | |
| A share of available inventory, not a number | Percentage | Sets ad weight directly, with no pacing adjustments. See Percentage Goal Behavior. |
If you need a hard cutoff rather than even pacing, you want Ad Capping instead of a goal.
What You Can Pace Against
You set Goals at the Flight level, and can override them per Ad. For more information on how to set them, see Flights.
When setting a goal through the API, GoalType takes one of the following values:
GoalType | Goal Type | Paces against |
|---|---|---|
1 | Impressions | Recorded impressions |
2 | Percentage | A share of the lottery, set directly as weight |
3 | Click | Recorded clicks |
7 | Conversion | Recorded conversions |
8 | Revenue | Total revenue earned by the End Date |
9 | Daily Revenue | Revenue earned per day |
10 | Monthly Revenue | Revenue earned per calendar month |
NoteRevenue goals are also available on Flights set to auction bidding.
Auto-Balancing
Auto-balancing is the process of dynamically reallocating a flight's goal among the ads within a flight. Ads in a flight will use the overall flight goal to determine whether or not they should continue serving. For example, given a flight with 3 ads and an impression goal of 1000 impressions, all 3 ads have an opportunity to serve throughout the lifetime of the flight. If, for example, 2 out of the 3 ads included additional targeting that limited their eligibility for selection, the 3rd ad without additional ad level targeting could pick up the slack. This avoids the potential under delivery that would otherwise occur because of those ad level targeting restrictions.
By default, every new ad you create in a flight uses auto-balancing. You can also change the ad distribution settings.
Percentage Goal Behavior
Percentage goals allow you to directly set the weight of the ads in a flight. The weight in a lottery priority is "how many lottery balls" in the lottery a given ad has. The more lottery balls the ad has, the more likely it will be served in a decision. Each lottery priority contains its own set of lottery balls.
Other goal types like Impressions, Clicks, Daily Revenue, etc. use adjustments in the engine to set and reset the weight of ads. These adjustments happen behind the scenes to keep the ads on target to meet their performance goals (like a certain amount of clicks) by their end date.
Percentage goals use no such adjustments. The percentage goal directly translates to the weight of the ad. This is useful if you have no performance targets, if you want to regulate the pacing of flights manually, or if you want an even distribution of flights in the lottery priority.
For example:
- Setting three flights in a priority with a goal of Percentage:100 will give these flights an equal number of lottery balls in the lottery.
- Setting a single flight in a priority with a goal of Percentage:50 will give the flight 50% of the lottery balls it needs to be eligible for every decision. This means that in 50% of lotteries the decision will fall through to the next priority.
- Setting two flights in a priority with Percentage:100 and one flight with Percentage:200 will cause the latter flight to serve twice as often as the former flights since it has double the weight (lottery balls). This translates to the latter flight eligible for 50% of decisions in the priority and the former two eligible for 25% each.
Bear in mind that targeting, capping, etc. influence selections in a lottery priority beyond percentage goals. Therefore, percentage goals will not necessarily translate into the percentage of flights served in a priority.
Percentage goals behave somewhat differently depending on priority type:
| Priority Type | Percentage Goal Behavior |
|---|---|
| Lottery | The goal translates directly to weight (number of lottery balls) |
| Auction | The goal is the probability the ad will bid in the auction |
Revenue Goals
Revenue goals balance the impressions a flight or ad serves so that it earns a specific amount of revenue, either by its End Date or per day.
There are two types of revenue goals:
-
Revenue goals (
GoalType8): Sets the amount of revenue a flight or ad should earn before its End Date. An End Date is required. -
Daily Revenue goals (
GoalType9): Sets the amount of revenue a flight or ad should earn per day, in the time zone of the flight (or UTC if no time zone is set). A daily goal resets at midnight.
When To Use Revenue Goals vs. Daily Revenue
If your flight has a fixed budget over a fixed period, we recommend using a Revenue Goal with an End Date. (You can additionally limit how much revenue that flight should generate per day by applying a daily Budget Cap.)
You should use a Daily Revenue goal if your flight needs to serve indefinitely and you expect it to generate roughly the same amount of revenue per day. We recommend using the Daily Revenue goal type without an End Date. If you need to limit the total budget of the flight, we recommend applying a lifetime Budget Cap instead.
| Condition | Recommended Goal |
|---|---|
| Fixed budget | Revenue |
| Fixed time period (has an End Date) | Revenue |
| No fixed time period | Daily Revenue |
| No fixed budget | Daily Revenue |
How Daily Revenue Goals Work
Unlike other goal types, Daily Revenue goals are day-based: instead of balancing ads in order to achieve a lifetime goal, we balance them to achieve a daily goal. We do this by calculating the total revenue the daily goal will generate per calendar month and then pacing the ad to hit the daily goal on each day of that month.
NoteBecause End Dates are optional, Daily Revenue goals use months to prevent daily over-serving or under-serving. Months have varying numbers of days, so not every month's total revenue will be the same.
The Daily Revenue goal amount is calculated by determining the accrued revenue to date and adding this to the days remaining in the month multiplied by the current daily revenue goal.
(the accrued revenue to date) + (days remaining in the month * current daily revenue goal)
CautionDaily Budget Caps do not work properly with Daily Revenue Goals because the flight is already effectively capped per day. Instead, consider using a Revenue Goal with Daily Budget Caps if you need a hard cutoff of revenue per day.
Setting Up Goals - API
The two fields are the same for every goal type: GoalType selects the metric, and a second field carries the amount. The name of that second field differs between Flights and Ads:
| Level | Endpoint | Goal type field | Goal amount field |
|---|---|---|---|
| Flight | Create Flight | GoalType | Impressions |
| Ad | Create Ads | GoalType | Goal |
CautionOn Flights the goal amount field is called
Impressionswhatever the goal type. Set it to the number of clicks, conversions, or the budget amount as appropriate. It is not limited to impression goals.
On the Flight Level (API)
When Creating a Flight:
- Set
GoalTypeto the value for your metric, from the table above - Set
Impressionsto the goal amount
For example, a $5,000 budget to be spent by the flight's End Date:
{
"GoalType": 8,
"Impressions": 5000
}On the Ad Level (API)
When Creating/Editing an Ad, set the Ad's Distribution to override the Flight, then:
- Set
GoalTypeto the value for your metric, from the table above - Set
Goalto the goal amount
Setting Up Goals - UI
On the Flight Level (UI)
- Create a new Flight
- In the Goal Type dropdown, choose the metric you want to pace against
- In the Goal field, enter the goal amount (in dollars for revenue goals)
- Save
On the Ad Level (UI)
- Add a New Creative/Ad
- In the Distribution dropdown under "Delivery Settings", select "Override"
- In the Goal Type dropdown, choose the metric you want to pace against
- In the Goal field, enter the goal amount (in dollars for revenue goals)
- Save
How Pacing Works Under the Hood
Goals are delivered by continually adjusting each ad's weight and running lotteries to decide which ads may serve or bid. If you are troubleshooting delivery, or want to understand why a particular ad won or lost, see How Pacing and Balancing Work.
Updated 2 days ago
