16
OPERATIONS RESEARCH Vol. 59, No. 1, January–February 2011, pp. 1–16 issn 0030-364X eissn 1526-5463 11 5901 0001 inf orms ® doi 10.1287/opre.1100.0852 © 2011 INFORMS OR PRACTICE Scheduling of Dynamic In-Game Advertising John Turner The Paul Merage School of Business, University of California, Irvine, Irvine, California 92697, [email protected] Alan Scheller-Wolf, Sridhar Tayur Tepper School of Business, Carnegie Mellon University, Pittsburgh, Pennsylvania 15213 {[email protected], [email protected]} 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. Subject classifications : dynamic in-game advertising; video game advertising; display advertising; revenue management; linear programming; goal programming. Area of review : OR Practice. History : Received July 2008; revisions received March 2009, July 2009, December 2009; accepted February 2010. Published online in Articles in Advance February 8, 2011. 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. Recently, how- ever, technology and business relationships have matured to allow Internet-enabled consoles (e.g., Xbox, PCs) 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 indus- try 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 loca- tions 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 play, the player navigates through the level and passes locations where ads are displayed. For this reason, and also because of additional constraints (such as saturation, competition, and context, discussed below), scheduling in-game ads is significantly more complicated than scheduling banner ads. The ad server is operated by a network provider, an inter- mediary between game publishers and advertising agen- cies. 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 tar- get 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 addi- tion, the network provider must also manage (1) satura- tion: 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 1 INFORMS holds copyright to this article and distributed this copy as a courtesy to the author(s). Additional information, including rights and permission policies, is available at http://journals.informs.org/.

Scheduling of Dynamic In-Game Advertising

  • Upload
    others

  • View
    5

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Scheduling of Dynamic In-Game Advertising

OPERATIONS RESEARCHVol. 59, No. 1, January–February 2011, pp. 1–16issn 0030-364X �eissn 1526-5463 �11 �5901 �0001

informs ®

doi 10.1287/opre.1100.0852©2011 INFORMS

OR PRACTICE

Scheduling of Dynamic In-Game Advertising

John TurnerThe Paul Merage School of Business, University of California, Irvine, Irvine, California 92697, [email protected]

Alan Scheller-Wolf, Sridhar TayurTepper School of Business, Carnegie Mellon University, Pittsburgh, Pennsylvania 15213

{[email protected], [email protected]}

Dynamic in-game advertising is a new form of advertising in which ads are served to video game consoles in real time overthe Internet. We present a model for the in-game ad-scheduling problem faced by Massive Inc., a wholly owned subsidiaryof Microsoft, and a leading global network provider of in-game ad space. Our model has two components: (1) a linearprogram (solved periodically) establishes target service rates, and (2) a real-time packing heuristic (run whenever a playerenters a new level) tracks these service rates. We benchmark our model against Massive’s legacy algorithm: When testedon historical data, we observe (1) an 80%–87% reduction in make-good costs (depending on forecast accuracy), and (2) ashift in the age distribution of served ad space, leaving more premium inventory open for future sales. As a result of ourwork, Massive has increased the number of unique individuals that see each campaign by, on average, 26% per week andachieved 33% smoother campaign delivery as measured by standard deviation of hourly impressions served.

Subject classifications : dynamic in-game advertising; video game advertising; display advertising; revenue management;linear programming; goal programming.

Area of review : OR Practice.History : Received July 2008; revisions received March 2009, July 2009, December 2009; accepted February 2010.

Published online in Articles in Advance February 8, 2011.

1. IntroductionVideo games have incorporated static ads for decades:for example, an old racing game may have a billboardthat always displays the same Sunoco ad. Recently, how-ever, technology and business relationships have maturedto allow Internet-enabled consoles (e.g., Xbox, PCs) todynamically serve ads over time, creating an entirely newad market: Dynamic in-game ad technology allows in-gamebillboards to display different ads to different players basedon their demographic, the time of day, the day of week, andpossibly other parameters. The in-game advertising indus-try is growing quickly; at present, revenues are projectedto 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 consoleconnects to the ad server via the Internet and requests newad graphics for billboards, stadium walls, and other loca-tions where ads are shown in the level. The ad server decideswhich ads to serve to this player, functioning like a Webserver delivering banner ads. But, unlike on the Web, wherea selected ad is almost certainly seen, it is common foronly a fraction of selected in-game ads to be seen. Billablead time is thus recorded only when, as part of game play,the player navigates through the level and passes locations

where ads are displayed. For this reason, and also becauseof additional constraints (such as saturation, competition,and context, discussed below), scheduling in-game ads issignificantly more complicated than scheduling banner ads.The ad server is operated by a network provider, an inter-

mediary between game publishers and advertising agen-cies. We focus on the scheduling problem faced by MassiveInc., a wholly owned subsidiary of Microsoft and a leadingglobal network provider. Game publishers allow Massive tosell and serve ads in their games, and consequently receivea portion of the generated revenues; ad agencies buy adcampaigns directly from Massive.The operational problem network providers like Massive

face is how to schedule and serve ads to players overtime so as to make the best use of their inventory of adspace. Campaigns purchased by an ad agency specify a tar-get number of impressions (ads seen by gamers), a roughschedule for serving these impressions over time, and alsoa desired mix (e.g., 60% in sports games, 40% in the rest ofthe games). A campaign’s delivery may also be restrictedto certain geographic areas and/or times of the day. In addi-tion, the network provider must also manage (1) satura-tion: it is undesirable for a single player to simultaneouslysee many copies of the same campaign; (2) competition:campaigns of two competing brands—e.g., Coke and

1

INFORMS

holds

copyrightto

this

article

and

distrib

uted

this

copy

asa

courtesy

tothe

author(s).

Add

ition

alinform

ation,

includ

ingrig

htsan

dpe

rmission

policies,

isav

ailableat

http://journa

ls.in

form

s.org/.

Page 2: Scheduling of Dynamic In-Game Advertising

Turner, Scheller-Wolf, and Tayur: Scheduling of Dynamic In-Game Advertising2 Operations Research 59(1), pp. 1–16, © 2011 INFORMS

Pepsi—should not be served to the same player; and (3)context: ads should not seem out of place within thegame—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 primarysources: (1) the acquisition of new games, (2) the saleof new campaigns, and (3) error in inventory forecasts ofad space. This last factor, uncertainty in the amount ofad space, arises because the number of players, the types(demographics) of players, and the ad space that the play-ers actually see during game play are not known when thescheduling problem needs to be solved. Thus, campaignssometimes fall short of their impression goals or deviatefrom the desired pattern of delivery; in that case, the net-work provider offers the advertiser a make-good: the cam-paign is extended or the advertiser is offered a refund orcredit for future use.We present the first planning/scheduling model and algo-

rithm for dynamic in-game advertising. Our model has twocomponents: (1) a linear program called the Weekly Planis solved periodically to establish target service rates, and(2) a packing heuristic called the Real-Time Algorithm isrun whenever a player enters a new level, to serve impres-sions in accordance with these service rates. Benchmarkingour model against Massive’s legacy algorithm using histor-ical data, we observe (1) an 80%–87% reduction in make-good costs (depending on forecast accuracy), and (2) a shiftin the age distribution of served ad space, leaving more pre-mium inventory open for future sales. Massive has begun astaged implementation of our model, and to date has bene-fitted from a 26% average increase in the number of uniqueindividuals that see each campaign each week, and 33%smoother campaign delivery, as measured by standard devi-ation of hourly impressions served.We proceed as follows: In §2, we review the literature

on media planning and scheduling, and describe existingmodels for broadcast television and webpage banner ads.We introduce the problem in §3, the Weekly Plan LP in §4,and the Real-Time Algorithm in §5. We benchmark ouralgorithm against Massive’s legacy algorithm in §6, andcomment on our implementation learnings in §7. We con-clude with comments and list future work in §8.

2. Literature ReviewTo the best of our knowledge, ours is the first academictreatment of the scheduling of in-game advertisements. Theprocess of dynamic in-game advertising is well documented(Chambers 2005, Svahn 2005); however, operational prob-lems, such as the scheduling problem we examine, havenot been studied. In the traditional media planning liter-ature, the optimization problem is usually that of a sin-gle advertiser and not of a network provider serving many

advertisers. In these models, the advertiser chooses amongadvertising vehicles (e.g., newsprint, television, radio) tomaximize some combination of reach (audience size), fre-quency, and campaign duration subject to a budget con-straint (see textbooks by Rossiter and Danaher 1998 andGensch 1973). One typical assumption is wearout (theeffectiveness of an ad decreases as the number of expo-sures to the same person increases); papers in this lineof research include Thompson (1981) and Simon (1982),which arrive at an optimal pulsing strategy of advertisingexpenditure over time. Although some of these concepts arerelevant, it is most instructive to compare our model withthose that take the perspective of a third party schedulingmany advertisers, such as models that plan TV commercialsand webpage banner ads. Structurally, in-game advertisingsits between TV and Web advertising: It has well-definedcontracts like TV, yet decisions are made at a very finegranularity, as on the Web.TV Commercials. Advertisers purchase 60%–80% of

the year’s ad space during a two- to three-week period inMay called the up-front market; the remaining ad spaceis sold first-come-first-serve in the scatter market. In con-trast, in-game ads are sold throughout the year, so the divi-sion between up-front and scatter markets is not profound.Therefore, papers (e.g., Araman and Popescu 2010) thatdetermine the optimal up-front versus scatter trade-off arenot directly applicable.Bollapragada et al. (2002) use goal programming to pro-

duce a sales plan for a single campaign that allocates com-mercial slots from TV shows such that the advertiser’spreferences are honored as closely as possible. Inventoryis booked for each advertiser in sequence, allowing eachadvertiser to request changes to their plan before it isfinalized. Audience size is assumed to be deterministicand there is no mention of make-goods allocation whenschedules are not executed as planned. This is a static up-front market problem; in contrast, we consider the dynamicproblem in which new campaigns and games materializeover a rolling horizon. Furthermore, our Real-Time Algo-rithm is significantly different than the low-level ad-slotting“ISCI Rotator” algorithms used for TV because in our caseeach viewer can be shown different ads. Finally, Zhang(2006) also solves the (static, deterministic, up-front mar-ket) TV commercial scheduling problem, but in their casethey assume that client negotiations are minimal, allow-ing them to simultaneously schedule all campaigns via amixed-integer program.Web Advertising. The most common objective in Web

advertising is maximizing click-through (e.g., Chickeringand Heckerman 2003, Nakamura and Abe 2005), a con-cept that does not apply to in-game ads. However, somepapers explore the essential dynamic trade-off: choosingbetween serving the campaign with the highest bid versusthe one farthest from achieving its contracted impressiongoal. Approaches include the online algorithm of Mehtaet al. (2007) and the large LP solved by column generation

INFORMS

holds

copyrightto

this

article

and

distrib

uted

this

copy

asa

courtesy

tothe

author(s).

Add

ition

alinform

ation,

includ

ingrig

htsan

dpe

rmission

policies,

isav

ailableat

http://journa

ls.in

form

s.org/.

Page 3: Scheduling of Dynamic In-Game Advertising

Turner, Scheller-Wolf, and Tayur: Scheduling of Dynamic In-Game AdvertisingOperations Research 59(1), pp. 1–16, © 2011 INFORMS 3

by Abrams et al. (2007). Of these, Abrams et al. (2007)include promising computational results on historical data;however, the authors note some challenges to implementingthe full-scale algorithm in practice. In addition to tailoringour focus to in-game advertising, our problem definition ismore comprehensive than either of these papers: we solvea multiobjective problem with many practical constraintsnot present in Abrams et al. (2007) or Mehta et al. (2007)(e.g., to spread impressions over time and across variousad spaces).

3. Definitions and Problem StatementGames, Zones, Inventory Elements, and Regions.

A video game is subdivided into many zones, each havingone or more inventory elements (the generic name givento in-game billboards and other locations where ads aredisplayed). Typically, each level of a game is a separatezone. Within each zone, inventory elements are groupedinto regions based on their spacial proximity; all inventoryelements visible from the same vantage point are typicallyin the same region.Requests, Arrivals, Game Instances, and Spots. When

a gamer enters a new zone, his console sends a requestto the ad server to select ad campaigns for all inventoryelements in the zone. From the ad server’s perspective, anarrival of a gamer has just occurred. This arrival spawns agame instance; the gamer will continue to see the ads thatwere selected by the ad server for this game instance untilthe gamer departs from this zone. Although some inventoryelements can only show one ad per game instance, others(e.g., an in-game Jumbotron) cycle through a sequence ofads; we call each element of the sequence an ad spot.Adtime. An inventory element in one game instance

provides adtime equal to the total amount of time—notnecessarily contiguous—that the inventory element appearson-screen. Adtime can be aggregated over multiple inven-tory elements and over multiple game instances; thus, wecan consider quantities such as the expected adtime of Zone3 of Game A on Monday.Impressions.We measure billable adtime in impressions.

Massive defines an impression as 10 seconds of time—notnecessarily contiguous—in which a gamer sees the samead campaign on-screen, possibly across multiple inventoryelements in the same game instance. For example, givena zone with two single-spot inventory elements, if theseelements log 7 and 8 seconds of adtime, respectively, inone game instance, then either: (1) the same campaign wasserved in both inventory elements, so ��7 + 8�/10� = 1impression is counted toward that campaign’s impressiongoal; or (2) different campaigns were served in these inven-tory elements, and no impressions are counted for eithercampaign (�7/10� = �8/10� = 0).Paying and Nonpaying Campaigns. Paying campaigns

specify an impression goal of qk and a unit price of pk,providing revenue of pk × qk. We can assume that Massive

receives this revenue up-front when the campaign is nego-tiated. Subsequent scheduling decisions affect Massive’sability to deliver the campaign; thus penalty costs (make-goods) may be incurred should campaign k not be deliveredas promised. Nonpaying campaigns include house ads, pub-lic service announcements (PSAs), and default graphics;these do not generate any revenue, do not have minimumimpression goals, and are served as “filler” when no payingcampaigns can be served.Campaign Targeting—Audience Demographics and

Context. Paying campaigns currently specify targeting con-straints along three dimensions: geography, time, and con-text; i.e., impressions must come from specific geographicregions, time slots, and inventory elements, respectively.The geographic dimension is indexed by 300+ designatedmarket area (DMA) codes that allow Massive to con-strain service to metropolitan areas across the United Statesand/or key areas in other parts of the world. There are42 combinations of {Weekday, DayPart} tuples for the timedimension, one for each of six DayParts (contiguous groupsof hours, e.g., Prime Time= 7 p.m.–12 a.m.) in each of theseven weekdays. Finally, there are 1 to 50 inventory ele-ment classes (IECs) per game that group inventory elementsby context (e.g., “all virtual soda machines”). By targetingspecific games, geographic regions, and times, a campaigncan be tailored for specific audience demographics. In con-trast, IEC targeting ensures proper context by integratingads in realistic places: Coke ads, not Tide ads, belong onvirtual soda machines.Competition and Saturation. Within each game in-

stance, (1) campaigns of competing brands (e.g., Coke andPepsi) cannot be shown, (2) each campaign can be servedin at most �z spots, and (3) when a campaign is served inmultiple spots, the spots should preferably be in differentregions. The quantity �z is called the saturation cap and istypically between a quarter to half the number of inventoryelements in zone z.Campaign Delivery Quality. In addition to a cam-

paign’s aggregate impression goal qk, the advertiser usuallyspecifies other impression goals either explicitly or implic-itly. These include mix requirements (e.g., at least 40% ofimpressions should come from sports games) and deliv-ery schedules (e.g., uniformly spread delivery over time, ordeliver more impressions the week before a new productlaunch). Mix requirements are modeled with an impressiongoal q�I� k� for certain groups of games I that campaignk desires; we call I a MixComponent. Delivery schedulescan include weekly impression goals qtk and, if needed,weekly impression goals for each MixComponent qt�I� k�. Itis usually also important to serve each campaign impres-sions from many different games because part of the valueof contracting with a network provider such as Massiveis derived from obtaining access to advertising space in abreadth of games from different publishers.Publisher Concerns. Because game publishers receive a

portion of the revenues generated by the impressions served

INFORMS

holds

copyrightto

this

article

and

distrib

uted

this

copy

asa

courtesy

tothe

author(s).

Add

ition

alinform

ation,

includ

ingrig

htsan

dpe

rmission

policies,

isav

ailableat

http://journa

ls.in

form

s.org/.

Page 4: Scheduling of Dynamic In-Game Advertising

Turner, Scheller-Wolf, and Tayur: Scheduling of Dynamic In-Game Advertising4 Operations Research 59(1), pp. 1–16, © 2011 INFORMS

in their games, the network provider must attempt to sched-ule ads across games to avoid negatively affecting the rev-enue stream of a particular publisher.Supply. Inventory is not games, or zones, or inventory

elements, but rather eyeballs: the total inventory availableto fulfill a campaign is the number of impressions generatedby gamers that match that campaign’s targeting. We usepoint forecasts of supply in our Weekly Plan LP, which arecomputed from the following point estimates of adtime:

• sti = expected adtime of game i, week t;• stid = expected adtime of game i, week t, DMA d;• stie = expected adtime of game i, week t, inventory

element e; and• stiw = expected adtime of game i, week t, {Week-

day, DayPart} w.Defining the set of zones in game i as Zi, the set

of inventory elements in zone z as Ez, and the setsof all DMAs and all {Weekday, DayPart} tuples as Dand W , respectively, we compute “breakouts”—proportionsof adtime that come from a single inventory element, DMA,or {Weekday, DayPart}:

• btid = stid/∑

d′∈D stid′ = proportion of game i, week t’sadtime that comes from DMA d;

• btie = stie/∑

z∈Zi� e′∈Ez stie′ = proportion of game i, week

t’s adtime that comes from inventory element e; and• btiw = stiw

/∑w′∈W stiw′ = proportion of game i, week t’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 requiresthe additional notation:

• Ezk = set of inventory elements in zone z that matchesthe targeting of campaign k;

• Dk�Wk = sets of DMAs and {Weekday, DayPart}tuples that match the targeting of campaign k, respectively;

• Pe = set of spots in inventory element e;• se = expected adtime of inventory element e in one

game instance;• sp�e�= se/�Pe� = expected adtime of any spot p ∈ Pe,

assuming each spot of Pe is equally likely to be on-screen; and

• � ∈ �0�1� = a factor that approximates the conver-sion ratio between adtime and impressions. We assume thatwhen measuring aggregate supply over many inventory ele-ments and/or large periods of time, adtime and impressionsare approximately equal modulo this scaling constant. Notethat if adtime was not rounded down to compute billableimpressions, then � = 1. We used � = 09, which wasconsistent with the aggregate amount of rounding down inour data set.Labeling the inventory elements of Ezk such that sp�1��

sp�2�� · · ·� sp��Ezk��, we define �Ezk = 1� ��z� as theset of the “largest” �z inventory elements in zone z thatmatch the targeting of campaign k. Finally, we compute thesupply estimates for the Weekly Plan LP:

• sti =�sti = estimated number of impressions providedby game i in week t;

• stik = �sti �∑

d∈Dk btid��

∑w∈Wk b

tiw��

∑z∈Zi

∑e∈Ezk b

tie� =

estimated number of impressions provided by game i inweek t that match the targeting requirements of cam-paign k; and

• stik = �sti �∑

d∈Dk btid��

∑w∈Wk b

tiw��

∑z∈Zi

∑e∈ �Ezk b

tie� =

estimated number of nonsaturated impressions provided bygame i in week t that match the targeting requirements ofcampaign k.Demand. The demand for ad space arises from ad agen-

cies purchasing campaigns. For each week t ∈ T of theplanning horizon, Massive uses a proprietary method toestimate the distributions of aggregate demand-to-comefor three groups of games: premium, middle, and dis-count tiers.Tightness of Capacity—Sell-Through. We first define:• �ae = adtime of inventory element e in the game

instance started by arrival a (measured ex post);• Atz�A

tzk = sets of arrivals for zone z in week t, and for

zone z in week t that match the targeting of campaign k,respectively;

• Kae = set of campaigns with targeting that matchesboth arrival a and inventory element e; and

• Ik = set of games that match the targeting of cam-paign k.Then, �tk = �

∑i∈Ik

∑z∈Zi

∑a∈Atzk

∑e∈Ezk �ae is the number

of impressions counted ex post in week t that could havebeen used by campaign k (assuming we disregard competi-tion and saturation constraints). The sell-through of inven-tory element e in the game instance started by arrival ain week t is ae = ∑

k∈Kae �qtk/�

tk�, the proportion of inven-

tory element e in arrival a that would have been allocatedto paying campaigns if each campaign were served at thesame rate across the entire inventory space it targeted. Thepopulation mean � and population standard deviation � describe sell-through over aggregated blocks of inventory;for example, the network sell-through over the planninghorizon (i.e., computed over all games � and weeks T ) hasmean, second moment, and standard deviation:

� =∑

t∈T∑

i∈�∑

z∈Zi∑

a∈Atz∑

e∈Ez �ae ae∑t∈T

∑i∈�

∑z∈Zi

∑a∈Atz

∑e∈Ez �ae

� 2 =∑

t∈T∑

i∈�∑

z∈Zi∑

a∈Atz∑

e∈Ez �ae 2ae∑

t∈T∑

i∈�∑

z∈Zi∑

a∈Atz∑

e∈Ez �ae�

� =√� 2 −�2

Legacy Algorithm. Massive’s existing schedulingalgorithm—the legacy algorithm—uses a single impressiongoal qk for each campaign and assumes that impressionsshould be spread uniformly across all weeks (i.e., it doesnot support delivery schedules that ramp up impressions theweek before a product launch). When a new arrival spawnsa game instance, the legacy algorithm checks whether eachcampaign k is ahead or behind schedule and adjusts the ser-vice rates accordingly. Because the legacy algorithm serves

INFORMS

holds

copyrightto

this

article

and

distrib

uted

this

copy

asa

courtesy

tothe

author(s).

Add

ition

alinform

ation,

includ

ingrig

htsan

dpe

rmission

policies,

isav

ailableat

http://journa

ls.in

form

s.org/.

Page 5: Scheduling of Dynamic In-Game Advertising

Turner, Scheller-Wolf, and Tayur: Scheduling of Dynamic In-Game AdvertisingOperations Research 59(1), pp. 1–16, © 2011 INFORMS 5

campaign k at the same rate in each game i that its tar-geting matches, it is usually good at spreading impressionsacross MixComponents, providing impressions in a broadset of games, and satisfying publisher concerns. The mostsystematic shortcoming of the legacy algorithm is that itis myopic; because it does not use supply estimates, it isunable to proactively increase the service rate of a cam-paign if shortages are anticipated later.

4. Weekly Plan LPWe periodically solve a linear program called the WeeklyPlan to get xtik, the number of impressions allocated tocampaign k from game i in week t. We update the targetservice rates �tik = xtik/s

tik whenever the Weekly Plan is re-

solved; the Real-Time Algorithm (see §5) uses these ratesto select specific campaigns for the inventory elements ofa given game instance.The Weekly Plan is similar to the goal program of

Bollapragada et al. (2002), which is used to generate TVad sales plans at NBC. Both formulations have an objec-tive that reserves premium inventory for future sales whileminimizing penalty costs for relaxing the many goal con-straints. The NBC sales plan has mix constraints andweekly weighting constraints, which take a client’s goalx = q (# of commercial slots assigned from this subsetof inventory = target) and relaxes it to l− y � x � u+ y,where y � 0 is a slack variable penalized in the objec-tive and �l� u� are lower and upper bounds. We follow thesame construction; however, our mix constraints specify animpression goal q�I� k� for MixComponent I (which is agroup of games), whereas at NBC the mix targets are for asingle TV show. We also add a weekly mix constraint basedon the target qt�I� k�, a constraint that spreads impressionsacross all games within a MixComponent, and a constraintthat ensures that each game is assigned a minimum dollarvalue in revenue. The NBC sales plan bounds the numberof slots allocated to a given {Show,Week}, which partiallyenforces saturation and competition constraints; saturationis then handled by a heuristic they call the ISCI Rotator,which spreads commercials of the same campaign apartchronologically. We follow a similar approach by includ-ing bounds on xtik that partially enforce the saturation cap,and defer the consideration of competition and saturationto the Real-Time Algorithm. Finally, we note that NBC’sgoal program is an integer program (as discrete commercialslots are allocated) that generates a sales plan for a sin-gle campaign, whereas we allocate impressions for manycampaigns simultaneously using a linear program.The Weekly Plan LP appears in Figure 1. For com-

pactness, some quantities are shown with lower and upperbounds within the same constraint; hence, slack variablesexist on both sides of some constraints. The variables are�, v, w, x, y, z; all other quantities are constants; seeTable 1 for the full list of notation. Because we re-solve theWeekly Plan LP over time, we divide time into two parts:

Figure 1. The Weekly Plan LP.

max −∑k∈K�kyk − ∑

k∈K� t∈Tk�ky

tk − ∑

k∈K� I∈�k�ky�I� k� −

∑k∈K� I∈�k� t∈Tk

�kyt�I� k�

− ∑k∈K� I∈�k� t∈Tk

�kvt�I� k� −

∑t∈T � i∈�

�izti +

∑I∈�� t∈T �m=1n

�t�I�m�wt�I�m�

s.t. xk + yk = �qk − ak�+ ∀k ∈K� �1�

ltk − ytk � xtk � utk + ytk ∀ t ∈ Tk� ∀k ∈K� �2�

l�I� k� − y�I� k� � x�I� k� ∀ I ∈�k� ∀k ∈K� �3�

lt�I� k� − yt�I� k� � xt�I� k� ∀ I ∈�k� t ∈ Tk� ∀k ∈K� �4�

stik�t�I� k� − vt�I� k� � xtik � stik�t�I� k� + vt�I� k�

∀ i ∈ I� ∀ I ∈�k� t ∈ Tk� ∀k ∈K� �5�∑k∈Kpkx

tik + zti � r ti ∀ t ∈ T � i ∈�� �6�

xti + wti = sti ∀ t ∈ T � i ∈�� �7�

xtik �˙stik ∀ i ∈ Ik� t ∈ Tk� ∀k ∈K� �8�

xtik − xtik = atik ∀ i ∈ Ik� t ∈ Tk� ∀k ∈K� �9�

wt�I�m� � �t�I�m� ∀ I ∈�� m= 1�n− 1�� t ∈ T � �10�

∑m=1n

wt�I�m� −∑i∈Iwti = 0 ∀ I ∈�� t ∈ T � �11�

xk − ∑i∈Ik� t∈Tk

xtik = 0 ∀k ∈K� �12�

xk − xk = ak ∀k ∈K� �13�

xtk −∑i∈Ikxtik = 0 ∀ t ∈ Tk� ∀k ∈K� �14�

x�I� k� −∑

i∈I� t∈Tkxtik = a�I�k� ∀ I ∈�k� ∀k ∈K� �15�

xt�I� k� −∑i∈Ixtik = 0 ∀ I ∈�k� t ∈ Tk� ∀k ∈K� �16�

xti −∑k∈Kxtik = 0 ∀ t ∈ T � i ∈�� �17�

�� v�w�x� y� z� 0 for all forms of these variables �18�

The constant a denotes all impressions of x achieved upto the present, and x denotes all impressions of x plannedinto the future. Hence, x = a+ x. Similarly, dots on otherconstants and variables indicate quantities for the remain-der of the relevant time interval.Constraints (1) through (5) are goal-type constraints

that model campaign contract requirements that may berelaxed and penalized in the objective: Constraint (1)(end-of-horizon impression goal) makes sure that for eachcampaign k, the number of impressions planned in theremainder of the horizon xk, plus the planned shortfall yk,must equal the remaining end-of-horizon impression goal�qk − ak�

+; constraint (2) (weekly impression goals)ensures that the number of planned impressions xtk isbetween the bounds ltk and utk for each campaign k andweek t; constraint (3) (end-of-horizon mix target) ensuresthat at least l�I� k� impressions from MixComponent I areallocated to campaign k; and constraint (4) (weekly mixtargets) ensures that at least lt�I� k� impressions from Mix-

INFORMS

holds

copyrightto

this

article

and

distrib

uted

this

copy

asa

courtesy

tothe

author(s).

Add

ition

alinform

ation,

includ

ingrig

htsan

dpe

rmission

policies,

isav

ailableat

http://journa

ls.in

form

s.org/.

Page 6: Scheduling of Dynamic In-Game Advertising

Turner, Scheller-Wolf, and Tayur: Scheduling of Dynamic In-Game Advertising6 Operations Research 59(1), pp. 1–16, © 2011 INFORMS

Table 1. Notation for Weekly Plan LP.

Indicesi, k, t = a game, a campaign, a week,

m= a segment of the piecewise-linear expected revenue function for unused inventory,I = a set of games (can be either a MixComponent or a tier).

Sets� , K, T = all games, all paying campaigns, all weeks,

Ik = games that campaign k can be served in,Tk =weeks that campaign k can be served in.

Collections (sets of sets)�= all MixComponents,�k =MixComponents for campaign k,� = all tiers of games.

Parametersak, a�I� k�, a

tik = # of impressions served to date for campaign k, for campaign k in MixComponent I , and for campaign k

in game i during week t,ltk, u

tk = bounds on the # of impressions to show for campaign k in week t,

l�I� k�, lt�I� k� = lower bounds for the # of impressions to serve to campaign k of MixComponent I over all weeks,

to campaign k of MixComponent I in week t,n= # of piecewise-linear segments in expected revenue function,pk = price per impression paid by campaign k,qk = end-of-horizon impression goal for campaign k,r ti =minimum revenue amount for game i, week t,sti = expected supply of game i in week t,stik = expected supply of game i in week t that matches campaign k,stik = expected nonsaturated supply of game i in week t that matches campaign k,

�t�I�m� =marginal revenue in the mth segment of the piecewise-linear expected revenue function for tier I , week t,�t�I�m� =width of the mth segment of the piecewise-linear expected revenue function for tier I , week t.

Slack Variables and Penalty Costsvt�I� k�� �k =maximum absolute deviation from the nominal number of impressions to serve campaign k in game i at week t,

taken over all games i in MixComponent I , penalty cost for not spreading impressions across all gamesin a MixComponent,

yk��k = shortfall amount, penalty cost for the end-of-horizon impression goal for campaign k,ytk��k = amount bounds violated, penalty cost for the impression goal for campaign k, week t,

y�I� k�� �k = amount bounds violated, penalty cost for the end-of-horizon impression goal for campaign k, MixComponent I ,yt�I� k���k = amount bounds violated, penalty cost for the impression goal for campaign k, MixComponent I , week t,

zti � �i = shortfall amount, penalty cost for the minimum revenue target of game i, week t.

Decision Variableswti = impressions of game i available to satisfy future demand in week t,

wtI�m = impressions of tier I available to satisfy future demand in week t, placed in segment m of the piecewise-linear expectedrevenue function,

xk = impressions allocated to campaign k over the planning horizon,xtk = impressions allocated to campaign k from week t,xti = impressions allocated from game i, week t,xtik = impressions allocated to campaign k from game i, week t,

x�I� k� = impressions allocated to campaign k from MixComponent I over the planning horizon,xt�I� k� = impressions allocated to campaign k from MixComponent I , week t,�t�I� k� = nominal rate to serve impressions of MixComponent I to campaign k in week t.

Notes. Our model also makes use of some quantities not listed in the above table, but that are related to the quantities listed above. In particular,quantities which we denote with a dot superscript are analogs of their nondotted cousins. The dotted quantity measures the component of thenondotted quantity that applies from the current time (of solving the Weekly Plan LP) until the end of the relevant time period. For example,xt

ik is the analog of xtik . Whereas xt

ik measures the number of impressions allocated to campaign k from game i, week t, the quantity xtik is

the number of impressions allocated to campaign k from game i in the remainder of week t. In the case that a portion of week t has elapsedat the time the Weekly Plan LP is being solved, the xt

ik and xtik do not coincide and in fact are related by the expression xt

ik = atik + xt

ik .

Component I are allocated to campaign k in week t.Constraint (5) (spread impressions to all games withina MixComponent) models the following idea: “For each{MixComponent, Campaign,Week}, try to set the same ser-vice 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 raterequires satisfying �tik = �t�I� k� ∀ i ∈ I . By multiplyingxtik/s

tik = �t�I� k� through by stik and introducing the slack

vt�I� k�, we obtain constraint (5). Note that stik�t�I� k� can be

INFORMS

holds

copyrightto

this

article

and

distrib

uted

this

copy

asa

courtesy

tothe

author(s).

Add

ition

alinform

ation,

includ

ingrig

htsan

dpe

rmission

policies,

isav

ailableat

http://journa

ls.in

form

s.org/.

Page 7: Scheduling of Dynamic In-Game Advertising

Turner, Scheller-Wolf, and Tayur: Scheduling of Dynamic In-Game AdvertisingOperations Research 59(1), pp. 1–16, © 2011 INFORMS 7

interpreted as the nominal number of impressions to planin game i, and so vt�I� k� penalizes the maximum absolutedeviation from the nominal number of impressions acrossall games in MixComponent I .Constraint (6) (minimum revenue target for each game)

is the only goal-type constraint that models publishercontract requirements. This constraint ensures that enoughimpressions are allocated to game i in week t to guaranteeat least r ti dollars in revenue.Constraint (7) (supply) states that for the remaining por-

tion of week t in game i, the number of impressionsplanned, 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 impressionsassigned to campaign k in game i, week t by the estimatednonsaturated supply stik.

Constraint (9) (link total planned impressions withremaining planned impressions) ensures that for each{Game, Campaign,Week}, the total number of impressionsplanned, xtik, must equal the actual number of impres-sions achieved up to the present, atik, plus the number ofimpressions planned from the present until the end of theweek, xtik. For weeks t � 2, we always have atik = 0, and sothis constraint reduces to xtik = xtik.Constraints (10)–(11) model a piecewise-linear compo-

nent of the objective function and are described with theobjective in §4.1. Constraints (12)–(17) link the variousforms of x. In an actual implementation, only the variablesxtik and x

tik are required; the other forms of x can be written

as linear combinations of xtik and xtik. We use the otherforms of x to keep constraints (1)–(11) readable.Constraints (3) and (4) do not have upper bounds because

MixComponents are not mutually exclusive: game i may beboth a sports game and a racing game; in that case, impres-sions allocated to game i count toward two mix targets.Had upper bounds existed, they may need to be violated tosatisfy the end-of-horizon goal (constraint (1)).

4.1. The Objective Function

The objective is to maximize revenues that can be affectedby scheduling; it contains two terms.Objective Term 1. Penalty costs for breaking con-

tracts is:

− ∑k∈K�kyk − ∑

k∈K� t∈Tk�ky

tk − ∑

k∈K� I∈�k�ky�I� k�

− ∑k∈K�I∈�k�t∈Tk

�kyt�I�k�−

∑k∈K�I∈�k�t∈Tk

�kvt�I�k�−

∑t∈T � i∈�

�izti

We model the costs of falling short of the goals mod-eled by constraints (1)–(6) as negative revenues from thedelivery of make-goods for broken contracts. Make-goodcosts include direct compensation for underdelivery, trans-action costs, and loss of goodwill. Direct compensation iseither the dollar amount refunded to the advertiser, or the

(shadow) cost of assigning additional inventory to extendthe campaign past its scheduled end date. Transaction costsinclude all manual processing to issue the make-good,including getting approval to extend the campaign. Loss ofgoodwill models the advertiser’s displeasure with the qual-ity of service they received and reflects the estimated lossof repeat business. Transaction costs and goodwill costsare likely significant, yet are extremely hard to estimate;fortunately, with regard to linear programming, exact esti-mation of the penalty costs is not as important as their rela-tive ranking. Massive suggested the following penalty costs,which are proportional to campaign prices pk: �k = pk perimpression short of the end-of-horizon goal for campaign k;�k = 01pk per impression over/under the allowed deviationfrom the weekly goal; �k = 01pk over/under the alloweddeviation from the end-of-horizon goal for each MixCom-ponent; �k = 005pk over/under the allowed deviation fromthe weekly goal for each MixComponent; and �k = 005pkfor not spreading impressions evenly across all games ina MixComponent. We also used �i ∈ 05�025�01� as theper-dollar penalties of falling short of the minimum revenuetarget of game i (penalties are differentiated by tier).Note that in practice, make-good costs should also be

increased for preferred customers (which are often givenquantity discounts) to compensate for the fact that theabove formulas assign low penalty costs to campaigns withlow prices.Objective Term 2—General Form. Revenue potential

of unscheduled inventory is:

∑I∈�� t∈T

f tI �wtI �

Because supply and demand change over time, thescarcity of inventory, and therefore the value of unscheduledinventory, will change over time. By scheduling appropri-ately, we maximize the total dollar value of unscheduledinventory, i.e., the expected future sales revenue. The gen-eral form of objective term 2 is as listed above, where� is the set of all tiers of games (premium, middle, dis-count), T is the set of all weeks, and f tI is a function thatvalues the quantity of unscheduled inventory wtI for tier I inweek t. Suppressing subscripts and superscripts, the valuefunction for unscheduled inventory f �w� of a particular{Tier,Week} is:

f �w� �= pƐ�min�X�w��= pƐ�X− �X−w�+�= p

∫ w

0

G�x�dx�

where p is the fixed price for the type of inventory underconsideration, X is a random variable that models marketdemand, G�x� is the cumulative distribution function ofdemand, and G�x�= 1−G�x�. Thus, if we leave w units ofinventory available, expected sales is Ɛ�min�X�w��, yield-ing f �w� dollars in expected revenue.

INFORMS

holds

copyrightto

this

article

and

distrib

uted

this

copy

asa

courtesy

tothe

author(s).

Add

ition

alinform

ation,

includ

ingrig

htsan

dpe

rmission

policies,

isav

ailableat

http://journa

ls.in

form

s.org/.

Page 8: Scheduling of Dynamic In-Game Advertising

Turner, Scheller-Wolf, and Tayur: Scheduling of Dynamic In-Game Advertising8 Operations Research 59(1), pp. 1–16, © 2011 INFORMS

Because f ′�w�= p�d/dw�∫ w0

G�x�dx = p G�w� and Gis a nonincreasing function, f �w� is concave increasing forall demand distributions of X. Therefore, we can approx-imate f �w� by a piecewise-linear function with n seg-ments of successively smaller positive slope. Denoting themarginal revenues (slopes) as �m and segment widths as�m for the m= 1n segments, the expected revenue fromfuture sales is modeled by the linear form:Objective Term 2—Linear Form. The Weekly Plan LP

uses this linear form in practice.∑I∈�� t∈T �m=1n

�t�I�m�wt�I�m�

and is accompanied by constraint (10) (bound theunplanned impressions in each segment) and constraint (11)(link unplanned impressions by {Tier,Week, Segment} to{Game,Week}).Because the slope parameters �tI�m are decreasing in m

and we are maximizing, wtI�m = 0 =⇒ wtI�m+1 = 0. Thebounds on wt�I�m�, namely �t

�I�m�, ensure that impressionsare accounted for in the correct segment, where �t

�I�m�

is defined as follows (� is the percentage of week 1remaining):

�t�I�m� �=

⎧⎨⎩��t

�I�m� for t = 1�

�t�I�m� for t � 2

We assumed stationarity in the tests we performed, andcomputed the required cdfs from historical data. In prac-tice, we expect the historical cdf to be used as a baselinethat Massive can manually align with their sales projections(keeping the general shape of the cdf the same, but shiftingits mean). For an example that uses a discrete demand dis-tribution to compute � and � , see §EC.1 of the electroniccompanion to this paper, available as part of the onlineversion at http://or.journal.informs.org/.Alternately, when only Ɛ�X� is specified, we can

use G�x� = 0 if x < Ɛ�X�� 1 if x � Ɛ�X�� to com-pute f �w � Ɛ�X��= w if x < Ɛ�X�, Ɛ�X� if x � Ɛ�X��.By Jensen’s Inequality, we know f �w � Ɛ�X�� ≡Ɛ�min�Ɛ�X��w�� � Ɛ�min�X�w�� ≡ f �w�; thus, f �w� is afunction that is bounded above by f �w � Ɛ�X��, yet has sim-ilar asymptotic behavior; i.e., f �w� → w as w → 0, andf �w�→ Ɛ�X� as w → . An appropriately chosen splinecan be approximated with a few piecewise-linear segmentsto get the piecewise-linear form of f �w� used by our model.Finally, we point out that in theory, censored demand can

be handled by the Kaplan-Meier estimator (Talluri and vanRyzin 2005); however, this is not necessary when workingwith tiers: individual games may get sold out, but becausetiers are large aggregations of games, excess inventory usu-ally exists.

5. Real-Time AlgorithmEach arrival to the ad server invokes the Real-Time Algo-rithm, which assigns campaigns to inventory elementsin the player’s game instance. The Real-Time Algorithmmakes this allocation in accordance with the service rates

�tik computed by the Weekly Plan LP, while also obeyingcampaign targeting, saturation, and competition constraints.The Real-Time Algorithm serves the same purpose

as the ISCI Rotator Algorithm for scheduling commer-cials in broadcast television (Bollapragada et al. 2004,Bollapragada and Garbiras 2004). A broadcast TV salesplan (analogous to our Weekly Plan) specifies the set ofcommercials to display during each airing of each show,leaving the ISCI Rotator to choose, for each ad, the com-mercial breaks and positions within those breaks whereeach ad should be aired. The ISCI Rotator allocates ads toslots such that saturation is managed (two airings of thesame commercial are as evenly spaced as possible) andcompetition constraints are obeyed (competing brands arenot displayed in the same commercial break). Althoughthere are some high-level similarities, the Real-Time Algo-rithm operates differently than the ISCI Rotator. This isbecause targeting constraints add complexity to the Real-Time Algorithm and because the Real-Time Algorithm sac-rifices optimality for speed: it is run millions of times perday 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 accordancewith the adjusted service rates. Notation for the Real-timeAlgorithm is summarized in Table 2.

5.1. Stage 1: Adjust Service Rates forthe Current Game Instance

An arrival of type a= {Zone, DMA,Weekday, DayPart} isinitially assigned the service rate matrix �a, the elementsof which are

�ck �=

⎧⎪⎪⎪⎪⎨⎪⎪⎪⎪⎩

�1i�a�� k if campaign k matches the targeting

of both IEC c and the {Zone, DMA,Weekday, DayPart} specified by a�

0 otherwise�

where i�a� is the game that includes the zone specified ina, and �1

i�a�� k is the service rate for campaign k, game i�a�,week 1 from the Weekly Plan.Algorithm 1 modifies the rate matrix �a to satisfy (1)

competition constraints and (2) the constraint∑

k∈Kac�ck�1∀ c ∈ Cz, which states that for each IEC c in the set ofIECs Cz that intersect the current zone z, the sum of theservice rates of campaigns Kac eligible for service to this{Arrival, IEC} must not exceed 1. In Step 1, we computea weighted average rate �WEIGHTED

k for each campaign overall IECs in the zone. Next, we use the weighted aver-age rates to assign one random campaign from each setof competing brands a nonzero service rate (Steps 2–5).We have assumed that the groups of competing brands aremutually exclusive; however, a straightforward extension ofthis algorithm applies to overlapping groups of competingbrands. Finally, in Steps 6–12, the algorithm decreases the

INFORMS

holds

copyrightto

this

article

and

distrib

uted

this

copy

asa

courtesy

tothe

author(s).

Add

ition

alinform

ation,

includ

ingrig

htsan

dpe

rmission

policies,

isav

ailableat

http://journa

ls.in

form

s.org/.

Page 9: Scheduling of Dynamic In-Game Advertising

Turner, Scheller-Wolf, and Tayur: Scheduling of Dynamic In-Game AdvertisingOperations Research 59(1), pp. 1–16, © 2011 INFORMS 9

Table 2. Notation for the Real-Time Algorithm.

Indicesa= an arrival,

b, b′, b∗ = a bucket,bu = the “unpaid” bucket,c= an IEC,

k, k′, k′′, k∗ = a campaign,p�p∗ = a spot,

r = a region,u= all nonpaying campaigns.

Functions of Indicesb�c� k�= bucket for IEC c, paying campaign k,c�p�= IEC corresponding to spot p,k�b�= campaign corresponding to bucket b,e�p�= inventory element corresponding to spot p,r�p�= region corresponding to spot p.

Input: SetsCz = IECs in zone z,Ez = inventory elements in zone z,Ecz = inventory elements in zone z and IEC c,Ka = campaigns with targeting matching arrival a,Kac = campaigns with targeting matching both arrival a and IEC c,

Pb ≡ Pc�b�� z = spots that can be placed in bucket b,Pe = spots of inventory element e,

Pz =⋃e∈Ez Pe = spots in zone z,

Pcz =⋃e∈Ecz Pe = spots in zone z and IEC c,

Rz = regions in zone z.

Input: Collections (sets of sets)�a = groups of campaigns that are competing brands with targeting that matches arrival a.

Input: Parametersse = expected adtime of inventory element e,

sp = se�p�/�Pe�p�� = expected adtime of spot p,

scz =∑e∈Ecz se = expected adtime of IEC c in one game instance of zone z,

�k = contracted end date of campaign k,�z = saturation cap of zone z.

Inputs/Variables (inputs that get adjusted)�ck = service rate for campaign k in IEC c,�a = service rate matrix for arrival a.

Variables: Scalarsnr�k = number of times a spot from region r was allocated to campaign k,vb = unallocated expected adtime of bucket b,xp = unallocated expected adtime of spot p,yb�p = expected adtime of spot p allocated to bucket b,

�WEIGHTEDk =weighted average service rate for campaign k, computed over all IECs,

, ! = used in local computations.

Variables: SetsK∗ = campaigns of competing brands,KU = campaigns strictly under the saturation cap,B= buckets for paying campaigns,P ∗ = spots p∗ that can be placed in the chosen bucket b′, and are in a region r�p∗� where we

have allocated campaign k�b′� the fewest number of times,P ∗∗ = spots not completely allocated,

�Pk = spots in which campaign k should be served.

service rates of some campaigns (if necessary) in order for∑k∈Kac �ck � 1 ∀ c ∈ Cz to hold; note that the campaigns

with the latest end dates (which have the most time to catchup later) are chosen. See §EC.2.1 for a detailed example.

Algorithm 1 (AdjustServiceRates)

1: �WEIGHTEDk ←∑

c∈Cz scz�ck/∑

c∈Cz scz ∀k ∈Ka2: for all K∗ ∈�a do

3: k′ ← k ∈K∗ with probability �WEIGHTEDk

/∑

k∗∈K∗ �WEIGHTEDk∗ �

4: �ck′ ←∑k∈K∗ �ck ∀ c ∈Cz, and

�ck ← 0 ∀k ∈K∗\k′�, c ∈Cz5: end for

6: for all c ∈Cz do

INFORMS

holds

copyrightto

this

article

and

distrib

uted

this

copy

asa

courtesy

tothe

author(s).

Add

ition

alinform

ation,

includ

ingrig

htsan

dpe

rmission

policies,

isav

ailableat

http://journa

ls.in

form

s.org/.

Page 10: Scheduling of Dynamic In-Game Advertising

Turner, Scheller-Wolf, and Tayur: Scheduling of Dynamic In-Game Advertising10 Operations Research 59(1), pp. 1–16, © 2011 INFORMS

7: Label the campaigns k ∈Kac such that�1 � �2 � · · ·� ��Kac �

8: ← �∑

k∈Kac �ck − 1�+; k← 19: while > 0 do10: !←min�ck� �; �ck ← �ck −!;

← −!" k← k+ 111: end while12: end for13: return �a

5.2. Stage 2: Assign Campaigns toInventory Elements

Let Ka be the set of paying campaigns with targeting thatmatches arrival a, and let u represent all unpaid campaigns.For each campaign k ∈ Ka ∪ u�, Algorithm 2 outputs aset of spots �Pk in which campaign k should be served.The algorithm begins by creating a set of buckets B; thesize of bucket b�c� k� ∈ B is the expected adtime for pay-ing campaign k in IEC c, assuming campaign k is servedat rate �ck. An infinitely large bucket bu � B called the“unpaid bucket” is also created; it is used when servicerates are too low to assign all spots to paying campaigns.The main variables are: vb = unallocated expected adtimeof bucket b; xp = unallocated expected adtime of spot p;yb�p = expected adtime of spot p allocated to bucket b; andnr�k = number of times a spot from region r has been allo-cated to campaign k. We will sometimes use index func-tions such as r�p� = region corresponding to spot p; andk�b� = campaign corresponding to bucket b. Recall from§3 that the expected adtime of any spot p of inventoryelement e is sp ≡ sp�e�= se/�Pe�. Steps 1–5 comprise theinitialization phase.

Algorithm 2 (AssignCampaigns)

1: vbu ← ; ybu�p ← 0 ∀p ∈ Pz; B← �2: for all c ∈Cz, k ∈Kac do3: Create bucket b≡ b�c� k�; vb ← �ckscz;

yb�p ← 0 ∀p ∈ Pz; B← B ∪ b�4: end for5: xp ← sp ∀p ∈ Pz; nr�k ← 0 ∀ r ∈Rz� k ∈Ka6: while

∑b∈B vb > 0 do

7: b′ ← b ∈ B with probability vb/∑

b∗∈B vb∗�8: P ∗ ← p∗ ∈ Pb′ � nr�p∗�� k�b′� =minp∈Pb′ nr�p�� k�b′��;

p′ ← argmaxp∈P∗ xp9: !←minvb′ � xp′�; yb′� p′ ← yb′� p′ +!;

vb′ ← vb′ −!; xp′ ← xp′ −!;nr�p′�� k�b′� ← nr�p′�� k�b′� + 1

10: end while11: P ∗∗ ← p ∈ Pz � xp > 0�12: if P ∗∗ �= � then13: ybu�p ← xp ∀p ∈ P ∗∗, xp ← 0 ∀p ∈ P ∗∗

14: end if15: �Pk ← � ∀k ∈Ka ∪ u�16: for all p ∈ Pz do17: b′ ← b ∈ B ∪ bu� with probability yb�p/s

p�

18: yb′� p ← sp; yb�p ← 0 ∀b ∈ B ∪ bu�\b′�;�Pk�b′� ← �Pk�b′� ∪ p�

19: end for20: for all k′ ∈ k� � �Pk�>�z�k �= u� do21: while � �Pk′ �>�z do22: p′ ← argminp∈ �Pk′ s

p; KU ← k� � �Pk�<�z�k �= u�

23: if∑

k∈KU �c�p′�� k > 0 then24: k′′ ← k ∈KU with probability

�c�p′�� k/∑

k∗∈KU �c�p′�� k∗�25: else26: k′′ ← u27: end if28: �Pk′ ← �Pk′ \p′�; �Pk′′ ← �Pk′′ ∪ p′�29: end while30: end for31: return �P

In Steps 6–10, spots are fractionally assigned to bucketsb ∈ B; i.e., a spot may be assigned to more than one bucketat this stage. At each iteration of the loop, we randomlydraw a nonfull bucket b′ and a noncompletely assigned spotp′, and assign a portion (or all, if possible) of spot p′ tobucket b′. We bias toward assigning large spots to largebuckets, which achieves a tight packing; however, we donot always pick the largest bucket and spot: buckets arechosen randomly so the visual placement of ads withinthe game is randomized, and spots are chosen to spreadmultiple copies of the same campaign to spots in differ-ent regions. The chosen spot p′ is the spot with the largestamount of unallocated expected adtime among those in theset P ∗, where P ∗ is the set of all spots p∗ that can be placedin chosen bucket b′ and are in a region r�p∗� where wehave allocated campaign k�b′� the fewest number of times.In Steps 11–14, any spots that did not fit into the buckets

for paying campaigns B are assigned (in whole or in part)to the unpaid bucket bu. It can be shown that when thealgorithm is initialized,

∑b∈B vb �

∑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 spot pgets assigned in whole to bucket b (and removed from allother buckets) with probability yb�p/s

p (the proportion ofspot p currently assigned to bucket b). At this point, buck-ets may be perfectly filled, overfilled, or underfilled—allcases are feasible. A perfectly filled (respectively, over-filled/underfilled) bucket b�c� k� corresponds to servingcampaign k in IEC c exactly at (respectively, above/below)the service rate �ck in expectation.In Steps 20–30, the algorithm adjusts the final solu-

tion �Pk (the set of spots in which to serve campaign k) ifthe saturation cap is exceeded (the same campaign appearsin more than �z spots). We reassign the smallest spots p′

to minimize the resulting change to the service rates; wefirst reassign spots in whole to paying campaigns that areunder the saturation cap, drawn proportionally to �c�p′�� k

INFORMS

holds

copyrightto

this

article

and

distrib

uted

this

copy

asa

courtesy

tothe

author(s).

Add

ition

alinform

ation,

includ

ingrig

htsan

dpe

rmission

policies,

isav

ailableat

http://journa

ls.in

form

s.org/.

Page 11: Scheduling of Dynamic In-Game Advertising

Turner, Scheller-Wolf, and Tayur: Scheduling of Dynamic In-Game AdvertisingOperations Research 59(1), pp. 1–16, © 2011 INFORMS 11

when there are multiple such campaigns, and then to theunpaid campaign bucket. See §EC.2.2 for an example ofAlgorithm 2.

5.3. Properties of the Solution

At its conclusion, the Real-Time Algorithm has assigned acampaign to each spot such that:1. DMA, Weekday, DayPart, and IEC targeting are sat-

isfied because 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 afew campaigns with later due dates that had their servicerates reduced by Steps 6–12 of Algorithm 1). Thus, inexpectation, our algorithm meets the impression goals, mixrequirements, spread constraints, and revenue targets speci-fied in the Weekly Plan while maximizing revenues affectedby scheduling decisions. This follows because, excludingadjustments made to satisfy the saturation cap, Algorithm 2fills buckets exactly to their fill lines in expectation; and5. Variance in the service rates is low because buckets

are packed close to their fill lines by using small spots tofinish the packing. (These are also the spots that get reas-signed by randomized rounding and to enforce the satura-tion cap.)

6. Experimental Findings

6.1. Primary Benefit

Using 26 weeks of historical data, we experimentally eval-uate (backtest) the performance of our algorithm using aversion of Massive’s legacy algorithm that was provided asthe benchmark. We set the horizon of the Weekly Plan LPat 13 weeks; therefore, at each point during the backtest weneed 13 weeks of inventory supply forecasts (for games, aswell as inventory elements, DayPart/Weekdays, and DMAswithin games) as input. We generate forecasts from actualdata by applying a random multiplicative noise term, themagnitude of which is parameterized by #. We backtestthrough weeks t = 114, using generated forecasts fromweeks t through t + 12; the Weekly Plan LP is re-solvedhourly.We use five forecast instances, which range from a per-

fect forecast (#= 0) to a highly variable forecast (#= 02).The full description of our forecast generation scheme,which produces adtime estimates sti , s

tid, s

tie, and s

tiw, defined

in §3, is given in §EC.3. To summarize, we generate multi-plicative forecast errors for a forecast h weeks from todayby taking the product of h lognormal random variables;the lognormal factors have median e�, where � is a ran-dom variable dependent on # with Ɛ���= 0. When �= 0,

forecasts for one week into the future have a 95% con-fidence interval of �1/$� $�, where $ = e196� and � = 2#(this confidence interval is symmetric on the logarithmicscale). For #= 004 and #= 02, this confidence interval is�085�117� and �046�219�, respectively; i.e., when # =02 and �= 0, a one-week advance forecast for the actualvalue of 1,000 is between 460 and 2,190 with probability0.95. Also, for the same #, confidence intervals grow wideras 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 poten-tial relative to the legacy algorithm. Make-good costs(objective term 1 in §4.1) decrease by 80%–87%, depend-ing on the magnitude of forecast error (see Figure 2). In themost conservative case of #= 02 (it is expected that fore-casts are at least this accurate), make-good costs decreaseby 80%.Revenues from the future sales of ad space (objective

term 2 in §4.1) cannot be evaluated directly: because weare backtesting, the sales process in our actual data cannotbe affected by our scheduling algorithm. Therefore, we usethe distribution of the age of served impressions, the timebetween the sale of the campaign and when the impressionwas served, as a proxy.A good scheduling algorithm will try to use the least

costly inventory to satisfy existing campaigns, leaving pre-mium inventory reserved for future sales. Therefore, a goodscheduling algorithm should shift impressions from tier 1(premium) games into tier 2 (middle) or tier 3 (discount)games when mix constraints allow. When impressions can-not be appreciably shifted between tiers, a good scheduling

Figure 2. Performance of our algorithm compared tothe legacy algorithm for different levels offorecast error #.

0

50

100

150

200

250

0.0016 0.008 0.04 0.2 Legacy0

Pen

alty

cos

t

Model

End of campaign impression goalEnd of campaign mix goalWeekly campaign impression goal

Weekly campaign mix goal

Balance impression acrossgames in same mixcomponent

Minimum weekly revenue target by game

Ex-post objective comparison—Penalty costs

Note. The legacy algorithm does not use forecast data.

INFORMS

holds

copyrightto

this

article

and

distrib

uted

this

copy

asa

courtesy

tothe

author(s).

Add

ition

alinform

ation,

includ

ingrig

htsan

dpe

rmission

policies,

isav

ailableat

http://journa

ls.in

form

s.org/.

Page 12: Scheduling of Dynamic In-Game Advertising

Turner, Scheller-Wolf, and Tayur: Scheduling of Dynamic In-Game Advertising12 Operations Research 59(1), pp. 1–16, © 2011 INFORMS

Figure 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 #= 02).

60

80

100Percentage of impression by tier

0

20

40

Tier 3Tier 2Tier 1

0.8

0.6

1.0Tier 1 age CDF

Tier 2 age CDF Tier 3 age CDF

Proposed Legacy

0

0.2

0.4

0.8

0.6

1.0

0

0.2

0.4

0.8

0.6

1.0

0

0.2

0.4

252321191715131197531

252321191715131197531

Weeks

Weeks252321191715131197531

Weeks

(%)

ProposedLegacy

ProposedLegacy

ProposedLegacy

algorithm should try to serve tier 1 inventory as early aspossible, and serve tier 2 and tier 3 inventory later on, againsaving the most valuable inventory for future sales.In Figure 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 # = 02 (the mostconservative scenario). As expected, our algorithm shifts asubstantial portion of impressions from tier 1 into tiers 2and 3. The legacy algorithm serves 92% of its impressionsfrom tier 1 games, whereas our algorithm serves just under80% from tier 1. Furthermore, our algorithm serves tier 1and tier 2 impressions earlier in a campaign’s life, whereas

Figure 4. The progress of the Real-Time Algorithm (labelled “actual”) plotted over time for the largest campaign in thesystem.

0

2,500,000

2,000,000

1,500,000

1,000,000

500,000

01/01/07 01/01/07 01/03/07 01/05/07 01/07/0701/22/07 02/12/07 03/05/07 03/26/07

Impr

essi

ons

Impr

essi

ons

(a) LP solution performance:Tracking campaign goal

(b) LP solution performance:Tracking weekly campaign goal

180,000

150,000

120,000

90,000

60,000

30,000

0

ActualGoal

Actual

GoalPlanned

Notes. The forecast error parameter is the most conservative (# = 02). In (a) the goal is the end-of-campaign impression goal; in (b) we show theend-of-week impression goal and the number of impressions planned this week by the Weekly Plan LP.

tier 3 impressions are served later: 63% of tier 1 impres-sions are 6 weeks old or younger using our algorithm, com-pared to 56% under the legacy algorithm.

6.2. Stability of Our Algorithm

Figure 4(a) shows that our algorithm makes steady, contin-uous progress toward meeting the end-of-campaign impres-sion goals; the plot shows the cumulative number ofimpressions logged by a single campaign from its start dateto its end date. Figure 4(b) plots the cumulative numberof impressions logged by this same campaign in its firstweek. Notice that the LP’s plan is revised midweek, at

INFORMS

holds

copyrightto

this

article

and

distrib

uted

this

copy

asa

courtesy

tothe

author(s).

Add

ition

alinform

ation,

includ

ingrig

htsan

dpe

rmission

policies,

isav

ailableat

http://journa

ls.in

form

s.org/.

Page 13: Scheduling of Dynamic In-Game Advertising

Turner, Scheller-Wolf, and Tayur: Scheduling of Dynamic In-Game AdvertisingOperations Research 59(1), pp. 1–16, © 2011 INFORMS 13

which point the LP decides it is less costly to overrun theweekly goal a bit than to use inventory from future weeksto serve this campaign. Our algorithm successfully meetsthe end-of-week target, despite the fact that this campaignstarts midweek.

6.3. Performance Under Higher Sell-Through andTighter Targeting

We now evaluate our algorithm as the number of cam-paigns in the system increases and the supply constraintsbecome tighter (or infeasible in some cases), thereby val-idating our approach as sales volume increases. We usesell-through and targeting percentage to measure the tight-ness of the supply constraints. As defined in §3, the meanand standard deviation of sell-through at the network leveldescribe the tightness of supply: a high standard deviationof sell-through indicates that in the space of all impres-sions in the network, there are pockets of inventory withhigh sell-through, corresponding to intersections of games,DMAs, IECs, weekdays, and dayparts that are in highdemand. The targeting percentage of campaign k, com-puted as �

∑t∈Tk

∑i∈Ik s

tik�/�

∑t∈Tk

∑i∈� sti �, represents the

percentage of impressions in the network that campaignk targets. A low targeting percentage (i.e., tight targeting)alone does not make a campaign difficult to serve, but whena tightly targeted campaign targets inventory that also hashigh sell-through, serving this campaign is difficult.We generate six additional test cases with different lev-

els of sell-through and targeting and benchmark the per-formance of our algorithm relative to the legacy algorithm.Each test case is built by augmenting the original probleminstance from §6.1 (hereby called “status quo”) with a setof 200 randomly generated campaigns. The test cases dif-fer in two properties of the added campaigns: (1) the meandaily impression goal relative to the empirical distribution(which affects sell-through), and (2) the number of DMAsthat match (which affects targeting). The other campaignparameters are consistent with the empirical distributions.The six test cases, which are listed in Table 3, have target-ing percentages and coefficients of variation of sell-throughin the same general range as the “status quo” test case,although some aspect of the instance (most often mean sell-through) is more highly constrained. (The precise values ofthese parameters for the status quo case are proprietary.)

Table 3. Test cases for tight supply constraint tests.

Impression Number of Standardgoal matching Mean deviation of Targeting

Instance multiplier DMAs sell-through sell-through percentage

1 12 1 027 675 00182 24 1 050 1188 00113 12 10 028 047 00374 24 10 052 088 00345 12 40 028 028 00976 24 40 052 060 0097

The test cases were constructed with mean sell-through ateither (approximately) 27% or 52% and targeting percent-ages from 1% to 10%; as a result, there is a large range forthe standard deviation of sell-through. We use # = 02 inall test cases.As can be seen by Figure 5(a), our algorithm outper-

forms the legacy algorithm in all of the six high-load testcases, confirming that our approach is robust. Relative out-performance, however, begins to decrease when the impres-sion goal multiplier is high (i.e., mean sell-through is high)and the number of matching DMAs is low (i.e., target-ing percentage is low). There is a nearly 60% make-goodcost reduction for test case 5 (impression goal multiplier=12, number of matching DMAs = 40), yet for test case 2(impression goal multiplier = 24, number of matchingDMAs= 1) the make-good cost reduction is only 5%. Therelative performance of our algorithm diminishes becausethere are regions of the network in which the sell-throughis above 100%—that is, demand exceeds supply, and there-fore make-good costs are inevitable. We therefore computean approximate lower bound on the make-good costs bysolving the Weekly Plan with perfect forecasts (#= 0) andonly the make-good cost term in the objective. This is not atrue lower bound because, as described in §3, we computestik and s

tik using assumed independent adtime breakouts btid,

btie, and btiw.

Using this bound (LB), we can measure the percentageof the gap that we close relative to the legacy algorithm,defined as 1− (Our Algorithm Cost− LB)/(Legacy Algo-rithm Cost − LB). As seen in Figure 5(b), the percentagegap closed is 30% or better for most cases, dropping onlywhen targeting gets very tight. This can be interpreted asa 30%+ cost savings on the part of the network that canbe affected by good scheduling under reasonably high sell-through and tight targeting. In particular, if we order thesetest cases by the standard deviation of the sell-through as inFigure 5(c), we can see a clear relationship between relativeoutperformance and increasing variability of sell-through.Even though the relative improvement is smaller, because

the absolute magnitudes of the make-good costs in thehighly constrained test cases are higher, a 5% cost sav-ings for test case 2 translates into a greater absolute dollaramount saved when using our algorithm than the 60% costsavings for test case 5 (see Figure 5(d)). Thus, our algo-rithm significantly reduces make-good costs in all of thescenarios with high sell-through and tight targeting that weconsider.

7. Implementation and Learnings

7.1. Implementation

Our collaboration has led to a paradigm shift at Massive:Previously, their ad-serving architecture was entirely execu-tion based. After our project, Massive realized the benefitsof hierarchical planning, where you first produce a plan andthen you execute that plan. As of December 2009, a staged

INFORMS

holds

copyrightto

this

article

and

distrib

uted

this

copy

asa

courtesy

tothe

author(s).

Add

ition

alinform

ation,

includ

ingrig

htsan

dpe

rmission

policies,

isav

ailableat

http://journa

ls.in

form

s.org/.

Page 14: Scheduling of Dynamic In-Game Advertising

Turner, Scheller-Wolf, and Tayur: Scheduling of Dynamic In-Game Advertising14 Operations Research 59(1), pp. 1–16, © 2011 INFORMS

Figure 5. Performance of all six high-load test cases+ status quo.

0

20

40

60

80

100

0

20

40

60

80

100

2.52.01.51.00.50 2.52.01.51.00.50

2.52.01.51.00.50

5 = {1.2, 40}

6 = {2.4, 40}

4 = {2.4, 10}

4 = {2.4, 10}

2 = {2.4, 1}

2 = {2.4, 1}

4 = {2.4, 10}

2 = {2.4, 1}

3 = {1.2, 10}

1 = {1.2, 1}

1 = {1.2, 1}

1 = {1.2, 1}

Status quo

Status quo

Status quo

Status quo

Imp goal multiplier for added campaigns Imp goal multiplier for added campaigns

Imp goal multiplier for added campaigns

(a) Percentage cost savings relative tolegacy model

(d) Absolute cost savings relative tolegacy model

(b) Percentage of gap closed relative tolegacy model

(c) Percentage of gap closed relative tolegacy model

(%)

0

20

40

60

80

100

(%)

(%)

0 3 6 9 12

Standard deviation of sell-through

5 = {1.2, 40}

3 = {1.2, 10}

4 = {2.4, 10}

5 = {1.2, 40}

3 = {1.2, 10} 6 = {2.4, 40}

6 = {2.4, 40}

3 = {1.2, 10}

1 = {1.2, 1}

5 = {1.2, 40}

2 = {2.4, 1}

6 = {2.4, 40}

Note. Subfigures are (a) top left, (b) top right, (c) bottom left, and (d) bottom right (vertical scale omitted for confidentiality).

implementation of our model has been underway. Whencomplete, an LP-based planning module will be run nightlyto produce daily targets for each campaign in each game,and an improved legacy algorithm that exploits structuralideas from our Real-Time Algorithm will track these dailytargets. From a technology standpoint, Massive chose touse C# and the Microsoft Foundation Solver API.Massive decided to switch from weekly to daily granular-

ity because they discovered advertisers place a higher valueon smooth delivery than previously thought, and Massiveexpects the benefits of explicit daily goals to outweigh theincrease in forecast error caused by planning at a finer gran-ularity. Moreover, due to our work, Massive knows thata granularity finer than {Campaign, Game,Day} is unnec-essary. Recall from §6.3 that we tested how our modelperforms when many campaigns request tightly targetedinventory (i.e., Pittsburgh on Tuesday afternoon between4–7 p.m.), and found that even though our Weekly Plan LPused the coarse granularity of {Campaign, Game,Week},and did not explicitly resolve inventory conflicts for overca-pacitated geographic regions and times of day, performancewas quite good. We ascribe this to the fact that the schedulewas being updated periodically, so shortfalls in a specificgeographic region could be compensated for by increasingthe overall service rate in that game.In terms of the implementation’s rollout, Massive

decided the legacy algorithm should be adapted first, andthe LP implemented afterward. Specifically, as a crucial

intermediate step toward LP-based planning, Massive cre-ated a database to store impression goals for each {Cam-paign, Game,Day} and modified the legacy ad-serving logicto track these daily goals. Presently, a greedy heuristic com-putes the daily goals and populates this database; when theLP is complete, this database will instead be populated bythe LP, and the real-time ad-serving logic will benefit fromimproved guidance without additional modification. Thischange to the legacy algorithm has been substantial: theexplicit goals for each game have increased the reach ofMassive’s network; that is, by more effectively spreadingimpressions across many games, Massive has increased thenumber of unique individuals that see each campaign, onaverage by 26% per week.Another substantial improvement made to Massive’s

legacy algorithm involves the use of adtime estimates foreach inventory element. Originally, Massive’s legacy algo-rithm did not use forecasts of any kind. As a result, thesystem tended to serve impressions erratically: the sys-tem would overserve, learn that overserving had occurred(because there is a significant delay in counting impres-sions), compensate by stopping the service of the campaignfor awhile, and then repeat the process later as the cam-paign began to starve. Our Real-Time Algorithm does notsuffer from this effect because it uses adtime estimatesto track service rates that stay fixed between re-solves ofthe LP. To achieve smoother service rates in their exist-ing framework, Massive adapted their legacy algorithm to

INFORMS

holds

copyrightto

this

article

and

distrib

uted

this

copy

asa

courtesy

tothe

author(s).

Add

ition

alinform

ation,

includ

ingrig

htsan

dpe

rmission

policies,

isav

ailableat

http://journa

ls.in

form

s.org/.

Page 15: Scheduling of Dynamic In-Game Advertising

Turner, Scheller-Wolf, and Tayur: Scheduling of Dynamic In-Game AdvertisingOperations Research 59(1), pp. 1–16, © 2011 INFORMS 15

use adtime estimates for each inventory element. In partic-ular, Massive now assumes that when a campaign is placedinto an inventory element, a number of impressions willbe served in expectation. These “expected impressions” getaccumulated, and are part of the service rate calculationthat Massive uses to throttle the service rate of a campaignup or down. As a result, service rates are now much morestable: the standard deviation of hourly impressions servedis 33% lower than before the use of adtime estimates.In addition to the measurable benefits of increased reach

and smoother campaign delivery, Massive has benefitedfrom our collaboration in several intangible ways. First andforemost, the discovery process that we undertook withMassive to formulate the constraints of the linear programhas been very valuable; in some cases, unwritten businessrules were uncovered and communicated to business ana-lysts and developers. The language of objectives, variables,and constraints has facilitated many engineering discus-sions and has been instrumental in building confidence inthe new, more transparent, system. Furthermore, the visi-bility of sold inventory has been improved; sales associatescan view the daily plan, allowing them to price gamesbased on capacity and to encourage advertisers to purchaseimpressions from undersold games.

7.2. Learnings

Our learnings throughout the project led to several refine-ments of our model. For example, our Weekly Plan LPdid not initially include constraints to guarantee a mini-mum amount of revenue per game. This posed a problemwhen a very popular game was added to Massive’s net-work: the new game was allocated a sizable number ofimpressions that previously would have gone to incumbentgames, thereby capturing their revenue. To be fair to allgame publishers, we introduced minimum revenue targetsfor each game.We also learned that Massive sells some campaigns

called “share of voice” that contractually require a percent-age of the total impressions generated by a game over atime period without having an absolute impression goal,e.g., an advertiser may request 25% of all impressions fromGame A. This type of campaign is easy to serve in ourframework; we just set the service rate to 25%.Finally, we learned that the yield factor � (see §3) used

to convert between adtime and impressions varies from onegame to the next, and also changes when the schedulingalgorithm changes (i.e., from legacy to ours). We have rec-ommended that yield factors be empirically measured overtime in order to have accurate values of � for each game.With regard to hierarchical planning systems in general,

we learned that it is usually not possible to have a completeseparation of tasks from one stage to the next. For example,both the Weekly Plan LP and the Real-Time Algorithm dealwith saturation: the Weekly Plan LP bounds service rates(constraint (8) in §4) so that with high likelihood the ratesremain feasible when the Real-Time Algorithm enforces

the saturation cap. This type of dependency between stagesof a hierarchical planning system is common in other areasof practice as well; for example, in broadcast TV, commer-cials are spread over time (thus dealing with saturation) inboth the high-level sales plan and by the lower-level ISCIRotator Algorithm.

8. ConclusionsWe studied the scheduling problem of Massive Inc., anetwork provider of dynamic in-game advertising anddeveloped (1) an LP to compute service rates for each{Campaign, Game} pair, as well as (2) a Real-Time Algo-rithm that uses these service rates to assign campaigns toinventory elements whenever a gamer begins playing a newlevel. We benchmarked our algorithm against Massive’slegacy algorithm and found that when tested on historicaldata (1) our algorithm reduces make-good costs by 80%–87%; (2) our algorithm reserves more impressions frompremium games for future sales; (3) performance is goodfor various levels of forecast accuracy; and (4) results holdas sell-through increases and targeting becomes tighter, asis anticipated in the future.Future work may include (1) explicitly modeling sup-

ply with random variables, (2) extending the model toplan at a finer granularity than {Campaign, Game,Week}using Bender’s decomposition and/or column generation,(3) extending the model to incorporate reach goals byrequiring a minimum number of unique game players tosee a campaign, and (4) generalizing the model for otherad networks with dynamic display content, such as digitalTV and the Web.As a result of our work, Massive has increased the num-

ber of unique individuals that see each campaign by, onaverage, 26% per week, and achieved 33% smoother cam-paign delivery, as measured by standard deviation of hourlyimpressions served. Massive continues to improve their ad-serving technology based on the models and algorithms wedeveloped and the insights we generated.

9. Electronic CompanionAn electronic companion to this paper is available as partof the online version that can be found at http://or.journal.informs.org/.

AcknowledgmentsThe authors are grateful to Frank O’Donnell, DavidSturman, Joe Ciaramitaro, and the rest of the teamat Massive for numerous comments and support. Thisresearch was supported by Massive Incorporated and aWilliam Larimer Mellon Fellowship.

ReferencesAbrams, Z., O. Mendelevitch, J. Tomlin. 2007. Optimal delivery of spon-

sored search advertisements subject to budget constraints. Proc. 8thACM Conf. Electronic Commerce, ACM, New York, 272–278.

INFORMS

holds

copyrightto

this

article

and

distrib

uted

this

copy

asa

courtesy

tothe

author(s).

Add

ition

alinform

ation,

includ

ingrig

htsan

dpe

rmission

policies,

isav

ailableat

http://journa

ls.in

form

s.org/.

Page 16: Scheduling of Dynamic In-Game Advertising

Turner, Scheller-Wolf, and Tayur: Scheduling of Dynamic In-Game Advertising16 Operations Research 59(1), pp. 1–16, © 2011 INFORMS

Araman, V. F., I. Popescu. 2010. Media revenue management with audi-ence uncertainty: Balancing upfront and spot market sales. Manufac-turing Service Oper. Management 12(2) 190–212.

Bollapragada, S., M. Garbiras. 2004. Scheduling commercials on broad-cast television. Oper. Res. 52(3) 337–345.

Bollapragada, S., M. R. Bussieck, S. Mallik. 2004. Scheduling com-mercial videotapes in broadcast television. Oper. Res. 52(5)679–689.

Bollapragada, S., H. Cheng, M. Phillips, M. Garbiras, M. Scholes,T. Gibbs, M. Humphreville. 2002. NBC’s optimization systems in-crease its revenues and productivity. Interfaces 32(1) 47–60.

Cai, Y. 2007. Electronic gaming in the digital home: Game advertising.Parks Associates Industrial Report, Parks Associates, Dallas.

Chambers, J. 2005. The sponsored avatar: Examining the present realityand future possibilities of advertising in digital games. Paper pre-sented at DIGRA 2005, Simon Fraser University, Burnaby, BritishColumbia, Canada. Available at http://www.digra.org/dl/db/06278.01541.pdf.

Chickering, D. M., D. Heckerman. 2003. Targeted advertising on the Webwith inventory management. Interfaces 33(5) 71–77.

Gensch, D. H. 1973. Advertising Planning: Mathematical Models inAdvertising Media Planning. Elsevier Scientific, Amsterdam.

Mehta, A., A. Saberi, U. Vazirani, V. Vazirani. 2007. AdWords and gen-eralized online matching. J. ACM 54(5) 22:1–22:19.

Nakamura, A., N. Abe. 2005. Improvements to the linear programmingbased scheduling of Web advertisements. Electronic Commerce Res.5(1) 75–98.

Raghavan, P., C. D. Tompson. 1987. Randomized rounding: A techniquefor provably good algorithms and algorithmic proofs. Combinatorica7(4) 365–374.

Rossiter, J. R., P. J. Danaher. 1998. Advanced Media Planning. KluwerAcademic Publishers, Norwell, MA.

Simon, H. 1982. ADPULS: An advertising model with wearout and pul-sation. J. Marketing Res. 19(3) 352–363.

Svahn, M. 2005. Future-proofing advergaming: A systematisation for themedia buyer. Proc. Second Australasian Conf. Interactive Enter-tainment, Creativity & Cognition Studios Press, Sydney, Australia,187–191.

Talluri, K. T., G. van Ryzin. 2005. The Theory and Practice of RevenueManagement. Springer Verlag, New York.

Thompson, G. 1981. An optimal control model of advertising pulsationsand wearout. J. W. Keon, ed. Marketing Measurement and Analysis.The Institute of Management Sciences, Providence, RI.

Zhang, X. 2006. Mathematical models for the television advertising allo-cation problem. Internat. J. Oper. Res. 1(3) 302–322.

INFORMS

holds

copyrightto

this

article

and

distrib

uted

this

copy

asa

courtesy

tothe

author(s).

Add

ition

alinform

ation,

includ

ingrig

htsan

dpe

rmission

policies,

isav

ailableat

http://journa

ls.in

form

s.org/.