Poll
Focus for this session
Development methodology for rich media and instream advertising from a Silverlight 2 POV
This is a “How To” session
Looking for feedback to help shape final product
Highlight 3rd party perspective
Project types
References
Resources & Packaging
InitParams
How To’s
Creating “Polite” Ads
Adding Cross-Domain Support
Tracking Events
Handling Click-Thrus
Polite Download
What is a “polite” ad?
Guidelines:
Two pieces: Polite & Incremental
Render quickly (don’t “block” the page)
Fast initial load time (small initial file size)
Incremental elements downloaded later
Options:
Splash Screen (XAML/Javascript)
Small Silverlight 2 app (XAP loads XAP)
Splash Screen
Create a lightweight XAML/Javascript
(Silverlight 1) application as splash screen
While splash screen is displayed it begins
downloading the incremental Silverlight 2
application
After incremental portion is downloaded, it
replaces the polite portion of the application
XAP Loads XAP
Polite ad is downloaded quickly
Polite ad can selectively download:
A new fully functional creative
Specific components as needed
WMV, XAP, PNG, JPG, GIF, etc.
Cross-Domain Support
Ads are generally sourced and tracked at different
domains from the page content
Default = Access Denied
A cross-domain policy file = Access Allowed
Policy file resides in each domain to grant access
Notes:
If a basic Flash policy file exists, Silverlight will
honor it
Advanced policies can be defined in a Silverlightonly file:
ClientAccessPolicy.xml
Tracking Events
Rich Event Model:
Mouse interaction
Container state (size, shape, etc.)
Actions:
Click-Thrus spawn a new web page when
more information is requested by user
Pings sent to ad tracking server to register
activity
In-Page
InStream
Publisher
Support
Professional
Services
EyeWonder
Ad
Solutions
Ad
Serving
Custom
Formats
Partners
IPTV
In-Stream Media Players
In-Stream Web
Pre-Roll
Pre-Roll:
PreRoll
Video Pt. 1
In-Stream:
PreRoll
MidRoll
Post Roll
Video Pt. 2
Consumer
Interactivity
Bug
Ticker
Ticker
Bar
PostRoll
Concept Creation
Working with the Agency and Brand, EW brings online ad
experience to the process
Design and Production
Using AdWonder, EW helps you build your ads
QA
Comparing against publisher site specs, EW ensures ad
compatibility
Traffic
Using the media plan, EW sends the ad and tags to the publish to
run
Reporting
EW collects valuable interactivity data about how consumers
engaged with the live ads
Support for customers using Flash Ads
today and helping them use Silverlight to
build next-gen ads
Demos:
Flash Ad overlay on Silverlight Player
Silverlight Ad overlay on Silverlight Player
Silverlight 2 Application (windowless)
Flash 8 Interactive Ad
Javascript Interaction
//ActionScript
ExternalInterface.call(“pauseVideo”);
//JavaScript
function pauseVideo(){
mySilverlightHost.Content.myApp.PauseVideo();
}
//C#
[ScriptableMember()]
public void PauseVideo(){
this.backgroundMediaElement.Pause();
}
Silverlight 2 Application
Player – Media Element
Ad – Separate Silverlight Library
WebClient for On-Demand retrieval of Ad
webClient.OpenReadAsync(new Uri(“PS3.dll”));
private void wc_OpenReadCompleted(
object sender, OpenReadCompletedEventArgs e){
AssemblyPart part = new AssemblyPart();
part.Load(e.Result);
DisplayAdFromAssembly();
}
private void DisplayAdFromAssembly(){
PS3Ad ad = new PS3Ad();
this.canvas.Children.Add(ad);
}
XAML
Media Elements
Images
Polygons
Storyboard Animations
C# code behind
Event Handlers
Logic
private void timer_Completed(object sender, EventArgs e)
{
this.menuHideStoryboard.Begin();
switch(this._video)
{
case PS3Video.Bluray:
this.videoBGMedia.Source = new Uri(“video/BG_Bluray.wmv”);
this.trailerMedia.Source = new Uri(“video/bluray.wmv”);
break;
case PS3Video.NBA:
this.videoBGMedia.Source = new Uri(“video/BG_nba.wmv”);
this.trailerMedia.Source = new Uri(“video/nba.wmv”);
break;
}
}
Description
Delivered From
File Type
Pros
Cons
Client-side Playlists
A playlist that is
delivered from a Web
(or streaming server)
and resides on the
client PC.
Streaming Playlists
A playlist that resides
on a streaming media
server. (Also known as
Server-side playlists)
Web Playlists
A playlist that is
requested from a Web
server that returns a
client side playlist (ASX)
with obfuscated URLs.
Streaming (WMS) or
Web server (IIS)
.ASX
Simple to author and
deploy.
Windows Media
Services (WMS)
. WSX
Hides the location of
each media asset from
the client. Seek/Skip
can be disabled for ad
scenarios.
IIS7 Media Pack
URLs for playlist items
are exposed to the
client. Ads can be
skipped.
Not yet supported in
Silverlight 2.
Lacks some advanced
features of WMS
streaming playlists.
.ISX
Hides the location of
each media asset from
the client. Seek/Skip
can be disabled for ad
scenarios.
Support for Advertising
Ability to “bake” overlaid elements into
encoded video
Example Elements:
XAML
Alpha channel video (Quicktime)
Scripts & Markers
MediaElement eventing model
Media state changes
Script events
Integrating Media in Silverlight Applications
Thursday @ 8:30 AM, San Palo 3501A
Monetization 101
Thursday @ 10:15 AM, Delfino 4003
Overview of Microsoft Ad Formats
Thursday @ 2:30 PM, Delfino 4003
Overview of Expression Encoder V2
Friday @ 8:30 AM, Delfino 4005
Future of Advertising Technology
Friday @ 8:30 AM, Lando 4201
Silverlight 2 provides a comprehensive
programming model for rich media and instream advertising scenarios.
Ad format innovation is in your hands.
Strong 3rd party support for Silverlight from
rich media, ad serving and publishing
partners.
Now is the time to evolve your workflow.
Eric Schmidt
eschmidt@microsoft.com
Dan Penn
danpenn@microsoft.com
Michael Scherotter
mischero @microsoft.com
Mark Kapczynski
VP & GM InStream Solutions
markkap@eyewonder.com
424-731-2528
www.eyewonder.com/instream
www.eyewonder.com/is2 (demos)
Jonathan Tabak
Director, Product
Development
jtabak@panachetech.com
www.panachetech.com
© 2008 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be registered trademarks and/or trademarks in the U.S. and/or other countries.
The information herein is for informational purposes only and represents the current view of Microsoft Corporation as of the date of this presentation. Because Microsoft must respond to changing market
conditions, it should not be interpreted to be a commitment on the part of Microsoft, and Microsoft cannot guarantee the accuracy of any information provided after the date of this presentation.
MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.