Cross-Channel Tracking Documentation

For ConversionRuler 1.0 Customers

ConversionRuler.com allows you to track conversion actions (e.g. sales) of customers who may reach your site via a search engine Pay-Per-Click campaign, but then decide to call a toll-free number, or order a catalog through a web form.

For visitors calling a toll-free number after finding your site

Cross-Channel Tracking allows you to place a 5-letter code on your website which is then requested by your telephone sales representatives, and is uploaded to ConversionRuler.com at any later date or time to identify conversion actions with the actual source of the customer transaction. The display of the cross-channel tracking may be formatted to your liking and may appear anywhere on your page.

Requirements for your customer support center:

For visitors who order a catalog online

Cross-Channel Tracking allows you to embed a unique 5-letter code within a hidden form field on a catalog request form on your site. When the form is submitted, the 5-letter code will be sent either to your customer database, or embedded within an email sent to your staff.

When a customer calls after any period of time to purchase a product from your company, assuming you can identify the customer based on their original catalog request, the Cross-Channel Tracking code will then link the catalog telephone order with the original Pay-Per-Click campaign that led your customer to your website.

Requirements for online catalog requests:

Closing the loop

Periodically, your company should export the Cross-Channel tracking actions to a format we can read, and it can be uploaded to our system.

After the transactions have been embedded in our system, conversions appear normally within the ConversionRuler reports so you can get a more accurate measure of your Pay-Per-Click marketing.

Technical Details

To add Cross-Channel tracking to your site, you may track a user using the normal ConversionRuler snippets, or a new ConversionRuler Cross-Channel snippet which should be used on pages which need to output the cross-channel code to your web page directly.

To add Cross-Channel tracking to your site, first convert pages on your site where the cross-channel code will be displayed to use a different JavaScript source file, by placing the following code somewhere in the <body> tags on your web page:

<script language="javascript" src="http://www.conversionruler.com/bin/xjs.php?siteid=XXX"></script>

Note: This script will take the place of the current ConversionRuler snippet which appears like this:

<!-- Script for sites which DO NOT WANT Cross-Channel Tracking -->
<script language="javascript" src="http://www.conversionruler.com/bin/js.php?siteid=XXX"></script>

The Cross-Channel JavaScript code enables ConversionRuler.com to both track and generate a unique code for this particular visitor. The Cross-Channel JavaScript code defines a different version of cr_track. In addition, you will have three total script tags on your page which will, in order:

  1. Load the initial JavaScript containing cr_track and output functions
  2. Register your actions and compute the Cross-Channel Tracking Code (if any)
  3. Output the Cross-Channel Tracking Code to your page

For example, you may simply output the Cross-Code directly on the page (Important: these script tags must be between the <body> ... </body> tags of your page):

<script type="JavaScript">
    if (typeof cr_track != "undefined") { cr_track(); }
</script>
<!-- VERY IMPORTANT THAT THESE ARE SEPARATE script TAGS -->
<script language="javascript">
    CrossCodeOutput('<h1>','</h1>','<h1>UNSOURCED CLICK</h1>');
</script>

The function CrossCodeOutput is defined in http://www.conversionruler.com/bin/xjs.php, and this JavaScript source file must be included prior to invokation of the CrossCodeOutput function.

If you would like to track a specific action on a page (e.g. a newsletter, etc.) please refer to the Caveats and Gotchas section below.

Cross Code Functions

This section outlines the two Cross-Code functions, their parameters, and how they are invoked on the page.

function CrossCodeOutput(prefix, suffix, undefinedString)

CrossCodeOutput writes the 5-digit Cross-Channel code to the page directly, and has three optional parameters which can be used to customize the output of the 5-digit Cross-Channel code. It requires that a variable named siteid be defined previously on the page.

All three parameters are optional. To specify an empty parameter, enter the empty string in your JavaScript (e.g. two quotes, "", or '')

The prefix and suffix indicate a pair of strings which are output when a Cross-Code exists for this visitor and surround the cross-code itself.

The undefinedString indicates a single string which is output when no Cross-Code exists for a visitor. A cross code does not exist for visitors to your web site who are unsourced. (e.g. they type in the web page directly in their browser, etc.)

The function cr_track must be invoked previously on a page, and the siteid variable must defined prior to invokation of this function. If proto is not defined prior to invokation of this function, it defaults to the string 'http'.

Special Notes:

Examples:

Here are some examples of how this function can be invoked:

Simple output as a absolutely positioned string:

... Call cr_track above ...
<script language="javascript">
    CrossCodeOutput('<div style="position: absolute; left: 0px; bottom: 0px">','</div>');
</script>

Complex output as part of a larger body of text:

<p>Welcome to our site.
... Call cr_track ...
<script language="javascript">
    CrossCodeOutput(
       'You have been assigned cross code <strong>',
       '</strong>. Call 800-555-1212 to use your code.',
       'You have not been assigned a cross code.');
</script>
</p>

This will output one of two sets of strings. For sourced visitors:

Welcome to our site. You have been assigned cross code AGFEF. Call 800-555-1212 to use your code.

For unsourced visitors:

You have not been assigned a cross code.

Simple output with default :

You may wrap the script tags with any valid HTML you wish.

<div class="cross-code-tag">
<script language="javascript">
    CrossCodeOutput('','','NO-CODE');
</script>
</div>

function CrossCodeFormInput(name, undefinedValue)

CrossCodeFormInput outputs a hidden form variable used for submission to your site's forms. It requires that a variable named siteid be defined previously on the page.

The name variable is a string which is required and identifies the input name which will be submitted when the user submits the form.

The undefinedValue is an optional string which specifies the value to submit if the user has no cross-code assigned (e.g. they are an unsourced visitor.)

Special Notes:

Example:

<form action="myform.html" method="post">
<script language="javascript">
    CrossCodeFormInput('CRCrossCode');
</script>
<input type="submit" name="OK" value="Submit Form" />
</form>

Caveats and Gotchas

Beware of the following issues when implementing the Cross-Channel tracking:

Cross Code Functions and Variables

This section outlines the advanced description of how the Cross-Code tracking works. If you are familiar with JavaScript and understand how JavaScript is invoked on a page, this section is for you.

The Cross-Code tracking consists of two distinct scripts:

  1. xjs.php
  2. This is the analogous script to js.php which is the JavaScript file for the standard ConversionRuler tracking.

    This script defines three functions: cr_track, CrossCodeOutput, and CrossCodeFormInput.

  3. cross.php

    This is the script which actually records an action (if necessary) and optionally defines a single JavaScript variable CRCrossCode.

xjs.php

CrossCodeOutput() and CrossCodeFormInput() detect whether cr_track has already been called, and if it hasn't, they invoke cr_track with no parameters (e.g. a landing).

cr_track requries the siteid to be defined as an integer. cr_track also will check if proto has been defined, and if it hasn't, it's defined as the default value 'http'.

CRCrossCode

This variable is defined after any of the three functions above are invoked successfully:

You may perform any custom functionality with the CRCrossCode by detecting whether it's set or not, e.g.

<script language="javascript">
    if (typeof CRCrossCode == 'undefined') {
       // Site visitor is unsourced
    } else {
       // Site visitor is sourced
    }
</script>

Cross-Channel Tracking Documentation