New!
Discover the latest tools in the Analytics
Suite, thanks to our new online help.
Contents: Hide
Thanks to the Rich Media feature, it is possible to obtain a precise and detailed measurement of all of the different types of content that is available on your website (audio, video, podcast). Not only this, but it is also possible to obtain further information relating to the areas in which the content is broadcast (internal or external to your website), to the different broadcasting modes used (Clip or Live) as well as information relating to specific user behaviour (play, stop, pause, backward, forward, share, sending by email, adding to bookmarks etc).
This tagging document describes a general procedure, and depends on the technology that is used to implement the Rich Media module:
Implementation in JavaScript code (standard readers)
Implementation in ActionScript code (AS3 Flash readers)
This document provides information on (with the help of different valid examples) the different measurements which can be taken from all types of content (audio, video, etc).
All of the information described in this document requires that you download version 3.4.002 or later of the xtcore.js file. This file is available for download in:
Tools > Tags
Irrespective of the type of reader that is used (JavaScript or Flash), it is possible to measure the following different types of content with AT Internet solutions:
Video
Audio
Podcast
A piece of content cannot belong to more than one content type. Entering the same label during the tagging process (or the same ID) does not mean that the different content types can be grouped together.
Depending on the type of content that is measured, all of the different items can be named and then classified (with “::” to separate them) into a maximum of 3 themed levels.
With AT Internet it is possible to measure a large number of Rich Media items thanks to the predefined values that are available in our solutions. It is also possible to integrate customised information during the tagging phase.
All of the predefined values of the different variables can be found in the annex of this document.
To guarantee measurement accuracy, AT Internet measures the interaction between the user and the Rich Media content at regular intervals to ensure that the different media content on your site is always read by Internet users.
This results in a more precise measurement of playback duration in comparison to a measurement which is based on the time difference between the 'Stop' and 'Play' actions.
Post-roll advertisements are advertisements which appear at the end of a specific Rich Media broadcast. The xt_rm() method, which is described below, must be used in order to measure this type of content.
The implementation method which is used for the Podcast tag is different from the other types of content.
A detailed description of the tagging procedure is given this document.
The method which is used to measure Rich Media items is based on the following principle: using a JavaScript (xt_rm()) function at the exact moment when an Internet user clicks on an item of the player (which broadcasts the media content).
The web page which contains the Rich Media reader must contain a tag code with the xtcore.js file.
This xtcore.js file contains the xt_rm() function which must be used for each action that is carried out on the reader (JavaScript action).
The xt_rm() function must be used to measure all events on different audio and video content.
The use of JavaScript through the xt_rm() function
The xt_rm() function, which is common to all content types, allows you to add several variables. These variables will have a different purpose and different meaning depending on the content type that is being measured.
The xt_rm() function must be structured as follows (the order must be strictly adhered to):
Onclick=xt_rm(A,B,C,D,E,F,G,H,I,J,K,L,M,N)
List of variables to be entered
Variables |
Description |
A |
Compulsory - content type ("video", "audio" or "vpost" for the measurement of post-roll videos). The content type must be concatenated to the variable "&plyr=", which contains the ID of the reader that is currently being used (refer to the example below). The variable "&plyr=" is optional but must be added when several readers are used, the aim of this is to distinguish between the hits that are received by the different readers. |
B |
Level 2 site in which the content is placed. |
C |
Compulsory - content label (use "::" if necessary) or post-roll advertisement label (in this case do not use the "::"). The label which is used for a post-roll advertisement must be concatenated to the variable "&clnk=". The "&clnk=" variable needs to resume the video content that the advertisement is linked to (refer to the example below). |
D |
Compulsory - action (predefined ID). All of the different IDs can be found in the annex of this document. |
F |
Refresh count duration (optional and measured in seconds, but necessary to calculate detailed durations). This is a fixed duration, and a minimum interval value of 5 seconds applies. |
G |
Compulsory (except if D is different from "play" or if L = "Live"):Total content duration is measured in seconds (to be left empty if L="live"). Must be less than 86400. |
H |
Information relating to the position of the
playcount ("rmp", "rmpf" and "rmbufp"),
measured in seconds. These three variables, which are to be concatenated,
need to be entered as follows: "rmp=0&rmpf=0&rmbufp=0"
(0 is the default value). |
J |
Feed ID |
K |
Location ("int" or "ext"). |
L |
Broadcast ("live" or "clip"). If L is empty the method which is taken into consideration for broadcasting is "clip". |
M |
Content size (integer in Kb, leave empty if L="live"). |
N |
Content format (ID predefined by you - see Appendix). |
All of the characteristics must be transmitted for each use.
All of the predefined values of the different variables can be found in the annexes of this document.
Example 1:
The example below shows the xt_rm function which represents a “play” action that is to be buffered on a video player.
xt_rm('video',3, 'mychapter::mycontent', 'play','0','0','3600','0','1','1','int','clip','300',1)
Example 2:
The example below shows the xt_rm function which represents a "move"
action on a video player.
xt_rm('video&plyr=1','3','mychapter::mycontent','move','','0','3600','rmp=15&rmpf=10&rmbufp=15','','1','int','clip','300','1');
- the position of the read head before movement (rmpf) : '10'
- the position of the read head after movement (rmpf) : '15'
Example 3:
The example below shows a video playback followed by a post-roll advertisement.
It should be pointed out that it is not necessary to tag the video before
the advertisement.
- A "play" action on the video "videos::video1" (launches
the video)
xt_rm('video&plyr=1','1','videos::video1','play','','5','15','rmp=0&rmpf=0&rmbufp=0','','1','int','clip','300','1');
- A "refresh" action on the video (2 hits are automatically generated)
- A "stop" action on the video "videos::video1" (ends
the video)
xt_rm('video&plyr=1','1','videos::video1','stop','','5','15','rmp=15&rmpf=0&rmbufp=15','','1','int','clip','300','1');
- A "play" action on the post-roll video "post1" (plays
back the advertisement that follows the video)
xt_rm('video&plyr=1','3','mychapter::mycontent','move','','0','3600','rmp=15&rmpf=10&rmbufp=15','','1','int','clip','300','1');
It is possible to use different measurement types to analyse the performance of a podcast that is available on a site, by:
loading the xml feed into the podcast reader software (iTunes or other)
downloading one of the podcast items that is available in the feed.
Measuring the XML feed
It is possible to measure the XML feed by redirecting the feed to one of our servers so that then we can measure each of the feeds.
To set up this redirection, you should proceed as follows:
If your website has a podcast feed in the URL http://www.mysite.com/feed.xml, Internet users will have saved this URL to their podcast reader.
Copy this file content into another XML file that is unknown to Internet users (for instance, feed2.xml).
Replace its content with a dynamic redirection (server side) to:
http://logxxxx.xxxx/get/feed?xts=xxxx&type=Podcast&feed=feed_name&url=http://www.mysite.com/feed2.xml
In this URL, the following changes must be made:
Replace logxxxx with the server indicated in the xtsd variable of your general tag code
Enter xts=xxxx along with the ID of your site (the xtsite variable of the general tag code)
Replace feed_name by the name you want to give to your feed (the one that will appear in your report)
url contains the URL of the site where the redirection will be carried out (the one that hosts your feed). This variable must be placed at the end and must begin with http://
Using this method makes it possible to measure the XML feeds that have already been saved by Internet users onto their feed reader (iTunes or others). For any new registration, it is recommended to offer Internet users the same XML file with the registration date as a parameter: any redirection to logxxxx.xxxx/…. is only possible if the broadcast date comes after the registration date (there is no measurement taken on the 1st day).
Measurement
date ("xtdate" variable)
To prevent the feed podcast readers from saving the redirected URL,
close attention must be paid to a feed's registration date. If the retrieved
date is the current day's date, then no redirection will take place. If
the retrieved date is different to the current day's date then redirection
will occur.
If your website has a Podcast feed in the following URL:
http://www.mysite.com/feed.xml
you should follow the following steps:
1. Each time this feed is used, add the current day's date to a "xtdate" variable. For example in ASP:
http://www.mysite.com/feed.xml?xtdate=<% = date %>
This date will be retrieved as the registration date to be added to the feed.
2. Copy the content of this file feed.xml into another file (for example feed2.xml) that will be used in the next point, point 3.
3. Replace the content of the feed.xml file with a dynamic redirection tag (server side) to our servers and replace feed_name with your own feed label.
For example:
http://logxxxx.xxxx/get/feed?xts=xxxx&type=podcast&feed=feed_name&xtinsc={value_xtdate}&url=http://www.mysite.com/feed2.xml
This operation must ONLY be carried out if the variable xtdate is not set to the current day's date.
For example, in ASP:
<% xtdate = request.querystring("xtdate")
if date = xtdate then %>
<!-- #include file="feed2.xml" -->
<% else
response.redirect "http://logxxxx.xxxx/get/feed?xts=xxxx&type=podcast&feed=feed_name
&xtinsc=" & xtdate & "&url=http://www.mysite.com/feed2.xml"
end if
%>
Then:
If the date you have placed in the URL is the current day's date, feed.xml will only contain feed2.xml in "include"
If not, the URL logpxxxx.xxxx will redirect Internet users to feed2.xml (meaning that the measurement can be carried out)
Measuring Podcast articles
Podcast articles may be audio, video or other files that the XML feed offers for downloading.
Once again, the process for redirection is as follows:
The <enclosure> tags are found within the XML file. For example, the following line:
<enclosure url="http://mysite.com/video.mov" length="34524" type="video/quicktime" />
Replace the URL that is used by the file with a redirection URL such as:
<enclosure url="http://logxxxx.xxxx/get/my_video.mov?xts=xxxx&type=Podcast&feed=feed_name&pod=video_name&url=http://www.mysite.com/video.mov" length="34524" type="video/quicktime" />
For compatibility issues with iTunes, "amp ;" must be placed after the character "&".
In this URL, the following changes must be made:
Replace logxxxx with the server indicated in the xtsd variable of your general tag code
Enter xts=xxxx along with the ID of your website (xtsite variable of the general tag code)
name_feed takes the label of the XML global feed
my_video.mov is a label that you can enter free of choice (with .mp3, .mov or other extension), and is also used by certain feed readers (IE7 among others)
replace name_video with the name that you want to give to the downloaded file (this label can be found in your interface)
url contains the URL of the site where the redirection will be carried out (the one that hosts your feed). This variable must be placed at the end and must begin with http://
The URL which is placed after the variable url= must begin
with ‘http://’ and must be placed at the end.
The "pod" variable must only be used for downloaded articles
(without this variable, a feed update rather than a downloaded item is
measured).
The analyses are available in Rich Media > Podcasts.
The implementation method for Rich Media in an AS3 Flash reader is described below.
In order to facilitate Rich Media implementation, a "XiTiFlash"
folder is at your disposal. This folder is available ONLY ON REQUEST via
the Support Centre in the interface. It contains:
- AS3 source files: they must not be modified and must be placed in the
same folder as your Flash animation source.
- A "xititag.xml" file that must contain all of the information
which links flags to variables.
The are several steps involved in the implementation of the Rich Media tag:
1. By placing the appropriate files from the "XiTiFlash" folder into your Flash workspace.
2. By modifying your Flash animation so that you can insert the flags that represent the content you want to measure throughout your film.
3. By using an XML file (example in the "XiTiFlash" folder). This file takes all of the flags which have been created and associates them with the different variables.
Depending on your measurement needs, the following line of code must be inserted:
XiTiTag.loadXml("Flag_Name");
In this line of code, "Flag_Name" is a label that links the Flash event, which is to be measured, to the code that is contained in the xititag.xml file.
XiTiTag is a function which is created in one of the ".as" files of the "XiTiFlash" folder.
We recommend that names which are given to flags are explicit to them. The properties of the flags to be measured also need to be configured in the "xititag.xml" file (see step 2).
If the Flash animation calls ("XiTiTag.loadXml()") (an undeclared flag in the XML file) no measurement will be taken..
Example:
The image above shows an existing ".as" code in which 2 XiTiTag.loadXml() calls, with a flag name "Play_video1" and "stop_video1", have been added.
The objective of these calls is to generate a Rich Media measurement with a "play" and "stop" action. These actions are entered into the xititag.xml file, via the xt_rm() function.
Dynamic variables
For practical reasons, if you want to add the values of certain variables directly to the source code of the .as file (to be added to the xt_rm() function of the xititag.xml file), you need to group all of these variables together (concatenated with "&" separators) in a chain which is to be added as the second variable of the XiTiTag.loadXml().
Example:
//Start play
private function doPlay (e:MouseEvent) :void
{
var nameflv:String="&richname=theme::myvideo1";
flv=video1.flv";
if (nextP){
flv="video2.flv";
nameflv="&richname=thme::myvideo2";
}
XiTiTag.loadXml ("Play", nameflv) ;
vidtest.stopPlay (ns) ;
vid.clear () ;
vidTest.startPlay (ns, flv) ;
vid.attachNetStream (ns) ;
}
This example shows how a dynamic variable ("nameflv") is structured so that a content name can be changed ("myvideo1" or "myvideo2") depending on a certain context.
The following call:
XiTiTag.loadXml("Play",nameflv);
means that it is possible to use the features of the play
flag (added to xt_rm() of the xititag.xml file) while simultaneously modifying
the content label.
Each of the variables which have been added as a second variable of this
call take priority over information that has been entered in the XML file
(step 2).
Structure of variables
In order to control each variable of xt_rm(), the variables need to be entered in the following fields:
Variables |
Description |
type |
Compulsory - Content type ("audio", "video", "animation" or "vpost" for post-roll advert measurements). |
plyr |
Player ID |
clnk |
Content label that is associated with a post-roll advert ("vpost") |
xtn2 |
Level 2 site in which the content is placed. |
richname |
Compulsory - Content label (using "::" if necessary, to establish a themed tree structure). |
action |
Compulsory - Text ID which characterises an action amongst predefined actions (see appendix). |
refresh count |
Duration of refresh count (optional, and measured in seconds). For content with a long duration, this variable can be used to generate automatic intermediate hits (between the "play" hit and the "stop" hit) which provide a more accurate measurement of the duration. |
duration |
Total length of the content, measured in seconds (leave empty if mode="live"). This variable is compulsory if action="Play" and mode="Clip". Must be less than 86400. |
buf |
Buffering in process (buf=1) |
rmp |
Position of the read head. |
rmbufp |
Quality ID OR slide number if type="animation". |
stream |
Feed ID. |
location |
Location of the content ("int" for internal or "ext" for external). |
mode |
Broadcast ("live" for content that is broadcast continuously and without a duration of time, or "clip" for the contents that have a duration). If "type=Animation", then by entering "mode=Live" it is possible to obtain the total playback duration (not relative to “duration”). If mode is empty the method which is taken into consideration for broadcasting is "clip". |
size |
Size of content (integer in Kb, leave empty if mode="live"). |
extension |
Format of the content (predefined ID – see Appendix). |
In order to control the variables of web pages and of level 2 sites which
contain different media content, the variables should be entered in the
following fields:
xtprich: the label of the page
with media content
xts2rich: the level 2 site with
media content
This file contains:
A <xiti> tag which in itself contains 2 tags.
A <tags> tag which contains all the <tag> tags and which defines the flags that are present in the ".as" source files. The tag must contain the tag sub domain, and the site number.
Variables which are defined in the <tags> tag are global values by default, and are attributed to all <tag> tags: this means that the sub-domain and the ID of the site do not have to be repeatedly entered in each tag. It is possible, however, to redefine each variable in the <tag> tag.
A <settings> tag containing a <url> tag represents the domain of the collector (please do not modify).
Example:
An example of the "xititag.xml" file which is located in the "XiTiFlash" folder can be found below:
<?xml version="1.0" encoding="iso-8859-1"?>
<xiti>
<tags xtsd="http://log" xtsite="32" xtn2="17">
<! -- video launch -->
<tag key="Play_video1" xtprich="page_with_video" xts2rich="3" xtrm="video,4,video1,play,0,2,3000,4,1,1,int,clip,1000,8" />
<tag key="Stop_video1" xtprich="page_with_video" xts2rich="3" xtrm="video,4,video1,stop" />
</tags>
<! -- General parameters defintion -->
<settings>
<url>.xiti.com/hit.xiti</url>
</settings>
</xiti>
With the following XML tag:
<tag key="Play_video1" xt_rm="video&plyr=1,4,chap::myvideo,play,0,6,10,rmp=0&rmpf=0&rmbufp=0 ,1,1,int,clip,1000,8" xtprich="video_page" xts2rich="3" />
Any call:
XiTiTag.loadXml("Play_video1");
sends a hit containing the following information:
Type: "video" and ID of reader "l".
Level 2 site: "4"
Content label: "chap::myvideo"
Action: "play"
Refresh count duration: "6" (seconds)
Total duration of content: "10" (seconds)
Rich Media positions
rmp= : "0"
&rmpf= : "0"
&rmbufp= : "0"
Feed ID: "1" (64 kbps)
Location of the content: "int" (internal to the site)
Broadcasting mode: "clip" (content with a duration)
Size of content: "1000" (Ko)
Format of content: "8" (swf)
However, the following code:
XiTiTag.loadXml("Play_video1", "&richname=theme::myvideo&duration=20&rmp=10");
sends a hit with exactly the same information, except for:
the name of the content: "theme::myvideo"
the duration of the content: "20" (seconds)
the position of the read head: "10" (seconds)
www.atinternet.com/support
© AT Internet - 2016 - All rights reserved