You are on page 1of 41

The Impact of Ads on

Performance and
Improving Perceived
Performance
Julia Lee, Sr. Dir. of Engineering, Yahoo! Mail
Stevan Vlaovic, PhD, Ads Architect
Yahoo!, Inc.
June !""
Fast facts

Yahoo! Mail #" in $S

%&MM uni'ue users

".() *agevie+s,da-

Yahoo! Mail .ust +ent /A +ith ne+ *roduct

0 faster

1e+ ad i2*le2entation
My goal today

3ell -ou a4out our ads .ourne-

Share so2e 4road strategies to tr-


Definitions
Dis*la- Advertising 5 1ot Search Advertising
Ad creative 5 Mar6u*, i2ages, assets, JS,7SS to sho+ the ad
Ad decisioning ti2e 5 3i2e to decide +hich ad to sho+ the user
Ad serving ti2e 5 3i2e to send the ad creatives,assets over the net+or6 to the
user
Ad rendering ti2e 5 3i2e to render the ad, including ani2ation
Timeline
Text vs. Graphical Impact
Overall latency breado!n
89: latenc-
Due to ads
8: latenc-
A**lication
"hat changed#
Display
Advertising
Landscape
Ad Maretplace $ %cosystem &'())*+
,-pply
&p-blishers+
Ad .et!ors
Demand
&advertisers+
Ad ,erver
/0 O1O
Ad Ad Ad Ad Ad Ad Ad
Ad
.et
Ad
,-pply
&p-blishers+
%xchanges
Ad .et!ors
Demand
&advertisers+
Ad ,erver
/0
.et!or
2ight Media
Ad
.et
Ad
.et
Ad
.et
Ad
.et
Ad
.et
D7L;
/0 O1O .P3 3omcast e4ay
Ad Ad Ad Ad Ad Ad Ad
Ad Maretplace $ %cosystem &'())5+
It6s complicated
<icher targeting=
relevant is fast!
)etter -ield
2anage2ent
<eal ti2e 4idding
Local deals
Old ad flo!

1o redirection

Pre2iu2 ads
A**lication Server Ad Server
7D1
Latency Total:
100 ms
2 ms
10 ms
100 ms
100 ms
50 ms
>&?& 2s
100 ms
2 ms
.e! ad flo!
A**lication Server
Ad Server
Ad E0change "
Ad E0change
7D1
Latency Total:
100 ms
2 ms
10 ms
100 ms
300 ms
100 ms
>8"& 2s
300 ms
300 ms
50 ms
300 ms
100 ms
650 ms
300 ms
2 ms

Multi*le ad redirection

@ighest 4idder

Most relevance
Ad call se7-ence
A**lication 7lient Ad net+or6 Ad server Ad e0change Ad content hosting
@33P re'uest for *age
As-nchronous ad call
Page content +ith ads AtagsB
Ad creative,tags
Ad creative,tags
Ad re'uest to ad net+or6
Ad re'uest to 9rd *art-
Ad creative
Ad creative re'uest
Ad creative,tags
Ad infinitum
Ad infinitum
Server side
7lient side
"hat next#
Measure and monitor
Monitoring ad positions
Man- different *rofiles,*ositions
Profiles change +hen ca2*aigns
change
Latenc- transient
Chat should alert threshold 4eD
Chat triggered the alertD
8endor Ad 9atency Monitoring
: Axis; 8endors / Axis; Avg P5< Time&in ms+= sorted on Avg Median Time
Time periods belo! are rolling !indo!s &e.g. /ear>to>Date ? (@(A@)5 thro-gh (@(B@C)+
Monitoring 3hallenges

Chat is re*resentativeD

Is it re*eata4leD

Chat is actuall- slo+D DecisioningD ServingD 1et+or6D

Identif-ing ads EE finding needle in a ha-stac6

Is this the right level of granularit-D


Ad defensive strategies
,trategy DC; Ad handling library
AD content A@3ML, JavaScri*t, etcB is rendered in an IF<AME tag
IF<AME has a crossGdo2ain $<L , not s*ecific to *ro*ert- , *u4lisher
IF<AME is controlled 4- *u4lisher , *ro*ert-
I2*le2ents an API that *u4lishers,vendors can use for rich functionalit-
$ses crossGdo2ain 2essaging to co22unicate 4et+een a**lication and ad
)etter securit-
)etter sta4ilit-
More control
Faster *erfor2ance
Allo+s 2etrics gathering
,trategy D(; Do-ble b-ffering
". <e'uires ad handling li4rar- to hoo6 into events
. <e'uires sa2e ad *osition in sa2e +e4.! H*age vie+I to +or6
9. Load first ad into ifra2e
&. Load second ad into ifra2e underneath first ifra2e
J. Chen second ad is loaded, destro- the first ifra2e
?. Ad underneath gets sho+n, *ro2ote the second ifra2e KGinde0
,trategy DB; Fine grained ad loading

Server side vs. client side

7o24ine ad re'uests +ith a**lication re'uests

Leverage Ce4.! techni'ues

Dela- ad loading to avoid 4ro+ser contention


"ebC.) Ad Flo!

A**lication server inserts AD


2ar6u*

S-nchronous,4loc6ed loading

Direct DLM access

7annot differentiate ad content


fro2 2ain content

Best perceived user experience


for premium ads in prominent
positions
Ce4 )ro+ser
A**lication Server fetches a**lication
and Ad content
@3ML *rocessed
Page rendered
$ser 2a- no+ interact +ith *age
"ebC.)@(.) 3lient>side Ad Flo!

Fetch ad after a**lication has loaded

Fine grained adGrotation in


Ce4.!,AJAM *ages

Prioritizes user actions first

Requires extra roundtrip


7lient
A**lication Server generates content
@3ML *rocessed
Page rendered
$ser 2a- no+ interact +ith *age
7lient fetches and inserts ad content
"eb(.) Ad Flo!

7lient runti2e ad strateg-

AD content is si2*l- data

AD content render occurs after initial *age


load,render

Prioritizes user actions first

Saves one roundtrip for client side ad


fetch
Ce4 )ro+ser
Ce4 server fetches AD @3ML
AD @3ML transfor2ed into data,
e2its +ith *age content
Page @3ML *rocessed
AADs not renderedB
Page rendered
JS *rocess AD DA3A,
and e2its sand4o0
ADs rendered
$ser 2a- interact +ith *age
NLld AD still visi4le until ne+ one arrives
Mail In4o0
Message <ead
Fetch Message
Fetch AD 7ontent Process Message
Message <endered
Process AD 7ontent
AD <endered
%xample E Message 2ead Flo! Attempt DC
NLld AD still visi4le until ne+ one arrives
Mail In4o0
Message <ead
Fetch Message
Fetch AD 7ontent Process Message
Message <endered
Process AD 7ontent
AD <endered
%xample E Message 2ead Flo! Attempt D(
NLld AD still visi4le until ne+ one arrives
Mail In4o0
Message <ead
Fetch Message
Fetch AD 7ontent Process Message
Message <endered
Process AD 7ontent
AD <endered
%xample E Message 2ead Flo! Attempt DB
Demo
,-mmary

Dis*la- advertising landsca*e is co2*le0

Measuring and 2onitoring ad *erfor2ance is su4tle

E0ercise defensive strategies to 2itigate ad i2*act

End user e0*erience is 'ualitative


Appendix
Aren6t many ADs already rendered this !ay#
Ce4 *age

Man- ADs alread- use their o+n IF<AME

@o+ever, in this case the IF<AME is *art of the AD itself

3his is 4oth GOOD and 4AD


IF<AME
ad.-ield2anager.co2
A<ightMediaB
@3ML,7SS,JS
ad content
,andbox library reso-rces

2s or less of server ti2e added to transfor2 AD into DA3A

Adds clientGside @33P re'uests at 2ost

" JavaScri*t file to 4uild sand4o0 and receive calls fro2 vendors

" @3ML file for the sand4o0

3-*icall- 2a6es ! @33P re'uests, as 4oth JavaScri*t, and


@3ML files are cachea4le

3-*icall- less than J! 2s of run ti2e, client side i2*act in 4ro+ser,


due to 4est *ractices in JavaScri*t
AD FTM9 as DATA
< SCRIPT type= "text/plain" _pos= "LREC" _en= "ISO -8859-1"
< !-- Ot"e# $ eta-%ata att#i&'tes $ ay &e a%%e% --
"< I(R)* E SRC= +""ttp,//a%-%o'&le.li./-net/a%i/01912-153435-6)7O O-CO* /85144555-119 - - - +: / ;
< !-- O #i<inal )= 7T* L a&o>e? @S saAe st#in< --
< /SCRIPT

Lriginal AD @3ML is transfor2ed into ne+ @3ML

Is a HdataGislandI

1ot e0ecuted , rendered 4- 4ro+ser


Metrics gathering

Ad li4rar- can 4e configured +ith a variet- of Hcall4ac6I functions


=)RL)_CO 0(IB =
C
/D - - - O t"e# .onAi< options "e#e - - - D/
onSta#tPosRen%e#, A'n.tionEF
C
/D Lo< t"e ti$ e oA an )= sta#tin< #en%e# p#o.ess D/
G?
on(inis"PosRen%e#, A'n.tionEF
C
/D Lo< H "en an )= "as Ainis"e% #en%e#in< D/
G
G

3his level of detail +as not availa4le +ithout li4rar-

Allo+s *ro*erties li6e Yahoo! Mail to decide +hat info is i2*ortant


Metrics gathering

Such as an AD ta6ing too long to 4e rendered

JavaScri*t Errors found in ADs

Lr to trac6 and re*ort H4adI ADs

Pro*erties li6e Yahoo! Mail i2*le2ent these call4ac6s


to collect their o+n statistics

AD <e'uest 3i2e

AD <ender 3i2e

Lther data relevant to rendering

Cas JavaScri*t used

Cere IF<AMEs used

Cas the EAS used

etc
/ahoo0 Mail Gsage of ,ec-reDA29A E 4-siness 2-les

<ender ti2e of L<E7 AD in Mint- , 1eo


htt*=,,t+i6i.cor*.-ahoo.co2,vie+,Devel,7/D-na2ic<e*ort/enDre*ortEJ(8OcatEAllOda-sE"%!
,erver side ad integration
Ad 3all Flo! E ,erver side
7lient
A**lication Server
Ad Server
" J
&
9
?= Ad calls invo6ed fro2 7lient
Ad net+or6
%
8
Ad call should 4e called as-nchronousl-
Ad call 2ust return 4efore content needs to
4e flushed
Ad call should 4atch 2ulti*le ads
Ad decision ti2e increasing to 4etter target
ads
>9!s to ?!!2s
7lient <e'uest
7lient <es*onse
Ad 7all
Ad <es*onse
Ad <es*onse
7lient <es*onse
Acceptable ,erver>side Ad 9atency
Ma6e ad call
as-nchronous
Ad call 2ust return 4efore
content needs to 4e
flushed
Ad call should 4atch
2ulti*le ads
Ad decisioning ti2e
increasing to 4etter target
ads
>9!s to ?!!2s
I2*acts server ca*acit-
"ebC.) vs. "eb(.) Ad Impact
HBI faster
BHI faster
Cith Ads
Cith Ads
Cithout Ads
Cithout Ads
Global challenges

Are ads locall- decidedD

Are ads geoGtargetedD

Chat t-*e of account is thisD

Chat is the right user e0*erienceD

Are ad creatives served glo4all-D

You might also like