Vous êtes sur la page 1sur 55

Implementation Guide

Coremetrics Implementation Support Guide

Retail

CONFIDENTIAL Page 1 CONFIDENTIAL Page 1

Implementation Guide Table of Contents


1 2 Introduction ....................................................................................................................................................4 Implementation Overview .............................................................................................................................4 2.1 Coremetrics Implementation Engineer........................................................................................................ 4 2.2 Implementation Kickoff................................................................................................................................ 4 2.3 Development ............................................................................................................................................... 5 2.4 Validation..................................................................................................................................................... 5 2.5 Implementation Completion ........................................................................................................................ 6 Technical Overview .......................................................................................................................................6 3.1 Tracking Technology................................................................................................................................... 6 3.2 Cookie Usage.............................................................................................................................................. 8 3.3 Secure Protocols ......................................................................................................................................... 9 Tagging Guide................................................................................................................................................9 4.1 Coremetrics JavaScript Libraries ................................................................................................................ 9 4.1.1 Library Files ......................................................................................................................................... 9 4.2 Tagging your site....................................................................................................................................... 10 4.2.1 Tag Functions .................................................................................................................................... 10 4.2.2 Tag Placement................................................................................................................................... 11 4.3 Test vs. Production Environments ............................................................................................................ 11 4.3.1 Examples ........................................................................................................................................... 11 4.4 Data Tags.................................................................................................................................................. 12 4.4.1 Page View Tag................................................................................................................................... 12 4.4.2 Product View Tag............................................................................................................................... 14 4.4.3 Technical Properties Tag ................................................................................................................... 15 4.4.4 Shop Action 5 Tag ............................................................................................................................. 15 4.4.5 Shop Action 9 Tag ............................................................................................................................. 16 4.4.6 Order Tag........................................................................................................................................... 18 4.4.7 Registration Tag................................................................................................................................. 19 4.4.8 Error Tag ............................................................................................................................................ 22 4.4.9 Element Tag....................................................................................................................................... 23 4.4.10 Conversion Event Tag ....................................................................................................................... 24 4.5 Tagging Conventions ................................................................................................................................ 26 4.5.1 Page ID Conventions ......................................................................................................................... 26 4.5.2 Product ID Conventions ..................................................................................................................... 27 4.5.3 Registration Conventions................................................................................................................... 28 4.6 Server-side include files and flags ............................................................................................................ 28 4.6.1 Main Case Statement ........................................................................................................................ 29 4.6.2 On/Off Flag ........................................................................................................................................ 29 4.6.3 Test/Production Flag.......................................................................................................................... 30 4.7 Tagging Framed Pages............................................................................................................................. 30 4.7.1 Referral URL ...................................................................................................................................... 30 4.7.2 Query String Parameters ................................................................................................................... 30 4.7.3 Examples ........................................................................................................................................... 31 Categorization ..............................................................................................................................................31 5.1 Category IDs ............................................................................................................................................. 31 5.2 Category Definition File............................................................................................................................. 32 5.3 Merchandising Report Categorization Inheritance.................................................................................... 32 5.3.1 Category Inheritance Rules ............................................................................................................... 32 5.3.2 Exceptions ......................................................................................................................................... 33 Link Tracking................................................................................................................................................33 6.1 External Marketing Campaigns ................................................................................................................. 34
CONFIDENTIAL Page 2 CONFIDENTIAL Page 2

Implementation Guide
Onsite Links............................................................................................................................................... 34 Testing Tools................................................................................................................................................35 7.1 Coremetrics TagBar .................................................................................................................................. 35 7.1.1 Description ......................................................................................................................................... 35 7.1.2 Where to find it ................................................................................................................................... 35 7.1.3 How to use it ...................................................................................................................................... 35 7.2 Implementation Test Tool (ITT)................................................................................................................. 36 7.2.1 Description ......................................................................................................................................... 36 7.2.2 Where to find it ................................................................................................................................... 36 7.2.3 How to use it ...................................................................................................................................... 36 7.3 Coremetrics Test Reports ......................................................................................................................... 36 7.3.1 Description ......................................................................................................................................... 36 7.3.2 Where to find them............................................................................................................................. 37 7.3.3 How to use them ................................................................................................................................ 37 8 First Party Data Collection Delegated and Client Managed .................................................................37 st 8.1 Delegated 1 Party Deployment Process ................................................................................................. 38 8.1.1 Initial Planning.................................................................................................................................... 38 8.1.2 Determine Sub-Domain Name for Data-Collection............................................................................ 38 8.1.3 Obtain Secure Sockets Layer (SSL) Certificates............................................................................... 38 8.1.4 Configure Client-side Name Server ................................................................................................... 39 8.1.5 Privacy Policy Updates & Implementing Opt-Out .............................................................................. 39 8.1.6 Solution Rollout.................................................................................................................................. 39 9 Privacy Considerations...............................................................................................................................39 9.1 Privacy Suggestions.................................................................................................................................. 39 9.2 Implementing Opt-Out with Coremetrics First Party Data Collection Solution.......................................... 40 9.2.1 Opt-Out Description ........................................................................................................................... 41 9.2.2 General User Use-case: .................................................................................................................... 41 9.2.3 Implementation Opt-Out for Delegated First Party ......................................................................... 42 9.2.4 Implementation Opt-Out for ClientManaged First Party ............................................................... 44 st 9.2.5 Customizing the Delegated 1 Party Opt-Out HTML Response Window ......................................... 46 10 Appendices...................................................................................................................................................47 10.1 Category Definition File............................................................................................................................. 47 10.1.1 Introduction ........................................................................................................................................ 47 10.1.2 Category Definition File Format ......................................................................................................... 47 10.1.3 Invalid Characters .............................................................................................................................. 47 10.1.4 Example file ....................................................................................................................................... 48 10.1.5 Uploading the CDF ............................................................................................................................ 49 10.1.6 File Naming Convention..................................................................................................................... 49 10.2 Data Integrity Process File ........................................................................................................................ 49 10.2.1 Introduction ........................................................................................................................................ 49 10.2.2 DIP File Format.................................................................................................................................. 49 10.2.3 Date Formatting ................................................................................................................................. 50 10.2.4 Example File ...................................................................................................................................... 50 10.2.5 Uploading the DIP File ....................................................................................................................... 51 10.2.6 File Naming Convention..................................................................................................................... 51 10.3 Multi-Currency Support ............................................................................................................................. 51 10.4 Additional Tag Attributes for Coremetrics Explore ................................................................................ 51 10.4.1 Capturing Coremetrics Explore Attributes...................................................................................... 52 10.4.2 Video Tracking - Coremetrics Explore Attributes ........................................................................... 53 10.5 Additional Product Attributes for Intelligent Offer ...................................................................................... 54 10.6 Real-Time Media Tagging......................................................................................................................... 54 10.7 Patent Information ..................................................................................................................................... 55 7 6.2

CONFIDENTIAL Page 3 CONFIDENTIAL Page 3

Implementation Guide 1 Introduction


This document provides a detailed description of the process of implementing Coremetrics tagging into a site. It includes both a high level description of the implementation that is useful for project managers and business users, as well as technical details to serve as a guide for developers as they work on the actual implementation. The Implementation Guide should be used in conjunction with any other documentation provided by Coremetrics. For any questions not answered within this document, please contact your Coremetrics Implementation Engineer.

2 Implementation Overview
2.1 Coremetrics Implementation Engineer
During the implementation process, the Coremetrics Implementation Engineer (IE) will serve as your chief point of contact with Coremetrics. The IE is a technical resource from Coremetrics who will help your company understand how best to integrate the Coremetrics tags into its site. The IE will advise you on the setting of business requirements, determine the appropriate tagging to satisfy those requirements, and work with the developers to ensure the tags are integrated correctly to capture accurate data.

2.2 Implementation Kickoff


Once a contract with Coremetrics has been signed, a Coremetrics Implementation Engineer will contact your company. The Coremetrics Implementation Engineer and the Project Manager from your company will coordinate the implementation activities. The IE and Project Manager will coordinate the Kickoff Meeting. This meeting can occur either remotely or onsite. Please consult your contract with Coremetrics to determine which applies. Onsite kickoff meetings typically take place at your companys web site development location. For an onsite kickoff, a room with a projector and network access for the IE will be necessary. Remote kickoffs will occur over a web conference arranged by the IE. Attendees will need access to a phone and the Internet. The purpose of the Kickoff Meeting is to give an overview of how the Coremetrics technology works and establish the business requirements that will drive the Coremetrics implementation. The IE will guide discussion of key business decisions that will affect the appearance of your Online Analytics reports. Required attendees for this meeting include the following: The business lead for the project The technical lead for the project The Project Manager

CONFIDENTIAL Page 4 CONFIDENTIAL Page 4

Implementation Guide
As the discussion of business requirements progress, the technical resources present will be looked upon to (1) raise concerns about requirements that may be hard to fulfill from a technical standpoint; and (2) gauge the level of effort necessary for implementing the requirements. Deliverables from the Kickoff meeting should be a set of business requirements that can be followed for the implementation. The IE will produce an Integration Plan documenting the business requirements decided upon during this meeting. The business users should review this Integration Plan to ensure it is accurate and comprehensive.

2.3 Development
Development for the implementation can begin after the kickoff meeting has occurred. The IE will produce an Integration Plan based on the decisions made during the kickoff meeting, including detailed business decisions, technical requirements, and timelines for a project plan. Developers should use the Integration Plan as a guide for the tagging of the site. Your IE will also deliver the JavaScript library files that should be used during the implementation. These files will include any customizations specific to your needs. During the development phase of implementation, four main tasks need to be accomplished: 1) Data that needs to be passed to Coremetrics must be exposed on the appropriate pages. 2) JavaScript code calling the Coremetrics tags should be included on all pages. 3) A Category Definition File must be created to map the category IDs sent in tags to a hierarchy. 4) A Data Integrity Process File should be created for use in the Validation phase of the implementation. The complexity of the requirements and the extent to which data is already exposed on the site will dictate how long these tasks will take. These four tasks can be worked on in parallel by different groups of people. Through the development process the IE will work with the developers to test pieces of the implementation as they are completed. In order to do this, the IE will need access to a development or staging server where the tagged site can be viewed externally. When all pieces of the development phase are complete, the IE will make one final review of the tagged site to ensure that all tags are working correctly and sending the appropriate values to Coremetrics. Once this final tag review is complete, the site can fall into your normal QA and release processes. The development phase ends when the site goes live in the production environment.

2.4 Validation
Once development has been completed and the Coremetrics-tagged site has been rolled out to a live production environment, Coremetrics will begin to capture data to be used for
CONFIDENTIAL Page 5 CONFIDENTIAL Page 5

Implementation Guide
validation purposes. Validation is done to ensure that the data being captured is accurate before the implementation is considered complete. Data Integrity Process (DIP) may be implemented to facilitate this process. DIP is an optional automated process comparing sales figures exported from your transaction database to collected sales data.

2.5 Implementation Completion


Implementation completion marks the end of the implementation project and the point at which Coremetrics considers collected data to be permanent production data. Completion should occur as soon as the data collection has been validated by the Implementation Engineer and your project team. Completion is an important milestone for several reasons: The date of completion is the date on which Coremetrics will consider data collection to be permanent production data. After completion, the Coremetrics Account and Support Teams will take over as your day-to-day Coremetrics contacts. This does not end your relationship with respect to Implementation Support. Implementation Engineers remain available to provide ongoing tagging and technical assistance through the Coremetrics Customer Support organization. Training is scheduled after implementation completion has occurred. The Client Education Team will work with you to schedule training. Custom report work can only be scheduled after completion has occurred. This is to ensure that the production data referenced to develop custom reporting is valid and complete. Completion does not mean that the tagging cannot be changed. After the initial implementation is complete, tagging will be updated by your development team as the site changes over time and business requirements evolve. Coremetrics will continue to provide tagging assistance and support to your business and technical teams as requested.

3 Technical Overview
3.1 Tracking Technology
Coremetrics tracks data at the end user browser level. Data is captured when a page on your site is rendered within the end users browser. As the page is rendered, JavaScript code placed in the page will gather data together and encapsulate it in an image request that is sent to the Coremetrics servers. That data is a combination of readily available information from the JavaScript Document Object Model, and information passed in through parameters in the JavaScript functions. The image request is served by Coremetrics, which will parse the relevant data out of the image request, enter it into the data warehouse, and return a 1x1 pixel GIF image in response. The image request is made in memory rather than written directly into

CONFIDENTIAL Page 6 CONFIDENTIAL Page 6

Implementation Guide
the page, meaning the image does not get rendered into the page and will not affect the page layout.

CONFIDENTIAL Page 7 CONFIDENTIAL Page 7

Implementation Guide
3.2 Cookie Usage
In order to facilitate tracking of session and cross session activities, Coremetrics makes use of cookies. The first cookie is a Session cookie that will exist only for the lifetime of the current browser session. The Session cookie will exist from the point at which the visitor first arrives at your website until the visitor closes all browser windows. The Session cookie allows Coremetrics to associate visitor actions with a session. The second cookie used by Coremetrics is a permanent Visitor cookie. This cookie persists after the visitor closes all browser windows. The Visitor cookie contains a cookie ID referenced by Coremetrics to identify a visitor when he/she returns to the site. By using the permanent Visitor cookie ID, Coremetrics can relate multiple data collection sessions to single Visitor profiles. In addition to the Visitor and Session cookies, up to 4 additional sessionbased cookies may be set depending on your specific implementation and Coremetrics version. Coremetrics cookie logic will never interfere with the cookie logic on the client site. Coremetrics cookies are set only after client cookies are set so that Coremetrics cookies will not impact any existing client cookies. If the maximum cookie limit is reached for the cookie domain, Coremetrics libraries will not set any additional cookies for that session to prevent loss of client or other cookies previously set under the domain. Here are the standard Coremetrics cookies: Session cookies (5) o Set under sitedomain.com or your Delegated 1st party data collection domain (99999999 is your assigned Coremetrics client ID) 99999999_clogin: session cookie 1. Note: combines _expires and sessionID values as separate e= and i= values for all Client-Managed 1st Party implementations. 99999999_expires: timeout cookie timestamp (set only for Delegated 1st Party implementations) o Set under the fully qualified domain serving the tagged page cmTPSet: Used to collect technical properties on 1st pageview of the session. 1. Note: This cookie is only created for implementations using eluminate.js v4.1.2 or later (See section 4.4.3 Technical Properties Tag for more details) cmRS: Resend cookie used to persist linkclick data. Not set until the visitor clicks on the first link and arrives at the destination page Visitor cookie (1) o Set under sitedomain.com or your Delegated 1st party data collection domain
CONFIDENTIAL Page 8 CONFIDENTIAL Page 8

Implementation Guide
CoreID6: Persistent cookie that contains the Coremetrics visitor ID

3.3 Secure Protocols


Coremetrics can make image requests in either HTTP or HTTPS protocols. In most cases, the HTTP protocol will be used. If the page on which the image request is being made is a secure page using the HTTPS protocol, the image request will be made in HTTPS. A certain subset of tag types will always use HTTPS to ensure secure transmission of the data. The set of tags that will always use HTTPS is a configurable option, but by default consists of the Registration and Order tags. To add or remove tags from this list, consult your IE.

4 Tagging Guide
4.1 Coremetrics JavaScript Libraries
4.1.1 Librar y Files Coremetrics provides two library files to support the tagging of your site- eluminate.js and cmdatatagutils.js. These two files provide the JavaScript code required to create the image request and send it to the Coremetrics server. They define a set of functions that will be used to create tags and populate the correct values within those tags. These files will be hosted on your servers and included within the pages that are to be tracked by Coremetrics. Note: The Coremetrics Javascript libraries, eluminate.js and cmdatatagutils.js should only be updated or altered by employees of Coremetrics. Changes made to any or all of these files by individuals not working for Coremetrics will result in the entire implementation of Coremetrics Online Analytics, including library files; Coremetrics Tools; the Tag Bar; the data collection process; and reporting process via the Web interface, emails, exports, or Enterprise data bridge; to no longer be officially supported by Coremetrics. If during the course of investigating an issue, the Coremetrics Customer Support, Implementation, or Account Team discover that an unsupported library files is being used, Coremetrics reserves the right to stop all support until supported files have been deployed. eluminate.js The eluminate.js file is a standard library file that defines the core functionality of the Coremetrics tagging technology. This should be included on all pages that require Coremetrics tracking and must be the first of the Coremetrics files included. No changes should be made to this file by the client.

CONFIDENTIAL Page 9 CONFIDENTIAL Page 9

Implementation Guide
cmdatatagutils.js The cmdatatagutils.js file is a client specific library file that serves as a wrapper for the eluminate.js functionality. This library defines the function calls that you will actually make within the tagged pages. All tagging customizations will be made within this file. Your Implementation Engineer will work with you to customize this file as needed for the implementation. No changes should be made to this file without first consulting your IE. The cmdatatagutils.js file should be included after the eluminate.js file.

Coremetrics recommends placing the files in the following locations off of the web root: /coremetrics/cmdatatagutils.js /coremetrics/v40/eluminate.js

The examples in this document assume the files are in these suggested directories. If you decide to place the files in a different location, all references to these files in the code should point to the appropriate location.

4.2 Tagging your site


Coremetrics provides a set of data tags that you will use to collect data from your site. These tags are defined in the cmdatatagutils.js library file. 4.2.1 Tag Functions To collect data with Coremetrics, you must include the Coremetrics library files and call the appropriate tag functions. Each tag has a defined list of parameters that you will provide in the function call. These functions then create the tags based on both the data it automatically pulls from the browser and the list of parameters that you provided. A typical implementation of Coremetrics will use the following function calls to create tags: cmCreatePageviewTag() cmCreateProductviewTag() cmCreateShop5Tag() cmCreateShop9Tag() cmCreateOrderTag cmCreateRegistrationTag() cmCreateTechPropsTag() cmCreateErrorTag() cmCreatePageElementTag() cmCreateConversionEventTag()

In addition to this standard set of tags, your implementation may need custom tags to capture data not included in this tag set. Your IE will work with you to determine the need for these custom tags.

CONFIDENTIAL Page 10 CONFIDENTIAL Page 10

Implementation Guide
4.2.2 Tag Placement All Coremetrics related JavaScript code should be placed within the <body> tags of the page being tagged. Certain Coremetrics functionality may not work properly if the tags are placed within the <head> or anywhere outside of the <body> tags. Coremetrics also recommends placing the tagging function calls as close to the opening of the <body> tags as possible in order to minimize the chances of a visitor leaving the page before the tag can be sent.

4.3 Test vs. Production Environments


Coremetrics provides two environments for use test and production. The test environment, test.coremetrics.com, should be used while tags are in development, i.e. in your development or staging environments. The production environment, data.coremetrics.com, should be used once the tags are moved to the live production site. By default, all data is sent to the Coremetrics test environment. In order to send the data to the production environment, you must call the function cmSetProduction() after your library include and before any other tag functions are called. 4.3.1 Examples The following code creates a Page View tag that is pointed to the test environment:
<!-- BEGIN COREMETRICS SUPPORT --> <script language="javascript1.2" src="/coremetrics/v40/eluminate.js" type="text/javascript"> </script> <script language="javascript1.2" src="/coremetrics/cmdatatagutils.js" type="text/javascript"> </script> <script language="javascript1.2" type="text/javascript"> <!-cmCreatePageviewTag("FAQ Page 1", "FAQ", null, null); //--> </script> <!-- END COREMETRICS -->

The following code creates a Page View tag that is pointed to the production environment. Notice the call to cmSetProduction() below:
<!-- BEGIN COREMETRICS SUPPORT --> <script language="javascript1.2" src="/coremetrics/v40/eluminate.js" type="text/javascript"> </script> <script language="javascript1.2" src="/coremetrics/cmdatatagutils.js" type="text/javascript"> </script> <script language="javascript1.2" type="text/javascript"> <! cmSetProduction(); cmCreatePageviewTag("FAQ Page 1", "FAQ", null, null); //-->

CONFIDENTIAL Page 11 CONFIDENTIAL Page 11

Implementation Guide
</script> <!-- END COREMETRICS -->

Once cmSetProduction() has been called, all subsequent calls to tagging functions will send their data to production.

4.4 Data Tags


4.4.1 Page View Tag
Description

The Page View tag is used to capture clickstream data throughout the site. A Page View tag tells Coremetrics that someone has viewed the page indicated by the Page ID. The Page View tag also captures data related to onsite searches. On search results pages, the Search Term parameter of the Page View tag should be set to the value of the term on which that search was performed. The Search Results parameter should be set to the number of results returned by the search. The Page View tag may be used in conjunction with other Coremetrics tags; however, some other tags count as page views. The Product View, Technical Properties and Error tags contain an automatic call to the Page View function. No Page View tag is required on pages that include these tags. In fact, if a Page View tag is called on the same page as a Product View, Technical Properties or Error tag then the Page View statistics will be incorrect.
Tagging Function

In order to throw the Page View tag, you must make a call to cmCreatePageviewTag() with the appropriate parameters.
Parameters

Parameter Required Description Page ID (Page Name) Required Page name used to uniquely identify the given page in Coremetrics. This can be any alphanumeric string and should be set according to the agreed upon page naming conventions. See Section 4.5.1. Category ID for the leaf node to which this page belongs. This should match with a category ID sent in the CDF file. See Section
CONFIDENTIAL Page 12 CONFIDENTIAL Page 12

Category ID

Optional

Implementation Guide
Parameter Required Description 0. Search Term Optional Onsite search term used to get to the current page. This should only be populated on the first Search Results page. For all other pages, this value should be set to null. Number of results returned on the Search Results page. This should only be populated on the first Search Results page. For all other pages, this value should be set to null.

Search Results

Optional

Examples

The following is an example of creating a Page View tag with a Page ID of FAQ Page 1, no onsite search term, and a Category ID of FAQ.
<!-- BEGIN COREMETRICS SUPPORT --> <script language="javascript1.2" src="/coremetrics/v40/eluminate.js" type="text/javascript"> </script> <script language="javascript1.2" src="/coremetrics/cmdatatagutils.js" type="text/javascript"> </script> <script language="javascript1.2" type="text/javascript"> <!-cmCreatePageviewTag("FAQ Page 1", "FAQ", null, null); //--> </script> <!-- END COREMETRICS -->

The next example creates a Page View tag for a search results page where the search term jeans was used and 100 results were returned.
<!-- BEGIN COREMETRICS SUPPORT --> <script language="javascript1.2" src="/coremetrics/v40/eluminate.js" type="text/javascript"> </script> <script language="javascript1.2" src="/coremetrics/cmdatatagutils.js" type="text/javascript"> </script> <script language="javascript1.2" type="text/javascript"> <!-cmCreatePageviewTag("Search Results: Successful", "SEARCH", "jeans", "100"); //--> </script> <!-- END COREMETRICS -->

CONFIDENTIAL Page 13 CONFIDENTIAL Page 13

Implementation Guide
4.4.2 Product View Tag
Description

The Product View tag captures information about views of product detail pages. The Product View tag should be thrown on the lowest level detail page for products, which is typically the Product Details page. The Product View tag also functions as an implicit Page View tag. Only one Product View tag should be thrown on any given page, and no Page View tag is needed on pages with a Product View tag.
Tagging Function

In order to throw the Product View tag, you must make a call to the cmCreateProductviewTag() function with the appropriate parameters.
Parameters

Parameter Required Description Product ID Product Name Category ID Required Required Optional Product ID, see Section 4.5.2. Name of the product being viewed. Category ID for the leaf node to which this product belongs. This should match with a category ID sent in the CDF file. See Section 0.

Examples

The following is an example of code to create a Product View tag for a product with a Product ID of 12345, a Product Name of Product X, and a Category ID of CATXYZ:
<!-- BEGIN COREMETRICS SUPPORT --> <script language="javascript1.2" src="/coremetrics/v40/eluminate.js" type="text/javascript"> </script> <script language="javascript1.2" src="/coremetrics/cmdatatagutils.js" type="text/javascript"> </script> <script language="javascript1.2" type="text/javascript"> <!-cmCreateProductviewTag("12345", "Product X", "CATXYZ"); //--> </script> <!-- END COREMETRICS -->

CONFIDENTIAL Page 14 CONFIDENTIAL Page 14

Implementation Guide
4.4.3 Technical Properties Tag
Description

The Technical Properties tag gathers technical information about the visitors system. This includes browser type, operating system, monitor resolution and depth, and JavaScript version among other values. The Technical Properties tag is automatically executed on the first page of the visitors session. Therefore, there is no need to manually implement a call to the Technical Properties tag function. The automated technical properties feature is only available with eluminate.js version 4.1.2 or later. Prior library versions require manual execution of the Technical Properties tag and loading of a third library, techprops.js. o To manually call the Technical Properties tag, see your cmdatatagutils.js library file for the Technical Properties tag function definition and parameter list. Minor code modification may be required to your cmdatatagutils.js file if originally implemented prior to September 2007 You should contact Coremetrics Technical Support if you are unsure of which library version you are using. 4.4.4 Shop Action 5 Tag
Description

The Shop Action 5 tag captures data about what items were present in a customers shopping cart. Whenever the customer views the shopping cart, a Shop Action 5 tag should be thrown for each line item in the cart, identifying the product, quantity, and price of the items that are currently in the cart. In cases where a customer can add a product to the cart without actually being taken to the cart page, you will want to throw a Shop Action 5 tag for the item added to the cart on the landing page of the add to cart action.
Tagging Function

In order to throw the Shop Action 5 tag, you must make a call to cmCreateShopAction5Tag(). This call should be made for each item in the cart. In addition to these function calls, you must also make a call to the function cmDisplayShop5s(). This function works with the Shop Action 5 tag to perform some necessary client side aggregation. The cmCreateShopAction5Tag() call alone will not actually send the image request containing the tags. The image request will only be sent once the cmDisplayShop5s() function is called.
Parameters

CONFIDENTIAL Page 15 CONFIDENTIAL Page 15

Implementation Guide
Parameter Required Description Product ID Product Name Quantity Unit Price Required Required Required Required Product ID, see Section 4.5.2. Name of the product in the cart. Quantity of this product currently in the cart. Price of each unit of the product. This value should be a decimal number and should not include a dollar sign ($). Category ID for the leaf node to which this product belongs. This should match with a category ID sent in the CDF file. See Section 0.

Category ID

Optional

Examples The following example shows Shop Action 5 tags being sent for a couple of products on the Cart page:
<!-- BEGIN COREMETRICS SUPPORT --> <script language="javascript1.2" src="/coremetrics/v40/eluminate.js" type="text/javascript"> </script> <script language="javascript1.2" src="/coremetrics/cmdatatagutils.js" type="text/javascript"> </script> <script language="javascript1.2" type="text/javascript"> <! cmCreatePageviewTag("Cart", "CART", null, null); // A separate call to cmCreateShopAction5Tag should be made for each cart entry cmCreateShopAction5Tag("12345", "Product X", "2","5000.42","CATXYZ"); cmCreateShopAction5Tag("67890", "Product Y", "1", "10.95", "CATABC"); cmDisplayShop5s(); //--> </script> <!-- END COREMETRICS -->

4.4.5 Shop Action 9 Tag


Description

The Shop Action 9 tag captures data about what products were purchased by a customer. Like the Shop Action 5 tag, one tag should be sent for each item purchased. These tags should be sent on the page that marks the completion of an order.

CONFIDENTIAL Page 16 CONFIDENTIAL Page 16

Implementation Guide
Tagging Function

In order to throw the Shop Action 9 tags, a call to cmCreateShopAction9Tag() must be made for each item purchased. In addition, a call to cmDisplayShop9s() must be made after all calls to cmCreateShop9Tags() in order to actually send the image request.
Parameters

Parameter Required Description Product ID Product Name Quantity Unit Price Required Required Required Required Product ID, see Section 4.5.2. Name of the product in the cart. Quantity of this product purchased. Price of each unit of the product. This value should be a decimal number and should not include a dollar sign ($). Customer ID for the customer who purchased the product. This should match the Customer ID field in the accompanying Order Tag. See Section 4.5.3. Order ID for the order to which this line belongs. This should match the Order ID in the accompanying Order Tag. Subtotal for the order to which line item belongs. This should not include Shipping and Handling or Tax and should match the Order Subtotal on the accompanying Order Tag. Price of each unit of the product. This value should be a decimal number and should not include a dollar sign ($). Category ID for the leaf node to which this product belongs. This should match with a category ID sent in the CDF file. See Section 0.

Customer ID

Required

Order ID

Required

Order Subtotal

Required

Category ID

Optional

Examples The following example shows the use of the Shop Action 9 tag on the Order Thank You page.
<!-- BEGIN COREMETRICS SUPPORT --> <script language="javascript1.2" src="/coremetrics/v40/eluminate.js" type="text/javascript"> </script>

CONFIDENTIAL Page 17 CONFIDENTIAL Page 17

Implementation Guide
<script language="javascript1.2" src="/coremetrics/cmdatatagutils.js" type="text/javascript"> </script> <script language="javascript1.2" type="text/javascript"> <! cmCreatePageviewTag("Order Thank You", "CART", null, null); // A separate call to cmCreateShopAction9Tag should be made for each cart entry cmCreateShopAction9Tag("12345", "Product X", "2","5000.42", "cust123", "order123", "10011.79", "CATXYZ"); cmCreateShopAction9Tag("67890", "Product Y", "1", "10.95", "cust123", "order123", "10011.79", "CATABC"); cmDisplayShop9s(); cmCreateOrderTag("order123", "10011.79", "5.95", "cust123", "Austin", "TX", "78727"); //--> </script> <!-- END COREMETRICS -->

4.4.6 Order Tag


Description

The Order tag captures order header information such as customer ID, order ID, order subtotal, and shipping and handling. The Order tag should be thrown on the page that marks the completion of an order.
Tagging Functions

In order to throw an Order tag, you must make a call to cmCreateOrderTag(). This call must be made after all calls to cmCreateShop9Tag().
Parameters

Parameter Required Description Order ID Required Order ID for this order. This should match the Order ID sent in the Shop 9 tags for the line items in the order. Subtotal for this order. This should not include shipping and handling or tax and should match the Order Subtotal sent in the Shop 9 tags for the line items in the order. This value should be a decimal number and should not include a dollar sign ($). Shipping and Handling for this order. Customer ID for the customer who placed the order. This should match the

Order Subtotal

Required

Order Shipping Customer ID

Required Required

CONFIDENTIAL Page 18 CONFIDENTIAL Page 18

Implementation Guide
Parameter Required Description Customer ID sent in the Shop 9 tags for the line items in the order, as well as the Customer ID sent in the Registration Tag. See Section 4.5.3. Customer City Customer State Customer Zip
Examples

Optional Optional Optional

City of the Billing Address for this customer. State of the Billing Address for this customer. Zip Code of the Billing Address for this customer.

The following is an example of the Order tag being thrown on the Order Thank You Page:
<!-- BEGIN COREMETRICS SUPPORT --> <script language="javascript1.2" src="/coremetrics/v40/eluminate.js" type="text/javascript"> </script> <script language="javascript1.2" src="/coremetrics/cmdatatagutils.js" type="text/javascript"> </script> <script language="javascript1.2" type="text/javascript"> <! cmCreatePageviewTag("Order Thank You", "CART", null, null); // A separate call to cmCreateShopAction9Tag should be made for each cart entry cmCreateShopAction9Tag("12345", "Product X", "2","5000.42", "cust123", "order123", "10011.79", "CATXYZ"); cmCreateShopAction9Tag("67890", "Product Y", "1", "10.95", "cust123", "order123", "10011.79", "CATABC"); cmDisplayShop9s(); cmCreateOrderTag("order123", "10011.79", "5.95", "cust123", "Austin", "TX", "78727"); //--> </script> <!-- END COREMETRICS -->

4.4.7 Registration Tag


Description

The Registration tag allows Coremetrics to associate user profile information to the Coremetrics permanent cookie that is used to track a user across sessions. The Registration tag will capture information such as a customer ID, email address, city, state, zip, and other demographic information. This data can be used to segment on within the Coremetrics Segmentation reports. Up to 15 custom demographic parameters can be collected in the attribute parameter of the registration tag. This data is made available in Key Segments reporting. Additionally, fields
CONFIDENTIAL Page 19 CONFIDENTIAL Page 19

Implementation Guide
11-15 are available as Lifetime Visitor Experience Profile (LIVE Profile) demographics within the Segmentation Workbench report. All 15 fields are available in Coremetrics Explore. See Appendix 10.4.1 for examples of attribute data collection. The Registration tag should be sent wherever relevant information is available for capture. The Registration tag is typically included on the landing pages of the following actions: Order completion New account setup Account update Account login

Tagging Function

In order to throw a Registration tag, a call to cmCreateRegistrationTag() must be called with the appropriate parameters.
Parameters

Parameter Customer ID Customer Email Customer City Customer State Customer Zip Newsletter Name

Required Description Required Optional Optional Optional Optional Optional Customer ID for this customer. See Section 4.5.3. Email address for the customer. Customers City. Customers State. Customers Zip Code. Name of newsletter subscribed or unsubscribed to. This should only be populated if a Newsletter related activity has occurred. (NOTE: this parameter was deprecated on 5/29/2009, but may still be part of your registration tag definition)

CONFIDENTIAL Page 20 CONFIDENTIAL Page 20

Implementation Guide
Subscribed Optional Flag Y or N to indicate if the customer subscribed or unsubscribed to the Newsletter. This should only be populated if a Newsletter related activity has occurred and must be populated if Newsletter Name is populated. (NOTE: this parameter was deprecated on 5/29/2009, but may still be part of your registration tag definition) Up to 15 100-byte -_- delimited values representing demographic group information. See Appendix 10.4.1 for more details.

Attribute String

Optional

Examples

The following is an example of the Registration tag being thrown on the Account Created page.
<!-- BEGIN COREMETRICS SUPPORT --> <script language="javascript1.2" src="/coremetrics/v40/eluminate.js" type="text/javascript"> </script> <script language="javascript1.2" src="/coremetrics/cmdatatagutils.js" type="text/javascript"> </script> <script language="javascript1.2" type="text/javascript"> <! cmCreatePageviewTag("Account Created", "CART"); cmCreateRegistrationTag("cust123", "customer@mail.com", "Austin", "TX", "78727"); //--> </script> <!-- END COREMETRICS -->

Example collection of two hypothetical custom demographics through the attribute parameter string: a membership true/false boolean and indoor/outdoor preference value.
<!-- BEGIN COREMETRICS SUPPORT --> <script language="javascript1.2" src="/coremetrics/v40/eluminate.js" type="text/javascript"> </script> <script language="javascript1.2" src="/coremetrics/cmdatatagutils.js" type="text/javascript"> </script> <script language="javascript1.2" type="text/javascript"> <! cmCreatePageviewTag("Account Created", "CART"); cmCreateRegistrationTag("cust123","customer@mail.com","Austin","TX","78727","TRUE-_-OUTDOOR"); //--> </script>

CONFIDENTIAL Page 21 CONFIDENTIAL Page 21

Implementation Guide
<!-- END COREMETRICS -->

4.4.8 Error Tag


Description

The Error tag captures views of system error pages within your site. The Error tag should only be used for system error pages, such as 404 or 500 pages. The Error tag is not for user error pages (i.e. a visitor didnt fill in all required fields of a form). The Error tag should be thrown on all system error pages on the site. Please note: The Error tag contains the Page View tag functionality. You should not pass a Pageview tag on server error pages that will be passing the Error tag.
Tagging Function

In order to throw the Error tag, you must call cmCreateErrorTag() with the appropriate parameters.
Parameters

Parameter Required Description Page ID Required Page name used to uniquely identify the given page in Coremetrics. This can be any alphanumeric string and should be set according to the agreed upon page naming conventions. See Section 4.5.1. Category ID for the leaf node to which this page belongs. This should match with a category ID in the CDF. See Section 0.

Category ID

Optional

Examples

The following is an example of the Error tag being thrown on a 404 page:
<!-- BEGIN COREMETRICS SUPPORT --> <script language="javascript1.2" src="/coremetrics/v40/eluminate.js" type="text/javascript"> </script> <script language="javascript1.2" src="/coremetrics/cmdatatagutils.js" type="text/javascript"> </script> <script language="javascript1.2" type="text/javascript"> <! cmCreateErrorTag("404 Error", "ERROR"); //--> </script> <!-- END COREMETRICS -->

CONFIDENTIAL Page 22 CONFIDENTIAL Page 22

Implementation Guide
4.4.9 Element Tag
Description

The Element tag is used to track intra-page content in Coremetrics Online Analytics. Data collected by the Element tag is used to populate values in the Element Categories and Top Viewed Elements reports. The Element tag and its associated reports provide organizations with great flexibility to track a myriad of intra-page elements and how these elements drive objective attainment. Below are some examples of elements that could be tracked using the Element tag:
Examples of Elements to Track:
Portlets o Search portlets o News portlets Video Plays o Play o Stop o Rewind AJAX Detail Hovers o Product detail hover-overs o Customer review hover-overs Dynamic Page Content Filters o Price slider bars o Brand filter checkboxes o Feature selectors

Tagging Function

In order to throw the Element tag, you must make a call to cmCreatePageElementTag () with the appropriate parameters.
Parameters

Parameter Required Description Element ID Required The unique identifier or name for the Element and the value that will be displayed in the Elements report. Element names (IDs) must be less than 50 characters in length. The category passed in the Element tag is used to populate the Element Categories report. Only one hierarchical level of categorization is currently supported and not related in any way to the clients Category Definition File (CDF) specification.

Element Category

Optional

Examples

The following is an example of creating an Element tag with an Element ID of Vacation Planner with an Element Category ID of Vacation Tools.
<!-- BEGIN COREMETRICS SUPPORT --> <script language="javascript1.2" src="/coremetrics/v40/eluminate.js"

CONFIDENTIAL Page 23 CONFIDENTIAL Page 23

Implementation Guide
type="text/javascript"> </script> <script language="javascript1.2" src="/coremetrics/cmdatatagutils.js" type="text/javascript"> </script> <script language="javascript1.2" type="text/javascript"> <!-cmCreatePageElementTag("Vacation Planner", "Vacation Tools"); //--> </script> <!-- END COREMETRICS -->

4.4.10
Description

Conversion Event Tag

The Conversion Event tag is employed for tracking of non-commerce conversion events. The Conversion Event tag is used to populate values in the Conversion Events Reports and to create Key Segments. This tag and the reports it populates will allow analysis of a wide variety of site activities. Below are some examples of events that could be tracked via the Conversion Event Tag:
Examples of Conversion Events:
Increase Site Stickiness o Play online game o View account info o Use online calculator o Use trip planner o Use comparison tool Improve retention marketing o Register for specific newsletter o Sign up for Webinar o Add items to wish list o Set email alerts Improve Self Service o Sign up for bridal registry o Download help documents o Download form o Download marketing info Multichannel behavior o Use store locator o Visit contact us page o Initiate chat session o Register for callback

Tagging Function

In order to throw the Conversion Event tag, you must make a call to cmCreateConversionEventTag ().

Parameters

Parameter Required Description

CONFIDENTIAL Page 24 CONFIDENTIAL Page 24

Implementation Guide
Parameter Required Description Event ID Required A unique identifier for the type of conversion, such as Account Creation or Special Registration. The value that is passed in the tag is the value that will be displayed in the Coremetrics reports. A value of 1 or 2 depending upon whether a conversion initiation or a successful conversion completion is generated. A value of 1 should be used when an event is initiated. A value of 2 should be used when an event is successfully completed. Single-Step conversions should be represented by a value of 2. Allows grouping of event IDs into categories. The value that is passed in the tag is the value that will be displayed in Coremetrics reports. The Event Category ID is self-contained and not related to the Category Definition File contents (CDF). A point value used in establishing an arbitrary value for a conversion. The point value allows relative weighting of and Events initiation and completion. For example, a visitor initiating a low value event might be work 5 points, whereas a visitor completing a high value event might be worth 50 points.

Action Type

Required

Event Category ID

Optional

Points

Optional

Examples

The following example shows the Conversion Event Tag used to track a Support Information Email Registration page.
Support Information Email Registration Page 1 Conversion Event Tag with Event ID = Support Information, Action Type = 1, Event Category ID = Email Programs, Points = 10 Page 2 no Conversion Event Tag Page 3 Conversion Event Tag with Event ID = Support Information, Action Type = 2, Event Category ID = Email Programs, Points = 20 Code:
<!-- BEGIN COREMETRICS SUPPORT -->

CONFIDENTIAL Page 25 CONFIDENTIAL Page 25

Implementation Guide
<script language="javascript1.2" src="/coremetrics/v40/eluminate.js" type="text/javascript"> </script> <script language="javascript1.2" src="/coremetrics/cmdatatagutils.js" type="text/javascript"> </script> <script language="javascript1.2" type="text/javascript"> <!

--- PAGE 1 ---<script language="javaScript1.2"> cmCreateConversionEventTag ("Support Information","1","Email Programs","10"); </script>

... --- PAGE 2 ---(No conversion event tag sent single Pageview tag)

... --- PAGE 3 ---<script language="javaScript1.2"> cmCreateConversionEventTag ("Support Information","2","Email Programs","20"); </script>

...
//--> </script> <!-- END COREMETRICS -->

4.5 Tagging Conventions


This section outlines a set of conventions needed to ensure that the values passed through the tags described in the previous section are consistent. Your IE will lead you through discussions of these conventions during your kickoff meeting. Decisions related to these conventions will be documented in the Integration Plan. 4.5.1 Page ID Conventions In order to ensure consistent, readable, and maintainable page-related reports and tagging, you will need to decide upon a set of conventions related to the naming of pages within the site. Coremetrics uniquely identifies pages within your site based on their Page ID. This Page ID is passed to Coremetrics as a parameter in the Page View, Technical Properties, Product View1, and Error tags. Pages that share the same Page ID will be seen as the same page from Coremetrics viewpoint. A Page ID can be any alphanumeric string that can be built and passed into the corresponding tag function. To avoid having to statically assign a Page ID to every page in the site, you should develop page naming conventions that will allow you to generate Page IDs for every page based on a set of rules and available information.

Coremetrics product view tag logic will build a Page ID automatically, based on code in the cmdatatagutils.js file using the convention described here. CONFIDENTIAL Page 26 CONFIDENTIAL Page 26

Implementation Guide
The basic page naming convention that Coremetrics recommends clients use when applicable bases the Page ID off of the page URL. Rather than using the entire URL, which could be long and difficult to read, the path and filename should be used. For example, this page naming convention would map the following Page ID from the given URL: Page URL: Page ID: http://www.client.com/x/y/z/thepage.html?param=1 X/Y/Z/THEPAGE.HTML

However, this URL-based page naming convention does not work well in all situations. For example, the URL-based naming convention typically does not generate desirable Page IDs for dynamically generated template pages. If you have a template products.asp that is used to display all product details pages, rather than naming the page "products.asp", you should instead name it based off the specific product being displayed to the user. In this specific example, Coremetrics suggests a convention of PRODUCT: <product_name> (<product_id>), where <product_name> and <product_id> would be replaced with the appropriate values. Prior to the start of tagging, you should examine your site to determine which types of pages will need naming conventions other than the URL-based convention. For those pages, you should lay out rules similar to the product page rule described above. Your IE will help you through the process of defining these page naming conventions during the kickoff. Page Type Product View Pages Category Pages Successful Search Results Page Unsuccessful Search Results Page Convention Product: <product_name> (<product_id>)1 Cat: <category_name> Search Results: Successful pg <page_num> Search Results: Unsuccessful

4.5.2 Product ID Conventions Coremetrics captures Product level data through the Product View, Shop Action 5, and Shop Action 9 tags. This data allows you to see when items are viewed, added to cart, and purchased. Because Coremetrics allows flexibility in determining what constitutes a product in the Coremetrics reporting system, you must determine at what level of detail products should be tracked. Coremetrics uniquely identifies a product based on the value passed as the Product ID. The Product ID can be any alphanumeric string that uniquely identifies a product. Before doing any product related tagging, you must determine what should be considered a product. Should a product be a particular SKU, or should it be a style or family of SKUs? While using the SKU as
CONFIDENTIAL Page 27 CONFIDENTIAL Page 27

Implementation Guide
the Product ID may seem like the most obvious choice for the Product ID, often using a family or style instead is preferable. For example, a clothing retailer with a SKU for every size and color of a particular shirt may not want to use the SKU as their Product ID because they will end up with unmanageable numbers of products in their reporting. Rather than report at such a granular level, the retailer would instead want to track at the shirts style level, so that all sizes and colors of a particular style of shirt would be tracked as the same item. In this case, the retailer might choose to use the Style ID as the Product ID value instead of the SKU. The best gauge for what level the product should be tracked is to look at which level the Product Details page exists. In cases where the Product Details page lives at the family or style level, that ID should be used. If the Product Details page lives at the SKU level, meaning there is a separate page for each SKU, the SKU probably makes the most sense as the Product ID. The value that you decide upon for your Product ID must be available whenever the Product View, Shop Action 5, and Shop Action 9 tags are thrown. The same Product ID should be used in all tags for a given product. 4.5.3 Registration Conventions The Registration tag allows you to associate a visitors demographic information with their Coremetrics cookie ID. Coremetrics identifies a visitor using the Customer ID provided in the Registration tag. The Customer ID can be used to link activity from one visitor across multiple computers. Before tagging the site with the Registration tag, you must determine what value to use as the Customer ID. The Customer ID can be any alphanumeric string that is relatively long-lived and consistent for a given user from visit to visit. It must be a value that is available whenever the Registration tag needs to be called (most likely when an order is completed, a new account is set up, or existing account information is updated). Possible options include an internal customer ID or the visitors email address.

4.6 Server-side include files and flags


As a best practice, all Coremetrics-related code should be modularized so that it is easy to maintain and deactivate if necessary. In order to do this, Coremetrics recommends creating a single Coremetrics server-side include file that can be used on all dynamic pages within your site. This include file will contain logic to determine what type of page is being rendered, and based on that type, write the appropriate Coremetrics JavaScript code into the page. The include file should also have a flag that will allow you to switch off the Coremetrics JavaScript code from rendering, in case you ever need to turn off the Coremetrics code for any reason, as well as an automated way of determining whether to point the tags to the Coremetrics test or production servers. The Coremetrics include file should be included in a global header, global footer, or other global include file used in the site. This will enable the code to be immediately propagated to
CONFIDENTIAL Page 28 CONFIDENTIAL Page 28

Implementation Guide
all pages that make use of this include. Having access to these global includes will allow you to avoid having to touch a large number of pages in the implementation process. 4.6.1 Main Case Statement A Case statement may be used in your logic to determine what type of page is being rendered and write the appropriate Coremetrics JavaScript code. The case statement should have a number of checks for each type of page that will need tags other than the default Page View tag. Each of these checks would then render in the appropriate tagging functions needed on that page type. The default case for pages that dont fall into any special cases would be to throw a Page View tag with the default naming convention. The following is an example of a case statement in pseudocode:
if (pageType is product details page) { render cmCreateProductViewTag() with appropriate parameters } else if (pageType is shopping cart page) { render cmCreatePageviewTag(), cmCreateShop5Tag(), and cmDisplayShop5s() with appropriate parameters } else if (pageType is order confirmation page) { render cmCreatPageviewTag(), cmCreateShop9Tag(), cmCreateOrderTag(), cmDisplayShop9s(), cmCreateRegistrationTag() with appropriate parameters } else ... ...Do other page type checks here... } else { default case, render cmCreatePageviewTag() with default naming convention }

4.6.2 On/Off Flag In case you ever need to turn off the Coremetrics tracking on your site, you should implement an on/off server-side flag that will allow you to specify whether or not to render the Coremetrics code into the site. All Coremetrics code should be wrapped in a case statement that checks if this flag is true before executing. Expanding on the case statement example, the following shows the implementation of an on/off flag in pseudocode:
if(coremetricsOnFlag) {

if (pageType is product details page) { render cmCreateProductViewTag() with appropriate parameters } else if (pageType is shopping cart page) { render cmCreatePageviewTag(), cmCreateShop5Tag(), and cmDisplayShop5s() with appropriate parameters } else if (pageType is order confirmation page) {

render cmCreatPageviewTag(), cmCreateShop9Tag(), cmCreateOrderTag(), cmDisplayShop9s(), cmCreateRegistrationTag() with appropriate parameters


} else ... ...Do other page type checks here... } else { default case, render cmCreatePageviewTag() with default naming convention } }

CONFIDENTIAL Page 29 CONFIDENTIAL Page 29

Implementation Guide
4.6.3 Test/Production Flag If you are using the same code base in both your development and production environments, it is best practice to implement a condition that determines which server (development, staging, or production) the code is rendering and call cmSetProduction() when appropriate. For example, create a server-side flag to indicate if the code is on the development, staging, or production server. If you can not create the server-side flag, a client-side flag can be implemented in JavaScript to call cmSetProduction() based on the domain. However, using the URL is a much less dependable method of determining test vs. production. You must maintain the URL-based rules to encompass all possible URLs in the Production environment. The following is an example of the test/production flag check based on the earlier examples of the include file code:
if(coremetricsOnFlag) { if(productionServerFlag) { render cmSetProduction() call } if (pageType is product details page) { render cmCreateProductViewTag() with appropriate parameters } else if (pageType is shopping cart page) { render cmCreatePageviewTag(), cmCreateShop5Tag(), and cmDisplayShop5s() with appropriate parameters } else if (pageType is order confirmation page) { render cmCreatPageviewTag(), cmCreateShop9Tag(), cmCreateOrderTag(), cmDisplayShop9s(), cmCreateRegistrationTag() with appropriate parameters } else ... ...Do other page type checks here... } else { default case, render cmCreatePageviewTag() with default naming convention } }

4.7 Tagging Framed Pages


Framed pages may require the inclusion of an additional Coremetrics library file within the parent frameset. This file, cmframeset.js, contains code that will properly set the referring URL and pass on important query string parameters from the parent frameset to the first Page View of its children. 4.7.1 Referral URL The Coremetrics tagging uses the referral URL that the browser provides. With framed pages, browsers consider the parent frameset to be the referral URL for all child pages within a frameset rather than the last page viewed. The cmframeset.js file contains code to properly set the referral URL within framed pages to be the URL of the last page viewed. 4.7.2 Quer y String Parameters Certain query string parameters for parent framesets need to be captured within Coremetrics Page View tags. These query string parameters never get passed on to Coremetrics because
CONFIDENTIAL Page 30 CONFIDENTIAL Page 30

Implementation Guide
the parent frameset is not tagged. In order to capture these parameters, they must be passed into the first Page View tag sent by any of its children. Marketing Management Center (MMC) parameters are a good example (see Section 0). External campaigns that point to a framed page will need to contain MMC parameters within their query string in order to attribute clickthroughs and activity to the campaign. These parameters must be captured by the first Page View in the visitors session. Because the parent frameset contains the MMC parameters in its destination URL but does not send a tag, the MMC parameters must be passed on to one of the child frames that do throw a tag. The cmframeset.js file contains code to parse out the MMC parameters and attach them to the URL of the first Page View tag thrown by its children. This enables correct MMC tracking. Other query string parameters can be passed on to the children Page Views in the same manner. A simple change must be made to the cmframeset.js file. Please consult your Implementation Engineer to make this change if necessary. 4.7.3 Examples The following is an example of a frameset that includes the cmframeset.js file.
<html> <script language="javascript1.2" src="cmframeset.js"></script> <frameset cols="50%,50%"> <frame src="body.html" name="body"> <frameset rows="100,*"> <frame src="nav.html" name="nav"> <frame src="footer.html" name="footer"> </frameset> </frameset> </html>

5 Categorization
Coremetrics allows you group your site content and/or merchandise into categories for reporting. These categories are managed through a combination of the Category IDs in the tag functions and the Category Definition File, an offline file upload. There are two types of categorization within Coremetrics: merchandising categorization and content categorization. Merchandising categorization is captured in the Product View, Shop Action 5, and Shop Action 9 tags and display within the Merchandising report. Content categorization is captured in the Page View, Technical Properties, and Error tags and display within the Category Analysis report.

5.1 Category IDs


Category IDs are captured in the Page View, Product View, Shop Action 5, Shop Action 9, Technical Properties, and Error tags. The Category ID assigns that particular page or product related action to a particular category. The Category ID only specifies the immediate leaf category that the action belongs to and does not contain within it any sense of a larger

CONFIDENTIAL Page 31 CONFIDENTIAL Page 31

Implementation Guide
hierarchy. The Category ID for a given product should be consistent across the Product View, Shop Action 5, and Shop Action 9 tags.

5.2 Category Definition File


The Category Definition File (CDF) is used to map the Category IDs sent in the tags to a category hierarchy to be displayed in the reports. The CDF is a comma separated values file and contains four columns: (1) the Coremetrics client ID; (2) Category ID; (3) Category Name; and (4) Parent Category ID. Every Category ID sent through the tags should have a corresponding line within the CDF that defines its Category Display Name and Parent Category ID. Every Parent Category ID should also have a line in the CDF file that will map it to its Display Name and Parent Category ID. For top-level categories, the Parent Category ID will be left empty. Coremetrics can then recreate the appropriate category hierarchy tree by following the Parent Category ID references up to the top-level categories. The CDF allows you to arbitrarily change the category hierarchy without having to touch the tagging. By simply generating a new CDF, you can specify completely different roll ups or groupings of categories for the reporting. This will allow you to make modifications and updates to your category reporting in a relatively easy fashion. The CDF should be uploaded to the Coremetrics ftp server (ftp.coremetrics.com) whenever it needs to be updated. An automated process on that server will pick up the file, process it, and update the database. Changes from an uploaded file should be reflected in the next processing of the daily reports. The frequency at which the CDF is uploaded can be determined based on your own needs. For clients whose hierarchies may change on a daily or weekly basis, Coremetrics recommends setting up an automated script that will generate the CDF and upload it daily. This will ensure that Coremetrics picks up any changes in the hierarchy on a daily basis. For more details about the creation and formatting of the Category Definition File, see Appendix 10.1.

5.3 Merchandising Report Categorization Inheritance


In order to simplify implementation of Merchandising tag categorization, Coremetrics features server-side Category ID inheritance processing. These rules are applied during processing of daily report data. This processing will cause uncategorized Shop Action 5 and Shop Action 9 tags to be categorized according to other categorized Product View tags or Shop Action tags collected for the same Product within the same data collection session. 5.3.1 Categor y Inheritance Rules Inheritance of Categorization at time of report processing follows these rules:

CONFIDENTIAL Page 32 CONFIDENTIAL Page 32

Implementation Guide
1. Product View tags do not inherit categorization from other tags including other categorized Product View tags in the same session. The Product View tag should always be collected with a valid Category ID parameter. 2. Shop Action 5 tags collected without a Category ID will inherit the Category ID from another same-session Shop Action 5 tag having the same Product ID. If no matching Shop Action 5 tag with a categoryID is found in the session, inheritance will devolve upon a matching Product View tag with a non-null Category ID. 3. Shop Action 9 tags collected without a Category ID will inherit the categoryID from another same-session Shop Action 9 tag having the same Product ID. If no Shop Action 9 tag with a Category ID is found in the session for that Product ID, inheritance will devolve upon the Shop Action 5 tag or Product View tag, in this order: 1) a matching Shop Action 5 with a non-null categoryID or 2) a matching Product View tag with a non-null Category ID. 5.3.2 Exceptions In certain special cases Coremetrics categorization inheritance processing may not be able to achieve 100% complete categorization in Merchandising Report. 1. Persistent Carts: visitors viewing a saved cart in a new session, and/or completing a purchase may not view product detail pages, resulting in lack of a categorized Product View tag for the Shop Action tags to inherit categorization from. In this case, a valid Category ID parameter value should be included with the Shop Action 5 tags sent when the persisted cart is retrieved and viewed. Shop Action 9 tags will inherit categorization from the Shop Action 5 tags and need not be categorized. 2. Direct add-to-cart Site Functionality: This site functionality typically allows visitors to bypass the product detail page and associated Product View tag data collection by adding items directly to the cart from product category display pages. If no Category ID value is sent with a Shop Action 5 tag, this tag and any subsequent Shop Action 9 tags for this Product ID will be uncategorized in reporting due to the probable lack of a categorized Product View tag in the session. In this case, a valid Category ID parameter value should be included with the individual Shop Action 5 tag sent when the add-to-bag event occurs.

6 Link Tracking
Coremetrics can track the performance of both offsite marketing campaigns and onsite links through the use of URL query string parameters. Specific query string parameters are used to indicate the type of link that is being tracked.

CONFIDENTIAL Page 33 CONFIDENTIAL Page 33

Implementation Guide
Typically, the link tracking described in this section is handled post-implementation. This information is included here so that you can start planning for how to add the appropriate URL parameters into links that you want to track. The Coremetrics Account Team is available to provide guidance on these subjects in more detail during your training and other postimplementation activities.

6.1 External Marketing Campaigns


External marketing campaigns, such as paid search and promotional emails, are tracked by the Marketing Management Center (MMC) parameter and populate the Marketing Programs report. By appending a MMC parameter to the query string of the links you want to track, the system will automatically identify and attribute the activity of that visitor to the appropriate link. The MMC parameter must be in the destination URL of the first Coremetrics tagged page that the visitor lands on in order to be tracked. No special JavaScript tagging is needed on the page; however, the Coremetrics libraries and a Page View tag must be present on the page. Please see the Coremetrics Link Generator for information on the use and format of the URL parameter. Your Implementation Engineer can provide this tool if you do not have it.

6.2 Onsite Links


Tracking onsite links through Coremetrics can be done using the Real Estate or Site Promotions reports. The type of link that you want to track will dictate which report to use. Both require using URL parameters similar to the MMC parameter. The Real Estate Analysis report is used for A/B testing or to track the performance of similar links within the same page. Real Estate allows you to see how certain areas of a given page perform with relation to each other. Links are tracked by adding a cm_re parameter to the URL query string. The Site Promotions report can be used to track the performance of a link across multiple pages. This can be useful if you want to track promotions that you have running on your site across multiple pages. Links are tracked by adding a cm_sp parameter to the URL query string. Automatic Impression Tag Server Call Charges: Real Estate and Site Promotions will capture impressions as well as clickthroughs. Every 10 impressions captured will count as one server call. For example, if you have 100 links on your homepage that contain Site Promotions/Real Estate parameters and this page is viewed 500,000 times then this will result in an additional 5 million server calls. Please see the Coremetrics Link Generator for more information on the specific URL parameters required for Real Estate and Site Promotions analysis. Your Implementation Engineer or Account Analyst can provide this tool if you do not have it.

CONFIDENTIAL Page 34 CONFIDENTIAL Page 34

Implementation Guide 7 Testing Tools


This section describes the test tools available to help in the coding and debugging of a Coremetrics implementation. There are three main tools that can be used during the development processthe Coremetrics TagBar, the Implementation Test Tool (ITT), and Coremetrics Test Reports.

7.1 Coremetrics TagBar


7.1.1 Description The Coremetrics TagBar is an Internet Explorer plug-in that allows you to view all the tags being sent to Coremetrics from a Coremetrics tagged page. The TagBar should be used to ensure that the tags on a page are sending the appropriate values in the appropriate fields. Any tags not showing up in the TagBar could indicate a problem with the code or a JavaScript error that is preventing the tag from being rendered. 7.1.2 Where to find it The TagBar can be downloaded from https://support.coremetrics.com using your assigned production report logon credentials. TagBar can also be installed as part of the Coremetrics Tools plugin downloadable directly from the Content Analysis tab / LIVEview section of http://welcome.coremetrics.com production reporting. Please contact your assigned Implementation Engineer, Customer Support, or your internal Coremetrics report administrator to obtain production report logon credentials. 7.1.3 How to use it Once installed, the TagBar can be activated by clicking on the Coremetrics icon in the Internet Explorer toolbar. This will open the TagBar in the lower portion of the browser. Within the TagBar frame, all Coremetrics tags on the current page will be shown, including all the values set within the tag. The TagBar indicates whether those tags are pointed to the test environment (test.coremetrics.com) or the production environment (data.coremetrics.com) in parenthesis next to the name of the tag. The Action menu in the upper left corner provides a list of actions that can be taken with the TagBar. Refresh Tag Display updates the tags displayed in the TagBar. Copy Selected Text copies any text that is selected within the TagBar to the clipboard. Show/Copy Page ID displays the Page ID for the current page and copies the value to the clipboard. Open Tag Monitor opens a new window to display the Tag Monitor, which records all tags sent to Coremetrics in a list form, separated by lines to indicate tags sent from the same page.

CONFIDENTIAL Page 35 CONFIDENTIAL Page 35

Implementation Guide
7.2 Implementation Test Tool (ITT)
7.2.1 Description The Implementation Test Tool is a web-based interface that allows you to see what data has reached the test.coremetrics.com environment. All tags send data to test.coremetrics.com by default, unless the function cmSetProduction() is called before the tag functions are called. During development of Coremetrics tags, ITT should be used periodically to verify that the data sent in the tags is reaching the Coremetrics test environment in the appropriate format. Data received through tags will usually show up in ITT within minutes of being sent. Only data for the current day will be available, as the data gets rolled off at the end of each day. 7.2.2 Where to find it ITT can be accessed at http://itt.coremetrics.com. You will be asked to provide a user name and password to access the site. Please see your Implementation Engineer for the login credentials. 7.2.3 How to use it ITT requires you to fill in certain information and choose which set of data you would like to access. The fields that must be entered are: Client ID the client specific ID assigned by Coremetrics for the particular site Cookie ID o My Cookie will only show activity associated with the computer currently accessing ITT. o All Cookies will show data for all activity. o Other Cookie will show data for the specific cookie ID entered in the field. Date range the date/time of the data to be accessed. If left blank this will retrieve all data available. Note: Only data for the current day is available, since the data gets rolled off every day. Data Type specifies the type of data the user is interested in seeing from ITT. Most of these types correspond with specific Coremetrics tags. Please direct any questions you may have about these input values to your Implementation Engineer.

7.3 Coremetrics Test Reports


7.3.1 Description At the clients request, Coremetrics can activate Coremetrics test reports. This subset of production reports can help clients gauge how their data will look once they go live. Some reports, such as set-up reports, will not be active in the test reports, and all configurations will be set to their defaults.

CONFIDENTIAL Page 36 CONFIDENTIAL Page 36

Implementation Guide
7.3.2 Where to find them Coremetrics test reports can be accessed at http://testwelcome.coremetrics.com. Please contact your Implementation Engineer in order to get access to these reports. 7.3.3 How to use them In order to access the test reports, you must enter the Coremetrics assigned client ID, a username, and password (with which your Implementation Engineer will provide you). Once logged in, you will be taken to the reporting interface. The reports that are most useful during development are Topline Summary, Merchandising, Top Pages, and Category Analysis. In order for the Merchandising and Category Analysis reports to map the category IDs to a hierarchy, a Category Definition File (CDF) must be provided. Your Implementation Engineer can help you upload this CDF to the test reports.

8 First Party Data Collection Delegated and Client Managed


Two forms of first party data collection are available: Delegated and Client Managed. Your Coremetrics Sales or Account representative and Implementation Engineer will have information regarding which solution was specified for your implementation. Implementation of Delegated first party data collection involves a certain amount of administrative overhead and recurring costs and maintenance for both Coremetrics and your network team. Client Managed first party requires minimal setup effort and has no recurring cost or administrative overhead. It is possible that little or no work will be required on the part of your team when implementing Client Managed first party data collection. However, due to certain constraints and requirements for use of Client Managed 1st party, this solution will not always be applicable for your specific implementation. Please contact Coremetrics Support or your Account Team for more information. The remainder of this section describes the Delegated first party setup in detail. Delegated First-party data collection is enabled by configuring Coremetrics data-collection infrastructure as a sub-domain derived from the Clients own home domain. This sub-domain will reference Coremetrics Global Load Balancers (GLBs) while being identified via secure certification (Verisign SSL) as a Client-controlled resource. Users browsing the Clients web pages will be served a first-party cookie on the Clients behalf by Coremetrics. User browsing information is captured via JavaScript driven browser-requests to the data-collection subdomain and is associated with the profile via the unique ID stored on the cookie. The Client requirements for deployment are fundamentally similar to Coremetrics third-party solution. No additional hardware or software is required. In brief, the principal Client tasks include: (1) choosing a desired sub-domain name for data-collection, (2) obtaining SSL-based certificates (if necessary), (3) configuring DNS server(s) to point to Coremetrics; and (4)

CONFIDENTIAL Page 37 CONFIDENTIAL Page 37

Implementation Guide
deploying active first-party libraries and data-tags on web-pages or updating Coremetrics tag libraries.

8.1 Delegated 1st Party Deployment Process 8.1.1


a. b. c. d. Initial Planning Walk-through of proposed DNS architecture Discussion of domain name selection for the data-collection server SSL Certificate procurement and maintenance issues Privacy Policy content, Opt-Out functionality and placement

8.1.2

Determine Sub-Domain Name for Data-Collection The Client will supply Coremetrics with a sub-domain name of their choice. The name need not comply with a particular schema, but Coremetrics recommends that the name is consistent with the web-names that the Client already uses. The Clients Implementation Engineer can advise on names that are most inconspicuous. Examples for a theoretical Clients domain: o www.CLIENTDOMAIN.com o www3.CLIENTDOMAIN.com o server2.CLIENTDOMAIN.com o newton.CLIENTDOMAIN.com

8.1.3

Obtain Secure Sockets La yer (SSL) Certificates SSL-certificates must be obtained for each domain. Certificates are then installed on Server Load Balancers at each of the redundant Coremetrics datacenters. Coremetrics performs certificate acquisition on behalf of the Client to ensure rapid deployment, uninterrupted service and end-to-end support. Note that when possible, additional licenses are used in lieu of certificates to unify management. 8.1.3.1 Required Information for Verisign Certificates: A Certificate Signing Request (CSR) is exchanged with Coremetrics for all SSL certificates and then submitted to the Certifying Authority (CA). To ensure expediency and avoid rejections, it is critical that the Client gather complete and accurate CSR information before exchange with Coremetrics. CSRs contain fundamental Client information including: Corporate Technical Contact Information (Name, Phone, Title, Address, Email, FAX) Location Information (Address, Country, etc) Organizational Information (Company, Department, etc) SSL Domain & IP address Web Administration information (Contact Names, numbers, login, etc) The Coremetrics Implementation Engineer will answer questions and assist throughout this process.

CONFIDENTIAL Page 38 CONFIDENTIAL Page 38

Implementation Guide
8.1.4 Configure Client-side Name Server The Clients IT department or the Clients ISP must configure their Domain Name Server(s) (DNS) with an NS record to properly refer to the Coremetrics GLBs. This process is not dependent on the presence of the SSL certificates and can be done separately while obtaining them. While unusual, it is possible that a small, one-time fee will be assessed by an ISP to enact this DNS configuration. It is important that proper record format be used when configuring the Clients DNS. The Coremetrics IE will advise the Client on record specification and format. 8.1.5 Privac y Polic y Updates & Implementing Opt-Out Coremetrics always recommends that clients follow industry best practices and obtain all necessary consents from visitors to the clients web site. In addition, Coremetrics strongly suggests that clients update privacy policy pages to (1) advise visitors of the clients data collection and use practices, (2) notify that cookies are being placed on the users computer with an explanation of the purpose and utilization of these cookies, and (3) provide an integrated opt-out functionality to accommodate users who choose not to have their browsing data collected. Please see section 9 for further information on Privacy Considerations 8.1.6 Solution Rollout The final configuration required for first party data collection is to define the data collection domain (cm_HOST) within the cmdatatagutils.js library file. The data collection domain should be clientsubdomain.clientdomain.com rather than data.coremetrics.com.

9 Privacy Considerations
Coremetrics highly recommends that clients update their privacy policy to notify visitors of tracking and, for Delegated 1st Party Implementations, offer an opportunity for the visitor to opt out of the data capture.

9.1 Privacy Suggestions


Coremetrics advises clients to maintain compliance with the core FTC standards for fair information practices: i) Notice; (ii) Choice; (iii) Access, and (iv) Security. This includes providing notice in privacy statements that indicates what data is being collected and how the data is being analyzed, including situations such as described above, where data is integrated from multiple sources. Coremetrics strongly advises Clients to offer their customers choice; that is, the ability for Web visitors to opt-out of having their behavior collected, either by a partial opt-out (to have the visitor behavior data analyzed anonymously) or with a total opt-out (to not collect any visitor experience data). In cases where policies provide statements about choice, Coremetrics will require Clients using First-party data collection to provide their visitors these privacy services either through an opt-out function, or by providing instructions to visitors on configuring their browsers appropriately. Coremetrics is the only analytics company to provide Clients the ability to deploy a robust, integrated opt-out function free from maintenance

CONFIDENTIAL Page 39 CONFIDENTIAL Page 39

Implementation Guide
overhead. This ensures Client compliance with FTC regulations, and avoids troubling visitors with the inconvenience of deciphering complex instructions. Deploying an opt-out on the Clients Web site also demonstrates to visitors an expected level of respect and proves that the Client is committed to online privacy. It is important to note that other forms of Web traffic analysis, such as log file-based solutions, cannot offer a full range of choice for a Web site visitor. Since all Web traffic is automatically collected in a log file, Web behavior data is recorded for all visitors. Without an internallyarchitected custom mechanism for opting out of Web site tracking, or sophisticated filters on data acquisition streams, companies that choose log-file based analytics will not be compliant with the notice and choice guidelines recommended by the FTC. Furthermore, these solutions need to be internally architected so that the visitor identification cookies are P3P compliant, resulting in higher costs and additional internal expertise to support. In summary, by choosing the Coremetrics solution for online analytics, clients are also choosing to adhere to industry best practices for privacy. Coremetrics and its data collection comply with FTC guidelines for notice and choice and all data capture is fully P3P compliant. In addition to product development cycles to meet new standards, Coremetrics has a Chief Privacy Officer on staff, ensuring that the Coremetrics data collection technology conforms with the most current generally accepted Internet privacy standards and any regulatory framework which may be put in place.

9.2 Implementing Opt-Out with Coremetrics First Party Data Collection Solution
The Coremetrics first-party data collection solution enables Coremetrics clients to add opt-out functionality directly within their privacy policy or other appropriate webpage. Clients adding this capability enable site visitors to directly control their choice of participation in data collection, while removing the burden of basic user-privacy administration. Additionally, giving visitors the ability to execute choice while reviewing data collection and privacy policies is consistent with industry best practices and FTC privacy guidelines. For a more general discussion of this topic, please refer to the Coremetrics 2007 Privacy Guidelines brief. Two forms of opt-out implementation are available for support of Delegated and ClientManaged First Party data collection methods. Sample implementations for each data collection method are provided at the end of this document. To determine your current First Party data collection method and which opt-out solution you should implement, please contact your assigned Coremetrics Implementation Engineer (for clients in implementation) or Coremetrics Customer Support (for clients out of implementation).

CONFIDENTIAL Page 40 CONFIDENTIAL Page 40

Implementation Guide
9.2.1 Opt-Out Description There are three levels of data collection possible for the Client to enable: 1) full participation; 2) opt-out of data collection, or 3) anonymous participation. Users will be presented with a simple selection of a radio button identifying their choice and then clicking a submit button.

Figure 1: Example implementation of Opt-Out dialog.

Typically, visitors will be presented with a radio button identifying their choice and then clicking a submit button. An additional function to query the status of visitor opt-out is also available. Anonymous Visitor. This setting allows Coremetrics to anonymously capture the visitors basic site actions and to include the data in Coremetrics reporting. All actions are grouped within metrics for all other anonymous visitors. Total Opt-Out. The data is not collected by Coremetrics data collection front-end servers, and consequently is not included in Coremetrics reporting. Cancel Opt-Out. This setting allows Coremetrics to capture all Web actions and to include the data in Coremetrics reporting.

9.2.2 General User Use-case: The following is an outline description of the process a site visitor may experience when utilizing the Opt-Out functionality: 1. The visitor views the Privacy Policy and Opt-Out Options. 2. The visitor chooses a link to the Opt-Out options page. 3. The visitor selects one of the opt-out options, and clicks the Submit button. 4. For Delegated 1st Party implementations, the opt-out options are transmitted directly to <dataSubdomain.ClientDomain.com> (the Client hostname mapped to Coremetrics). This data transfer and cookie update are transparent to the visitor experience.
CONFIDENTIAL Page 41 CONFIDENTIAL Page 41

Implementation Guide
5. For Client-Managed 1st Party implementations, the opt-out options cookie update is performed by the Coremetrics data collection library included in the site page. The cookie update is transparent to the visitor experience. 6. A small pop-up window is displayed to the visitor confirming the execution of the selected optout option.

Figure 2: Example confirmation. 7. The visitor closes the pop-up window, and then continues to browse the site, confident that he/she was able to choose the appropriate opt-out/opt-in functionality. 9.2.3 Implementation Opt-Out for Delegated First Party To provide opt-out for visitors to a Delegated First Party implementation, provide an Opt-Out form or other html allowing the visitor to select opt-out preferences. To avoid sending visitors to another Web site and to maintain the website user interface look and feel, you may choose to implement the opt-out functionality on your own pages, or as a stand alone page or popup. The implementation of the opt-out functionality is typically accomplished with the provision of the appropriate descriptive language in the site Privacy Policy page and creation of an optout HTML form. The Delegated First Party opt-out HTML form is described below:
Opt-Out HTML Form

The HTML code below exemplifies the implementation of the Opt-Out form. Note the functions in the <head> that are required in order to provide for the form functionality. A client may also specify the background color or image of the pop-up windows that are displayed to the user. This code should be included into a page on the client website with appropriate formatting, images, etc. to integrate the view.

CONFIDENTIAL Page 42 CONFIDENTIAL Page 42

Implementation Guide

Figure 3: Example in-page opt-out functionality supporting a Delegated First Party Implementation.
Notes: This code should be attached as file: opt_out.html. DA_Sub-Domain.ClientDomain.com should be replaced with your assigned Coremetrics Delegated First Party Data Collection Domain (for example: http://ww12.yoursite.com/privacy/getStatus.php).

<html> <head> <title>Anonymous and Optout page</title> <script language="JavaScript"> <!-var newWindow; function viewStatusWindow () { bg_color="FFFFFF"; // optional background color of the popup window bg_img=""; // optional background image for the popup window // complete url needed newWindow=window.open ("http://DA_Sub-Domain.ClientDomain.com/privacy/getStatus.php"+ "?bg=" + bg_color + "&im=" + bg_img, "popup1", "resizeable,width=500,height=400") } function optResultWindow ( f ) { // destination_opt_out - url of the page that is displayed in // the pop up window after the opt-out cookie is set destination_opt_out="http://DA_Sub-Domain.ClientDomain.com/privacy/optout.html"; // destination_anonymous - url of the page that is displayed in // the pop up window after the anonymous cookie is set destination_anonymous="http://DA_Sub-Domain.ClientDomain.com/privacy/anonymous.html"; // destination_cancel - url of the page that is displayed in // the pop up window after the cancel cookie is set destination_cancel="http://DA_Sub-Domain.ClientDomain.com/privacy/cancel.html"; if ( f.action[0].checked ) { ac = "anonymous"; destination = destination_anonymous; } if ( f.action[1].checked ) { ac = "opt_out";

CONFIDENTIAL Page 43 CONFIDENTIAL Page 43

Implementation Guide
destination = destination_opt_out; } if ( f.action[2].checked ) { ac = "optin"; destination = destination_cancel; } newWindow=window.open ( "http://DA_Sub-Domain.ClientDomain.com/privacy/privacy_handler.php"+ "?dest=" + destination + "&act=" + ac, "popup1", "resizeable,width=500,height=400") } function setStatus(msg) { status = msg return true } //--> </script> </head> <body> <p><a href="javascript:void(0)" onClick="viewStatusWindow()" onMouseOver="return setStatus('Click to view Opt-out status')" onMouseOut="return setStatus('')"><u>View Current Opt-out Status</u></a></p> <hr> <table width="595" border="0" cellspacing="0" cellpadding="1"> <tr> <td> <form name="optout"> <p><font face="Arial, Helvetica, sans-serif" size="2"><br> <b>Opt-out Selection Form:</b></font><br><br><br> <font face="Arial, Helvetica, sans-serif" size="2"> <input type="radio" name="action" value=""anonymous" checked> <b>Anonymous Visitor.</b> </font></p> <p><font face="Arial, Helvetica, sans-serif" size="2"> <input type="radio" name="action" value="opt_out" > <b>Total Opt-out.</b> </font></p> <p><font face="Arial, Helvetica, sans-serif" size="2"> <input type="radio" name="action" value="opt_in"> <b>Cancel Opt-out.</b> </font></p> <p> <input type="button" value="Submit" onClick="optResultWindow(this.form)"></p> </form> </td> </tr> </table> </body> </html>

9.2.4 Implementation Opt-Out for ClientManaged First Party


To provide opt-out functionality for visitors to a Client-Managed First Party implementation, provide an Opt-Out form or other html allowing the visitor to select opt-out preferences. The opt-out HTML should call the function SetOptOut(value); with one of three possible parameter values: 1) empty () for opting-in to full data collection; 2) opt_out for complete opt-out of data collection; 3) or anonymous for opting-in to anonymous data collection.

Opt-Out HTML Example


The HTML code below provides an example opt-out page submitting the SetOptOut function in response to visitor choice. Please modify this HTML to incorporate seamlessly into your website with appropriate navigation, formatting and images.

CONFIDENTIAL Page 44 CONFIDENTIAL Page 44

Implementation Guide

Figure 4: Example in-page opt-out functionality supporting a Client-Managed First Party Implementation.
<HTML> <HEAD> <TITLE> Opt Out Page Example </TITLE> </HEAD> <BODY> <script language="javascript1.2" src="coremetrics/v40/eluminate.js"></script> <script language="javascript1.2" src="coremetrics/cmdatatagutils.js"></script> <script> cmCreatePageviewTag( "OPT-OUT PAGE", "PRIVACY"); var currentStatus = cI("CMOptout"); if (!currentStatus) { currentStatus = "opt-in"; } function setOptOut(value) { var futureDate = new Date(); futureDate.setFullYear(futureDate.getFullYear() + 20); document.cookie = "CMOptout=" + value + "; expires=" + futureDate.toGMTString(); currentStatus = cI("CMOptout"); if (!currentStatus) { currentStatus = "opt-in"; } } </script> <div id="customerServ-header"> <h2>Site Usage Statistics Settings</h2> </div> <div id="browse-categories" class="clearfix">

CONFIDENTIAL Page 45 CONFIDENTIAL Page 45

Implementation Guide
<p>Our Coremetrics site usage statistics system allows you to view or change your profile. There are 3 different levels of data collection:</p> <div id="opt-out-description"> <ul> <li><h4>Change your current opt-out option:</h4></li> <li><a href="#opted-out-anonymous" onclick="setOptOut('anonymous');">Click for Anonymous OptOut.</a> This setting allows Coremetrics to anonymously capture the visitor's Web actions (including the data collected in Coremetrics reporting). All actions are grouped with all other anonymous visitors.</li> <li><a href="#opted-out-total" onclick="setOptOut('opt_out');">Click for Total Opt-Out.</a> The data is not collected by Coremetrics' data collection front-end servers and, consequently, is not included in Coremetrics reporting.</li> <li><a href="#opted-in" onclick="setOptOut('');">Click to opt-in.</a> This setting will again allow Coremetrics to capture all Web actions and includes the data collected in Coremetrics reporting.</li> <br><br> <li><a href="#check-status" onclick="alert('Your current status is: ' + currentStatus);">View Current Opt-out Status</a>.</li> </ul> </div> </div> </BODY> </HTML>

9.2.5 Customizing the Delegated 1 s t Party Opt-Out HTML Response Window


It may be desirable to replace the standard Delegated 1 Party opt-out response window content with localized or customized content. See Figure 2., above, for an example of the standard response window for anonymous optout. In order to replace the Coremetrics default window content, simply set the destination parameter in the optout code to the URL hosting your custom content. This content should be suitable for display in a resizable width=500/height=400 window unless you plan on changing the initial window size.
if ( f.action[0].checked ) { ac = "anonymous"; destination = "http://www.mysite.com/customcontent_anonymous.html"; } if ( f.action[1].checked ) { ac = "opt_out"; destination = "http://www.mysite.com/customcontent_opt_out.html"; } if ( f.action[2].checked ) { ac = "optin"; destination = "http://www.mysite.com/customcontent_cancel.html"; } newWindow=window.open (
"http://DA_Sub-Domain.ClientDomain.com/privacy/privacy_handler.php"+ "?dest=" + destination + "&act=" + ac, "popup1", "resizeable,width=500,height=400")
st

CONFIDENTIAL Page 46 CONFIDENTIAL Page 46

Implementation Guide 10 Appendices


10.1 Category Definition File
10.1.1 Introduction In order to define the category structure and display names for the category IDs that you will be sending through the tags, you must use a Category Definition File (CDF). This file maps each category ID sent in the tags to a display name and a parent category. The file should be uploaded to the Coremetrics FTP server, where it will be processed and loaded into the database. 10.1.2 Categor y Definition File Format The Category Definition File is a comma separated values (CSV) file. Each line describes a category in the hierarchy. Each line has four values: Client ID, Category ID, Category Name, and Parent Category ID. Column Client ID Category ID Description Coremetrics assigned ID. This value should be the same for all rows within a given file. Category ID for the category being defined. This should match the values being sent in the Coremetrics tags or referenced in the Parent Category ID column of the CDF. Display Name that should be used for this category ID in the reporting Category ID of this categorys parent category. For toplevel categories, this column should be empty.

Category Name Parent Category ID

Every category ID that is sent through the Coremetrics tags on your site or referenced in the Parent Category ID column should have a matching line within the CDF that will map the ID to a display name and parent category. Category IDs that do not have a matching line within the CDF will be lumped into the No Category Assigned top-level category within the reporting. The Coremetrics TagBar can be used to identify what category ID is being sent in a tag. The Site Location ID (cg) field within the tags corresponds to the category ID that should match a line in the CDF. 10.1.3 Invalid Characters A certain subset of characters is not allowed within the CDF. Because the CDF is a CSV file, no commas should be included within any of the values in the columns. If a categorys display name includes a comma, it should be parsed out or replaced with a different character.

CONFIDENTIAL Page 47 CONFIDENTIAL Page 47

Implementation Guide
Double quotes are also not allowed within the CDF. Any fields containing double quotes should be parsed out as well. The following characters are not recommended:
` ~ ! @ # $ % ^ & * ( ) = + [ ] \ ; , < . > ?

10.1.4 Example file Below is an example category structure with the corresponding CDF. Please note that all text in the file should be in all upper case. Category Structure Client ID Category ID XXXXXXX 101 XXXXXXX 201 XXXXXXX 301 XXXXXXX 102 XXXXXXX 103 XXXXXXX 104 XXXXXXX 105 XXXXXXX 202 XXXXXXX 203 XXXXXXX 204 XXXXXXX XXXXXXX XXXXXXX 205 302 303

Category Name Mens Womens Sale Mens Shirts Mens Pants Mens Shirts: Dress Mens Shirts: Tee Womens Shirts Womens Pants Womens Shirts: Dress Womens Shirts: Tee Sale: Shirts Sale: Brands

Parent Category ID

101 101 102 102 201 201 202 202 301 301

Example File XXXXXXX,101,MENS, XXXXXXX,201,WOMENS, XXXXXXX,301,SALE, XXXXXXX,102,MENS SHIRTS,101 XXXXXXX,103,MENS PANTS,101 XXXXXXX,104,MENS SHIRTS: DRESS,102 XXXXXXX,105,MENS SHIRTS: TEE,102 XXXXXXX,202,WOMENS SHIRTS,201 XXXXXXX,203,WOMENS PANTS,201 XXXXXXX,204,WOMENS SHIRTS: DRESS,202 XXXXXXX,205,WOMENS SHIRTS: TEE,202
CONFIDENTIAL Page 48 CONFIDENTIAL Page 48

Implementation Guide
XXXXXXX,302,SALE: SHIRTS,301 XXXXXXX,303,SALE: BRANDS,301 10.1.5 Uploading the CDF The CDF may be uploaded through the Import CDF Upload feature in the Coremetrics reporting interface or by sending directly to Coremetrics FTP server at ftp.coremetrics.com. Your Implementation Engineer or Coremetrics Support will provide an ftp account for direct upload of the CDF to ftp.coremetrics.com. Files ftpd to ftp.coremetrics.com will be automatically imported and processed, updating your categorization hierarchy in reporting from that point forward. Changes from an uploaded file should be reflected in the next processing of the daily reports. The frequency at which the CDF is uploaded can be determined based on your own needs. For clients whose hierarchies may change on a daily or weekly basis, Coremetrics recommends setting up an automated script that will generate the CDF and upload it daily. This will ensure that Coremetrics picks up any changes in the hierarchy on a daily basis. 10.1.6 File Naming Convention The CDF should be named according to the following convention: <client_id>.csv Where <client_id> is your Coremetrics assigned client ID.

10.2 Data Integrity Process File


10.2.1 Introduction Coremetrics uses the Data Integrity Process (DIP) to validate the data being collected by the Coremetrics tagging. DIP compares data directly imported from your backend database to the data collected and used by Coremetrics reporting. Data is imported through the upload of a DIP file, which is sent via FTP to Coremetrics on a daily basis. 10.2.2 DIP File Format The DIP file is a comma separated values (CSV) file that contains line item data for all orders placed for the day. Each line has six values: Order Date, Order ID, Product ID, Order Subtotal, Quantity, and Unit Price. Column Order Date Order ID Description Date of the order in appropriate format (see Section 10.2.3) Order ID should match the Order ID being sent in the Coremetrics Order Tag.

CONFIDENTIAL Page 49 CONFIDENTIAL Page 49

Implementation Guide
Product ID Product ID for the line item. This should match the Product ID being sent in the Shop 9 Tag.

Order Subtotal Subtotal for the order. This should not include shipping and handling or tax. Quantity Unit Price Quantity of the product purchased for this line item. Unit price for the line item.

No quotes should exist anywhere within the DIP file. The DIP file should contain data for all orders placed online that would be tracked with Coremetrics. It should not include any orders placed from other channels, such as store, catalog, or call center sales. 10.2.3 Date Formatting The Order Date should be in the same time zone as your Coremetrics reports were set up to. They should not be translated to CST. If you have any questions about what time zone is appropriate, please contact your Implementation Engineer. The Order Date field must be in one of the following formats: DD-MON-YYYY HH24:MI:SS YYYY-MM-DD HH24:MI:SS MM/DD/YY HH24:MI:SS MM/DD/YYYY HH24:MI DD-MON-YYYY HH24:MI:SS MM/DD/YYYY HH24:MI:SS DD-MON-YYYY MM-DD-YYYY HH24:MI:SS 10.2.4 Example File Below is an example set of order data for one day and the corresponding DIP file entries. Product ID 47175 156564 187167 185767 186891 188353 188396 188412 188487 188529 Order Total 20.97 243.87 243.87 243.87 243.87 231.76 231.76 231.76 231.76 231.76

Order Date 27-Oct-2000 27-Oct-2000 27-Oct-2000 27-Oct-2000 27-Oct-2000 27-Oct-2000 27-Oct-2000 27-Oct-2000 27-Oct-2000 27-Oct-2000

Order ID 13:32:17 5328031 13:32:17 5328032 13:32:17 5328032 13:32:17 5328032 13:32:17 5328032 13:32:17 5328034 13:32:17 5328034 13:32:17 5328034 13:32:17 5328034 13:32:17 5328034

Qty 3 4 1 4 4 1 2 1 1 1

Unit Price 6.99 3.49 29.99 19.99 29.99 19.97 15.97 24.97 29.97 64.97

CONFIDENTIAL Page 50 CONFIDENTIAL Page 50

Implementation Guide
Example DIP File 27-Oct-2000 13:32:17,5328031,47175,20.97,3,6.99 27-Oct-2000 13:32:17,5328032,156564,243.87,4,3.49 27-Oct-2000 13:32:17,5328032,187167,243.87,1,29.99 27-Oct-2000 13:32:17,5328032,185767,243.87,4,19.99 27-Oct-2000 13:32:17,5328032,186891,243.87,4,29.99 27-Oct-2000 13:32:17,5328034,188353,231.76,1,19.97 27-Oct-2000 13:32:17,5328034,188396,231.76,2,15.97 27-Oct-2000 13:32:17,5328034,188412,231.76,1,24.97 27-Oct-2000 13:32:17,5328034,188487,231.76,1,29.97 27-Oct-2000 13:32:17,5328034,188529,231.76,1,64.97

10.2.5 Uploading the DIP File The DIP file should be uploaded to Coremetrics FTP server at ftp.coremetrics.com. Your Implementation Engineer will set you up with an account on the server during the implementation process. 10.2.6 File Naming Convention The DIP file should be named according to the following convention: DIP_<client_id>_<YYYYMMDD>.csv Where <client_id> is your Coremetrics assigned client ID and <YYYYMMDD> is the date in YYYYMMDD format.

10.3 Multi-Currency Support


Coremetrics supports capturing multiple different currencies for purchases under a single client ID. In order to enable this functionality, a currency code that confirms to the ISO4217 specification. See http://www.xe.com/iso4217.htm for reference. Currency values need to be captured on Shop Action 5, Shop Action 9, and Order tags. This requires a change to the cmdatatagutils.js library to accept these values and incorporate them on the tags. Please contact your Implementation Engineer or Customer Support for assistance with the library change and instructions on how to update the tag functions calls.

10.4 Additional Tag Attributes for Coremetrics Explore


Coremetrics Explore allows for reporting based on attributes of a tag (e.g. brand, language, author, etc). Using attributes requires the Explore product and an updated cmdatatagutils.js library to accommodate capture of the additional parameters. The following tag types each support up to 15 attributes with a length of 100 characters per attribute: Pageview Productview
CONFIDENTIAL Page 51 CONFIDENTIAL Page 51

Implementation Guide
Shop Action 5 & Shop Action 9 Order Conversion Event Element Registration For the required library update, please contact your assigned Implementation Engineer or Customer Support. Please see the Coremetrics Explore User Guide for more information on suggested attributes for capture and how to create reports based off of these attributes. 10.4.1 Capturing Coremetrics Explore Attributes

Explore Attribute values are sent to Coremetrics as a single -_- delimited tag parameter value. Typically, the Explore Attribute tag parameter is located at the end of the parameter list (documented in Section 4.4) for each tag supporting Explore data collection. However, your specific implementation may vary so be sure to examine the tag definitions in your cmdatatagutils.js tag library or check with your Coremetrics Technical Support contact. Example Page View Tag Function Call with Explore Attributes:

In this example Pageview tag, we are sending the parameters PageID, PageCategoryID, attribute-1, attribute-3 and attribute-4. Search String and Search Results will specify JavaScript null values in order to maintain correct parameter order. By not specifying any value for Attribute position 2 in the -_-concatenated Attribute string, we retain the correct parameter order for the attribute-3 and attribute-4 values. Function Definition from cmdatatagutils.js data collection library:

function cmCreatePageviewTag(pageID, categoryID, searchString, searchResults, attributes)

Function Call

<script language="javascript1.2"> cmCreatePageviewTag("PageID","PageCategoryID",null,null,"attribute-1-_--_-attribute-3-_attribute-4"); </script>

Tagbar Test Output:

Page View tag (Test)


Tag Type (tid):"1" (Page View tag) Page ID (pi):"PageID" Category ID (cg):"PageCategoryID" Attribute 1 (Explore) (pv_a1):"attribute-1" Attribute 3 (Explore) (pv_a3):"attribute-3" Attribute 4 (Explore) (pv_a4):"attribute-4"

CONFIDENTIAL Page 52 CONFIDENTIAL Page 52

Implementation Guide
10.4.2 Video Tracking - Coremetrics Explore Attributes

Advanced Explore video tracking can be implemented through the Element Tag attributes 13, 14 and 15: Element ID: pass the name of the video (e.g. Six Minute Abs) Element Category: pass the category of the video (e.g. Fitness Videos) Element Attribute Field 13 (e_a13): Pass the Video Status: 0=Launch; 1=Pause; 2=Play;3=Completion. Video abandonment/completion rates and average video play times are calculated using the Launch and Completion events. Pause and Play events are sent only in response to clicks on video player pause or play controls. Alias Element Attribute 13 in reporting as Video Status. Element Attribute Field 14 (e_a14): Pass the Video Time Stamp (in seconds) of the status action. For example, if the user Stops the video 1:23 to the video, pass 83. Alias Element Attribute 14 in reporting as Video Time Stamp. Video timestamp must be sent for all Video Status values including Completion, in which case the value should be equal to the Element attribute 15 Video Length value. Element Attribute Field 15 (e_a15): Pass the Video Length (in seconds) of the total length of the video. For example, if the video is 3:10 in length, pass 190. Alias Element Attribute 15 in reporting as Video Length.

Example Element Tag Function Calls with Video Explore Attributes:

In this example sequence we are tracking the video Six Minute Abs in category Fitness Videos through a hypothetical typical launch, pause, play and completion sequence. Function Definition from cmdatatagutils.js data collection library:

cmCreatePageElementTag(elementID, elementCategory, attributes)

- Step 1: page or player hosting the video loads. In this example, the video starts playing only when the play control is subsequently clicked by the visitor.
cmCreatePageElementTag("SIX MINUTE ABS","FITNESS VIDEOS","-_--_--_--_--_--_--_--_--_--_--_--_-0-_-0-_190");

- Step 2: Visitor clicks the play control, starting play of the video note that the play event need only be sent when a play control is clicked: a video which begins playing at launch of the video does not require collection of an additional play video status event.
cmCreatePageElementTag("SIX MINUTE ABS","FITNESS VIDEOS","-_--_--_--_--_--_--_--_--_--_--_--_-2-_-0-_190");

Step 3: Visitor pauses the video halfway through (95 seconds).


CONFIDENTIAL Page 53 CONFIDENTIAL Page 53

Implementation Guide
cmCreatePageElementTag("SIX MINUTE ABS","FITNESS VIDEOS","-_--_--_--_--_--_--_--_--_--_--_--_-1-_-95-_190");

Step 4: Visitor resumes play at 95 seconds

cmCreatePageElementTag("SIX MINUTE ABS","FITNESS VIDEOS","-_--_--_--_--_--_--_--_--_--_--_--_-2-_-95-_190");

- Step 5: Visitor watches video to completion note that timestamp (14) and video length attributes (15) are now equal
cmCreatePageElementTag("SIX MINUTE ABS","FITNESS VIDEOS","-_--_--_--_--_--_--_--_--_--_--_--_-3-_-190-_190");

10.5 Additional Product Attributes for Intelligent Offer


Intelligent Offer now supports rules based off of static attributes for Products. These product attributes are set on the Productview tag. There are 15 product attributes than can be used. Each product attribute can be up to 100 characters in length. The attributes should be static for a given ProductID. If a Productview tag is received with an attribute value that is different than the value currently stored for that ProductID, the value will be updated. Using these attributes requires the Intelligent Offer product and an updated cmdatatagutils.js library to accommodate capture of the additional parameters. For the required library update, please contact your assigned Implementation Engineer or Customer Support.

10.6 Real-Time Media Tagging


Coremetrics Monitor now supports two new modules designed to allow real-time analysis of published content. This module may require a tag library update. To determine if you need an update, please contact your assigned Implementation Engineer or Customer Support. To have designated pages tracked using the Real-Time Media Modules, two additional values must be passed as attributes on the pageview tag. The data format for attributes is described in Section 10.4 Additional Tag Attributes for Coremetrics Explore. Note that the Explore product is not required for Real-Time Media, but Coremetrics Monitor is required. The additional values must be passed either in Pageview attributes 1 and 2 or 14 and 15. They must be paired together as 1/2 or 14/15. Failure to specify to value properly may result is data not appearing in the module or strange and useless data appearing in the module. The value of attribute 1 or 14 specifies the page of the article (first, last, middle, or only). Valid values are:
CONFIDENTIAL Page 54 CONFIDENTIAL Page 54

Implementation Guide
cm_md_f cm_md_l cm_md_m cm_md-fl Only one of these values will be set for a given Pageview tag. These values are used to indicate the following: cm_md_f indicates the first page of a multi-page article cm_md_l indicates the last page of a multi-page article cm_md_m indicates a middle page of a multi-page article (i.e. more than 2 pages) cm_md_fl indicates a single page article Important Note: If the article page values are not set correctly (using one of the above 4 values), no data will appear in the Real-Time Media modules. The value of attribute 2 or 15 is used to specify the value of the Article ID. The value must be consistent across all pages of a given article. In the case of a single page article, this value would likely be exactly the same as the PageID value. In the case of a multi-page article, this would be similar to the PageID value, minus any page number or page-level (page sub-titles) information.

10.7 Patent Information


Coremetrics products and services are licensed under the following Netratings patents: 5,675,510; 5,796,952; 6,115,680; 6,108,637; 6,138,155; 6,643,696 and 6,763,386.

CONFIDENTIAL Page 55 CONFIDENTIAL Page 55

Vous aimerez peut-être aussi