At Quantcast, our mission is to show relevant and effective advertisements on behalf of our customers. Showing relevant ads in real-time requires answering three simple yet profound questions:

Who should see the ads?

Where should the ads be shown?

When should the ads be delivered?

Effective ad targeting requires data-driven decision making to answer these questions, as well as the infrastructure to deliver the right answers at scale.

The “When” of digital advertising, aka ad pacing, is key to enhancing the effectiveness of ad campaigns. Let’s take a closer look at how to build a system that automatically determines daily delivery schedules for each of our customers.

Why is the “When” so important?

Imagine you want to run a month-long ad campaign. There are many ways to pace your entire campaign budget. You could spend the entire budget as quickly as possible in the first few days, or opt for consistent delivery across the month. How would you decide which option is best?

Let’s start with scheduling delivery for a single day. Given a daily allocation of impressions, how do I deliver those across the day? We call the division of the total daily impression budget across the hours of the day a delivery schedule.

The simplest delivery schedule is a uniform allocation, which distributes delivery identically throughout the day. However, digital advertising involves bidding on a massive volume of inventory in real-time. With more biddable inventory more ad delivery is possible. Intuitively, you’d rather deliver more ads when there’s more inventory available and vice versa – which is contrary to a uniform delivery schedule.

As the chart above illustrates, a uniform delivery schedule does not capitalize on the glut of inventory in the afternoon and evening hours. It instead demands delivery in the early morning and at night when biddable inventory is at its most scarce and most expensive.

Moreover, biddable inventory depends on targeting restrictions the advertiser may want for their ad campaign. A uniform delivery schedule also fails to take into account these campaign-specific trends. Let’s look at a few such campaign characteristics.

Device Targeting

Different devices exhibit different usage patterns. We would want delivery schedules to reflect these trends. Let’s look at how biddable inventory varies for two campaigns – one targeting mobile devices, the other targeting desktops – by a prominent fashion retailer.

Both campaigns exhibit similar general patterns – more evening and nighttime activity, a morning spike followed by an afternoon lull. However, there are also noticeable differences.

Users spend more time on their desktops during afternoon work hours. From 12 PM to 5 PM, there’s a smaller drop-off in inventory for desktop than for mobile.

Users spend much more time on their mobile devices at night. From 9 PM through 3 AM, mobile activity as a percentage of the daily total far outweighs that of desktop.

Geography

Online behavior varies based on location. Hence, the geographical target of a campaign also impacts delivery schedules. Here’s the biddable inventory on the same day for two campaigns for a major automotive manufacturer – one targeting Los Angeles and the other targeting Cleveland.

Like online behavior, the volume of biddable inventory varies based on location. There’s a surge in online activity in the morning hours in Cleveland that’s not visible in Los Angeles. However, unlike the device case, it’s less clear why such a location-based difference exists in this case. Perhaps LA traffic is keeping people off their devices?

Weekend vs. Weekday

Beyond campaign-specific considerations, other seasonal trends also impact daily delivery schedules. An obvious temporal factor is the day of the week – user behavior differs from weekdays to weekends. Let’s look at weekly trends in biddable inventory for the same ad campaign.

Weekend inventory profiles are more active during the late morning and early afternoon than weekdays that display more activity in the late afternoon and early evening.

It’s tempting to generalize, but focusing solely on patterns that agree with intuition introduces human biases that put us at risk of missing less obvious, yet equally important trends. Algorithms that generate delivery schedules should incorporate data that’s both expected and intuitive (see device-based factors trends above) and unexpected and peculiar (see geography-based factors above). A purely data-driven approach would translate campaign-specific signals into intelligent pacing decisions in a way that eliminates human bias.

Building Delivery Schedules

As we’ve observed, a naive ‘one-size-fits-all’ delivery schedule would not react to campaign-specific temporal trends. It’s imperative that we build distinct delivery schedules for each ad campaign. Moreover, doing this for thousands of ad campaigns requires a system that creates delivery schedules automatically.

If we had to devise a system to generate delivery targets across an entire day, what data would we need? To answer this, we need to identify the time sensitive factors that impact ad campaign effectiveness. Two such factors are Biddable Inventory and Performance.

Biddable Inventory

Any algorithm computing delivery schedules should track how biddable inventory varies across a day. Moreover, as we observed, campaign restrictions, like device or geo-targeting, could affect the diurnal pattern. Incorporating biddable inventory data is critical to ensure that delivery schedules do not create artificial pressure to deliver more when there is less available or vice versa.

Performance

Customers want their ads to make an impact – and have different definitions of what that means. One of the advantages of digital advertising is that ads can be directly attributed to actions that customers value. Measures of the actions driven by advertising define campaign performance.

There are many such performance measures. One example is conversions (site visits, orders, or product purchases) by users exposed to an impression. These events often exhibit temporal patterns. Consider an ad campaign for a pizza delivery service. There probably are more conversions in the late afternoon and early night (5-10 PM) than in the early morning (3-6 AM).

Data around daily performance patterns helps ensure that the majority of ad delivery occurs before conversions rather than after. An understanding of temporal patterns helps ensure that delivery schedules avoid showing ads at wasteful times.

Let’s work through an example where we’d have to build a delivery schedule. The customer here is a prominent European retailer running an ad campaign to drive sales. The following figure describes both the biddable inventory and purchase data for this retailer.

Above we observe significant differences between the daily patterns of biddable inventory and performance. Interestingly, while biddable inventory peaks at around 10 PM, the number of conversions is well below its peak. Indeed, most conversions occur during the day.

We could construct a delivery schedule by combining these two patterns. (*Note that the performance pattern above depicts the actual conversion and not the ads that lead to conversion. A better choice here would be the activity pattern for users that convert before their conversion time.) There are many ways to combine biddable inventory and performance, the simplest is a weighted average of the two. The weight given to each is determined by a system that continuously monitors the campaign’s ability to meet performance and delivery targets.

However, the simple weighted average is a naive way to develop a delivery schedule.

Augmenting Delivery Schedule Effectiveness

We can make improvements through the use of algorithms and data:

Algorithmic Improvements: We can formulate finding delivery schedules as an optimization problem. To do this, we need to define a campaign objective as a cost function to maximize. All biddable inventory and performance data would either impact the cost function or would define constraints for the optimization.

Incorporate More Data: There are many other potential sources of data, beyond what we’ve already discussed that could help us solve this problem. For example, weather forecast data may prove to be useful when constructing delivery schedules for an umbrella vendor’s campaign.

What’s Next

Computing delivery schedules for ad pacing is an integral component of any ad targeting technology and consideration of temporal trends is essential to creating effective ad pacing schedules. Indeed, depending on the data available, this might mean trading off competing factors.

So, what does it mean for a delivery schedule to be ‘optimal’? What additional data sources can we incorporate? What type of algorithms and optimization techniques are best suited to tackling this problem? These are all questions we ask ourselves at Quantcast. And we’re getting better at answering them by innovating on ad pacing technology.

If you’re excited by the prospect of working on these sorts of problems, we’d love to hear from you! Check out our open jobs here.