Poll Focus for this session Development methodology for rich media and in- stream advertising from a Silverlight 2 POV This is a “How To” session Looking for feedback to help shape final product Highlight 3 rd party perspective
Project types References Resources & Packaging InitParams
Creating “Polite” Ads Adding Cross-Domain Support Tracking Events Handling Click-Thrus
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)
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
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.
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 Silverlight- only file: ClientAccessPolicy.xml
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
EyeWonder Ad Solutions In-Page In- Stream Partners Custom Formats Ad Serving Professional Services Publisher Support
Pre-Roll In-Stream Web In-Stream Media Players IPTV
Pre- Roll Post- Roll Pre- Roll Video Pt. 1 Mid- Roll Video Pt. 2 Post - Roll Consumer Interactivity Pre-Roll: In-Stream: Ticker Bar Bug
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
//ActionScriptExternalInterface.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 ImagesPolygons Storyboard Animations C# code behind Event Handlers Logic
private void timer_Completed(object sender, EventArgs e) { this.menuHideStoryboard.Begin(); this.menuHideStoryboard.Begin(); switch(this._video) switch(this._video) { case PS3Video.Bluray: case PS3Video.Bluray: this.videoBGMedia.Source = new Uri(“video/BG_Bluray.wmv”); this.trailerMedia.Source = new Uri(“video/bluray.wmv”); break; case PS3Video.NBA: case PS3Video.NBA: this.videoBGMedia.Source = new Uri(“video/BG_nba.wmv”); this.trailerMedia.Source = new Uri(“video/nba.wmv”); break; }}
Client-side PlaylistsStreaming PlaylistsWeb Playlists Description A playlist that is delivered from a Web (or streaming server) and resides on the client PC. A playlist that resides on a streaming media server. (Also known as Server-side playlists) A playlist that is requested from a Web server that returns a client side playlist (ASX) with obfuscated URLs. Delivered From Streaming (WMS) or Web server (IIS) Windows Media Services (WMS) IIS7 Media Pack File Type.ASX. WSX.ISX Pros Simple to author and deploy. Hides the location of each media asset from the client. Seek/Skip can be disabled for ad scenarios. ConsURLs 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.
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 8:30 AM, San Palo 3501A Monetization :15 AM, Delfino 4003 Overview of Microsoft Ad Formats 2:30 PM, Delfino 4003 Overview of Expression Encoder V2 8:30 AM, Delfino 4005 Future of Advertising Technology 8:30 AM, Lando 4201
Silverlight 2 provides a comprehensive programming model for rich media and in- stream advertising scenarios. Ad format innovation is in your hands. Strong 3 rd party support for Silverlight from rich media, ad serving and publishing partners. Now is the time to evolve your workflow.
Mark Kapczynski VP & GM InStream Solutions (demos) Jonathan Tabak Director, Product Development Eric Schmidt Dan Penn Michael Scherotter
© 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.