External Use of Mercury’s M2M Dial Test Capability

Overview

Mercury’s moment-to-moment dial test capability (M2M) can be embedded within a survey you author and host on a server that is external to Mercury, provided that your survey system supports the use of JavaScript. When the M2M capability is invoked from within your survey, the respondent will watch and rate a video and the numeric ratings data generated by the respondent will be stored on Mercury’s real-time reporting website called the Analytics Workbench.

Your survey will continue to hold all of the survey data as it normally does and Mercury’s server will hold the real-time ratings data.  Clients will be provided with access to the Analytics Workbench where ratings results can be watched and analyzed using highly visual EKG like displays that provide clear understanding of the moment-to-moment dial-test results.

When invoking Mercury’s M2M system, you pass two types of parameters:

  • The unique identifier for the audio or video media to be rated within Mercury’s systems (Mercury will provide you with a unique identifier for each audio or video clip that is being tested)
  • The ID of the respondent within your survey system who is rating the media (an ID that uniquely identifies and is associated with the respondent within your survey data)

In almost all cases, you will also want to pass the M2M system more information about each respondent so as to permit more in-depth analysis of the ratings data, beyond simply reviewing results overall. For example, how did women respond versus men? How did younger respondents react versus older respondents? If the M2M system hasn’t been provided with respondent gender and age, segmenting results to show each group individually will be impossible.  Two methods exist for passing respondent demographic data to the M2M system, described below.

Invoking the M2M Technology

The JavaScript class definitions for embedding the M2M rating recorder control within a survey webpage are contained in scripts served from the Mercury Analytics M2M system. Within the code, you must insert the correct M2M identifier for your audio or video clip (assigned by Mercury) that uniquely identifies the media clip to be rated.

The script should be referenced from the HTML HEAD of the page that will display the M2M recorder, as follows:

<script src=’http://ajax.googleapis.com/ajax/libs/swfobject/2.2/swfobject.js’></script>
<script src=’http://talaria.mercuryanalytics.com/recorder/swfobject/XXX.js’></script>

Note that the example’s use of “XXX” must be replaced with the unique identifier that Mercury provides for the specific media to be rated. The identifier will be of the general form “####_Name” where “####” is the Mercury project number assigned and “Name” generally describes the content being tested.

The point in the document at which the M2M recorder is to be displayed is marked with a DIV tag. The contents of the DIV will be displayed to users who have JavaScript disabled or who have a version of Adobe Flash that’s too old to support the M2M recorder, and should contain instructions on how to upgrade Flash. The DIV tag requires an ID attribute that can be referenced by the generator tool.

For example:

<div align=’center’ id=’recorder’>
Hello, you either have JavaScript turned off or an old version of Adobe’s Flash Player.
<a href=’http://www.adobe.com/go/getflashplayer/’>Get the latest Flash player.</a>
</div>

When the generator embeds the player, it uses JavaScript to replace the DIV tag’s contents with the markup necessary to display the player. The DIV tag itself may be used to position the M2M recorder on the page. In general, the position of the M2M recorder on the page should always be centered.

The M2M recorder is then generated by (a) creating an instance of the class: mercury_analytics.recorder, (b) optionally setting demographic data (discussed below), and (c) instructing it to embed itself into the page.

The following shows a typical example of the code:

<script type=’text/javascript’>
var recorder = new mercury_analytics.recorder(“1234″);
recorder.scale = 85;
recorder.finalize = true;
recorder.embed( “recorder”);
</script>

This starts the recorder rating the media for a respondent with the unique ID “1234”. You should always use your respondent’s unique ID.

The scale property is the percentage of the user’s physical screen width to be taken up by the M2M recorder. By setting the scale property, you are defining the percentage of the user’s screen that will be used to display the video and M2M recorder, ensuring that each user enjoys a similar video rating experience independent of screen size or resolution. Try a scale setting of 85% to start.

The finalize property indicates whether this call to the M2M system represents a respondent who will have completed the survey and should be counted in the M2M system as a complete, or whether the respondent is not yet complete.  By default, when you pass data to the M2M system, the respondent is treated as ‘false’ (not yet complete), and unless you call the M2M system for the respondent an additional time and set the  finalize property to ‘true’, the respondent’s ratings will be captured and saved but will not be utilized when analyzing survey data – as if the respondent abandoned the survey.

Finally, the parameter to the embed method is the ID of the DIV tag that marks where the recorder component is to be inserted.

When the recorder finishes, it invokes a JavaScript method called mercurySurveyComplete. By overriding this method in the document head, the survey coder can cause the survey to automatically continue to the next page when the M2M record operation has completed. This is normally the desired operation so that the user does not have need to or have the option to press a CONTINUE style button to advance to the next section of the survey.

For example:

<script type=’text/javascript’>
function mercurySurveyComplete() {
  window.location = “/recorder-followup”;
}
</script>

Enhancing M2M Respondent Data

As described above, almost always more information about each respondent is needed so as to permit more in-depth analysis of the ratings data, beyond simply reviewing results overall. For example, how did women respond versus men? How did younger respondents react versus older respondents? If the M2M system hasn’t been provided with respondent gender and age, segmenting results to show each group individually will be impossible.

Any number of data variables from the survey that describe each respondent can be loaded into the M2M system when a call to the M2M system is made, passing not just the respondent’s ID and M2M identifier, but also passing the particular respondent’s answers to one or all of the survey questions. These answer values are passed to the M2M recorder as a series of “variable-name” / “value” pairs, as described below.

The “variable-name” represents an easy to identify name for the piece of data being passed to the M2M recorder, such as (in this example) “Sex”, “Age” and “Movie Going Frequency”. These variable-names do not need to precisely match the actual names of the variables within the survey system but will be displayed by the M2M system when the ratings are being analyzed in order to better reflect the purpose of the data field being passed to the M2M system, so as to make the variable easier to understand within the M2M system.

The “value” represents the answer for the “variable-name” question as entered by the respondent. However, this “value” will often not be passed to the M2M recorder in the precise format stored by the survey system but will be enhanced before being passed to the M2M recorder to better identify the answer provided by the user — to make the answer more easily understood.

By way of example:

<script type=’text/javascript’>
var recorder = new mercury_analytics.recorder(“1234″);
recorder.demographics.Age = “18 to 24″;
recorder.demographics.Gender = “Female”;
recorder.demographics[“Movie Going Frequency”] = “About once
er week”;
recorder.scale = 85;
recorder.finalize = true;
recorder.embed( “recorder”);
</script>

As in the earlier example, this code invokes the rating for respondent “1234”.  However in this example demographic data for “Age”, “Gender”, and “Movie Going Frequency” are also being passed to the M2M system, indicating that this respondent is “18 to 24”, “Female”, and  has a “movie going frequency” of “About once per week”.

The parameter to the constructor is the unique respondent id. The demographics property of the recorder object holds the variable data as described in the previous section. The value of each variable is set in a property with the corresponding name. Note that if the variable name is not a valid JavaScript property name, the alternate syntax shown for the “Movie Going Frequency” variable is required.

If a variable can have multiple values (often referred to as a “multi-punch” variable), the values should be passed as an array. For example:

recorder.demographics.Genre = [ “Horror”, “Sci-Fi”, “Action”];

In this case, the Genre variable for this respondent would represent all three of the values provided (corresponding to this respondent’s selection of each of these answer choices within a multi-punch question in the survey).

Use of Order Indicators

When the M2M system displays the data associated with a question or an answer choice, it does not know the correct order that each should be displayed, and so it automatically sorts the data alphabetically.

Correctly Defining the Order of Answer Choices

Consider these answer choices:

Excellent
Very Good
Good
Average
Bad
Very Bad
Poor

Because the M2M system would display these answer choices in alphabetical order, they would appear when displayed as:

Average
Bad
Excellent
Good
Poor
Very Bad
Very Good

In order to communicate to the M2M system the correct order for answer choices, an “order indicator” can be optionally placed in front of each answer choice value.  The order indicator has the form “VALUE/”, meaning a value to sort on and the slash character.  The order indicator, if used, will not be shown as part of the answer choice but will be used when sorting answer choices.  Thus the correctly sorted list of answer choices for the above example would be:

01/Excellent
02/Very Good
03/Good
04/Average
05/Bad
06/Very Bad
07/Poor

Order indicators are highly recommended in all situations in which the answer choices will not appear in the proper order if sorted alphabetically. Additionally, if an answer choice itself contains a slash character, it must have an order indicator to prevent the M2M system from misinterpreting it and assuming the characters before the “/” represent the sorting order. For example, if you were to pass “Black/African American” as the value of a variable representing the respondent’s race, the M2M system would interpret this as having a value of “African American”, but with a sort indicator of “Black/”. To avoid this, you can pass an explicit sort indicator, such as “01/Black/African American”. If you want normal, alphabetical sorting, then pass “/Black/African American”.

It is important that the same order indicator is always passed with the same value – if the same value is passed with different order indicators for different respondents (for example, one respondent passes “01/Under 12” and another passes “1/Under 12”), the system will treat these as separate values for this variable.

Correctly Defining the Order of Survey Variables

Similar to the proper ordering of answer choices, survey variables will be displayed in the M2M system in alphabetical order.  If instead you want to dictate the order of survey variables, we recommend the use of a leading, incrementing numeric value preceding each variable name – causing the variable names to sort and be displayed in the order you prefer.

Imagine these variables were in the desired, correct order:

Gender
Age
City
HHI
Ethnicity

Without any numeric order indication, these would be displayed alphabetically as:

Age
City
Ethnicity
Gender
HHI

To force the display of the variables in the correct order we recommend adding a two digit numeric value, followed by a colon and a space:

10: Gender
20: Age
30: City
40: HHI
50: Ethnicity

By using the described syntax for variable names and answer choices, you can force the order of these values when displayed in the M2M system, making use of the M2M system easier for analysts and those that access and review survey data.

 Testing the Survey Once Coded

Once a survey has been programmed, it is time to test the operation of the survey before going ‘live’, in order to verify that the data you intend to pass to Mercury’s systems is being correctly formatted and passed.

  • First, when testing make sure that Mercury’s moment-to-moment ratings player or text highlighting tool appears properly within the survey, as expected, when expected, and that it includes the correct ratings scales, and legends or, in the case of text highlighting, the right message, properly formatted.
  • Second, add a few test ‘complete’ records and note down the respondent ID that you were assigned and the answers you gave so that you can make sure that Mercury’s systems were passed the correct values (often demographic data is added into Mercury’s systems afterwards so your survey may not yet show any of the demographic data). In the case of a dial-test, also note down how you rated the video (i.e. you rated the video at a steady 50 or 10 or 90 for example), while if a text highlighting exercise, make sure you know which words you highlighted – to verify that everything was recorded correctly.
  • Third, you must make sure that the data passed to Mercury’s systems is correct. If a moment-to-moment dial-test, for each complete you’ll want to make sure the rating line matches the way you rated the video. If a text highlighting exercise you’ll want to make sure that the proper words have been highlighted. Lastly, in both cases, if the survey has been programmed to also pass some demographic variables, you’ll want to check each of those as well – again to ensure that the answer choices you selected in the survey match what was passed to Mercury’s systems.

Reviewing test data is easy because Mercury provides a test capability that allows you to test the data on your own.  After adding several records, open the following Mercury test webpage:

http://talaria.mercuryanalytics.com/respondent_detail

Enter the identifier of the Mercury project you wish to test and enter one of the respondent IDs you used for testing.  If you enter a valid identifier and respondent ID, the page will present you with a dump of the data that was passed and captured in the Mercury system for that respondent ID number.  If you get an error attempting to access the respondent test data, make sure the identifier and respondent ID are correct.  If you continue to have an error, this indicates that the respondent ID you should be passing to Mercury’s systems is not correct.  It is essential that Mercury’s systems are passed the correct unique ID for each respondent, so immediately have the survey programmer check to ensure that they are correctly passing the ID.  Always feel free to contact Mercury.

test_rating

If demographic data was passed (NOTE: often demographic data is added into the respondent record at a later point so you may not see any demographic data), the display will show all the captured data including the question names and answer choices selected by the respondent. If a dial-test, the data display will also include a representation of the rating from that respondent.  If a text highlighting exercise, the display will show:

testing_text_2

For text highlighting exercises, the display will show the positional number of the words that were highlighted.  By way of example, if a message being tested had 500 words, and you had highlighted the first word (word “0”) and the last word (word “499”), you would see the “Data: 0;499”.  If the first through third word had been highlighted, as well as the last word, you would see “Data: 0,2;499” – meaning words 0 through 2 were highlighted along with word 499.  For testing, we recommend that you simply highlight the first couple of words, and the last couple of words.

If the captured data is as expected and if the dial-test rating line or text highlighting data is correct, then everything is working properly.  Remember — if your survey is passing demographic data as well, do tests that select every answer choice so that you can be sure that all parameters are being passed correctly.

For dial-tests, to accelerate your testing, you might prefer not to have to watch and rate one or more videos during each test cycle through the survey – so as to not waste significant time with the rating process (unless one is specifically testing to ensure that the correct M2M rating is being recorded for the survey).

Mercury can place each video that is being rated by the M2M system into what is called “staging” mode while testing. When in staging mode, a hidden option will be enabled that permits the rating of the video to be “skipped” if desired to allow testing to go quicker, without the need to watch videos or rate each video.

skip_rating

When in Staging Mode, simply right click anywhere on the rating recorder slider and you will see a “Skip Video” option. Choose this option and the M2M system will set the remaining moments of the video (or all of the ratings for the video) to “50” and will advance in the survey. This capability works with the M2M demonstration / help capability as well as on the display of video in M2M without rating.

Passing Variables to the M2M System Subsequent to Rating

As described above, at the time the M2M recorder is invoked, select variable and value pairs are passed to the M2M system as part of the invocation of the M2M recorder – to allow the M2M system to record details about the respondent. However, after the user has rated the media, the survey continues and collects additional answers to subsequent questions. Some of these variables and values may also be needed by the M2M system to provide the client and analysts with additional information essential to permit proper data analysis.

An additional M2M methodology exists that permits the survey programmer to provide additional, subsequent variable / value pairs to the M2M system after a video or audio clip has been shown and rated but before the end of the survey, to provide additional question / answer information to the M2M system that was collected from the respondent after their rating.

Prior to the end of the survey (and typically immediately following the respondent answering the last subsequent question desired to be passed to the M2M system), the survey coder can pass these extra parameters to the M2M system in a manner very similar to the previous parameter passing strategy but without any media being rated by the respondent.

Passing the additional variable / value pairs to the M2M system is similar to embedding the player. The survey-specific remote JavaScript is referenced in the head of the document, as before:

<script src=’http://ajax.googleapis.com/ajax/libs/swfobject/2.2/swfobject.js’></script>
<script src=’http://talaria.mercuryanalytics.com/recorder/swfobject/XXX.js’></script>

Please make sure to replace the example’s use of “XXX” with the identifier for your study. Also the script sets the variable values as demographics properties, as before. The difference is that, instead of invoking embed(), the code should invoke send(), which immediately transfers the values to the server.

<script type=’text/javascript’>
recorder = new mercury_analytics.recorder( “1234”);
recorder.demographics[ “200: Likely To See Movie”] = “1/Definitely Will See Movie”;
recorder.demographics[ “210: Overall Commercial Rating”] = “3/Good”;
recorder.demographics.[ “220: HHI] = “3/25,001 – 50,000″;
recorder.finalize = true;
recorder.questions = [ “1111_Superman”, “1111_Batman” ];
recorder.send(‘recorder’);
</script>

Note that the finalize property is now set to “true” to indicate that no further data will be sent, and that this respondent is complete.

The questions property allows data to be sent for multiple questions simultaneously. By default, it is set to a one-element array with the question id specified in the script request. In this case, the default would be [ “XXXXXXXX” ]. The sample shows the value changed to indicate that the additional demographic values are meant to apply for this respondent id in both the “1111_Superman” and “1111_Batman” M2M ratings.

As with the recorder, when the late-demographics transaction completes, it invokes a JavaScript method called mercurySurveyComplete. See the previous section for an example of this method.

PLEASE NOTE: INVOKING THE M2M SYSTEM SHOULD BE MADE FROM THE “ON LOAD” HANDLER FOR THE BODY TAG OF THE PAGE FOLLOWING THE FINAL QUESTION PASSED TO THE M2M SYSTEM — PLEASE CONTACT SCOTT BRICKNER AT 202-386-6322 X 320 FOR ANY HELP AT ALL, OR VIA scottb@mercuryanalytics.com.

Instructional M2M Recorder Demo

Since most respondents will be unfamiliar with using the M2M recorder, Mercury has created an M2M recorder instructional experience that explains the use of the M2M recorder and is typically shown to respondents before they are asked to rate any video content. The instructional experience also serves to verify that the respondent’s computer is properly setup to see and hear video / audio content through the M2M recorder, ensuring that an acceptable version of Flash software is properly installed and active and that their computer’s audio capability is working properly.

If the respondent cannot see or hear the instructional video, a detailed help capability is imbedded within the M2M system that provides respondents with instructions for correcting the most obvious problems with their computer’s settings. Most respondents will then see and hear the training experience successfully, while some users may still not be able to resolve a problem.

It is therefore the job of the survey programmer, if a survey is supposed to show the M2M instructional demonstration, to invoke the help capability at the proper time within the survey, and to handle the possibility that the respondent may indicate, during the experience, that they have been unable to correct a problem and properly see or hear the help instructions.

Embedding the instructional demo is similar to embedding the M2M recorder. A JavaScript library is referenced in the header, as follows:

<script src=’http://ajax.googleapis.com/ajax/libs/swfobject/2.2/swfobject.js’></script>
<script src=’http://talaria.mercuryanalytics.com/recorder/swfobject/XXX.js’></script>

(Note that the survey identifier (“XXX”) must be replaced with the identifier for the specific audio or video clip to be rated.) Then, a DIV tag is used to mark the place where the Flash presentation is to be inserted into the page, followed by a short bit of JavaScript that constructs and embeds the presentation:

<div align=’center’ id=’instructions’>
Hello, you either have JavaScript turned off or an old version of Adobe’s Flash Player.
<a href=’http://www.adobe.com/go/getflashplayer/’>Get the latest Flash player.</a>
</div>
<script type=’text/javascript’>
mercury_analytics.embed_training_demo( “instructions”);
</script>

This code will display the instructional demonstration that is designed for most situations — in which the M2M player is not configured to make use of an optional capability Mercury offers that displays special buttons within the M2M player for the respondent to click during the rating process. If you have been told that the M2M player used for your ratings test does utilize special function buttons, use a slightly different call in the JavaScript to cause the training demo that also explains the use of the buttons to be played (all other code remains identical):

mercury_analytics.embed_training_demo_with_buttons( “instructions”);

As with the recorder, when the demo completes, it executes a bit of JavaScript to allow the survey coder to control subsequent behavior and, for example, transfer control automatically to the next portion of the survey without the user having to click a CONTINUE style button.

If, during the M2M help experience, the respondent indicates that they’re having a problem with their audio and that they cannot resolve the problem, the M2M instructional capability will invoke the JavaScript function mercuryAbandonDemo. Otherwise, if the demo completes successfully, it invokes the JavaScript function mercuryDemoComplete.

Typical implementations for the exit functions:

<script type=’text/javascript’>
function mercuryDemoComplete() {
  window.location = “/path/to/next/survey/page”;
}
function mercuryAbandonDemo() {
  window.location = “/path/to/failure/explanation”;
}
</script>

Playing a Video Without Rating the Video

Within some surveys, it will be desirable to play an audio or video clip to a respondent twice. The first time, the media will be played without any rating capability – simply to be reviewed by the respondent BEFORE rating. The second time, the media will be played AND rated, as described previously. The M2M system offers the capability to play the media without rating the media.

Embedding and invoking the play-only player is almost identical to embedding the recorder. As with the recorder, the document head should load the relevant JavaScript file:

<script src=’http://ajax.googleapis.com/ajax/libs/swfobject/2.2/swfobject.js’></script>
<script src=’http://talaria.mercuryanalytics.com/recorder/swfobject/XXX.js’></script>

(Note that the survey identifier (“XXX”) must be replaced with the identifier for the specific media to be rated.) As with the recorder, the point in the document at which the player is to be displayed is marked with a DIV tag:

<div align=’center’ id=’recorder’>

Hello, you either have JavaScript turned off or an old version of Adobe’s Flash Player.

<a href=’http://www.adobe.com/go/getflashplayer/’>Get the latest Flash player.</a>
</div>

The player is generated by creating an instance of the class mercury_analytics.recorder, and instructing it to embed itself into the page.

<script type=’text/javascript’>
var recorder = new mercury_analytics.recorder();
recorder.scale = 85;
recorder.embed_video( “recorder”);
</script>

Note: this is the same as the code to embed the recorder, except that the demographic information (which is now irrelevant) is left out, and the call to embed() is replaced with a call to embed_video().

Summary

We hope this document has provided sufficient information to enable a survey programmer to utilize the Mercury M2M capability. If you have any implementation questions, please do not hesitate to contact Scott Brickner at Mercury. Scott can be reached at:

Scott Brickner
scottb@mercuryanalytics.com
202-386-6322 x 320

Timing is usually critical so please do not hesitate to call Scott. Your questions will help evolve this document so that it best describes implementation methods.

Testimonials

  • National Research Firm

    Testimonial

    We're a large research firm and we throw over 20 projects a month at Mercury. We execute everything from simple surveys, to ad tests, message tests, brand studies, rapid crisis surveys, tracking studies - we do it all. Sometimes we program our surveys, sometimes Mercury handles it, and sometimes the surveys are phone polls or data collected elsewhere in the world that get loaded onto their Analytics Workbench. Mercury's technology and support are second to none.

    Testimonial
  • Advertising Agency

    Testimonial

    Mercury has setup a 'ready to go' commercial testing lab for us that has revolutionized our processes. We can throw a few rough-cuts or animatics into a test this afternoon, and have reactions from 200 consumers by morning. We'll know if an ad works, which is best among several, and what important demographic groups like most or least. Mercury's pricing is great, allowing us to do more testing, more rapidly than ever.

    Testimonial
  • Regional Research Firm

    Testimonial

    We’re a small research firm that executes a couple projects a month or a quarter with Mercury, and we watch our bottom line very closely. Mercury is always available and responsive, as if we’re one of their larger clients – they don’t seem to sleep. They take care of survey programming, sample acquisition if we need it, through fielding. Most importantly we get real-time access to our data through their Analytics Workbench. Thanks to Mercury, even though we’re small, we can handle the most sophisticated tests.

    Testimonial
  • Global Retailer

    Testimonial

    We’re a leading high-fashion clothing manufacturer with global sales in excess of $1 Billion. We're constantly faced with time-sensitive questions -- Which of these ads would be better to run tomorrow in Vogue Espana? Why is a new promotion not working? We use Mercury because they react instantly and get us answers rapidly – sometimes overnight. Their analysis is clear and on point, and they charge reasonably for small projects. We've never seen a more responsive, more cost-effective research partner.

    Testimonial
  • Political Campaign

    Testimonial

    When I’m working on a campaign, I need answers fast. Sometimes we’re attacked and we need to know how to respond. Other times we’re creating ads and we want to make sure that we get every message right. Mercury's specialized campaign support means that they can be dial-testing ads or fine-tuning messages within 30 minutes of our requests, at prices that are unheard of in the political research space. Their Analytics Workbench lets me see results in easy to understand ways. Their technology can change the way campaigns do research.

    Testimonial
  • Tech Savvy Research Firm

    Testimonial

    We're a firm that generally executes our own online surveys. Yet when we need to offer our clients special tools like moment-to-moment dial testing or message testing with text-highlighting and heat maps, we turn to Mercury. Their technology integrates easily with our survey system, allowing surveys that execute on our servers to utilize the technology offered by Mercury. Their Analytics Workbench blows our customers away. Mercury provides us with a great partnership.

    Testimonial

Try Mercury right now for free

We want you to experience our services and tools firsthand. At no charge, we'll execute a survey for you or upload data from another survey to our Analytics Workbench. No obligations whatsoever.