New Media Planning Models for New Media
by
JOHN TURNER
Submitted to the Tepper School of Business
in Partial Fulfillment of the Requirements for the Degree of
DOCTOR OF PHILOSOPHY
at
CARNEGIE MELLON UNIVERSITY
23 April 2010
Dissertation Committee: Professor Sridhar Tayur (chair)
Professor Alan Scheller-Wolf Professor Mike Trick
Assistant Professor Mustafa Akan Assistant Professor Kinshuk Jerath
Abstract
This thesis focuses on the planning, scheduling, and pricing of ad slots in technology-enabled modes
of advertising, including webpage banner ads, video games, electronic outdoor billboards, and the
next generation of digital TV. This work contributes to practice by being the first academic work to
rigorously study the scheduling of dynamic in-game advertising; contributes to the body of theory by
formally studying the aggregation of audience segments using duality theory; generates managerial
insights for directing pricing strategy; and makes numerous modeling contributions, hence the title:
New Media Planning Models for New Media. A synopsis of the three main chapters follows.
Chapter 1: “Scheduling of Dynamic In-Game Advertising”
Dynamic in-game advertising is a new form of advertising in which ads are served to video game
consoles in real-time over the Internet. We present a model for the in-game ad scheduling problem
faced by Massive Inc., a wholly-owned subsidiary of Microsoft, and a leading global network provider
of in-game ad space. Our model has two components: 1) a linear program (solved periodically)
establishes target service rates, and 2) a real-time packing heuristic (run whenever a player enters a
new level) tracks these service rates. We benchmark our model against Massive’s legacy algorithm:
When tested on historical data, we observe 1) an 80-87% reduction in make-good costs (depending
on forecast accuracy), and 2) a shift in the age distribution of served ad space, leaving more
premium inventory open for future sales. As a result of our work, Massive has increased the
number of unique individuals that see each campaign by on average 26% per week, and achieved
33% smoother campaign delivery, as measured by standard deviation of hourly impressions served.
Chapter 2: “Planning of Guaranteed Targeted Display Advertising”
As targeted advertising becomes predominant across a wide variety of media vehicles, planning
models become increasingly important to ad networks that need to match ads to appropriate
audi-ence segments, provide a high quality of service (meet advertisers’ goals), and ensure opportunities
to serve advertising are not wasted. I define Guaranteed Targeted Display Advertising (GTDA)
as a class of media vehicles that include webpage banner ads, video games, electronic outdoor
bill-boards, and the next generation of digital television, and formulate the GTDA planning problem
as a transportation problem with quadratic objective. By modeling audience uncertainty, forecast
errors, and the ad server’s execution of the plan, I derive sufficient conditions for when a specific
quadratic objective is a good surrogate for several ad delivery performance metrics. Moreover, the
quadratic objective allows the construction of duality-based bounds for evaluating aggregations of
the audience space, leading to two efficient algorithms for solving large problems: the first
intel-ligently refines the audience space into successively smaller blocks, and the second uses scaling to
find a feasible solution given a fixed audience space partition. A little bit of disaggregation goes a
long way: near-optimal schedules can often be produced despite significant aggregation.
Chapter 3: “Pricing of Guaranteed Targeted Display Advertising”
This chapter focuses on the bundling and pricing of targeted audience segments when delivery
of impressions is guaranteed. Fundamental components of the GTDA pricing problem are
mod-eled: the cost of guaranteeing delivery, advertisers’ spending targets, capacity constraints, and
advertisers’ heterogeneous preferences. We study the pricing problem from the perspective of a
single monopolistic firm selling advertising space from two audience segments to two heterogeneous
advertisers. The key bundling and pricing question is whether the seller should always agree to
sell any bundle of inventory that an advertiser requests, or steer advertisers toward purchasing
broader bundles of ad inventory in order to accommodate capacity-related costs. In this context,
we study two models. The first assumes that advertisers will buy as much advertising as they can
afford, while the second assumes each advertiser purchases an amount of advertising equal to their
spending target. We characterize the space of optimal solutions in each and provide managerial
Table of Contents
1 Dynamic In-Game Advertising 12
1.1 Introduction . . . 12
1.2 Literature Review . . . 14
1.3 Definitions and Problem Statement . . . 16
1.4 Weekly Plan LP . . . 21
1.4.1 The Objective Function . . . 24
1.5 Real-time Algorithm . . . 27
1.5.1 Stage 1: Adjust Service Rates for the Current Game Instance . . . 28
1.5.2 Stage 2: Assign Campaigns to Inventory Elements . . . 28
1.5.3 Properties of the Solution . . . 31
1.6 Experimental Findings . . . 31
1.6.1 Primary Benefit . . . 31
1.6.2 Stability of our Algorithm . . . 33
1.6.3 Performance under Higher Sell-through and Tighter Targeting . . . 34
1.7 Implementation and Learnings . . . 36
1.7.1 Implementation . . . 36 1.7.2 Learnings . . . 39 1.8 Conclusions . . . 40 2 GTDA 43 2.1 Introduction . . . 43 2.2 Literature Review . . . 45 2.3 The Model . . . 46
2.3.1 Definitions and Notation . . . 46
2.3.2 Motivating the Quadratic Objective . . . 50
2.3.3 Model of Audience Uncertainty . . . 51
2.3.4 Model of Ad Server Execution . . . 52
2.4 Performance Metrics . . . 53
2.4.1 Reach . . . 54
2.4.2 Variance . . . 55
2.5 Model-Based Results . . . 57
2.5.1 Visualizing The Important Functions . . . 58
2.5.2 Deriving Sufficient Conditions for the Optimality of Reach and Variance . . . 58
2.5.3 Interpreting the Conditions that Imply Optimality of Reach and Variance . . 60
2.5.4 Sensitivity to the Number of Ad Slots . . . 61
2.5.5 Sensitivity to the Ad Server’s Execution Algorithm . . . 62
2.6 Aggregation . . . 62
2.6.1 Notation and Definitions . . . 63
2.6.2 Solution Approaches . . . 67 2.6.3 Computational Results . . . 72 2.7 Conclusions . . . 74 3 Pricing GTDA 76 3.1 Introduction . . . 76 3.2 Literature Review . . . 77 3.3 Model Setting . . . 79 3.3.1 Notation . . . 79 3.3.2 Delivery Costs . . . 80
3.3.3 Advertisers’ Utility Functions . . . 81
3.4 The Perfect Information Scenario Without Spending Targets . . . 83
3.5 The Perfect Information Scenario with Spending Targets . . . 86
A.1 Example: Valuing Unplanned Inventory Over a Discrete Demand Distribution . . . . 93
A.2 Real-time Algorithm Example . . . 95
A.2.1 Computing the Service Rates . . . 95
A.2.2 Assigning Campaigns to Inventory Elements . . . 97
A.3 Generation of Forecasts . . . 103
B GTDA Supplement 107 B.1 Derivations for Example 2.3.2 . . . 107
B.2 Derivations for the Mean and Variance ofXvk . . . 109
B.3 Optimality Results for the Equal-Proportion Allocation . . . 111
B.4 Quadratic Transportation Problem Duality . . . 114
B.5 GTDA Aggregation Theory Proofs . . . 116
B.5.1 Proof of Theorem 2.6.1 . . . 116
B.5.2 Proof of Theorem 2.6.2 . . . 117
B.6 Test of the Poisson Arrivals Assumption for Dynamic In-Game Advertising . . . 118
C GTDA Pricing Supplement 120 C.1 KKT Conditions for the Scenario with Spending Targets . . . 120
C.1.1 KKT Conditions for Region A . . . 122
C.1.2 KKT Conditions for Region B . . . 124
C.1.3 KKT Conditions for Region C . . . 125
List of Figures
1.1 The Weekly Plan LP . . . 23 1.2 Performance of our algorithm compared to the legacy algorithm for different levels
of forecast error α. The legacy algorithm does not use forecast data. . . 33 1.3 The tier distribution of impressions served (top left) and age distributions of
im-pressions served for each tier, for the legacy algorithm and our proposed algorithm (usingα= 0.2). . . 34 1.4 The progress of the Real-time Algorithm (labelled “actual”) plotted over time for
the largest campaign in the system. The forecast error parameter is the most con-servative (α= 0.2). In (a) the goal is the end-of-campaign impression goal; in (b) we show the end-of-week impression goal and the number of impressions planned this week by the Weekly Plan LP. . . 35 1.5 Performance of all 6 high-load test cases + status quo. Subfigures are (a) top left,
(b) top right, (c) bottom left, and (d) bottom right (vertical scale omitted for confi-dentiality). . . 37
2.1 Important functions of the proportionp≡pvk of viewer typevallocated to campaign
k. . . 58 2.2 When all conditions with a check mark in a given column hold, any solution to (P P)
is optimal with respect to that column’s objective. . . 60 2.3 Total expected reach as a function ofp1k for varying numbers of ad slotsn. . . 61 2.4 Total stochastic variance as a function of p1k for varying numbers of ad slotsn. . . . 61 2.5 Viewer type and inventory block partitions. . . 64 2.6 The six test cases. In cases marked∗, reservation proportions for each campaign were
drawn from {40%, 90%, and 100%}with probabilities 0.6, 0.3, and 0.1, respectively. Globally tight cases have high sell-through, while locally tight cases have both high sell-through and low targeting percentage. . . 72 2.7 Performance ofRefinePartitionAndSolveand GetCloseAndScaleUpon the
“Large, Locally Tight” test case. . . 74
onds) to achieve (A) 90%, (B) 99%, and (C) 99.9% feasibility; (D) = # of Refine (Iterations, Blocks, Seconds) to achieve 100% scaling success; (E-F) = # of Refine (Iterations, Blocks, Seconds) and # of Scaling (Iterations, Seconds) to get within (E) 1%, (F) 0.1% of proven optimality; (G-H) = # of Refine (Iterations, Blocks, Seconds) and # of Scaling (Iterations, Seconds) to get within (G) 1%, (H) 0.1% of
measured optimality. . . 75
3.1 Regions of interest in (a, b)-space. Parameters are fixed at c0 = 0.1, k1 = 1000, k2= 1500, and rg=rn= 100. Region C extends to infinity. . . 88
3.2 Sensitivity to changing audience sizes and spending targets. Fixed parameters are c0 = 0.1,rg =rn= 100. . . 88
A.1 Revenue Function . . . 94
A.2 Three Revenue Functions . . . 95
A.3 Expected Revenue Function . . . 96
A.4 Before Randomized Rounding: The gray spots have been assigned fractionally and need to be placed in only one of the buckets to which they are currently assigned. . . 102
A.5 After Randomized Rounding: Buckets 2, 3, and 4 are overfilled (the dotted lines are the bucket fill lines) while bucket 1 is underfilled (the dotted area is the remaining space in bucket 1). . . 102
A.6 Campaign Buckets: One bucket is created for each campaign. . . 102
A.7 Generating Random Errors: In (a) we plot the mean-reverting process µij forα = 0.04 (∆ = 0.0133, ϕ= 0.9428). In (b) we plot the processEijt forj= 14,µij =−0.05, α = 0.04 (σ = 0.08). Notice Eijt stochastically approaches 1 as time passes and h=j−tdecreases. . . 106
List of Tables
1.1 Notation for Weekly Plan LP . . . 41 1.2 Notation for Real-time Algorithm . . . 42
1.3 Test Cases for Tight Supply Constraint Tests . . . 42
3.1 Optimal solution characterization for the scenario with spending targets. See Ap-pendix C.1 for derivations. . . 87
A.1 Test Cases for Forecast Accuracy Tests . . . 106
Introduction
Advertising is at its core a creative endeavor: marketers are always looking for new and exciting
ways to catch peoples’ attention. When Massive, Inc., debuted its dynamic in-game advertising
network in 2002, marketers latched onto the idea that branded imagery could be dynamically
inserted into video games. Not only did Massive provide marketers with a new channel for reaching
the young male demographic that was watching less and less television, but the ads themselves
made the games more realistic: sports games, for example, could display Nike ads on a Jumbotron,
featuring a new model of sneakers just introduced in stores.
There have been many advances in IT infrastructure this past decade, which have sparked the
growth of new media, and are continuing to enable new and richer forms of advertising. In addition
to introducing dynamic ads for video games, the industry has been engaged in developing targeted
commercials for digital TV, dynamic product placement for TV shows, and intelligent electronic
billboards. All hold promise and are significant. For example, a company called Visible World
is currently running a pilot project for targeted TV commercials that includes over half a million
people in the New Jersey / New York area; their technology allows two households watching the
same TV show on the same air date to see different commercials, breaking the broadcast paradigm.
Their technology is poised to roll out quickly, since according to the company, no new technology is
required in the households of viewers beyond a regular digital set-top box (WARC Newswire 2009).
Meanwhile, another start-up called Zunavision (Ivanhoe Newswire 2009) is tackling the problem
that personal video recorders (e.g., Tivo) pose: how to continue to advertise on TV despite the
existence of devices which allow consumers to skip commercials. For Zunavision, the answer is
dynamic 3D product placement: superimposing computer-generated logos and other graphics on
top of live video, so that the ads appear in the show itself. And finally, Microsoft and Intel have
recently announced a partnership to begin work on an electronic billboard which will include facial
recognition technology not unlike that found in the auto-focus systems of digital cameras to infer
the age and gender of viewers so that relevant ads can be shown and exposures can be tallied by
targeted audience segment (WARC Newswire 2010).
Although these technologies are varied, and undoubtedly have their unique challenges, they
share some key properties which allow planning, scheduling, and pricing to be done in a common
way; namely, impressions (exposures, or page views) are the advertising product, targeting control
restricts the display of ads to specific audience segments, it is technologically feasible to accurately
count impressions served, and the total number of impressions to be served over a set period of
time is guaranteed by the seller of the ad space. This thesis focuses on the planning, scheduling,
and pricing of ad slots in such technology-enabled modes of advertising, which I call Guaranteed
Targeted Display Advertising (GTDA).
There are three main chapters, which are self-contained and stand on their own, yet are
inter-related and share some concepts. The first, “Scheduling of Dynamic In-Game Advertising,”
de-scribes a hierarchical ad scheduling system developed in conjunction with Massive, Inc., for the
scheduling of dynamic ads in video games. The term “dynamic in-game advertising” refers to a
new form of advertising in which ads are served to video game consoles over the Internet. Unlike
older video games that have static ads, today’s video gamesdynamically update branded graphics,
so that one gamer playing a racing game may see a Shell gas station where another sees Exxon.
This new high-tech way of branding video game content simultaneously enhances video game
real-ism while creating a new market for ad space that can be sold long after the physical boxed game
is purchased by the consumer.
The second chapter, “Planning of Guaranteed Targeted Display Advertising”, abstracts the
crucial structural properties from the linear program component of the first chapter, yielding a
single-period ad planning problem that can be modeled as a transportation problem with quadratic
objective. Whereas the first chapter describes in detail the scheduling of dynamic in-game
advertis-ing in practice, the focus of this chapter is to derive structural results for a larger class of advertisadvertis-ing
– Guaranteed Targeted Display Advertising – which includes dynamic in-game advertising, webpage
that the common industry practice of spreading impressions proportionally across viewer types is
usually optimal with respect to 1) minimizing variance in the number of impressions delivered, and
2) maximizing the number of unique viewers that see each ad. As well, I classify the cases in which
proportional spreading is suboptimal, so that managers can understand where current practice is
suboptimal, and why. Moreover, this chapter describes how large quadratic transportation
prob-lems which naturally arise in this problem setting can be solved by approximating the instance by
a more aggregate representation (i.e. by clustering some source nodes). Duality-based bounds on
the optimality gap of the proposed aggregation algorithm are presented.
Finally, in the last chapter, “Pricing of Guaranteed Targeted Display Advertising”, we study the
problem of bundling and pricing ad space for Guaranteed Targeted Display Advertising. Our
mo-tivation is to generate managerial insights, and so we study a two-audience-segment two-advertiser
model in a monopolistic framework. The models build on assumptions made in earlier chapters
while abstracting most of the details. We characterize the optimal solutions for two models: one
where advertisers buy as much advertising as they can get for a reasonable price, and another where
Scheduling of Dynamic In-Game
Advertising
1
1.1
Introduction
Video games have incorporated static ads for decades: for example, an old racing game may
have a billboard that always displays the same Sunoco ad. But recently, technology and business
relationships have matured to allow Internet-enabled consoles (e.g., Xbox, PC’s) to dynamically
serve ads over time, creating an entirely new ad market: Dynamic in-game ad technology allows
in-game billboards to display different ads to different players based on their demographic, the
time-of-day, the day-of-week, and possibly other parameters. The in-game advertising industry is
growing quickly; at present, revenues are projected to reach $800 million by 2012 (Cai 2007).
At the heart of an in-game ad system is the ad server: When a player enters a new level of a game, his console connects to the ad server via the Internet and requests new ad graphics for
billboards, stadium walls, and other locations where ads are shown in the level. The ad server
decides which ads to serve to this player, functioning like a web server delivering banner ads. But,
unlike on the web, where a selected ad is almost certainly seen, it is common for only a fraction
of selected in-game ads to be seen. Billable ad time is thus recorded only when, as part of game
1
This chapter is a forthcoming article in the journalOperations Researchwith co-authors Alan Scheller-Wolf and Sridhar Tayur.
play, the player navigates through the level and passes locations where ads are displayed. For this
reason, and also because of additional constraints (such assaturation,competition, andcontext, discussed below), scheduling in-game ads is significantly more complicated than scheduling banner
ads.
The ad server is operated by a network provider, an intermediary between game publishers and
advertising agencies. We focus on the scheduling problem faced by Massive Inc., a wholly-owned
subsidiary of Microsoft and a leading global network provider. Game publishers allow Massive to
sell and serve ads in their games, and consequently receive a portion of the generated revenues; ad
agencies buy ad campaigns directly from Massive.
The operational problem network providers like Massive face is how to schedule and serve ads
to players over time so as to make the best use of their inventory of ad space. Campaigns purchased
by an ad agency specify a target number of impressions (ads seen by gamers), a rough schedule for serving these impressions over time, and also a desired mix (e.g., 60% in sports games, 40% in
the rest of the games). A campaign’s delivery may also be restricted to certain geographic areas
and/or times of the day. In addition, the network provider must also manage 1) saturation: it is undesirable for a single player to simultaneously see many copies of the same campaign, 2)
competition: campaigns of two competing brands – e.g., Coke and Pepsi – should not be served to the same player, and 3)context: ads should not seem out of place within the game – e.g., Coke ads belong on virtual soda machines, Tide ads do not.
The size, scope, and complexity of Massive’s problem are such that even if there were no system
uncertainty, optimization of their ad server would be difficult. But of course, uncertainty is present
– there are three primary sources: 1) the acquisition of new games, 2) the sale of new campaigns,
and 3) error in inventory forecasts of ad space. This last factor, uncertainty in the amount of ad
space, arises because the number of players, the types (demographics) of players, and the ad space
that the players actually see during game play are not known when the scheduling problem needs
to be solved. Thus, campaigns sometimes fall short of their impression goals or deviate from the
desired pattern of delivery; in that case, the network provider offers the advertiser a make-good: the campaign is extended or the advertiser is offered a refund or credit for future use.
Our model has two components: 1) a linear program called theWeekly Planis solved periodically to establish target service rates, and 2) a packing heuristic called theReal-time Algorithmis run whenever a player enters a new level, to serve impressions in accordance with these service rates.
Benchmarking our model against Massive’s legacy algorithm using historical data, we observe 1)
an 80-87% reduction in make-good costs (depending on forecast accuracy), and 2) a shift in the
age distribution of served ad space, leaving more premium inventory open for future sales. Massive
has begun a staged implementation of our model, and to date has benefitted from a 26% average
increase in the number of unique individuals that see each campaign each week, and 33% smoother
campaign delivery, as measured by standard deviation of hourly impressions served.
We proceed as follows: In §1.2 we review the literature on media planning and scheduling,
and describe existing models for broadcast television and web page banner ads. We introduce the
problem in§1.3, the Weekly Plan LP in§1.4, and the Real-time Algorithm in §1.5. We benchmark
our algorithm against Massive’s legacy algorithm in §1.6, and comment on our implementation
learnings in§1.7. We conclude with comments and list future work in §1.8.
1.2
Literature Review
To the best of our knowledge, ours is the first academic treatment of the scheduling of in-game
advertisements. The process of dynamic in-game advertising is well documented (Chambers 2005,
Svahn 2005), however operational problems, such as the scheduling problem we examine, have not
been studied. In the traditional media planning literature, the optimization problem is usually that
of a single advertiser and not of a network provider serving many advertisers. In these models,
the advertiser chooses among advertising vehicles (e.g., newsprint, television, radio) to maximize
some combination of reach(audience size), frequency, and campaign duration subject to a budget constraint (see textbooks Rossiter and Danaher 1998, Gensch 1973). One typical assumption is
wearout (the effectiveness of an ad decreases as the number of exposures to the same person in-creases); papers in this line of research include Thompson (1981) and Simon (1982), which arrive at
an optimal pulsing strategy of advertising expenditure over time. Although some of these concepts
are relevant, it is most instructive to compare our model with those that take the perspective of
page banner ads. Structurally, in-game advertising sits between TV and web advertising: It has
well-defined contracts like TV, yet decisions are made at a very fine granularity, as on the web.
TV Commercials: Advertisers purchase 60-80% of the year’s ad space during a 2-3 week period in May called the upfront market; the remaining ad space is sold first-come-first-serve in the scatter market. In contrast, in-game ads are sold throughout the year, so the division between upfront and scatter markets is not profound. Therefore, papers (e.g., Araman and Popescu 2009)
that determine the optimal upfront vs. scatter tradeoff are not directly applicable.
Bollapragada et al. (2002) use goal programming to produce a sales plan for a single campaign
that allocates commercial slots from TV shows such that the advertiser’s preferences are honored
as closely as possible. Inventory is booked for each advertiser in sequence, allowing each advertiser
to request changes to their plan before it is finalized. Audience size is assumed deterministic and
there is no mention of make-goods allocation when schedules are not executed as-planned. This
is a static upfront-market problem; in contrast, we consider the dynamic problem in which new
campaigns and games materialize over a rolling horizon. Furthermore, our Real-time Algorithm is
significantly different than the low-level ad slotting “ISCI Rotator” algorithms used for TV, since
in our case each viewer can be shown different ads. Finally, Zhang (2006) also solves the (static,
deterministic, upfront market) TV commercial scheduling problem, but in their case they assume
that client negotiations are minimal, allowing them to simultaneously schedule all campaigns via a
mixed-integer program.
Web Advertising: The most common objective in web advertising is maximizing click-through (e.g., Chickering and Heckerman 2003, Nakamura and Abe 2005), a concept that does not apply
to in-game ads. However, some papers explore the essential dynamic tradeoff: choosing between
serving the campaign with the highest bid versus the one farthest from achieving its contracted
impression goal. Approaches include the online algorithm of Mehta et al. (2007) and the large LP
solved by column generation by Abrams et al. (2007). Of these, Abrams et al. (2007) includes
promising computational results on historical data, however, the authors note some challenges to
implementing the full-scale algorithm in practice. In addition to tailoring our focus to in-game
advertising, our problem definition is more comprehensive than either of these papers: we solve
Mehta et al. (2007) (e.g., to spread impressions over time and across various ad spaces).
1.3
Definitions and Problem Statement
Games, Zones, Inventory Elements, and Regions: A video game is subdivided into many zones, each having one or moreinventory elements(the generic name given to in-game billboards and other locations where ads are displayed). Typically, each level of a game is a separate zone.
Within each zone, inventory elements are grouped into regions based on their spacial proximity; all inventory elements visible from the same vantage point are typically in the same region.
Requests, Arrivals, Game Instances, and Spots: When a gamer enters a new zone, his con-sole sends arequestto the ad server to select ad campaigns for all inventory elements in the zone. From the ad server’s perspective, an arrival of a gamer has just occurred. This arrival spawns a game instance; the gamer will continue to see the ads that were selected by the ad server for this game instance until the gamer departs from this zone. Although some inventory elements can only
show one ad per game instance, others (e.g., an in-game Jumbotron) cycle through a sequence of
ads; we call each element of the sequence an adspot.
Adtime: An inventory element in one game instance providesadtime equal to the total amount of time – not necessarily contiguous – the inventory element appears on-screen. Adtime can be
aggregated over multiple inventory elements and over multiple game instances, thus we can consider
quantities such as the expected adtime of Zone 3 of Game A on Monday.
Impressions: We measure billable adtime in impressions. Massive defines an impression as 10 seconds of time – not necessarily contiguous – in which a gamer sees the same ad campaign
on-screen, possibly across multiple inventory elements in the same game instance. For example, given
a zone with two single-spot inventory elements, if these elements log 7 and 8 seconds of adtime
respectively in one game instance, then either: 1) the same campaign was served in both inventory
elements, sob(7 + 8)/10c= 1 impression is counted toward that campaign’s impression goal, or 2)
different campaigns were served in these inventory elements, and no impressions are counted for
either campaign (b7/10c=b8/10c= 0).
unit price of pk, providing revenue of pk×qk. We can assume that Massive receives this revenue
up-front when the campaign is negotiated. Subsequent scheduling decisions affect Massive’s ability
to deliver the campaign; thus penalty costs (make-goods) may be incurred should campaign knot
be delivered as promised. Nonpaying campaigns include house ads, Public Service Announcements
(PSA’s), and default graphics; these do not generate any revenue, do not have minimum impression
goals, and are served as “filler” when no paying campaigns can be served.
Campaign Targeting – Audience Demographics and Context: Paying campaigns currently specify targeting constraints along three dimensions: geography, time, and context; i.e. impressions
must come from specific geographic regions, time slots, and inventory elements, respectively. The
geographic dimension is indexed by 300+ Designated Market Area (DMA) codes which allow
Mas-sive to constrain service to metropolitan areas across the United States and/or key areas in other
parts of the world. There are 42 combinations of {Weekday, DayPart} tuples for the time
dimen-sion, one for each of 6 DayParts (contiguous groups of hours, e.g., Prime Time = 7PM-12AM) in
each of the 7 weekdays. Finally, there are 1 to 50 Inventory Element Classes (IEC’s) per game,
which group inventory elements by context (e.g., ‘all virtual soda machines’). By targeting specific
games, geographic regions, and times, a campaign can be tailored for specific audience
demograph-ics. In contrast, IEC targeting ensures propercontext by integrating ads in realistic places: Coke ads, not Tide ads, belong on virtual soda machines.
Competition and Saturation: Within each game instance, 1) campaigns of competing brands (e.g., Coke and Pepsi) cannot be shown, 2) each campaign can be served in at most ωz spots, and
3) when a campaign is served in multiple spots, the spots should preferably be in different regions.
The quantityωzis called thesaturation cap, and is typically between a quarter to half the number of inventory elements in zonez.
Campaign Delivery Quality: In addition to a campaign’s aggregate impression goal qk, the advertiser usually specifies other impression goals either explicitly or implicitly. These include
mix requirements (e.g., at least 40% of impressions should come from sports games) and delivery
schedules (e.g., uniformly spread delivery over time, or deliver more impressions the week before
a new product launch). Mix requirements are modeled with an impression goal q(I,k) for certain
include weekly impression goalsqkt and, if needed, weekly impression goals for each MixComponent
q(tI,k). It is usually also important to serve each campaign impressions from many different games,
since part of the value of contracting with a network provider such as Massive is derived from
obtaining access to advertising space in a breadth of games from different publishers.
Publisher Concerns: Since game publishers receive a portion of the revenues generated by the impressions served in their games, the network provider must attempt to schedule ads across games
to avoid negatively affecting the revenue stream of a particular publisher.
Supply: Inventory is not games, or zones, or inventory elements, but rather eyeballs: the total inventory available to fulfill a campaign is the number of impressions generated by gamers that
match that campaign’s targeting. We use point forecasts of supply in our Weekly Plan LP, which are computed from the following point estimates of adtime:
• st
i = the expected adtime of game i, weekt;
• stid = the expected adtime of gamei, weekt, DMAd;
• stie = the expected adtime of gamei, weekt, inventory element e; and
• stiw = the expected adtime of gamei, weekt,{Weekday, DayPart} w.
Defining the set of zones in game i as Zi, the set of inventory elements in zone z as Ez, and
the sets of all DMA’s and all {Weekday, DayPart} tuples as D and W respectively, we compute
“breakouts” – proportions of adtime that come from a single inventory element, DMA, or{Weekday,
DayPart}:
• bt id=stid
P
d0∈Dstid0 = the proportion of game i, weekt’s adtime that comes from DMA d;
• btie = stieP
z∈Zi,e0∈Ezs
t
ie0 = the proportion of game i, week t’s adtime that comes from
inventory element e; and
• btiw =stiwP
w0∈Wstiw0= the proportion of gamei, weekt’s adtime that comes from{Weekday,
DayPart} w.
We use these breakouts to generate estimates of supply that are used by the Weekly Plan LP.
This final step requires the additional notation:
• Dk, Wk = the sets of DMA’s and {Weekday, DayPart} tuples that match the targeting of
campaign k, respectively;
• Pe = the set of spots in inventory elemente;
• se = the expected adtime of inventory elementein one game instance;
• sp(e) =se/|Pe|= the expected adtime of any spotp∈Pe, assuming each spot ofPeis equally
likely to be on-screen; and
• $∈[0,1] = a factor that approximates the conversion ratio between adtime and impressions.
We assume that when measuring aggregate supply over many inventory elements and/or
large periods of time, adtime and impressions are approximately equal modulo this scaling
constant. Note that if adtime was not rounded down to compute billable impressions, then
$= 1. We used ω= 0.9, which was consistent with the aggregate amount of rounding down
in our dataset.
Labeling the inventory elements of Ezk such that sp(1) ≥ sp(2) ≥ ... ≥ sp(|Ezk|), we define
b
Ezk = {1, ..., ωz} as the set of the “largest” ωz inventory elements in zone z that match the
targeting of campaignk. Finally, we compute the supply estimates for the Weekly Plan LP:
• sti=$sti = the estimated number of impressions provided by game iin weekt;
• stik = $sti P d∈Dk btid ! P w∈Wk btiw ! P z∈Zi P e∈Ezk btie !
= the estimated number of impressions
provided by game iin weektthat match the targeting requirements of campaign k; and
• bstik =$sti P d∈Dk btid ! P w∈Wk btiw ! P z∈Zi P e∈Ebzk btie !
= the estimated number of nonsaturated
impressions provided by gameiin weektthat match the targeting requirements of campaign
k.
Demand: Thedemandfor ad space arises from ad agencies purchasing campaigns. For each week t∈T of the planning horizon, Massive uses a proprietary method to estimate the distributions of
aggregate demand-to-come for three groups of games: premium, middle, and discounttiers.
Tightness of Capacity – Sell-through: We first define:
• ιae = the adtime of inventory elementein the game instance started by arrivala(measured
• Atz,Atzk = the sets of arrivals in weekt, and in weekt that match the targeting of campaign
k, respectively;
• Kae= the set of campaigns with targeting that matches both arrivalaand inventory element
e; and
• Ik = the set of games that match the targeting of campaignk.
Then ιtk = $ P i∈Ik P z∈Zi P a∈Atzk P e∈Ezk
ιae is the number of impressions counted ex-post in week t that
could have been used by campaign k (assuming we disregard competition and saturation
con-straints). The sell-through of inventory element e in the game instance started by arrival a in week tis γae = P k∈Kae qt k ιt k
, the proportion of inventory element e in arrival athat would have been
allocated to paying campaignsif each campaign were served at the same rate across the entire
in-ventory space it targeted. The population meanµγ and population standard deviationσγ describe
sell-through over aggregated blocks of inventory; for example, the network sell-through over the
planning horizon (i.e. computed over all games Υ and weeks T) has mean, second moment, and
standard deviation: µγ = P t∈T P i∈Υ P z∈Zi P a∈Atz P e∈Ez ιaeγae P t∈T P i∈Υ P z∈Zi P a∈Atz P e∈Ez ιae , µγ2 = P t∈T P i∈Υ P z∈Zi P a∈Atz P e∈Ez ιaeγae2 P t∈T P i∈Υ P z∈Zi P a∈Atz P e∈Ez ιae , σγ = q µγ2−µ2γ.
Legacy Algorithm: Massive’s existing scheduling algorithm – the legacy algorithm – uses a single impression goal qk for each campaign, and assumes that impressions should be spread
uniformly across all weeks (i.e. it does not support delivery schedules that ramp up impressions
the week before a product launch). When a new arrival spawns a game instance, the legacy
algorithm checks whether each campaignkis ahead or behind schedule, and adjusts the service rates
accordingly. Because the legacy algorithm serves campaignkat the same rate in each gameithat its
targeting matches, it is usually good at spreading impressions across MixComponents, providing
impressions in a broad set of games, and satisfying publisher concerns. The most systematic
shortcoming of the legacy algorithm is that it is myopic; since it does not use supply estimates, it
1.4
Weekly Plan LP
We periodically solve a linear program called the Weekly Plan to get xtik, the number of im-pressions allocated to campaign k from game i in week t. We update the target service rates
λtik=xtik/stik whenever the Weekly Plan is re-solved; the Real-time Algorithm (see§1.5) uses these
rates to select specific campaigns for the inventory elements of a given game instance.
The Weekly Plan is similar to the goal program of Bollapragada et al. (2002), which is used to
generate TV ad sales plans at NBC. Both formulations have an objective that reserves premium
inventory for future sales while minimizing penalty costs for relaxing the many goal constraints.
The NBC sales plan has mix constraints and weekly weighting constraints, which take a client’s
goal x =q (# of commercial slots assigned from this subset of inventory = target) and relaxes it
to l−y ≤ x ≤ u+y, where y ≥ 0 is a slack variable penalized in the objective and (l, u) are
lower and upper bounds. We follow the same construction; however, our mix constraints specify an
impression goal q(I,k) for MixComponent I (which is a group of games), whereas at NBC the mix
targets are for a single TV show. We also add a weekly mix constraint based on the targetqt(I,k), a
constraint that spreads impressions across all games within a MixComponent, and a constraint that
ensures that each game is assigned a minimum dollar value in revenue. The NBC sales plan bounds
the number of slots allocated to a given {Show, Week}, which partially enforces saturation and
competition constraints; saturation is then handled by a heuristic they call the ISCI Rotator, which
spreads commercials of the same campaign apart chronologically. We follow a similar approach by
including bounds on xt
ik that partially enforce the saturation cap, and defer the consideration of competition and saturation to the Real-time Algorithm. Finally, we note that NBC’s goal program
is an integer program (as discrete commercial slots are allocated) that generates a sales plan for
a single campaign, whereas we allocate impressions for many campaigns simultaneously using a
linear program.
The Weekly Plan LP appears in Figure 1.1. For compactness, some quantities are shown with
lower and upper bounds within the same constraint; hence, slack variables exist on both sides of
some constraints. The variables areλ, v, w, x, y, z; all other quantities are constants; see Table 1.1
for the full list of notation. Since we re-solve the Weekly Plan LP over time, we divide time into
all impressions of x planned into the future. Hence, x=a+ ˙x. Similarly, dots on other constants
and variables indicate quantities for theremainder of the relevant time interval.
Constraints 1 through 5 are goal-type constraints that model campaign contract requirements
which may be relaxed and penalized in the objective: Constraint 1 (end-of-horizon impression goal)
makes sure that for each campaignk, the number of impressions planned in the remainder of the
horizon ˙xk, plus the planned shortfallyk, must equal theremaining end-of-horizon impression goal
(qk−ak)+; constraint 2 (weekly impression goals) ensures the number of planned impressions xtk
is between the bounds lkt and utk for each campaign k and week t; constraint 3 (end-of-horizon
mix target) ensures at least l(I,k) impressions from MixComponent I are allocated to campaign
k; and constraint 4 (weekly mix targets) ensures at least lt(I,k) impressions from MixComponent
I are allocated to campaign k in week t. Constraint 5 (spread impressions to all games within a
MixComponent) models the following idea: “For each{MixComponent, Campaign, Week}, try to
set the same service rate for all games.” Defining the service rate for a{MixComponent, Campaign,
Week} as the variable λt(I,k), serving all games in a MixComponent at the same rate requires
satisfying λt
ik =λt(I,k) ∀i∈I. By multiplying xikt /stik =λt(I,k) through by stik and introducing the slackv(tI,k), we obtain constraint 5. Note that stikλt(I,k) can be interpreted as the nominal number
of impressions to plan in gamei, and so vt(I,k) penalizes the maximum absolute deviation from the
nominal number of impressions across all games in MixComponentI.
Constraint 6 (minimum revenue target for each game) is the only goal-type constraint that
mod-els publisher contract requirements. This constraint ensures that enough impressions are allocated
to game iin weektto guarantee at least rti dollars in revenue.
Constraint 7 (supply) states that for the remaining portion of week t in game i, the number
of impressions planned, plus the number of impressions left unplanned, must equal the forecast
supply.
Constraint 8 (saturation cap bound) partially enforces the saturation cap by bounding the
number of impressions assigned to campaign k in game i, week t by the estimated nonsaturated
supplysbtik.
Constraint 9 (link total planned impressions with remaining planned impressions) ensures that
max − P k∈K πkyk− P k∈K,t∈Tk βkykt − P k∈K,I∈Φk τky(I,k)− P k∈K,I∈Φk,t∈Tk ηky(tI,k) − P k∈K,I∈Φk,t∈Tk ξkv(tI,k)− P t∈T,i∈Υ ζizit+ P I∈Ψ,t∈T ,m=1..n θ(tI,m)w˙t(I,m) s.t. x˙k+yk = (qk−ak)+ ∀k∈K (1) lkt −ykt ≤ xtk ≤ utk+ykt ∀t∈Tk, ∀k∈K (2)
l(I,k)−y(I,k) ≤ x(I,k) ∀I ∈Φk, ∀k∈K (3)
l(tI,k)−yt(I,k) ≤ xt(I,k) ∀I ∈Φk, t∈Tk, ∀k∈K (4)
stikλt(I,k)−v(tI,k) ≤ xtik ≤ stikλt(I,k)+vt(I,k) ∀i∈I, ∀I ∈Φk, t∈Tk,
∀k∈K (5) P k∈K pkxtik+zit ≥ rit ∀t∈T, i∈Υ (6) ˙ xti+ ˙wti = s˙ti ∀t∈T, i∈Υ (7) ˙ xt ik ≤ bs˙ t ik ∀i∈Ik, t∈Tk, ∀k∈K (8) xtik−x˙tik = atik ∀i∈Ik, t∈Tk, ∀k∈K (9) ˙ wt (I,m) ≤ ϑ˙t(I,m) ∀I ∈Ψ, m= 1..(n−1), ∀t∈T (10) P m=1..n ˙ wt (I,m)− P i∈I ˙ wt i = 0 ∀I ∈Ψ, t∈T (11) ˙ xk− P i∈Ik,t∈Tk ˙ xtik = 0 ∀k∈K (12) xk−x˙k = ak ∀k∈K (13) xtk− P i∈Ik xtik = 0 ∀t∈Tk, ∀k∈K (14) x(I,k)− P i∈I,t∈Tk ˙ xtik = a(I,k) ∀I ∈Φk, ∀k∈K (15) xt(I,k)−P i∈I xtik = 0 ∀I ∈Φk, t∈Tk, ∀k∈K (16) ˙ xti− P k∈K ˙ xtik = 0 ∀t∈T, i∈Υ (17)
λ, v, w, x, y, z ≥ 0 for all forms
of these variables (18)
the actual number of impressions achieved up to the present, atik, plus the number of impressions
planned from the present until the end of the week, ˙xtik. For weekst >= 2, we always have atik = 0,
and so this constraint reduces toxtik = ˙xtik.
Constraints 10-11 model a piecewise-linear component of the objective function, and are
de-scribed with the objective in §1.4.1. Constraints 12-17 link the various forms of x. In an actual
implementation, only the variablesxt
ik and ˙xtik are required; the other forms of xcan be written as linear combinations of xtik and ˙xtik. We use the other forms of xto keep constraints 1-11 readable.
Constraints 3 and 4 do not have upper bounds because MixComponents are not mutually
exclusive: game i may be both a Sports Game and a Racing Game; in that case, impressions
allocated to game i count toward two mix targets. Had upper bounds existed, they may need to
be violated in order to satisfy the end-of-horizon goal (constraint 1).
1.4.1 The Objective Function
The objective is to maximize revenues that can be affected by scheduling; it contains two terms.
Objective Term 1 (penalty costs for breaking contracts) is:
− P k∈K πkyk− P k∈K,t∈Tk βkykt − P k∈K,I∈Φk τky(I,k) − P k∈K,I∈Φk,t∈Tk ηky(tI,k)− P k∈K,I∈Φk,t∈Tk ξkvt(I,k)− P t∈T,i∈Υ ζizti.
We model the costs of falling short of the goals modeled by constraints 1-6 as negative revenues
from the delivery of make-goods for broken contracts. Make-good costs include direct compensation
for underdelivery, transaction costs, and loss of goodwill. Direct compensation is either the dollar
amount refunded to the advertiser, or the (shadow) cost of assigning additional inventory to extend
the campaign past its scheduled end date. Transaction costs include all manual processing to issue
the make-good, including getting approval to extend the campaign. Loss of goodwill models the
advertiser’s displeasure with the quality of service they received, and reflects the estimated loss of
repeat business. Transaction costs and goodwill costs are likely significant, yet are extremely hard
to estimate; fortunately, with regard to linear programming, exact estimation of the penalty costs
are proportional to campaign prices pk: πk = pk per impression short of the end-of-horizon goal
for campaignk;βk= 0.1pk per impression over/under the allowed deviation from the weekly goal;
τk= 0.1pkover/under the allowed deviation from the end-of-horizon goal for each MixComponent;
ηk = 0.05pk over/under the allowed deviation from the weekly goal for each MixComponent; and
ξk = 0.05pk for not spreading impressions evenly across all games in a MixComponent. We also
usedζi∈ {0.5,0.25,0.1} as the per-dollar penalties of falling short of the minimum revenue target
of gamei(penalties are differentiated by tier).
Note that in practice, make-good costs should also be increased for preferred customers (which
are often given quantity discounts) to compensate for the fact that the above formulas assign low
penalty costs to campaigns with low prices.
Objective Term 2 - general form (revenue potential of unscheduled inventory) is:
X I∈Ψ,t∈T
fIt(wIt).
Since supply and demand change over time, the scarcity of inventory, and therefore the value
of unscheduled inventory, will change over time. By scheduling appropriately, we maximize the
total dollar value of unscheduled inventory, i.e. the expected future sales revenue. The general form
of objective term 2 is as listed above, where Ψ is the set of all tiers of games (premium, middle,
discount), T is the set of all weeks, and ft
I is a function that values the quantity of unscheduled inventory wtI for tier I in week t. Suppressing subscripts and superscripts, the value function for
unscheduled inventory f(w) of a particular {Tier, Week} is:
f(w) :=pE[min(X, w)] =pE[X−(X−w)+] =p
w Z
0
G(x)dx,
where p is the fixed price for the type of inventory under consideration, X is a random variable
that models market demand,G(x) is the cumulative distribution function of demand, andG(x) =
1−G(x). Thus if we leavew units of inventory available, expected sales is E[min(X, w)], yielding
f(w) dollars in expected revenue.
Since f0(w) = pdwd
w R 0
increasing for all demand distributions ofX. Therefore, we can approximate f(w) by a
piecewise-linear function with n segments of successively smaller positive slope. Denoting the marginal
revenues (slopes) asθm and segment widths asϑm for them= 1..nsegments, the expected revenue
from future sales is modeled by the linear form:
Objective Term 2 - linear form:
X I∈Ψ,t∈T ,m=1..n
θ(tI,m)w˙t(I,m)
and is accompanied by constraint 10 (bound the unplanned impressions in each segment) and
constraint 11 (link unplanned impressions by {Tier, Week, Segment} to{Game, Week}).
Since the slope parameters θI,mt are decreasing in m and we are maximizing, ˙wI,mt = 0 =⇒
˙
wtI,m+1 = 0. The bounds on ˙wt(I,m), namely ˙ϑt(I,m), ensure that impressions are accounted for in
the correct segment, where ˙ϑt(I,m) is defined as follows (ρ is the percentage of week 1 remaining):
˙ ϑt(I,m):= ρϑt(I,m) fort= 1 ϑt(I,m) fort≥2 .
We assumed stationarity in the tests we performed, and computed the required cdf’s from
historical data. In practice, we expect the historical cdf to be used as a baseline that Massive can
manually align with their sales projections (keeping the general shape of the cdf the same, but
shifting its mean). For an example that uses a discrete demand distribution to compute θ and ϑ,
see§A.1.
Alternately, when only E[X] is specified, we can use G(x) = {0 if x < E[X], 1 if x ≥ E[X]}
to compute f(w|E[X]) = {wifx < E[X], E[X] ifx ≥ E[X]}. By Jensen’s Inequality, we know
f(w|E[X])≡ E[min(E[X], w)]>=E[min(X, w)] ≡f(w); thus, f(w) is a function that is bounded
above byf(w|E[X]) yet has similar asymptotic behavior; i.e. f(w)→wasw→0, andf(w)→E[X]
as w → ∞. An appropriately-chosen spline can be approximated with a few piecewise-linear
segments to get the piecewise-linear form off(w) used by our model.
estimator (Talluri and Van Ryzin 2005); however, this is not necessary when working with tiers:
individual games may get sold out, but since tiers are large aggregations of games, excess inventory
usually exists.
1.5
Real-time Algorithm
Each arrival to the ad server invokes the Real-time Algorithm, which assigns campaigns to inventory
elements in the player’s game instance. The Real-time Algorithm makes this allocation in
accor-dance with the service rates λtik computed by the Weekly Plan LP, while also obeying campaign
targeting, saturation, and competition constraints.
The Real-time Algorithm serves the same purpose as the ISCI Rotator algorithm for scheduling
commercials in broadcast television (Bollapragada et al. 2004, Bollapragada and Garbiras 2004). A
broadcast TV sales plan (analogous to our Weekly Plan) specifies the set of commercials to display
during each airing of each show, leaving the ISCI Rotator to choose, for each ad, the commercial
breaks and positions within those breaks where each ad should be aired. The ISCI Rotator allocates
ads to slots such that saturation is managed (two airings of the same commercial are as evenly spaced
as possible) and competition constraints are obeyed (competing brands are not displayed in the
same commercial break). Although there are some high-level similarities, the Real-time Algorithm
operates differently than the ISCI Rotator. This is because targeting constraints add complexity
to the Real-time Algorithm, and because the Real-time Algorithm sacrifices optimality for speed:
it is run millions of times per day compared to the ISCI Rotator’s nightly execution.
The Real-time Algorithm performs two operations: 1) it adjusts the service rates for the current
game instance, and 2) assigns campaigns to inventory elements in accordance with the adjusted
1.5.1 Stage 1: Adjust Service Rates for the Current Game Instance
An arrival of typea={Zone, DMA, Weekday, DayPart} is initially assigned the service rate matrix
Λa, the elements of which are:
λck :=
λ1i(a),k if campaignk matches the targeting of both IECcand
the{Zone, DMA, Weekday, DayPart} specified by a
0 otherwise
where i(a) is the game that includes the zone specified in a, and λ1i(a),k is the service rate for
campaign k, gamei(a), week 1 from the Weekly Plan.
Algorithm 1 modifies the rate matrix Λa in order to satisfy 1) competition constraints, and
2) the constraint P k∈Kac
λck ≤ 1 ∀ c ∈ Cz, which states that for each IEC c in the set of IEC’s
Cz that intersect the current zone z, the sum of the service rates of campaigns Kac eligible for
service to this {Arrival, IEC} must not exceed 1. In step 1, we compute a weighted average rate
λW EIGHT ED
k for each campaign over all IEC’s in the zone. Next, we use the weighted average rates to assign one random campaign from each set of competing brands a nonzero service rate (steps
2-5). We have assumed that the groups of competing brands are mutually exclusive; however,
a straightforward extension of this algorithm applies to overlapping groups of competing brands.
Finally, in steps 6-12, the algorithm decreases the service rates of some campaigns (if necessary) in
order for P k∈Kac
λck≤1∀c∈Cz to hold; note the campaigns with the latest end dates (which have
the most time to catch up later) are chosen. See§A.2.1 for a detailed example.
1.5.2 Stage 2: Assign Campaigns to Inventory Elements
Let Ka be the set of paying campaigns with targeting that matches arrival a, and let u represent
all unpaid campaigns. For each campaign k∈Ka∪ {u}, Algorithm 2 outputs a set of spots ˜Pk in
which campaignkshould be served. The algorithm begins by creating a set of bucketsB; the size of
bucketb(c, k)∈B is the expected adtime for paying campaignk in IECc, assuming campaignkis
Algorithm 1 AdjustServiceRates 1: λW EIGHT EDk ← P c∈Czsczλck P c∈Czscz ∀k∈Ka 2: for allK∗ ∈Ka do 3: k0←
k∈K∗ with probability λW EIGHT EDk Pk∗∈K∗λW EIGHT EDk∗
4: λck0 ←P
k∈K∗λck ∀c∈Cz, and λck ←0∀k∈K∗\{k0}, c∈Cz
5: end for
6: for allc∈Cz do
7: Label the campaignsk∈Kac such that χ1 ≥χ2 ≥...≥χ|Kac|
8: φ← Pk∈K acλck−1 + ;k←1 9: whileφ >0do 10: ψ←min{λck, φ};λck ←λck−ψ;φ←φ−ψ;k←k+ 1 11: end while 12: end for 13: return Λa
used when service rates are too low to assign all spots to paying campaigns. The main variables are:
vb = the unallocated expected adtime of bucketb;xp = the unallocated expected adtime of spotp;
yb,p = the expected adtime of spotp allocated to bucket b; and nr,k = the number of times a spot
from regionrhas been allocated to campaignk. We will sometimes use index functions such asr(p)
= the region corresponding to spot p; and k(b) = the campaign corresponding to bucketb. Recall
from §1.3 that the expected adtime of any spot p of inventory element e is sp ≡sp(e) = se/|Pe|.
Steps 1-5 comprise the initialization phase.
In steps 6-10, spots are fractionally assigned to buckets b ∈B; i.e. a spot may be assigned to
more than one bucket at this stage. At each iteration of the loop, we randomly draw a non-full
bucketb0 and a non-completely-assigned spotp0, and assign a portion (or all, if possible) of spotp0
to bucketb0. We bias toward assigning large spots to large buckets, which achieves a tight packing;
yet we do not always pick the largest bucket and spot: buckets are chosen randomly so the visual
placement of ads within the game is randomized, and spots are chosen to spread multiple copies
of the same campaign to spots in different regions. The chosen spotp0 is the spot with the largest
amount of unallocated expected adtime among those in the set P∗, where P∗ is the set of all
spots p∗ that can be placed in chosen bucketb0 and are in a region r(p∗) where we have allocated
campaign k(b0) the fewest number of times.
In steps 11-14, any spots that did not fit into the buckets for paying campaigns B are assigned
Algorithm 2 AssignCampaigns 1: vbu ← ∞;ybu,p←0∀p∈Pz;B ← ∅ 2: for allc∈Cz, k∈Kac do 3: Create bucketb≡b(c, k); vb←λckscz;yb,p ←0∀p∈Pz;B ←B∪ {b} 4: end for 5: xp ←sp ∀p∈Pz;nr,k ←0∀r∈Rz, k∈Ka 6: whileP b∈Bvb >0 do 7: b0← b∈B with probability vbPb∗∈Bvb∗ 8: P∗ ← p∗∈Pb0nr(p∗),k(b0) = minp∈P b0nr(p),k(b0) ;p 0 ←argmax p∈P∗xp 9: ψ←min{vb0, xp0};yb0,p0 ←yb0,p0+ψ;vb0 ←vb0−ψ;xp0 ←xp0−ψ;nr(p0),k(b0)←nr(p0),k(b0)+1 10: end while 11: P∗∗← {p∈Pz|xp >0} 12: if P∗∗6=∅ then 13: ybu,p ←xp ∀p∈P ∗∗,x p ←0∀p∈P∗∗ 14: end if 15: P˜k ← ∅ ∀k∈Ka∪ {u} 16: for allp∈Pz do 17: b0← {b∈B∪ {bu} with probability yb,p/sp} 18: yb0,p←sp;yb,p ←0∀b∈B∪ {bu}\{b0}; ˜Pk(b0) ←P˜k(b0)∪ {p} 19: end for 20: for allk0 ∈ {k:|P˜k|> ωz, k6=u} do 21: while|P˜k0|> ωz do 22: p0←argminp∈P˜ k0s p;KU ← {k:|P˜ k|< ωz, k6=u} 23: if P k∈KUλc(p0),k >0then 24: k00← k∈KU with probability λc(p0),kP k∗∈KUλc(p0),k∗ 25: else 26: k00←u 27: end if 28: P˜k0 ←P˜k0\{p0}; ˜Pk00←P˜k00∪ {p0} 29: end while 30: end for 31: return P˜ P b∈B vb≤ P p∈Pz
xp, so all buckets b∈B are always filled at this point.
In steps 15-19, the algorithm executes randomized rounding (see Raghavan and Tompson 1987):
each spotpgets assigned in whole to bucketb(and removed from all other buckets) with probability
yb,p/sp (the proportion of spot p currently assigned to bucket b). At this point, buckets may be
perfectly filled, over-filled or under-filled – all cases are feasible. A perfectly filled (resp. over-filled
/ under-filled) bucket b(c, k) corresponds to serving campaignk in IECc exactly at (resp. above /
below) the service rate λck in expectation.
campaignk) if the saturation cap is exceeded (the same campaign appears in more thanωz spots).
We reassign the smallest spots p0 to minimize the resulting change to the service rates; we first
reassign spots in whole to paying campaigns that are under the saturation cap, drawn proportionally
toλc(p0),k when there are multiple such campaigns, and then to the unpaid campaign bucket. See
§A.2.2 for an example of Algorithm 2.
1.5.3 Properties of the Solution
At its conclusion, the Real-time Algorithm has assigned a campaign to each spot such that:
1. DMA, Weekday, DayPart, and IEC targeting are satisfied, since only campaigns that target
the current arrivala receive nonzero service rates;
2. Competition constraints are satisfied, due to Algorithm 1;
3. The saturation cap is satisfied and local oversaturation is controlled, due to Algorithm 2;
4. Each campaign is served in expectation at the rate specified by the Weekly Plan LP (except
perhaps for a few campaigns with later due dates that had their service rates reduced by
steps 6-12 of Algorithm 1). Thus, in expectation, our algorithm meets the impression goals,
mix requirements, spread constraints, and revenue targets specified in the Weekly Plan, while
maximizing revenues affected by scheduling decisions. This follows because, excluding
adjust-ments made to satisfy the saturation cap, Algorithm 2 fills buckets exactly to their fill lines
in expectation; and
5. Variance in the service rates is low, since buckets are packed close to their fill lines by using
small spots to finish the packing. (These are also the spots that get reassigned by randomized
rounding and to enforce the saturation cap.)
1.6
Experimental Findings
1.6.1 Primary BenefitUsing 26 weeks of historical data, we experimentally evaluate (backtest) the performance of our
the horizon of the Weekly Plan LP at 13 weeks; therefore, at each point during the backtest we need
13 weeks of inventory supply forecasts (for games, as well as inventory elements, DayPart/Weekdays,
and DMA’s within games) as input. We generate forecasts from actual data by applying a random
multiplicative noise term, the magnitude of which is parameterized by α. We backtest through
weeks t = 1..14, using generated forecasts from weeks t through t+ 12; the Weekly Plan LP is
re-solved hourly.
We use five forecast instances, which range from a perfect forecast (α= 0) to a highly-variable
forecast (α = 0.2). The full description of our forecast generation scheme, which produces adtime
estimates sti, stid, stie, and stiw, defined in §1.3, is given in §A.3. To summarize, we generate
mul-tiplicative forecast errors for a forecast h weeks from today by taking the product of h lognormal
random variables; the lognormal factors have median eµ, where µis a random variable dependent
on α with E[µ] = 0. When µ = 0, forecasts for one week into the future have a 95% confidence
interval of [1/ς, ς], where ς =e1.96σ and σ = 2α (this confidence interval is symmetric on the
log-arithmic scale). For α = 0.04 and α = 0.2, this confidence interval is [0.85, 1.17] and [0.46, 2.19]
respectively; i.e. when α= 0.2 andµ= 0, a one-week advance forecast for the actual value of 1000
is between 460 and 2190 with probability 0.95. And for the sameα, confidence intervals grow wider
as the forecasted period moves farther into the future.
Our tests on historical data show that we significantly reduce make-good costs and increase sales
revenue potential relative to the legacy algorithm. Make-good costs (objective term 1 in §1.4.1)
decrease by 80-87%, depending on the magnitude of forecast error (see Figure 1.2). In the most
conservative case of α = 0.2 (it is expected that forecasts are at least this accurate), make-good
costs decrease by 80%.
Revenues from the future sales of ad space (objective term 2 in §1.4.1) cannot be evaluated
directly: Since we are backtesting, the sales process in our actual data cannot be affected by our
scheduling algorithm. Therefore, we use the distribution of theageof served impressions, the time between the sale of the campaign and when the impression was served, as a proxy.
A good scheduling algorithm will try to use the least costly inventory to satisfy existing
cam-paigns, leaving premium inventory reserved for future sales. Therefore, a good scheduling algorithm
0 50 100 150 200 250 0 0.0016 0.008 0.04 0.2 Legacy Pe na lt y C o s t Model
Ex-Post Objective Comparison - Penalty Costs End of Campaign Impression Goal End of Campaign Mix Goal
Weekly Campaign Impression Goal Weekly Campaign Mix Goal
Balance Impressions Across Games In Same
MixComponent
Minimum Weekly Revenue Target by Game
Figure 1.2: Performance of our algorithm compared to the legacy algorithm for different levels of forecast error α. The legacy algorithm does not use forecast data.
when mix constraints allow. When impressions cannot be appreciably shifted between tiers, a good
scheduling algorithm should try to serve tier 1 inventory as early as possible, and serve tier 2 and
3 inventory later on, again, saving the most valuable inventory for future sales.
In Figure 1.3, we compare the age distribution from our algorithm with that of the legacy
algorithm; in all cases, the forecast error parameter is set to α = 0.2 (the most conservative
scenario). As expected, our algorithm shifts a substantial portion of impressions from tier 1 into
tiers 2 and 3. The legacy algorithm serves 92% of its impressions from tier 1 games whereas our
algorithm serves just under 80% from tier 1. Furthermore, our algorithm serves tier 1 and tier
2 impressions earlier in a campaign’s life, while tier 3 impressions are served later: 63% of tier 1
impressions are 6 weeks old or younger using our algorithm, compared to 56% under the legacy
algorithm.
1.6.2 Stability of our Algorithm
Figure 1.4a shows our algorithm makes steady, continuous progress toward meeting the
end-of-campaign impression goals; the plot shows the cumulative number of impressions logged by a single
campaign from its start date to its end date. Figure 1.4b plots the cumulative number of impressions
60% 80% 100% % of Impressions by Tier Ti 3 0% 20% 40% Proposed Legacy Tier 3 Tier 2 Tier 1 0.6 0.8 1 Tier 1 Age CDF Proposed 0 0.2 0.4 1 3 5 7 9 11 13 15 17 19 21 23 25 Weeks Legacy 0.6 0.8 1 Tier 2 Age CDF Proposed 0 0.2 0.4 1 3 5 7 9 11 13 15 17 19 21 23 25 Weeks Legacy 0.6 0.8 1 Tier 3 Age CDF Proposed 0 0.2 0.4 1 3 5 7 9 11 13 15 17 19 21 23 25 Weeks Legacy
Figure 1.3: The tier distribution of impressions served (top left) and age distributions of impressions served for each tier, for the legacy algorithm and our proposed algorithm (usingα= 0.2).
which point the LP decides it is less costly to overrun the weekly goal a bit than to use inventory
from future weeks to serve this campaign. Our algorithm successfully meets the end-of-week target,
despite the fact that this campaign starts mid-week.
1.6.3 Performance under Higher Sell-through and Tighter Targeting
We now evaluate our algorithm as the number of campaigns in the system increases and the supply
constraints become tighter (or infeasible in some cases), thereby validating our approach as sales
volume increases. We use sell-through and targeting percentageto measure the tightness of the supply constraints. As defined in §1.3, the mean and standard deviation of sell-through at the
network level describe the tightness of supply: a high standard deviation of sell-through indicates
that in the space of all impressions in the network, there are pockets of inventory with high
sell-through, corresponding to intersections of games, DMA’s, IEC’s, weekdays, and dayparts that are
in high demand. The targeting percentage of campaign k, computed as P t∈Tk P i∈Ik st ik P t∈Tk P i∈Υ st i , represents
the percentage of impressions in the network that campaignk targets. A low targeting percentage
0 500,000 1,000,000 1,500,000 2,000,000 2,500,000 01/01/07 01/22/07 02/12/07 03/05/07 03/26/07 Im pr es s ions LP Solution Performance: Tracking Campaign Goal
Goal Actual 120,000 150,000 180,000 s ions LP Solution Performance: Tracking Weekly Campaign Goal
Goal 0 30,000 60,000 90,000 01/01/07 01/03/07 01/05/07 01/07/07 Impres s Planned Actual
Figure 1.4: The progress of the Real-time Algorithm (labelled “actual”) plotted over time for the largest campaign in the system. The forecast error parameter is the most conservative (α= 0.2). In (a) the goal is the end-of-campaign impression goal; in (b) we show the end-of-week impression goal and the number of impressions planned this week by the Weekly Plan LP.
campaign targets inventory thatalso has high sell-through, serving this campaign is difficult.
We generate six additional test cases with different levels of sell-through and targeting and
benchmark the performance of our algorithm relative to the legacy algorithm. Each test case is built
by augmenting the original problem instance from§1.6.1 (hereby called ‘status quo’) with a set of
200 randomly generated campaigns. The test cases differ in two properties of theadded