Adobe Marketing Cloud Video Heartbeat

Size: px
Start display at page:

Download "Adobe Marketing Cloud Video Heartbeat"

Transcription

1 Adobe Marketing Cloud Video Heartbeat

2 Contents Measuring Video in Adobe Analytics using Video Heartbeat...4 Measuring Video FAQ...5 Before you Implement...8 Getting Started...9 Configure Analytics Video Reporting...10 Enable Video Pathing...11 Video Reports...13 Video Overview Report...13 Video Detail Report...15 Video Daypart...16 Video Metrics and Dimensions...18 Video Heartbeat Developer Guide...20 JavaScript Players...20 Download the Video Heartbeat Library...21 Implement PlayerDelegate...21 Configure Video Heartbeat...24 Track Player Events...25 Test Your Video Measurement Code...26 ActionScript Players...27 Download the Video Heartbeat Library...28 Add the AppMeasurement for Flash Library to a Project...28 Configure AppMeasurement...30 Implement PlayerDelegate...31 Last updated 2/9/2015 Video Heartbeat

3 Contents Configure Video Heartbeat...33 Track Player Events...34 Test Your Video Measurement Code...35 Sending extra video data on start...36 Sending extra video data during playback...39 Video Measurement Timeline...42 Video Measurement Parameters...44 How PlayerDelegate Works...46 Track Methods and Player Events...48 Migrating to Video Heartbeat...50 Contact and Legal Information...52 Last updated 2/9/2015 Video Heartbeat

4 Measuring Video in Adobe Analytics using Video Heartbeat 4 Measuring Video in Adobe Analytics using Video Heartbeat Important: Before implementing the new video heartbeat solution described in this document, you must reach out to your account manager and/or sales rep to get new stream pricing (migrating from server call model to stream-based model). Adobe Analytics provides support for tracking video and ad metrics, including total views/impressions, time spent, and completion rates. Native support is provided for measuring the most popular video formats on the web, including Flash, with other web and mobile libraries coming soon. This guide describes measuring video using the heartbeat service. What is "Video Heartbeat"? Video heartbeat is a new data collection service provided by Adobe that collects and aggregates video metrics. During video playback, frequent "heartbeat" calls are sent to this service to measure time played. These heartbeat calls are sent every 10 seconds, which results in granular video engagement metrics and more accurate video fallout reports. When a video or video ad is played, a single server call is sent to your Analytics data collection server with the video/ad name, player name, channel, and any additional custom variables that you want to track for that video/ad. During playback, "heartbeats" are sent at regular intervals to the heartbeat data collection service to track time played. After the video/ad is completed and/or abandoned, the heartbeat service calculates time spent metrics and then sends the data to Analytics. Heartbeat or Milestone? In addition to our new video heartbeat measurement, Adobe will continue to support the milestone video solution (released August 2011), which is also referred to as "integrated" or "SiteCatalyst 15" video measurement. If you are new to video measurement, you should implement the heartbeat measurement solution described in this guide. Heartbeat provides more accurate time spent metrics with a simplified implementation process and streamlined pricing.

5 Measuring Video FAQ 5 Measuring Video FAQ This topic provides answers to common questions. What platforms does the new heartbeat solution support? Currently, heartbeat measurement supports JavaScript, Flash, ios and Android. See Before you Implement for details. Can I use both milestone and heartbeat models at same time?. Within the same company and report suite, you can have players running both the milestone (legacy) video tracking and our new heartbeat tracking. Depending on how you configure, the video canned reports within Adobe Analytics may only show the new heartbeat data but any custom variable reports will contain video metrics from both solutions. Can I, as the customer, change the frequency of heartbeats? No, the default heartbeat frequency is 10 seconds for both content in ads. In a future release, we do expect to lower heartbeat frequency for ads down to 5 seconds. How do I send in additional metadata into Adobe Analytics during the video playback? With the new video heartbeat tracking, the old way of sending in additional metadata via the Media-monitor is gone. Video metadata and any other additional data will now go directly onto the AppMeas object. We metadata should be sent on the initial call into Adobe Analytics and be managed via auto-classifications What video reports will I see within Adobe Analytics if I still have the milestone implementation? There are 3 new video canned reports: Video Overview, Video Detail, and Video Daypart. Both milestone and heartbeat implementations will see these same new reports, provided they are configured and enabled within the Admin console. Why do I have to negotiate new stream pricing before implementing the heartbeat solution? The new heartbeat tracking solution comes with a new stream-based pricing model. Server calls will no longer be used to calculate the cost of tracking a video stream. Before implementing the new heartbeat solution, customers must reach out to their account manager and/or sales reps to update their contract and include new stream-based pricing. Benefit to the customer is that new pricing should stabilize cost of video tracking and it should be easier to forecast and budget overall video analytics spend. What is a heartbeat and what data is included in that heartbeat? A heartbeat is a "ping" to our servers letting us know the viewer is still watching the video. Heartbeats are also sent during certain events centered around quality of service like a video error and/or buffer (data will be available in Adobe Analytics in 2014). The actual heartbeat includes: QoS data (related to Primetime), user metadata, asset metadata, event timestamps, SiteCatalyst metadata. How big are the heartbeats and will it impact performance? Ave. heartbeat is 1Kb. What is a Publisher ID and how do I get one? The Publisher ID is used to configure the XML document for a customer's specific implementation. Without the ID, the player will through 404 errors in debug mode, however the video will still be tracked and heartbeats sent. To get a Publisher ID, call ClientCare and one will be provided. Can I use players provided by other vendors like Brightcove, theplatform, etc?, Adobe is player agnostic and it doesn't matter what player is used. However, in order for data to be collected, aggregated, and reported upon each individual player needs to make those events available. Adobe is working with several of the largest player provider vendors to make sure their players are compatible with our new heartbeat solution.

6 Measuring Video FAQ 6 What is a solution variable? A solution variable, sometimes called a "reserved" variable, is a variable that Adobe has allocated specifically to track and measure certain events and/or attributes. With a solution variable, a customer won't need to utilize one of their existing custom variables. Solution variables allocated for video include: Video Core: Video Name, Content Type, Player Name, Channel, Video Starts, Video Completes, and Video Time Spent. Video Ads : Ad Name, Ad Player Name, Pod Name, Ad Position in Pod, Ad Starts, Ad Completes, and Ad Time Spent If I've already configured certain custom variables for video tracking, can I continue to use them?. For video content, we allow customer to use their current custom variables for video name, content type, video start, video time spent, and video complete. By mapping your existing variables, you will not see a break in data from our canned video reports. However, for video ad tracking we will use solution variables by default for all customers. Why does Adobe want to track my video ads? With the new video reports, content data and ad data is integrated to provide insights into how programmers/publishers can optimize their ad loads and thus their monetization opportunities with the least amount of impact to viewer engagement. What happens to my server call commitments if I move to video stream pricing? Your account manager/sales rep will work with you on providing a new stream price while at the same time understanding how migration will lower overall server call usage and update commitments accordingly. Will I need consulting to help with new video heartbeat implementation? Adobe generally recommends a consulting engagement with any new video implementation. Here are some general guidelines around hours but may vary greatly per customer depending on customization and requirements: Video Consulting Hours Single Platform Multi-Platform Known and Documented Unknown/Non-Documented All projects include: Creation of player mapping Code integration with client sites/apps Set-up of reporting Basic analysis Does Adobe offer real-time reporting for video? With the recent release of Adobe Analytics 1.4, customer can track events in real-time. So customer could configure those reports to track video starts to measure trending to optimize video views. Additionally, Adobe expects to offer a new real-time report that will measure concurrent viewers or how many viewers are watching "right now". This report is targeted for 1H Can I still use Media.monitor() with new heartbeat tracking? No, Media.monitor() will no longer be available for heartbeat tracking. To track custom metadata, customer will have to pass metadata directly within AppMeasurement object with the start call going into Adobe Analytics

7 Measuring Video FAQ 7 Will video data be available in Data Warehouse, ReportBuilder, Discover, and Insight?, all video data will be available in these products provided customer has existing access to them.

8 Before you Implement 8 Before you Implement Video heartbeat provides a cost effective video measurement solution with highly granular time metrics. Before you implement, be aware of the following limitations. AppMeasurement for JavaScript 1.x is required for JavaScript implementations. If you are on s_code you need to migrate. The Visitor ID service is required by video heartbeat. To avoid duplicate visitor counts when using the JavaScript media module, the visitor ID service must also be implemented on non-video pages on your site, or you must enable a grace period. Video heartbeat does not support SSL. For ios and Android, this means that you offline must be disabled, and your report suite cannot be timestamp enabled. If you are unsure if your report suite is timestamp enabled, contact Customer Care. Custom timestamps are not supported. Additional variables sent on video start do not receive attribution for video completes or time spent metrics (you should use instances or video starts instead). See Sending extra video data on start and Sending extra video data during playback. Custom video completes are not supported, so you cannot define a custom location to determine when a video view is considered complete.

9 Getting Started 9 Getting Started This section provides an overview of the tasks required to implement video heartbeat. Step Task Discuss video heartbeat pricing with your Adobe Marketing Cloud sales representative. Details Hearbeat video introduces a new video pricing model that is based on video streams instead of server calls. Speak with your sales representative for more details. Important: Do not implement video heartbeat until you have spoken with your sales rep and have new stream-based pricing. Contact Adobe to configure your heartbeat publisher ID. Configure video reports in Analytics. Implement or migrate to video heartbeat. View video reports. Each customer is provided an ID that is associated with a configuration file on the heartbeat server. This file is configured by an Adobe representative. Contact Customer Care and tell them you need to configure "heartbeat video publisher ID" Before you implement, you need to perform a few steps to prepare your Analytics report suite to capture video data. Configure Analytics Video Reporting Enable Video Pathing See Video Heartbeat Developer Guide. After implementation, video metrics are available in dedicated video reports in the marketing reports & analytics (formerly SiteCatalyst) interface. Video Reports

10 Configure Analytics Video Reporting 10 Configure Analytics Video Reporting Each report suite that collects video metrics must be configured before video data is sent. This section walks you through the process to enable the variables that collect video data. When you finish this section, continue to Enable Video Pathing. In marketing reports & analytics, open Admin Tools > Report Suites. Select the report suite(s) where you are collecting video data, then click Edit Settings > Video Management > Video Reporting. On the Video Reporting page, enable Video Core, and optionally enable Video Ads and Video Chapters, and then click Save. If you aren't yet tracking ads or chapters, you can come back and enable additional options at any time. If this report suite is already configured to collect video data, then you are presented an additional configuration page after you click Save. If you see the Video Core Measurement page, continue to the next section. Video Core Measurement - Additional Migration Steps On this page, you must select to use solution variables or continue using custom variables. Option Continue using custom variables Description Pros: Video trending continues to work after migration. Cons: Requires you to keep 2 custom evars and 3 custom events allocated to video. You regain use of 1 custom evar and 1 custom event. To continue using custom variables: Select Use Custom Variables and then click Save: When prompted, map you current custom evars and events and then click Save:

11 Configure Analytics Video Reporting 11 Option Description Migrate to solution variables Pros: You regain use of 3 custom evars and 4 custom events. Cons: You lose ALL historical trending and comparison for video reports. This means Note: Migrating to solution variable causes you to lose ALL that you won't be able to trend video views or video time played for any dates before historical trending and you migrated to video heartbeat. Do not migrate to solution variables unless you are comparison for video reports. certain that you do not want to preserve this trending! To migrate to solution variables: Select Use Solution Variables and then click Save. Enable Video Pathing To enable video pathing, set up a processing rule to copy the a.media.name context data variable to a custom prop. Configure the rule to check for the presence of a a.media.view context data (indicating the start of a video) and the a.media.name context data:

12 Configure Analytics Video Reporting 12

13 Video Reports 13 Video Reports Adobe Analytics provides several reports and metrics to track video performance on your Web site. Video reports are listed in the Reports > Video section. Why are the Video Engagement Reports marked as "Beta"? We are working to improve the functionality and layout of these reports, so expect to see some minor changes to these reports in future releases. The data that appears on these reports is accurate and is not impacted by the beta status. Video Engagement Reports (Beta) Video Report Description Common Business Insights Video Overview Report The Video Overview Report displays several aggregate measurements to quickly monitor that video is performing as expected. A graph displays video starts next to ad impressions to let you quickly view these metrics for each video. Totals for top video metrics including unique viewers, completion rate, average video metrics, and average videos per visit. Total video and ad views for specific videos filtered by device type or country. Video Detail Report Displays detailed metrics for all videos including starts, completion rate, play percentage, and ad impressions. Totals for top video metrics including video starts, ad impressions, average ads per video. Top videos by multiple metrics Video Daypart Displays unique visitors and video views by time of day to let you quickly view when your audience is engaged. Audience engagement by time of day. Audience engagement compared to previous date ranges. Video Events and Video Variables Reports for additional Video Metrics and Dimensions are also available. Video metrics and dimensions are standard Analytics variables that can be reported directly and added to other Analytics reports. Video Conversion (Events that occur after video is viewed) by generating a report with visits that include a content type of video. Next/previous video flow using the video name prop. Video Overview Report The video overview report is designed to let you monitor video across your site. The Video Overview Report displays several aggregate measurements to quickly monitor that video is performing as expected. A graph displays video starts next to ad impressions to let you quickly view these metrics for each video.

14 Video Reports 14 Quick Filters Quickly display video metrics by device or geo country:

15 Video Reports 15 Video Performance Click-and-drag to zoom in, then hover to view granular metrics for specific videos. Click zoom. to reset the view after you Video Detail Report The Video Detail Report displays detailed metrics for all videos including starts, completion rate, play percentage, and ad impressions.

16 Video Reports 16 Video Daypart Displays unique visitors and video views by time of day to let you quickly view when your audience is engaged.

17 Video Reports 17

18 Video Metrics and Dimensions 18 Video Metrics and Dimensions Video metrics and dimensions are standard Analytics variables that can be reported directly and added to other Analytics reports. Video metric and dimension reports appear in the Video > Video Events and Video > Video Variables reports. Video Metrics Video Metric Description Video/Ad Time Viewed Counts the time, in seconds, spent watching a video or ad. Video/Ad Views Indicates that a visitor has viewed some portion of a video or ad. However, it does not provide any information about how much, or what part, of a video the visitor viewed. Video/Ad Completes Indicates that a user has viewed a complete video or ad. Video Segment View Sent on all close events, which occur on video complete or when the users stops viewing at some point before the complete occurs. Video Dimensions Video/Ad Name and Video/Ad Length expire on visit. All other variables expire with the initial Analytics video call (page view). Video Dimension Video/Ad Name Video/Ad Length Segment Content Type Description Name of the video, as passed to Media.open(). Video Name and Ad Name are automatic classifications based on the data sent on the initial Media.play() call, so you'll see an extra menu level when you view these reports. Length of the video, as passed to Media.open(). Video Length and Ad Length are automatic classifications based on the data sent on the initial Media.play() call, so you'll see an extra menu level when you view these reports. Name of the segment, as passed to Media.play(). Content type is set to "video" automatically for all video views, and to "ad" for all ad views. This report is useful to segment and compare video to other content delivered on your site.

19 Video Metrics and Dimensions 19 Video Dimension Player Name Channel Pod Name Pod Position Ad in Pod Position Ad Player Name Description Name of the video player, as passed to Media.open(). The Channel where the content is played. (web site/application) Ad pod name, as passed to Media.openAd(). The offset from the start of the video in seconds where the ad pod is located, The position of an and within a pod (first ad, second ad), as passed to Media.open(). Name of ad player, as passed to Media.openAd()

20 Video Heartbeat Developer Guide 20 Video Heartbeat Developer Guide This section contains instructions to download the video heartbeat SDKs and developer guides for each platform. Make sure you also download the developer guide that is in the docs folder when you download the SDK as it contains the specific implementation instructions for video heartbeat. Platform JavaScript Flash/ActionScript ios Process See JavaScript Players. See ActionScript Players. Video heartbeat for ios requires that you first implement the Marketing Cloud SDK in your app. For details, see ios SDK 4.x for Marketing Cloud Solutions. After your Analytics implementation is configured using the Marketing Cloud SDK, visit the Adobe Github Video Heartbeat site to download the SDK and the developer guide. Android Video heartbeat for Android requires that you first implement the Marketing Cloud SDK in your app. For details, see Android SDK 4.x for Marketing Cloud Solutions. After your Analytics implementation is configured using the Marketing Cloud SDK, visit the Adobe Github Video Heartbeat site to download the SDK and the developer guide. JavaScript Players This guide describes how to add video heartbeat measurement to any video player that provides a JavaScript API. Most web-based players provide a JavaScript API, even if the underlying video is delivered in Flash or other video formats. For example, the following players can be tracked using JavaScript: YouTube Brightcove Kaltura Ooyala HTML 5 (using native JavaScript support in the web browser and the HTML 5 video events). For other players, implementing video heartbeat requires that your video player provides a JavaScript API with the following: An API to subscribe to player events. The video heartbeat SDK requires that you call a set of simple functions as actions occur in your player. An API or class that provides player information, such as video name and playhead location. The video heartbeat SDK requires that you implement an interface that returns current video information. Requirements Integrating video heartbeat requires the following: Existing Analytics implementation. These instructions assume that you have an existing implementation of AppMeasurement that is also using the Marketing Cloud Visitor ID Service. If you have not yet implemented Analytics or the Marketing Cloud Visitor ID Service, use the Adobe Analytics Implementation Guide and the Marketing Cloud Visitor ID Service Guide to get started. VideoHeartbeat library. (download instructions are in this guide)

21 Video Heartbeat Developer Guide 21 AdobeAnalyticsPlugin (download instructions are in this guide) Note: Make sure your Analytics implementation is configured to send data to a development report suite before you start development. Example Implementations A simple HTML 5 video heartbeat implementation is provided for reference at Analytics Video Heartbeat Demo. A more robust example is available in the samples folder that is included with the Video Heartbeat library (download instructions are in this guide). Implementation Process Complete the following steps to add video heartbeat tracking to your player: Download the Video Heartbeat Library Video heartbeat is distributed using a public Github repository. 1. Browse to Adobe Github Video Heartbeat and download the latest release for your platform. 2. Extract the zip, and copy VideoHeartbeat.min.js to a location accessible to your project. Optionally, copy the non-minified version to your project for debugging. 3. Also copy AdobeAnalyticsPlugin.min.js to a location accessible to your project. Optionally, copy the non-minified version to your project for debugging. 4. Save the samples folder to a location where the sample project can be reviewed and tested. Next step: Implement PlayerDelegate Implement PlayerDelegate The PlayerDelegate is used by video heartbeat to get information about the currently playing video, ad, and chapter. First, read How PlayerDelegate Works to understand the role of PlayerDelegate in video heartbeat. Implementing this interface is where you will typically spend a majority of your implementation time. Additional information on this interface is available in the Video Heartbeat SDK guide distributed with the download. To get started creating your own PlayerDelegate implementation, create a new object that uses ADB.va.PlayerDelegate as the object prototype: var mydelegate = new ADB.va.PlayerDelegate(); Now that you have a player delegate, you need to define the functions that return information about your video and player: getvideoinfo() - returns an ADB.va.Video object. (required) getadbreakinfo() - returns an ADB.va.AdBreakInfo object. getadinfo() - returns an ADB.va.AdInfo object. getchapterinfo() - returns an ADB.va.ChapterInfo object. Using the following code as a template, add any of these functions you'd like to use to your code: mydelegate.getvideoinfo = function() { // use the ADB.va.VideoInfo object prototype var videoinfo = new ADB.va.VideoInfo(); videoinfo.id = ""; videoinfo.playername = ""; videoinfo.length = -1; videoinfo.streamtype = ADB.va.ASSET_TYPE_LINEAR; videoinfo.playhead = -1;

22 Video Heartbeat Developer Guide 22 return videoinfo; mydelegate.getadbreakinfo = function() { // use the ADB.va.AdBreakInfo object prototype var AdBreakInfo = new ADB.va.AdBreakInfo(); adbreakinfo.playername = ""; adbreakinfo.name = ""; AdInfo.position = 1; adbreakinfo.starttime = -1; return AdBreakInfo; mydelegate.getadinfo = function() { // use the ADB.va.AdInfo object prototype var AdInfo = new ADB.va.AdInfo(); AdInfo.id = ""; AdInfo.name = ""; AdInfo.length = -1; AdInfo.position = "1"; AdInfo.cpm = ""; return AdInfo; mydelegate.getchapterinfo = function() { // use the ADB.va.ChapterInfo object prototype var ChapterInfo = new ADB.va.ChapterInfo(); ChapterInfo.name = ""; ChapterInfo.length = -1; ChapterInfo.position = "1"; ChapterInfo.startTime = -1; return ChapterInfo; // you can implement this if you want, but it isn't used in Analytics reports mydelegate.onerror = function() { return null; // you can implement this if you want, but it isn't used in Analytics reports mydelegate.getqosinfo = function() { return null; Now that you have the framework in place, complete the rest of the sections in this doc to update these methods to return useful data from your player. Working example at Analytics Video Heartbeat Demo. Video Information The getvideoinfo method returns a VideoInfo object that contains details about the video player and the currently playing video. Before you can define this object, you'll need to use the API documentation provided by your player to find out how video information is retrieved. Video information is usually a property of the player object, or retrieved using a private method. For example, In HTML 5, the playhead is a property of the <video> element: document.getelementbyid('movie').currenttime; In the YouTube API, the playhead is returned by a method call exposed by the player: player.getcurrenttime(); To implement your custom getvideoinfo method, you'll need the following information:

23 Video Heartbeat Developer Guide 23 Parameter playername id name length playhead streamtype Required? No Description The name of the video player that is playing back the main content The ID of the video asset The name of the video asset (opaque string value) The duration (in seconds) of the video asset. If streamtype is set to vod, return the length of the video. For other video types, return -1 as the length. The current playhead location (in seconds) inside the video asset (excluding ad content) at the moment this method was called. The type of the video asset, one of the following: ADB.va.ASSET_TYPE_LIVE, ADB.va.ASSET_TYPE_LINEAR, ADB.va.ASSET_TYPE_VOD After you have figured out how to get the required information, update the getvideoinfo method to return a VideoInfo object with the video information. How you populate each value is up to you, and varies based on your player. For example, you might load the video player name using a configuration file, or you could hard-code the value if you use only one player. Ad Break Information Ad breaks provide insight as to when a particular ad was displayed. For example, if you have a pre-roll and a midpoint ad break, you can collect position data along with the specific ad data. If you have only one ad break, you can simply provide 1 for the position and leave the name blank. Parameter playername name position starttime Required? No No Description The name of the video player responsible with playing back the current advertisement break. The name of the ad-break. The position (index) of the pod inside the main content (starting with 1). The offset of the ad-break inside the main content (in seconds). Defaults to the playhead inside the main content at the moment of the trackadstart call. Ad Information Ad information is retrieved using a similar process used to retrieve video information, except you return an AdInfo object instead with details about the currently playing video ad. Use the API documentation provided by your Ad vendor to determine the following: Parameter id length position name cpm Required? No No Description The ID of the ad asset The duration (in seconds) of the ad asset The position of the pod inside the main content (starting with 1) The name of the ad asset (opaque string value) The CPM value associated with this ad After you have figured out how to get the required information, update the getadinfo method to return an AdInfo object with the ad information.

24 Video Heartbeat Developer Guide 24 Chapter Information If you are tracking chapters, you'll need to coordinate the chapter information returned with each call you make to trackchapterstart. Since chapters are likely defined by you and not your video player, you'll need a way to retrieve chapter definitions to populate this object. Parameter name length position starttime Required? No Description The name of the chapter (opaque string value) The duration (in seconds) of the chapter The position of the chapter inside the main content (starting from 1) The offset inside the main content where the chapter starts Update the getchapterinfo method to retrieve properties or call the required APIs: mydelegate.getchapterinfo = function() { // use the ADB.va.ChapterInfo object prototype var ChapterInfo = new ADB.va.ChapterInfo(); ChapterInfo.name = "name"; ChapterInfo.length = "length"; ChapterInfo.position = "position"; ChapterInfo.startTime = "offset"; return ChapterInfo; Next step: Configure Video Heartbeat Configure Video Heartbeat After you Implement PlayerDelegate, you are ready to add the video heartbeat code to your project. Before you proceed, make sure you have the following: A configured AppMeasurement object that uses the Marketing Cloud Visitor ID Service. An instance of your custom PlayerDelegate object. Your publisher ID (assigned by Adobe). On each HTML page where you are tracking video, add a <script> tag with a reference to AdobeAnalyticsPlugin.js and VideoHeartbeat.min.js, before the script tag where you include AppMeasurement.js: <script src="videoheartbeat.min.js"></script> <script src="adobeanalyticsplugin.min.js"></script> Inside of your AppMeasurement.js file, insert the following video configuration code along with your custom PlayerDelegate implementation: // Add your custom PlayerDelegate implementation here var mydelegate = new ADB.va.PlayerDelegate(); mydelegate.getvideoinfo = function() { //... ; //... // end custom PlayerDelegate // Instantiate AdobeAnalytics plugin. var aaplugin = new ADB.va.plugins.AdobeAnalyticsPlugin(s); // Pass your AppMeasurement object as the only parameter // Register the AdobeAnalytics plugin with the video heartbeat library. var plugins = [aaplugin]; // this step requires the custom playerdelegate object you created in the previous section

25 Video Heartbeat Developer Guide 25 var videoheartbeat = new ADB.va.VideoHeartbeat(myDelegate, plugins); var heartbeatconfig = new ADB.va.ConfigData(); heartbeatconfig.trackingserver = " // same for all Analytics customers heartbeatconfig.jobid = "sc_va"; // Same for all Analytics customers heartbeatconfig.publisher = "MY_PUBLISHER_ID"; // Set to your Adobe assigned publisher ID heartbeatconfig.debuglogging = false; // remove or set to false for production! VideoHeartbeat.configure(heartbeatConfig); Working example at Analytics Video Heartbeat Demo. Test Your Configuration Before you continue, load your code in a browser to make sure everything loads without errors. Optionally, set the debuglogging flag to true while you test: heartbeatconfig.debuglogging = true; // remove or set to false for production! Next, open your code in a browser and check the JavaScript console for errors (the code must be running on a local or remote web server). If there are no errors, you can use the JavaScript console to make a call to VideoHeartbeat.trackVideoLoad() and then VideoHeartbeat.trackPlay() to simulate a video play. If you check the network tab, you'll see a call to your Analytics data collection server, and additional calls to heartbeats.omtrdc.net. After you have tested your configuration, continue to Track Player Events. Next step: Track Player Events Track Player Events Media players that provide JavaScript event handlers are typically tracked by attaching callback functions to the video player event handlers. The next step is to call the video heartbeat track methods when specific events occur in your player. This typically involves subscribing to events, registering a callback function, and then calling the correct method in the callback. Review the Track Methods and Player Events sections for details on exactly which method you should call for each corresponding player event. The following example demonstrates event handling for HTML 5 video: var myvideo = document.getelementbyid('movie'); myvideo.addeventlistener('play',trackplay,false); myvideo.addeventlistener('ended',trackcomplete,false); myvideo.addeventlistener('seeked', seekend, false); myvideo.addeventlistener('seeking', seekstart, false); myvideo.addeventlistener('pause', pause, false); myvideo.addeventlistener('ended', complete, false); function trackplay() { var myvideo = document.getelementbyid('movie'); if (myvideo.currenttime == 0) { VideoHeartbeat.trackVideoLoad(); VideoHeartbeat.trackPlay(); else { VideoHeartbeat.trackPlay(); function pause(e) { videoheartbeat.trackstop(); function seekstart(e) { videoheartbeat.trackseekstart(); function seekend(e) { videoheartbeat.trackseekcomplete();

26 Video Heartbeat Developer Guide 26 function trackcomplete() { VideoHeartbeat.trackComplete(); VideoHeartbeat.trackVideoUnload(); The following example demonstrates event handling for a YouTube player: function onyoutubeplayerready(id){ player = document.getelementbyid("ytplayer"); if (player.addeventlistener) { player.addeventlistener('onstatechange', 'handleplayerstatechange'); else { player.attachevent('onstatechange', 'handleplayerstatechange'); function handleplayerstatechange (state) { switch (state) { case 1: case 3: // Video has begun playing/buffering if (player.getcurrenttime() == 0) { VideoHeartbeat.trackVideoLoad(); VideoHeartbeat.trackPlay(); else { VideoHeartbeat.trackPlay(); break; case 2: VideoHeartbeat.trackPause(); case 0: // Video has been paused/ended VideoHeartbeat.trackComplete(); VideoHeartbeat.trackVideoUnload(); break; Note that each player provides a different way to listen to events. Use the documentation provided by the player API to determine how to listen for player events. Next step: Test Your Video Measurement Code Test Your Video Measurement Code A simple way to test your video heartbeat implementation is to run the code in a demo environment. 1. Load your code in a test environment and use a packet analyzer to verify that Analytics server calls and heartbeat calls are being sent. You should see an initial call to your data collection server, and then multiple calls to In the initial call to your data collection server: Verify that pe=ms_s. 2. Test your implementation throughly to make sure you haven't missed any events. For example, if your player provides a pause event handler and you do not call trackpause, your time played metrics will be inflated. 3. In a packet analyzer, inspect the calls and use the Video Measurement Timeline to make sure events are being sent as expected. For example, you should see an s:event:type of load and then start when the video begins, and complete and then unload events when the video completes.

27 Video Heartbeat Developer Guide 27 ActionScript Players This guide describes how to add video heartbeat measurement to any video player that provides an ActionScript API. This includes Flash video players, and other players based on Open Source Media Framework (OSMF). Implementing video heartbeat requires that your video player provides an ActionScript API with the following: An API to subscribe to player events. The video heartbeat SDK requires that you call a set of simple functions as actions occur in your player. An API or class that provides player information, such as video name and playhead location. The video heartbeat SDK requires that you implement an interface that returns current video information. Requirements Integrating video heartbeat requires the following: Existing Analytics implementation. These instructions assume that you have an existing implementation of AppMeasurement that is also using the Marketing Cloud Visitor ID Service. If you have not yet implemented Analytics or the Marketing Cloud Visitor ID Service, use the Adobe Analytics Implementation Guide and the Marketing Cloud Visitor ID Service Guide to get started. VideoHeartbeat library. (download instructions are in this guide) AdobeAnalyticsPlugin. (download instructions are in this guide) Note: Make sure your Analytics implementation is configured to send data to a development report suite before you start development.

28 Video Heartbeat Developer Guide 28 Example Implementations A simple Flash video heartbeat implementation is provided for reference at Analytics Video Heartbeat Demo. A more robust example is available in the samples folder that is included with the Video Heartbeat library (download instructions are in this guide). Implementation Process Complete the following steps to add video heartbeat tracking to your player: Download the Video Heartbeat Library Video heartbeat is distributed using a public Github repository. 1. Browse to Adobe Github Video Heartbeat and download the latest release for your platform. 2. Extract the zip, and copy VideoHeartbeat.swc and AdobeAnalyticsPlugin.swc to a location accessible to your project. 3. Save the samples folder to a location where the sample project can be reviewed and tested. Next step: Add the AppMeasurement for Flash Library to a Project Add the AppMeasurement for Flash Library to a Project The Flash media module provides the interface to track video. 1. Launch Flash Professional and open the Flash project where you want to include a Flash video. 2. Click File > Publish Settings, and then open ActionScript Settings. 3. Add the AppMeasurement.swc, AdobeAnalyticsPlugin.swc, VisitorAPI.swc, and VideoHeartbeat.swc libraries to your project.

29 Video Heartbeat Developer Guide In the Timeline pane, select a frame that is available to the entire Flash application and open Actions. 5. Add the following ActionScript code to import the libraries: import com.adobe.mc.visitor; import com.omniture.appmeasurement; import com.adobe.primetime.va.configdata; import com.adobe.primetime.va.videoheartbeat; import com.adobe.primetime.va.core.plugin.iplugin; import com.adobe.primetime.va.plugins.aa.adobeanalyticsplugin; As you use these libraries in your project, auto complete should appear. This indicates that the library is being found successfully.

30 Video Heartbeat Developer Guide 30 If you don't see auto complete, verify that the libraries are added to your project. Next step: Configure AppMeasurement. Configure AppMeasurement Flash video measurement uses ActionScript, and is configured similar to the JavaScript implementation on your website. The standard Analytics Variables are all available in Flash. Video Heartbeat requires that you implement the Marketing Cloud visitor ID service. 1. Instantiate and configure the Marketing Cloud visitor ID service: //Configure Visitor ID Service var visitor:visitor = new Visitor("INSERT-MCORG-ID-HERE"); visitor.trackingserver = "INSERT-TRACKING-SERVER-HERE"; 2. Instantiate and configure AppMeasurement: var s:appmeasurement = new AppMeasurement(); s.account = "INSERT-RSID-HERE"; s.trackingserver = "INSERT-TRACKING-SERVER-HERE"; s.visitor = Visitor.getInstance("INSERT-MCORG-ID-HERE"); At a minimum, configure the following three variables:

31 Video Heartbeat Developer Guide 31 s.account s.trackingserver s.visitor These values can be copied directly from your s_code.js or AppMeasurement.js file. Next step: Implement PlayerDelegate. Implement PlayerDelegate The PlayerDelegate is used by video heartbeat to get information about the currently playing video, ad, and chapter. First, read How PlayerDelegate Works to understand the role of PlayerDelegate in video heartbeat. Implementing this interface is where you will typically spend a majority of your implementation time. Additional information on this interface is available in the Video Heartbeat SDK guide distributed with the download. To get started creating your own PlayerDelegate class, create a new class (File > New, ActionScript 3.0 Class) that uses com.adobe.primetime.va.playerdelegate as the object prototype: package { import com.adobe.primetime.va.playerdelegate; import com.adobe.primetime.va.adbreakinfo; import com.adobe.primetime.va.adinfo; import com.adobe.primetime.va.chapterinfo; import com.adobe.primetime.va.errorinfo; import com.adobe.primetime.va.qosinfo; import com.adobe.primetime.va.videoinfo; import com.adobe.primetime.va.assettype; import fl.video.flvplayback; public class MyDelegate extends PlayerDelegate { public function MyDelegate(player:FLVPlayback) { _player = player; override public function get videoinfo():videoinfo { var vi:videoinfo = new VideoInfo(); vi.playername = ""; vi.id = ""; vi.name = ""; vi.length = -1; vi.playhead = -1; vi.streamtype = AssetType.ASSET_TYPE_LINEAR; return vi; override public function get adbreakinfo():adbreakinfo { var abi:adbreakinfo = new AdBreakInfo(); abi.name = ""; abi.playername = ""; abi.position = 1; abi.starttime = -1; return abi; override public function get adinfo():adinfo { var ai:adinfo = new AdInfo(); ai.id = ""; ai.name = ""; ai.length = -1; ai.position = 1; ai.cpm = ""; return ai;

32 Video Heartbeat Developer Guide 32 override public function get chapterinfo():chapterinfo { var ci:chapterinfo = new ChapterInfo(); ci.name = ""; ci.length = -1; ci.position = 1; ci.starttime = -1; return ci; private var _player:flvplayback; In most cases you'll want to pass your player object to the constructor of your new class so you can use it to read the player metadata and playhead. This example uses FLVPlayback, but you can pass an object of any type. Working example at Analytics Video Heartbeat Demo. Video Information The get VideoInfo method returns a VideoInfo object that contains details about the video player and the currently playing video. Before you can define this object, you'll need to use the API documentation provided by your player to find out how video information is retrieved. Video information is usually a property of the player object, or retrieved using a private method. For example, when using FLVPlayback, the playhead is a property of the FLVPlayback object: _player.playheadtime To implement your custom get VideoInfo method, you'll need the following information: Parameter playername id name length playhead streamtype Required? No Description The name of the video player that is playing back the main content The ID of the video asset The name of the video asset (opaque string value) The duration (in seconds) of the video asset. If streamtype is set to vod, return the length of the video. For other video types, return -1 as the length. The current playhead location (in seconds) inside the video asset (excluding ad content) at the moment this method was called. The type of the video asset, one of the following: AssetType.ASSET_TYPE_LIVE, AssetType.ASSET_TYPE_LINEAR, AssetType.ASSET_TYPE_VOD After you have figured out how to get the required information, update the getvideoinfo method to return a VideoInfo object with the video information. How you populate each value is up to you, and varies based on your player. For example, you might load the video player name using a configuration file, or you could hard-code the value if you use only one player. Ad Break Information Ad breaks provide insight as to when a particular ad was displayed. For example, if you have a pre-roll and a midpoint ad break, you can collect position data along with the specific ad data. If you have only one ad break, you can simply provide 1 for the position and leave the name blank.

33 Video Heartbeat Developer Guide 33 Parameter playername name position starttime Required? No No Description The name of the video player responsible with playing back the current advertisement break. The name of the ad-break. The position (index) of the pod inside the main content (starting with 1). The offset of the ad-break inside the main content (in seconds). Defaults to the playhead inside the main content at the moment of the trackadstart call. Ad Information If you are tracking video ads, ad information is retrieved using a similar process used to retrieve video information, except you return an AdInfo object instead with details about the currently playing video ad. Use the API documentation provided by your Ad vendor to determine the following: Parameter id length position name cpm Required? No No Description The ID of the ad asset The duration (in seconds) of the ad asset The position of the pod inside the main content (starting with 1) The name of the ad asset (opaque string value) The CPM value associated with this ad After you have figured out how to get the required information, update the getadinfo method to return an AdInfo object with the ad information. Chapter Information If you are tracking chapters, you'll need to coordinate the chapter information returned with each call you make to trackchapterstart. Since chapters are likely defined by you and not your video player, you'll need a way to retrieve chapter definitions to populate this object. Parameter name length position starttime Required No Description The name of the chapter (opaque string value) The duration (in seconds) of the chapter The position of the chapter inside the main content (starting from 1) The offset inside the main content where the chapter starts Update the getchapterinfo method to retrieve properties or call the required APIs. Next step: Configure Video Heartbeat Configure Video Heartbeat After you Implement PlayerDelegate, you are ready to add the video heartbeat code to your project. Before you proceed, make sure you have the following: A configured AppMeasurement object that uses the Marketing Cloud Visitor ID Service. An instance of your custom PlayerDelegate object.

34 Video Heartbeat Developer Guide 34 Your publisher ID (assigned by Adobe). The following snippet demonstrates the code required to configure Video Heartbeat. This is in addition to the code you added to configure the Marketing Cloud visitor ID service and AppMeasurement. // Instantiate AdobeAnalytics plugin. var aaplugin:adobeanalyticsplugin = new AdobeAnalyticsPlugin(s); // Register the AdobeAnalytics plugin with the VHL. var plugins:vector.<iplugin> = new Vector.<IPlugin>(); plugins.push(aaplugin); // create player delegate var pd:mydelegate = new MyDelegate(player); // create video heartbeat var videoheartbeat:videoheartbeat = new VideoHeartbeat(pd, plugins); // Instantiate the configuration object. var heartbeatconfig:configdata = new ConfigData(" "sc_va", "unknown"); // replace "unknown" with your Adobe-assigned publisher ID // Set this to true to enable the "quietmode" heartbeatconfig.quietmode = false; // Set this to true to activate the debug tracing heartbeatconfig.debuglogging = false; videoheartbeat.configure(heartbeatconfig); Working example at Analytics Video Heartbeat Demo. Test Your Configuration Before you continue, load your code in a browser to make sure everything loads without errors. Optionally, set the debuglogging flag to true while you test: heartbeatconfig.debuglogging = true; // remove or set to false for production! Next, publish your project and check the console for errors. If you check the network tab, you'll see a call to your Analytics data collection server, and additional calls to heartbeats.omtrdc.net. Next step: Track Player Events Track Player Events Flash media players are typically tracked by attaching callback functions to the video player event handlers. The next step is to call the video heartbeat track methods when specific events occur in your player. This typically involves subscribing to events, registering a callback function, and then calling the correct method in the callback. Review the Track Methods and Player Events sections for details on exactly which method you should call for each corresponding player event. The following example demonstrates event handling for a Flash video player (FLVPlayback): import fl.video.videoevent; /* configure player events */ player.addeventlistener(fl.video.videoevent.playing_state_entered, onplay); player.addeventlistener(fl.video.videoevent.paused_state_entered, onpause); player.addeventlistener(fl.video.videoevent.scrub_start, onseekstart); player.addeventlistener(fl.video.videoevent.scrub_finish, onseekfinish); player.addeventlistener(fl.video.videoevent.complete, oncomplete); function onplay(e:fl.video.videoevent):void { if (player.playheadtime == 0) { videoheartbeat.trackvideoload();

35 Video Heartbeat Developer Guide 35 videoheartbeat.trackplay(); else videoheartbeat.trackplay(); function oncomplete(e:fl.video.videoevent):void { videoheartbeat.trackcomplete(); videoheartbeat.trackvideounload(); function onpause(e:fl.video.videoevent):void { videoheartbeat.trackpause(); function onseekstart(e:fl.video.videoevent):void { videoheartbeat.trackseekstart(); function onseekfinish(e:fl.video.videoevent):void { videoheartbeat.trackseekcomplete(); Note that each player provides a different way to listen to events. Use the documentation provided by the player API to determine how to listen for player events. Next step: Test Your Video Measurement Code Test Your Video Measurement Code A simple way to test your video heartbeat implementation is to run the code in a demo environment. 1. Load your code in a test environment and use a packet analyzer to verify that Analytics server calls and heartbeat calls are being sent. You should see an initial call to your data collection server, and then multiple calls to In the initial call to your data collection server: Verify that pe=ms_s. 2. Test your implementation throughly to make sure you haven't missed any events. For example, if your player provides a pause event handler and you do not call trackpause, your time played metrics will be inflated. 3. In a packet analyzer, inspect the calls and use the Video Measurement Timeline to make sure events are being sent as expected. For example, you should see an s:event:type of load and then start when the video begins, and complete and then unload events when the video completes.

36 Video Heartbeat Developer Guide 36 Sending extra video data on start Optionally send additional video data to track with each video. JavaScript and ActionScript All variables that are set on the AppMeasurement object (usually 's') are sent in with the initial trackplay() call to Analytics. You can set additional evars, props, contextdata, and events directly on the AppMeasurement object before the video starts. s.contextdata['my.media.meta.key1'] = 'value1'; s.evar1 = 'value1';' s.evar2 = 'value2'; s.evar3 = 'value3'; s.evar4 = 'value4'; s.media.play(myvideoid, myvideoplayhead); If you are playing multiple videos using the same instance object, be sure to clear out any variables that you do not want to persist between videos. evars set by context data that is sent with the initial trackplay() call should be set to expire on Page View. With Page View expiration, evars set on this call will show accurate data for the video views, visits, unique visitors, instances, entries, and exits metrics. evars set on this call will also show accurate data for custom events included on this call. However, these evars will not show any data for video time viewed, video completes, and video segment views. Note: Sending additional variables with the initial trackplay() call is included in stream-based pricing.

37 Video Heartbeat Developer Guide 37 ios Because ios does not use persistent variables on the AppMeasurement object, you'll need to send additional video data using a separate call to trackaction. // ios example: ~line 67 of VideoAnalyticsProvider.m in the sample app // that is distributed with the video heartbeat SDK #pragma mark - VideoPlayer notification handlers. - (void)onmainvideoloaded:(nsnotification *)notification { [self.videoheartbeat trackvideoload]; NSMutableDictionary *contextdata = [NSMutableDictionary dictionary]; // these 4 context data values should be sent with every extra call // they should match the values from the video that is being loaded // These are mapped to video solution variables automatically by processing // rules that were configured when you enabled video heartbeat [contextdata setobject:self.player.videoid forkey:@"a.media.name"]; [contextdata setobject:@"ios basic media player" forkey:@"a.media.playername"]; [contextdata setobject:@"ios" forkey:@"a.media.channel"]; [contextdata setobject:@"video" forkey:@"a.contenttype"]; // you can add any additional context data to the contextdata dictionary // These extra values must be mapped using context data // In this example, the processing rule can check for the "my.media.meta.load" key // you can use any key you want to trigger the processing rule [contextdata setobject:@"1" forkey:@"my.media.meta.load"]; [contextdata setobject:@"value1" forkey:@"my.media.meta.key1"]; [contextdata setobject:@"value2" forkey:@"my.media.meta.key2"]; [contextdata setobject:@"value3" forkey:@"my.media.meta.key3"]; [contextdata setobject:@"value4" forkey:@"my.media.meta.key4"]; // and so on... // the context data is attached and sent with a trackaction // this call does not increment page views [ADBMobile trackaction:self.player.videoid data:contextdata]; - (void)onplay:(nsnotification *)notification { [self.videoheartbeat trackplay]; evars set by context data that is sent with this call should be set to expire on Visit, so that the variables persist until the video start event is sent by the trackplay call. With visit expiration, evars set on this call will show accurate data for the video views, visits, unique visitors, instances, entries, and exits metrics. evars set on this call will also show accurate data for custom events set using processing rules based on this call. However, these evars will show inaccurate data for video time viewed, video completes, and video segment views for any visitors who view more than one video during a visit. The following image demonstrates a sample processing rule to capture the data sent by this call (this is the same on ios and Android):

38 Video Heartbeat Developer Guide 38 Note: trackaction calls are billed as standard server calls, and are not included as part of video stream-based pricing. Android Because Android does not use persistent variables on the AppMeasurement object, you'll need to send additional video data using a separate call to trackaction(). // Android example: ~line 60 of AnalyticsProvider.java in the sample app // that is distributed with the video heartbeat SDK switch (playerevent) { case VIDEO_LOAD: Log.d(LOG_TAG, "Video loaded."); _videoheartbeat.trackvideoload(); HashMap<String, Object> contextdata = new HashMap<String, Object>(); // these 4 context data values should be sent with every extra call // they should match the values from the video that is being loaded // These are mapped to video solution variables automatically by processing // rules that were configured when you enabled video heartbeat contextdata.put("a.media.name", "video ID"); contextdata.put("a.media.playername", "Android basic media player"); contextdata.put("a.media.channel", "Android"); contextdata.put("a.contenttype", "video"); // you can add any additional context data to the contextdata dictionary // These extra values must be mapped using context data // In this example, the processing rule can check for the "my.media.meta.load" key // you can use any key you want to trigger the processing rule contextdata.put("my.media.meta.load", "1"); contextdata.put("my.media.meta.key1", "value1"); contextdata.put("my.media.meta.key2", "value2"); contextdata.put("my.media.meta.key3", "value3"); contextdata.put("my.media.meta.key4", "value4"); // and so on... // the context data is attached and sent with a trackaction // this call does not increment page views Analytics.trackAction("Video metadata", contextdata); break; evars set by context data that is sent with this call should be set to expire on Visit, so that the variables persist until the video start event is sent by the trackplay call. With visit expiration, evars set on this call will show accurate data for the video views,

39 Video Heartbeat Developer Guide 39 visits, unique visitors, instances, entries, and exits metrics. evars set on this call will also show accurate data for custom events set using processing rules based on this call. However, these evars will show inaccurate data for video time viewed, video completes, and video segment views for any visitors who view more than one video during a visit. The following image demonstrates a sample processing rule to capture the data sent by this call (this is the same on ios and Android): Note: trackaction() calls are billed as standard server calls, and are not included as part of video stream-based pricing. Sending extra video data during playback Optionally send additional video data and events during playback. JavaScript and ActionScript You can set custom events and send additional video data using s.tl() calls during video playback. s.contextdata['a.media.name'] = medianame; s.contextdata['a.media.playername'] = mediaplayername; s.contextdata['a.media.channel'] = "web"; s.contextdata['a.contenttype'] = "video"; s.events = "event7"; s.evar1 = 'value1';' s.evar2 = 'value2'; s.linktrackvars = "events,evar1,evar2,contextdata.a.media.name,contextdata.a.media.playername,contextdata.a.media.channel,contextdata.a.contenttype"; s.linktrackevents = "event7"; s.tl(true,"o","test Video Event"); evars set on this call or set by context data that is included on this call should be set to expire on Page View. With Page View expiration, evars set on this call will show accurate data for the video views, visits, unique visitors, instances, entries, and exits metrics. evars set on this call will also show accurate data for custom events included on this call. However, these evars will not show any data for video time viewed, video completes, and video segment views. Note: s.tl() calls are billed as standard server calls, and are not included as part of video stream-based pricing.

40 Video Heartbeat Developer Guide 40 ios You can set custom events and send additional video data using trackaction calls. // ios example: you can make additional calls anywhere during video playback NSMutableDictionary *contextdata = [NSMutableDictionary dictionary]; // these 4 context data values should be sent with every extra call // they should match the values from the video that is being loaded // These are mapped to video solution variables automatically by processing // rules that were configured when you enabled video heartbeat [contextdata setobject:self.player.videoid forkey:@"a.media.name"]; [contextdata setobject:@"ios basic media player" forkey:@"a.media.playername"]; [contextdata setobject:@"ios" forkey:@"a.media.channel"]; [contextdata setobject:@"video" forkey:@"a.contenttype"]; // you can add any additional context data to the contextdata dictionary // These extra values must be mapped using context data // our processing rule (see screenshot below) checks for the "my.media.eventname" key // you can use any key you want to trigger the processing rule [contextdata setobject:@"1" forkey:@"my.media.eventname"]; [contextdata setobject:@"value1" forkey:@"my.media.event.key1"]; // and so on... // the context data is attached and sent with a trackaction // this call does not increment page views [ADBMobile trackaction:self.player.videoid data:contextdata]; evars set by context data that is sent with this call should be set to expire on Page View. With Page View expiration, evars set on this call will show accurate data for the video views, visits, unique visitors, instances, entries, and exits metrics. evars set on this call will also show accurate data for custom events set using processing rules based on this call. However, these evars will not show any data for video time viewed, video completes, and video segment views. The following image demonstrates a sample processing rule to capture the data sent by this call (this is the same on ios and Android): Note: trackaction calls are billed as standard server calls, and are not included as part of video stream-based pricing.

41 Video Heartbeat Developer Guide 41 Android You can set custom events and send additional video data using trackaction() calls. // Android example: you can make additional calls anywhere during video playback HashMap<String, Object> contextdata = new HashMap<String, Object>(); // these 4 context data values should be sent with every extra call // they should match the values from the video that is being loaded // These are mapped to video solution variables automatically by processing // rules that were configured when you enabled video heartbeat contextdata.put("a.media.name", "video ID"); contextdata.put("a.media.playername", "Android basic media player"); contextdata.put("a.media.channel", "Android"); contextdata.put("a.contenttype", "video"); // you can add any additional context data to the contextdata dictionary // These extra values must be mapped using context data // our processing rule (see screenshot below) checks for the "my.media.eventname" key // you can use any key you want to trigger the processing rule contextdata.put("my.media.eventname", "1"); contextdata.put("my.media.event.key1", "value1"); // and so on... // the context data is attached and sent with a trackaction // this call does not increment page views Analytics.trackAction("Video event", contextdata); evars set by context data that is sent with this call should be set to expire on Page View. With Page View expiration, evars set on this call will show accurate data for the video views, visits, unique visitors, instances, entries, and exits metrics. evars set on this call will also show accurate data for custom events set using processing rules based on this call. However, these evars will not show any data for video time viewed, video completes, and video segment views. The following image demonstrates a sample processing rule to capture the data sent by this call (this is the same on ios and Android): Note: trackaction() calls are billed as standard server calls, and are not included as part of video stream-based pricing.

42 Video Measurement Timeline 42 Video Measurement Timeline This topic provides an overview of when video data is collected. Note that the heartbeat frequency interval (10 seconds) is the maximum time between heartbeat calls. Within a 10 second interval, you might see mulitple heartbeat calls based on what is occurring in your video. You will see one or more calls to the heartbeat service every 10 seconds, including the following: Active A video playback event, such as play, buffer, and so on For example, in a 10 second interval, you might see the following video events: Active Play Buffer Bitrate change Ad start Ad play This would indicate that during this interval the user is active, is playing the main asset, encounters a buffering which leads to bitrate change, an ad starts and then plays. You can use a packet analyzer to view the s:event:type in each heartbeat call to determine the video event that occurred. Event Number Event Name Player to Analytics Player to Heartbeat Collection Heartbeat Collection to Analytics 0 Video Load Single call at beginning of the stream (when the user clicks play) Single heartbeat when requesting playback, to capture stream starts Single call with identifying content info. This includes: page name (if set) content type player name (a.media.playername) view (a.media.view) length (a.media.length) name (a.media.name)

43 Video Measurement Timeline 43 1 Video Start - Single heartbeat when the 1st frame is rendered, to capture startup time - 2 Heartbeat - Regular heartbeat info - 3 Pod Start Ad Start Single call at beginning of ad stream Ad Start - 5 Ad Heartbeat - Just like regular heartbeat, but with content-type = ad and different video name - 6 Ad Complete - Ad Heartbeat Single call per ad with all relevant ad info 7 Pod Complete Scrub - Regular heartbeat - 9 Buffer Event - Buffer Heartbeat - 10 Post-buffer Heartbeat - Regular heartbeat enhanced with info about the timing and duration of buffer event - 11 Error - Error call with details about the error (type, impact, etc) - 12 Video Complete - Complete call (~ 2 minutes after last heartbeat is received) Single call is sent by the Heartbeat Collection server to the Analytics server with the time viewed metrics.

44 Video Measurement Parameters 44 Video Measurement Parameters Lists the data collection parameters sent by video heartbeat. Video Core Parameters Label Required Variable Type Context Data Variable Sent With Video Player evar a.media.playername Video Start Syndication Channel No evar a.media.channel Video Start Content Type evar a.contenttype Video Start Video Segment evar a.media.segment Heartbeat Video ID evar, prop a.media.name Video Start Video Name No classification a.media.friendlyname Video Start Video Length classification a.media.length Video Start Video View event a.media.view Video Start Video Segment View event a.media.segmentview Heartbeat Video Complete No event a.media.complete Heartbeat Video Time Spent event a.media.timeplayed Heartbeat Video Ad Parameters Label Required Variable Type Context Data Variable Sent With Pod ID evar a.media.ad.pod Ad Start Pod Name No classification a.media.ad.podfriendlyname Ad Start Pod Position (Offset) classification a.media.ad.podsecond Heartbeat Ad ID evar a.media.ad.name Ad Start Ad Name No classification a.media.ad.friendlyname Ad Start

45 Video Measurement Parameters 45 Ad Length classification a.media.ad.length Ad Start Ad Player Name evar a.media.ad.playername Ad Start Ad Position Within Pod evar a.media.ad.podposition Ad Start Ad View event a.media.ad.view Ad Start Ad CPM No event a.media.ad.cpm Ad Start Ad Complete event a.media.ad.complete Heartbeat Ad Time Spent event a.media.ad.timeplayed Heartbeat Video Chapter Parameters Label Required Variable Type Context Data Variable Sent With Chapter ID evar a.media.chapter.name Heartbeat Chapter Name No classification a.media.chapter.friendlyname Heartbeat Chapter Position classification a.media.chapter.position Heartbeat Chapter Offset No classification a.media.chapter.offset Heartbeat Chapter Length No classification a.media.chapter.length Heartbeat Chapter View event a.media.chapter.view Heartbeat Chapter Complete No event a.media.chapter.complete Heartbeat Chapter Time Spent event a.media.chapter.timeplayed Heartbeat

46 How PlayerDelegate Works 46 How PlayerDelegate Works If you have reviewed the Track Methods and Player Events topic, you might have noticed that none of the track methods take any parameters. Instead of passing video name, playhead information, and chapter information directly to these methods, video heartbeat uses a PlayerDelegate class that is queried for this information instead. As part of your implementation, you are required to extend this class to provide specific information about your player. To understand the interaction between the player event listeners, the track functions, and the PlayerDelegate, consider the following example. Event Listeners When tracking HTML 5 video, you might subscribe to the play event using the following code: var myvideo = document.getelementbyid('movie'); myvideo.addeventlistener('play',trackvideoplay,false); VideoHeartbeat Track Functions In the trackvideoplay() JavaScript function you assigned to handle the play event, you would call VideoHeartbeat.trackPlay() to let video heartbeat know that playback has started: function trackvideoplay() { VideoHeartbeat.trackPlay(); ; Note that no video information is passed to the trackplay(). PlayerDelegate When the video heartbeat track... methods are called, your implementation of PlayerDelegate is queried automatically as needed to provide any required details about the video, ad, or chapter. This removes the need for you to determine exactly what information is needed by each track function, you can provide a single object that returns the most current information available. The following is a simple example of an implementation of PlayerDelegate for an HTML 5 video player that does not track ads or chapters: var mydelegate = new ADB.va.PlayerDelegate(); mydelegate.getvideoinfo = function() { var myvideo = document.getelementbyid('movie'); var videoinfo = new ADB.va.VideoInfo(); videoinfo.id = "My Video Name"; videoinfo.playername = "HTML5 Video Player"; videoinfo.length = myvideo.duration; videoinfo.streamtype = "vod"; videoinfo.playhead = myvideo.currenttime; return videoinfo; mydelegate.getadinfo = function() { return null; mydelegate.getchapterinfo = function() { return null; mydelegate.onerror = function() { return null; mydelegate.getqosinfo = function() { // QoS reports are not available in Adobe Analytics return null;

47 How PlayerDelegate Works 47 In this example, when VideoHeartbeat.trackPlay() is called, your instance of VideoInfo is read to determine the current offset of the video to calculate time played. The querying happens automatically, you are required only to extend PlayerDelegate and provide an instance of the extended class when you initialize video heartbeat. Make sure you take a close look at the sample players to see how PlayerDelegate is extended.

48 Track Methods and Player Events 48 Track Methods and Player Events The video player being instrumented must be capable of triggering a series of events through which any subscriber can be informed about what happens inside the video player. The following tables present the one-to-one correspondence between player events and the associated call exposed by the public API of the video heartbeats library. Video Playback Event Load the main video asset Unload the main video asset Playback start Playback stop/pause Playback complete Seek start Seek complete Buffer start Buffer complete Method Call trackvideoload() trackvideounload() trackplay() trackpause() trackcomplete() trackseekstart() trackseekcomplete() trackbufferstart() trackbuffercomplete() Parameter List None None None None None None None None None The following methods must be called in pairs (that is, each track...start() must have a corresponding track...complete()): trackbufferstart() and trackbuffercomplete() trackpause() and trackplay() (note that if the player is closed before the pause resumes, the corresponding method might not be called) trackseekstart() and trackseekcomplete() (with an exception: there may be multiple trackseekstart() calls before a trackseekcomplete()) The track...start() call are not required to be followed by a track...complete() call, as there may be other track...() method calls in between. For example, the following sequence of track...() method calls is valid and describes a user who is seeking through the stream while paused, and resumes playback after two seeks: trackpause(); // Signals that the user paused the playback. trackseekstart(); // Signals that the user started a seek operation. trackseekstart(); // Signals that the user started another seek operation (before the first one was completed). trackseekcomplete(); // Signals that the second seek operation has completed. trackplay(); // Signals that the user resumed playback. Ad Playback Event An ad starts An ad completes Method Call trackadstart() trackadcomplete() Parameter List None None The trackadstart() and trackadcomplete() methods are the only track methods required in order to signal the beginning and completion of an ad.

49 Track Methods and Player Events 49 You do not need to (and should not) call any additional track methods to signal the transition from ad to content or vice-versa. For instance, you should not signal the pause of the main video (via trackpause()) when an ad starts. This is handled automatically inside the VideoHeartbeat library when you call trackadstart() Chapter Tracking Event A new chapter starts A chapter completes Method Call trackchapterstart() trackchaptercomplete() Parameter List None None

50 Migrating to Video Heartbeat 50 Migrating to Video Heartbeat This section describes the steps to migrate from milestone to video heartbeat. Note: ActionScript 3 implementations require Flash Player version 10 or higher. If you plan to support Flash Player 9, you must use ActionScript 2. Step Task Location Description Enable video reports Marketing reports and analytics UI Video heartbeat uses dedicated solution variables to track video and video ad data, so you no longer need to map video variables to Analytics variables. Once enabled, video reports are populated as soon as your report suite receives video data. Configure Analytics Video Reporting Remove context data mapping Player code Context data mapping is no longer needed. Remove Context Data Mapping Remove milestones, track seconds, and complete Player code Milestones and track seconds are replaced by heartbeat. Completes are determined by the heartbeat server. Remove Unused Tracking Methods and Configuration Remove calls to Media.monitor. Player code Media monitor is not available in heartbeat tracking, however, any custom context data, custom variables, or custom events set on the AppMeasurement object are sent with the initial play call. Sending extra video data on start Make sure you clear or update variables before each play call that you make using the same appmeasurement instance. Remove Unused Tracking Methods and Configuration Implement video heartbeat. Player code Video heartbeat provides new methods that handle much of the logic of keeping track of playhead position, and provide a more direct mapping for player events. For details, see Video Heartbeat Developer Guide. Remove Context Data Mapping Leave trackusingcontextdata enabled, then set contextdatamapping to null, since the mapping is configured automatically when you Configure Analytics Video Reporting. appmeasurement.media.trackusingcontextdata = true; appmeasurement.media.contextdatamapping = null;

51 Migrating to Video Heartbeat 51 Remove Unused Tracking Methods and Configuration Video heartbeat tracking with solution variables significantly reduces the amount of configuration required in your code. If set, remove the following configuration variables: autotrack autotracknetstreams adtrackseconds adtrackmilestones adtrackoffsetmilestones adsegmentbymilestones adsegmentbyoffsetmilestones completebycloseoffset completecloseoffsetthreshold SegmentByMilestones segmentbyoffsetmilestones trackevents trackmilestones trackoffsetmilestones trackseconds trackvars Remove calls to the following methods: complete monitor

52 Contact and Legal Information 52 Contact and Legal Information Information to help you contact Adobe and to understand the legal issues concerning your use of this product and documentation. Help & Technical Support The Adobe Marketing Cloud Customer Care team is here to assist you and provides a number of mechanisms by which they can be engaged: Check the Marketing Cloud help pages for advice, tips, and FAQs Ask us a quick question on Log an incident in our customer portal Contact the Customer Care team directly Check availability and status of Marketing Cloud Solutions Service, Capability & Billing Dependent on your solution configuration, some options described in this documentation might not be available to you. As each account is unique, please refer to your contract for pricing, due dates, terms, and conditions. If you would like to add to or otherwise change your service level, or if you have questions regarding your current service, please contact your Account Manager. Feedback We welcome any suggestions or feedback regarding this solution. Enhancement ideas and suggestions for Adobe Analytics can be added to our Customer Idea Exchange. Legal 2014 Adobe Systems Incorporated. All Rights Reserved. Published by Adobe Systems Incorporated. Terms of Use Privacy Center Adobe and the Adobe logo are either registered trademarks or trademarks of Adobe Systems Incorporated in the United States and/or other countries. All third-party trademarks are the property of their respective owners.

JW Player Quick Start Guide

JW Player Quick Start Guide JW Player Quick Start Guide Getting Started Embedding the JW Player on your website is a simple, 3-step process: 1. Upload the jwplayer.js and player.swf files from the download ZIP to your server. All

More information

Adobe Marketing Cloud Bloodhound for Mac 3.0

Adobe Marketing Cloud Bloodhound for Mac 3.0 Adobe Marketing Cloud Bloodhound for Mac 3.0 Contents Adobe Bloodhound for Mac 3.x for OSX...3 Getting Started...4 Processing Rules Mapping...6 Enable SSL...7 View Hits...8 Save Hits into a Test...9 Compare

More information

Adobe Summit 2015 Lab 718: Managing Mobile Apps: A PhoneGap Enterprise Introduction for Marketers

Adobe Summit 2015 Lab 718: Managing Mobile Apps: A PhoneGap Enterprise Introduction for Marketers Adobe Summit 2015 Lab 718: Managing Mobile Apps: A PhoneGap Enterprise Introduction for Marketers 1 INTRODUCTION GOAL OBJECTIVES MODULE 1 AEM & PHONEGAP ENTERPRISE INTRODUCTION LESSON 1- AEM BASICS OVERVIEW

More information

Setting Up Resources in VMware Identity Manager

Setting Up Resources in VMware Identity Manager Setting Up Resources in VMware Identity Manager VMware Identity Manager 2.4 This document supports the version of each product listed and supports all subsequent versions until the document is replaced

More information

Index. AdWords, 182 AJAX Cart, 129 Attribution, 174

Index. AdWords, 182 AJAX Cart, 129 Attribution, 174 Index A AdWords, 182 AJAX Cart, 129 Attribution, 174 B BigQuery, Big Data Analysis create reports, 238 GA-BigQuery integration, 238 GA data, 241 hierarchy structure, 238 query language (see also Data selection,

More information

EasyPush Push Notifications Extension for ios

EasyPush Push Notifications Extension for ios EasyPush Push Notifications Extension for ios Copyright 2012 Milkman Games, LLC. All rights reserved. http://www.milkmangames.com For support, contact [email protected] To View full AS3 documentation,

More information

PLAYER DEVELOPER GUIDE

PLAYER DEVELOPER GUIDE PLAYER DEVELOPER GUIDE CONTENTS CREATING AND BRANDING A PLAYER IN BACKLOT 5 Player Platform and Browser Support 5 How Player Works 6 Setting up Players Using the Backlot API 6 Creating a Player Using the

More information

Using Microsoft Visual Studio 2010. API Reference

Using Microsoft Visual Studio 2010. API Reference 2010 API Reference Published: 2014-02-19 SWD-20140219103929387 Contents 1... 4 Key features of the Visual Studio plug-in... 4 Get started...5 Request a vendor account... 5 Get code signing and debug token

More information

What s New in Analytics: Fall 2015

What s New in Analytics: Fall 2015 Adobe Analytics What s New in Analytics: Fall 2015 Adobe Analytics powers customer intelligence across the enterprise, facilitating self-service data discovery for users of all skill levels. The latest

More information

MASTERTAG DEVELOPER GUIDE

MASTERTAG DEVELOPER GUIDE MASTERTAG DEVELOPER GUIDE TABLE OF CONTENTS 1 Introduction... 4 1.1 What is the zanox MasterTag?... 4 1.2 What is the zanox page type?... 4 2 Create a MasterTag application in the zanox Application Store...

More information

Adobe Summit 2015 Lab 712: Building Mobile Apps: A PhoneGap Enterprise Introduction for Developers

Adobe Summit 2015 Lab 712: Building Mobile Apps: A PhoneGap Enterprise Introduction for Developers Adobe Summit 2015 Lab 712: Building Mobile Apps: A PhoneGap Enterprise Introduction for Developers 1 Table of Contents INTRODUCTION MODULE 1 AEM & PHONEGAP ENTERPRISE INTRODUCTION LESSON 1- AEM BASICS

More information

How To Test Your Web Site On Wapt On A Pc Or Mac Or Mac (Or Mac) On A Mac Or Ipad Or Ipa (Or Ipa) On Pc Or Ipam (Or Pc Or Pc) On An Ip

How To Test Your Web Site On Wapt On A Pc Or Mac Or Mac (Or Mac) On A Mac Or Ipad Or Ipa (Or Ipa) On Pc Or Ipam (Or Pc Or Pc) On An Ip Load testing with WAPT: Quick Start Guide This document describes step by step how to create a simple typical test for a web application, execute it and interpret the results. A brief insight is provided

More information

What s New in Analytics: Fall 2015

What s New in Analytics: Fall 2015 Adobe Analytics What s New in Analytics: Fall 2015 Adobe Analytics powers customer intelligence across the enterprise, facilitating self-service data discovery for users of all skill levels. The latest

More information

WebSphere Business Monitor V7.0 Script adapter lab

WebSphere Business Monitor V7.0 Script adapter lab Copyright IBM Corporation 2010 All rights reserved IBM WEBSPHERE BUSINESS MONITOR 7.0 LAB EXERCISE WebSphere Business Monitor V7.0 Script adapter lab What this exercise is about... 1 Changes from the previous

More information

Remote Viewer Recording Backup

Remote Viewer Recording Backup Remote Viewer Recording Backup Introduction: In this tutorial we will explain how to retrieve your recordings using the Web Service online. Using this method you can backup videos onto your computer using

More information

CinePlay 1.1.2. User Manual

CinePlay 1.1.2. User Manual CinePlay User Manual 1 CinePlay 1.1.2 User Manual CinePlay is a professional ios video player complete with timecode overlays, markers, masking, safe areas and much more. It is ideal for dailies, portfolios,

More information

White paper: Google Analytics 12 steps to advanced setup for developers

White paper: Google Analytics 12 steps to advanced setup for developers White paper: Google Analytics 12 steps to advanced setup for developers We at Core work with a range of companies who come to us to advises them and manage their search and social requirements. Dr Jess

More information

ECG-1615A. How to Integrate IBM Enterprise Content Management Solutions With Microsoft SharePoint and IBM Connections. elinar.com

ECG-1615A. How to Integrate IBM Enterprise Content Management Solutions With Microsoft SharePoint and IBM Connections. elinar.com ECG-1615A How to Integrate IBM Enterprise Content Management Solutions With Microsoft SharePoint and IBM Connections Presentation index The Players The Problem IBM Standard Integration Options IBM Content

More information

Adobe Marketing Cloud Reports and Analytics Help

Adobe Marketing Cloud Reports and Analytics Help Adobe Marketing Cloud Reports and Analytics Help Contents Reports & Analytics Interface Help...7 Getting Started...8 Adobe Analytics - Key Concepts...8 Analytics Products...8 Key Terminology...9 Key Reports...9

More information

ISVforce Guide. Version 35.0, Winter 16. @salesforcedocs

ISVforce Guide. Version 35.0, Winter 16. @salesforcedocs ISVforce Guide Version 35.0, Winter 16 @salesforcedocs Last updated: vember 12, 2015 Copyright 2000 2015 salesforce.com, inc. All rights reserved. Salesforce is a registered trademark of salesforce.com,

More information

Universal Mobile Ads is a plugin for Unreal Engine 4 that enables the MoPub ad mediation system for ios & Android.

Universal Mobile Ads is a plugin for Unreal Engine 4 that enables the MoPub ad mediation system for ios & Android. Contents 1. License... 3 2. Introduction... 3 3. Supported Ad Formats... 5 a. Banner... 5 b. Interstitial... 5 c. Rewarded Video... 6 4. Supported Ad Networks... 7 5. Getting started... 8 6. Configure

More information

Using Google Analytics

Using Google Analytics Using Google Analytics Overview Google Analytics is a free tracking application used to monitor visitors to your website in order to provide site designers with a fuller knowledge of their audience. At

More information

JW Player for Flash and HTML5

JW Player for Flash and HTML5 JW Player for Flash and HTML5 Release 5.3 Embedding Guide December 20, 2010 CONTENTS 1 Embedding the player 1 1.1 Upload.................................................. 1 1.2 SWFObject................................................

More information

Cloud Administration Guide for Service Cloud. August 2015 E65820-01

Cloud Administration Guide for Service Cloud. August 2015 E65820-01 Cloud Administration Guide for Service Cloud August 2015 E65820-01 Table of Contents Introduction 4 How does Policy Automation work with Oracle Service Cloud? 4 For Customers 4 For Employees 4 Prerequisites

More information

dotmailer for Salesforce Installation Guide Winter 2015 Version 2.30.1

dotmailer for Salesforce Installation Guide Winter 2015 Version 2.30.1 for Salesforce Installation Guide Winter 2015 Version 2.30.1 Page 1 CONTENTS 1 Introduction 2 Browser support 2 Self-Installation Steps 2 Checks 3 Package Download and Installation 4 Users for Email Automation

More information

Spotify Homepage Takeover

Spotify Homepage Takeover Formats Spotify Homepage Takeover Build Guide Table of Contents Overview... 2 Supported Platforms... 3 Known Issues... 3 Implementing a Spotify Homepage Takeover... 3 Included Template Files... 3 HTML...

More information

Using Application Insights to Monitor your Applications

Using Application Insights to Monitor your Applications Using Application Insights to Monitor your Applications Overview In this lab, you will learn how to add Application Insights to a web application in order to better detect issues, solve problems, and continuously

More information

DocuSign for Salesforce Administrator Guide v6.1.1 Rev A Published: July 16, 2015

DocuSign for Salesforce Administrator Guide v6.1.1 Rev A Published: July 16, 2015 DocuSign for Salesforce Administrator Guide v6.1.1 Rev A Published: July 16, 2015 Copyright Copyright 2003-2015 DocuSign, Inc. All rights reserved. For information about DocuSign trademarks, copyrights

More information

CourseBuilder Extension ADOBE elearning SUITE 6

CourseBuilder Extension ADOBE elearning SUITE 6 CourseBuilder Extension ADOBE elearning SUITE 6 Legal notices Legal notices For legal notices, see http://help.adobe.com/en_us/legalnotices/index.html. iii Contents Chapter 1: Getting Started Overview..............................................................................................................

More information

HDVideoShare! User Documentation Team January 31. 2012

HDVideoShare! User Documentation Team January 31. 2012 Version 2.3 HDVideoShare! User Documentation Team January 31. 2012 2010 Copyrights and all rights reserved by Contus Support Interactive Pvt. Ltd., TABLE OF CONTENTS Welcome to you as a new user of this

More information

Load testing with. WAPT Cloud. Quick Start Guide

Load testing with. WAPT Cloud. Quick Start Guide Load testing with WAPT Cloud Quick Start Guide This document describes step by step how to create a simple typical test for a web application, execute it and interpret the results. 2007-2015 SoftLogica

More information

Getting Started with the new VWO

Getting Started with the new VWO Getting Started with the new VWO TABLE OF CONTENTS What s new in the new VWO... 3 Where to locate features in new VWO... 5 Steps to create a new Campaign... 18 Step # 1: Enter Campaign URLs... 19 Step

More information

Jet Data Manager 2012 User Guide

Jet Data Manager 2012 User Guide Jet Data Manager 2012 User Guide Welcome This documentation provides descriptions of the concepts and features of the Jet Data Manager and how to use with them. With the Jet Data Manager you can transform

More information

The full setup includes the server itself, the server control panel, Firebird Database Server, and three sample applications with source code.

The full setup includes the server itself, the server control panel, Firebird Database Server, and three sample applications with source code. Content Introduction... 2 Data Access Server Control Panel... 2 Running the Sample Client Applications... 4 Sample Applications Code... 7 Server Side Objects... 8 Sample Usage of Server Side Objects...

More information

5.1 Features 1.877.204.6679. [email protected] Denver CO 80202

5.1 Features 1.877.204.6679. sales@fourwindsinteractive.com Denver CO 80202 1.877.204.6679 www.fourwindsinteractive.com 3012 Huron Street [email protected] Denver CO 80202 5.1 Features Copyright 2014 Four Winds Interactive LLC. All rights reserved. All documentation

More information

Microsoft Tag Scanning SDK for iphone & Android Apps

Microsoft Tag Scanning SDK for iphone & Android Apps Microsoft Tag Scanning SDK for iphone & Android Apps This document provides an overview of the functionality of the Microsoft Tag Scanning SDK, used to integrate Tag scanning into mobile apps on the ios

More information

CrushFTP User Manager

CrushFTP User Manager CrushFTP User Manager Welcome to the documentation on the CrushFTP User Manager. This document tries to explain all the parts tot he User Manager. If something has been omitted, please feel free to contact

More information

IBM Watson Ecosystem. Getting Started Guide

IBM Watson Ecosystem. Getting Started Guide IBM Watson Ecosystem Getting Started Guide Version 1.1 July 2014 1 Table of Contents: I. Prefix Overview II. Getting Started A. Prerequisite Learning III. Watson Experience Manager A. Assign User Roles

More information

Reports and Documents Generator for SharePoint ver.: 2.2

Reports and Documents Generator for SharePoint ver.: 2.2 Reports and Documents Generator for SharePoint ver.: 2.2 User Guide Version 2.2 Contents 1. Overview... 3 2. Licensing... 4 3. Installation instructions... 4 3.1. Requirements... 4 3.2. Installation...

More information

ExactTarget GENESIS I N TEGRATION GUIDE

ExactTarget GENESIS I N TEGRATION GUIDE ExactTarget GENESIS I N TEGRATION GUIDE GENESIS INTEGRATION GUIDE II Table of Contents Terms and Conditions of Use... 4 Intended Audience... 4 Account Support... 4 Service and Billing Information... 4

More information

NETGEAR genie Apps. User Manual. 350 East Plumeria Drive San Jose, CA 95134 USA. August 2012 202-10933-04 v1.0

NETGEAR genie Apps. User Manual. 350 East Plumeria Drive San Jose, CA 95134 USA. August 2012 202-10933-04 v1.0 User Manual 350 East Plumeria Drive San Jose, CA 95134 USA August 2012 202-10933-04 v1.0 Support Thank you for choosing NETGEAR. To register your product, get the latest product updates, get support online,

More information

WebSphere Business Monitor V7.0 Business space dashboards

WebSphere Business Monitor V7.0 Business space dashboards Copyright IBM Corporation 2010 All rights reserved IBM WEBSPHERE BUSINESS MONITOR 7.0 LAB EXERCISE WebSphere Business Monitor V7.0 What this exercise is about... 2 Lab requirements... 2 What you should

More information

Adobe Marketing Cloud Java

Adobe Marketing Cloud Java Adobe Marketing Cloud Java Contents AppMeasurement for Java...3 Overview...4 Requirements...5 Implement Measurement Library (Java)...6 Track Config Variables...6 Methods...6 Plug-In Architecture (Optional)...8

More information

MicroStrategy Desktop 10.2. MicroStrategy 10.2: New features overview. microstrategy.com 1

MicroStrategy Desktop 10.2. MicroStrategy 10.2: New features overview. microstrategy.com 1 MicroStrategy Desktop 10.2 MicroStrategy 10.2: New features overview. microstrategy.com 1 TABLE OF CONTENTS MicroStrategy Desktop 10.2 Easier integration of custom visualizations 3 BETA Dashboard annotation

More information

Getting Started with WPM

Getting Started with WPM NEUSTAR USER GUIDE Getting Started with WPM Neustar Web Performance is the cloud-based platform offering real-time data and analysis, helping to remove user barriers and optimize your site. Contents Getting

More information

Sage Intelligence Financial Reporting for Sage ERP X3 Version 6.5 Installation Guide

Sage Intelligence Financial Reporting for Sage ERP X3 Version 6.5 Installation Guide Sage Intelligence Financial Reporting for Sage ERP X3 Version 6.5 Installation Guide Table of Contents TABLE OF CONTENTS... 3 1.0 INTRODUCTION... 1 1.1 HOW TO USE THIS GUIDE... 1 1.2 TOPIC SUMMARY...

More information

Web Dashboard User Guide

Web Dashboard User Guide Web Dashboard User Guide Version 10.2 The software supplied with this document is the property of RadView Software and is furnished under a licensing agreement. Neither the software nor this document may

More information

Deploying System Center 2012 R2 Configuration Manager

Deploying System Center 2012 R2 Configuration Manager Deploying System Center 2012 R2 Configuration Manager This document is for informational purposes only. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED, OR STATUTORY, AS TO THE INFORMATION IN THIS DOCUMENT.

More information

Zoom Plug-ins for Adobe

Zoom Plug-ins for Adobe = Zoom Plug-ins for Adobe User Guide Copyright 2010 Evolphin Software. All rights reserved. Table of Contents Table of Contents Chapter 1 Preface... 4 1.1 Document Revision... 4 1.2 Audience... 4 1.3 Pre-requisite...

More information

The In-Stream LogoKit is an In-Stream linear and non-linear ad format that plays in VPAID-compliant video players. The ad displays icons in the

The In-Stream LogoKit is an In-Stream linear and non-linear ad format that plays in VPAID-compliant video players. The ad displays icons in the The In-Stream LogoKit is an In-Stream linear and non-linear ad format that plays in VPAID-compliant video players. The ad displays icons in the bottom-right corner of the player which, when clicked, open

More information

Adobe Marketing Cloud Marketing Cloud Product Documentation

Adobe Marketing Cloud Marketing Cloud Product Documentation Adobe Marketing Cloud Marketing Cloud Product Documentation Contents Marketing Cloud and Core Services Product Documentation...5 About Core Services and Solutions...6 Administration - Users, Groups, Core

More information

SUCCESSFACTORS LEARNING USER OVERVIEW REFERENCE GUIDE

SUCCESSFACTORS LEARNING USER OVERVIEW REFERENCE GUIDE SUCCESSFACTORS LEARNING USER OVERVIEW REFERENCE GUIDE SuccessFactors, Inc. 4401 Wilson Boulevard, Suite 400 Arlington, VA 22203 Tel: (703) 678-0000 www.successfactors.com Confidential and Proprietary For

More information

NETWRIX USER ACTIVITY VIDEO REPORTER

NETWRIX USER ACTIVITY VIDEO REPORTER NETWRIX USER ACTIVITY VIDEO REPORTER ADMINISTRATOR S GUIDE Product Version: 1.0 January 2013. Legal Notice The information in this publication is furnished for information use only, and does not constitute

More information

CounterACT Plugin Configuration Guide for ForeScout Mobile Integration Module MaaS360 Version 1.0.1. ForeScout Mobile

CounterACT Plugin Configuration Guide for ForeScout Mobile Integration Module MaaS360 Version 1.0.1. ForeScout Mobile CounterACT Plugin Configuration Guide for ForeScout Mobile Integration Module Version 1.0.1 ForeScout Mobile Table of Contents About the Integration... 3 ForeScout MDM... 3 Additional Documentation...

More information

Google Analytics Integration Guide

Google Analytics Integration Guide XTRABANNER Google Analytics Integration Guide U-BTech Solutions LTD. INTRODUCTION Created: 18-Oct-2012 Updated: 23-Mar-2014 We are excited to announce that XtraBanner version 2.0 now supports integration

More information

RoomWizard Synchronization Software Manual Installation Instructions

RoomWizard Synchronization Software Manual Installation Instructions 2 RoomWizard Synchronization Software Manual Installation Instructions Table of Contents Exchange Server Configuration... 4 RoomWizard Synchronization Software Installation and Configuration... 5 System

More information

VEEAM ONE 8 RELEASE NOTES

VEEAM ONE 8 RELEASE NOTES VEEAM ONE 8 RELEASE NOTES This Release Notes document provides last-minute information about Veeam ONE 8 Update 2, including system requirements, installation instructions as well as relevant information

More information

Canadian Association for Research Libraries Toronto, Ontario 14 October 2015

Canadian Association for Research Libraries Toronto, Ontario 14 October 2015 Canadian Association for Research Libraries Toronto, Ontario 14 October 2015 Introductions Help & Learning Standard Reports Audience Traffic Sources Content Behaviour Measuring Value Basic Filtering &

More information

WP Popup Magic User Guide

WP Popup Magic User Guide WP Popup Magic User Guide Introduction Thank you so much for your purchase! We're excited to present you with the most magical popup solution for WordPress! If you have any questions, please email us at

More information

Cloudwords Drupal Module. Quick Start Guide

Cloudwords Drupal Module. Quick Start Guide Cloudwords Drupal Module Quick Start Guide 1 Contents INTRO... 3 HOW IT WORKS... 3 BEFORE YOU INSTALL... 4 In Cloudwords... 4 In Drupal... 4 INSTALLING THE CLOUDWORDS DRUPAL MODULE... 5 OPTION ONE: Install

More information

1: 2: 2.1. 2.2. 3: 3.1: 3.2: 4: 5: 5.1 5.2 & 5.3 5.4 5.5 5.6 5.7 5.8 CAPTCHA

1: 2: 2.1. 2.2. 3: 3.1: 3.2: 4: 5: 5.1 5.2 & 5.3 5.4 5.5 5.6 5.7 5.8 CAPTCHA Step by step guide Step 1: Purchasing a RSMembership! membership Step 2: Download RSMembership! 2.1. Download the component 2.2. Download RSMembership! language files Step 3: Installing RSMembership! 3.1:

More information

User Guide. Making EasyBlog Your Perfect Blogging Tool

User Guide. Making EasyBlog Your Perfect Blogging Tool User Guide Making EasyBlog Your Perfect Blogging Tool Table of Contents CHAPTER 1: INSTALLING EASYBLOG 3 1. INSTALL EASYBLOG FROM JOOMLA. 3 2. INSTALL EASYBLOG FROM DIRECTORY. 4 CHAPTER 2: CREATING MENU

More information

User Guide to the Content Analysis Tool

User Guide to the Content Analysis Tool User Guide to the Content Analysis Tool User Guide To The Content Analysis Tool 1 Contents Introduction... 3 Setting Up a New Job... 3 The Dashboard... 7 Job Queue... 8 Completed Jobs List... 8 Job Details

More information

Infinity Call Tracking

Infinity Call Tracking Infinity Call Tracking An introduction from our founder Infinity Tracking is the most advanced call tracking solution in the UK and can track an unlimited number of search keywords. For any company where

More information

Mobile App Framework For any Website

Mobile App Framework For any Website Mobile App Framework For any Website Presenting the most advanced and affordable way to create a native mobile app for any website The project of developing a Mobile App is structured and the scope of

More information

JTouch Mobile Extension for Joomla! User Guide

JTouch Mobile Extension for Joomla! User Guide JTouch Mobile Extension for Joomla! User Guide A Mobilization Plugin & Touch Friendly Template for Joomla! 2.5 Author: Huy Nguyen Co- Author: John Nguyen ABSTRACT The JTouch Mobile extension was developed

More information

Veeam Backup Enterprise Manager. Version 7.0

Veeam Backup Enterprise Manager. Version 7.0 Veeam Backup Enterprise Manager Version 7.0 User Guide August, 2013 2013 Veeam Software. All rights reserved. All trademarks are the property of their respective owners. No part of this publication may

More information

Best Practices for Maximizing Revenue with MoPub. Publisher Playbook

Best Practices for Maximizing Revenue with MoPub. Publisher Playbook ! Best Practices for Maximizing Revenue with MoPub Publisher Playbook Table of Contents Introduction 3 Ad Formats 4 Singleton Ad Unit for Banners 4 Interstitial Ad Unit 5 Video Ads on MoPub Marketplace

More information

CSA Software Listing 2016-2017. Table of Contents. Both Windows and Mac platforms are supported.

CSA Software Listing 2016-2017. Table of Contents. Both Windows and Mac platforms are supported. CSA Software Listing 2016-2017 Both Windows and Mac platforms are supported. Table of Contents Student Access and Permissions... 2 Web Browsers... 2 Mozilla Firefox... 2 Internet Explorer... 2 Google Chrome...

More information

Bulk Downloader. Call Recording: Bulk Downloader

Bulk Downloader. Call Recording: Bulk Downloader Call Recording: Bulk Downloader Contents Introduction... 3 Getting Started... 3 Configuration... 4 Create New Job... 6 Running Jobs... 7 Job Log... 7 Scheduled Jobs... 8 Recent Runs... 9 Storage Device

More information

Kony MobileFabric Messaging. Demo App QuickStart Guide. (Building a Sample Application

Kony MobileFabric Messaging. Demo App QuickStart Guide. (Building a Sample Application Kony MobileFabric Kony MobileFabric Messaging Demo App QuickStart Guide (Building a Sample Application Apple ios) Release 6.5 Document Relevance and Accuracy This document is considered relevant to the

More information

genie app and genie mobile app

genie app and genie mobile app genie app and genie mobile app User Manual 350 East Plumeria Drive San Jose, CA 95134 USA June 2012 202-10933-02 v1.0 2012 NETGEAR, Inc. All rights reserved No part of this publication may be reproduced,

More information

How To Use Query Console

How To Use Query Console Query Console User Guide 1 MarkLogic 8 February, 2015 Last Revised: 8.0-1, February, 2015 Copyright 2015 MarkLogic Corporation. All rights reserved. Table of Contents Table of Contents Query Console User

More information

media kit 2014 PUBLISH / DEVELOP Global Mobile Ad Network

media kit 2014 PUBLISH / DEVELOP Global Mobile Ad Network media kit 2014 PUBLISH / DEVELOP Global Mobile Ad Network WHY MOBILE PUBLISHING Proliferation of smartphone devices and tablets is shifting the way that customers use Internet, making advertising a key

More information

MAS 90. Installation and System Administrator's Guide 4WIN1010-02/04

MAS 90. Installation and System Administrator's Guide 4WIN1010-02/04 MAS 90 Installation and System Administrator's Guide 4WIN1010-02/04 Copyright 1998-2004 Best Software, Inc. All rights reserved. Rev 02 Contents Chapter 1 Introduction 1 How to Use This Manual 1 Graphic

More information

SAM Brief Student User Guide

SAM Brief Student User Guide SAM Assessment, Training and Projects for Microsoft Office December 2015 SAM Brief Student User Guide Contents Introduction 1 How to Use SAM 2 Logging in the First Time as a Pre-registered Student 2 Profile

More information

Kaltura Extension for SharePoint User Manual. Version: Eagle

Kaltura Extension for SharePoint User Manual. Version: Eagle Kaltura Extension for SharePoint User Manual Version: Eagle Kaltura Business Headquarters 200 Park Avenue South, New York, NY. 10003, USA Tel.: +1 800 871 5224 Copyright 2012 Kaltura Inc. All Rights Reserved.

More information

Getting Started. Getting Started with Time Warner Cable Business Class. Voice Manager. A Guide for Administrators and Users

Getting Started. Getting Started with Time Warner Cable Business Class. Voice Manager. A Guide for Administrators and Users Getting Started Getting Started with Time Warner Cable Business Class Voice Manager A Guide for Administrators and Users Table of Contents Table of Contents... 2 How to Use This Guide... 3 Administrators...

More information

Adobe Marketing Cloud Android SDK 4.x for Marketing Cloud Solutions

Adobe Marketing Cloud Android SDK 4.x for Marketing Cloud Solutions Adobe Marketing Cloud Android SDK 4.x for Marketing Cloud Solutions Contents Android SDK 4.x for Marketing Cloud Solutions...5 Release Notes for Android SDK 4.x for Marketing Cloud Solutions...6 Getting

More information

Qsync Install Qsync utility Login the NAS The address is 192.168.1.210:8080 bfsteelinc.info:8080

Qsync Install Qsync utility Login the NAS The address is 192.168.1.210:8080 bfsteelinc.info:8080 Qsync Qsync is a cloud based file synchronization service empowered by QNAP Turbo NAS. Simply add files to your local Qsync folder, and they will be available on your Turbo NAS and all its connected devices.

More information

Frog VLE Update. Latest Features and Enhancements. September 2014

Frog VLE Update. Latest Features and Enhancements. September 2014 1 Frog VLE Update Latest Features and Enhancements September 2014 2 Frog VLE Update: September 2014 Contents New Features Overview... 1 Enhancements Overview... 2 New Features... 3 Site Backgrounds...

More information

Cloud Services MDM. ios User Guide

Cloud Services MDM. ios User Guide Cloud Services MDM ios User Guide 10/24/2014 CONTENTS Overview... 3 Supported Devices... 3 System Capabilities... 3 Enrollment and Activation... 4 Download the Agent... 4 Enroll Your Device Using the Agent...

More information

Building native mobile apps for Digital Factory

Building native mobile apps for Digital Factory DIGITAL FACTORY 7.0 Building native mobile apps for Digital Factory Rooted in Open Source CMS, Jahia s Digital Industrialization paradigm is about streamlining Enterprise digital projects across channels

More information

Instructions for Configuring Your Browser Settings and Online Security FAQ s. ios8 Settings for iphone and ipad app

Instructions for Configuring Your Browser Settings and Online Security FAQ s. ios8 Settings for iphone and ipad app Instructions for Configuring Your Browser Settings and Online Security FAQ s ios8 Settings for iphone and ipad app General Settings The following browser settings and plug-ins are required to properly

More information

Drupal CMS for marketing sites

Drupal CMS for marketing sites Drupal CMS for marketing sites Intro Sample sites: End to End flow Folder Structure Project setup Content Folder Data Store (Drupal CMS) Importing/Exporting Content Database Migrations Backend Config Unit

More information

Google Analytics workbook

Google Analytics workbook Google Analytics workbook Sub-title here Google Analytics workbook Overview Google Analytics is just one of many tools available for tracking activity on a website or mobile application. It provides users

More information

Administering Jive for Outlook

Administering Jive for Outlook Administering Jive for Outlook TOC 2 Contents Administering Jive for Outlook...3 System Requirements...3 Installing the Plugin... 3 Installing the Plugin... 3 Client Installation... 4 Resetting the Binaries...4

More information

Adobe Marketing Cloud Adobe Mobile Services

Adobe Marketing Cloud Adobe Mobile Services Adobe Marketing Cloud Adobe Mobile Services Contents Adobe Mobile Services...5 What's New in Adobe Mobile Services...7 Getting Started with Adobe Mobile Services...10 Sign In to Adobe Mobile Services...10

More information

How to Prepare for the Upgrade to Microsoft Dynamics CRM 2013 (On-premises)

How to Prepare for the Upgrade to Microsoft Dynamics CRM 2013 (On-premises) How to Prepare for the Upgrade to Microsoft Dynamics CRM 2013 (On-premises) COMPANY: Microsoft Corporation RELEASED: September 2013 VERSION: 1.0 Copyright This document is provided "as-is". Information

More information

Licensing Guide BES12. Version 12.1

Licensing Guide BES12. Version 12.1 Licensing Guide BES12 Version 12.1 Published: 2015-04-02 SWD-20150402115554403 Contents Introduction... 5 About this guide...5 What is BES12?...5 Key features of BES12... 5 About licensing...7 Steps to

More information

Actualtests.C2010-508.40 questions

Actualtests.C2010-508.40 questions Actualtests.C2010-508.40 questions Number: C2010-508 Passing Score: 800 Time Limit: 120 min File Version: 5.6 http://www.gratisexam.com/ C2010-508 IBM Endpoint Manager V9.0 Fundamentals Finally, I got

More information

Web Analytics Definitions Approved August 16, 2007

Web Analytics Definitions Approved August 16, 2007 Web Analytics Definitions Approved August 16, 2007 Web Analytics Association 2300 M Street, Suite 800 Washington DC 20037 [email protected] 1-800-349-1070 Licensed under a Creative

More information

Appspace 5.X Reference Guide (Digital Signage) Updated on February 9, 2015

Appspace 5.X Reference Guide (Digital Signage) Updated on February 9, 2015 Appspace 5.X Reference Guide (Digital Signage) Updated on February 9, 2015 1 TABLE OF CONTENTS 2 What is Appspace For Digital Signage... 4 3 Access Appspace... 4 4 Best Practices and Notes... 4 5 Appspace

More information

Performance Measurement Service Choice Browser Installation and Use

Performance Measurement Service Choice Browser Installation and Use Performance Measurement Service Choice Browser Installation and Use Version v. 2.0.1.0001 - Expires: 040112 Installation There are two ways to install the 3PMobile Choice Browser. OTA (Over the Air) using

More information

Table of Contents. Overview... 2. Supported Platforms... 3. Demos/Downloads... 3. Known Issues... 3. Note... 3. Included Files...

Table of Contents. Overview... 2. Supported Platforms... 3. Demos/Downloads... 3. Known Issues... 3. Note... 3. Included Files... Table of Contents Overview... 2 Supported Platforms... 3 Demos/Downloads... 3 Known Issues... 3 Note... 3 Included Files... 5 Implementing the Block... 6 Configuring The HTML5 Polling Block... 6 Setting

More information

CloudCall for Salesforce- Quick Start Guide. CloudCall for Act! CRM Quick Start Guide

CloudCall for Salesforce- Quick Start Guide. CloudCall for Act! CRM Quick Start Guide CloudCall for Salesforce- Quick Start Guide CloudCall for Act! CRM Quick Start Guide 26/01/2015 Plugin Overview About SYNETY SYNETY is a leading cloud- based software and communications company that develops

More information

NNMi120 Network Node Manager i Software 9.x Essentials

NNMi120 Network Node Manager i Software 9.x Essentials NNMi120 Network Node Manager i Software 9.x Essentials Instructor-Led Training For versions 9.0 9.2 OVERVIEW This course is designed for those Network and/or System administrators tasked with the installation,

More information