Chapter 7. Privacy Considerations
7.3 Intelligent Tracking
Greater flexibility and configuration for tracking, cookies, and data storage is required to comply with privacy legislation in some regions.
The client library allows clients to configure whether the library set cookies, and what kinds of cookies. Intelligent tracking is used to track individual visitors who have not explicitly opted out.
Cookie suppression and session-only cookie tracking
You can specify a setting through the cmSetCookieSetting(setting) parameter to disable setting of all cookies, only allow session cookies, or enable cookies.
For cmSetCookieSetting(setting), the setting parameter is one of these:
Parameter Value Setting Effect
S Session cookies only Cookies created with
cmSetCookieSetting expire within the session.
D Cookies disabled Currently set cookies in the
suppression list will be removed. Future calls to cmSetCookieSetting does not set cookies and returns true.
Note: This parameter requires use of Intelligent Tracking (cmSetIT).
Example:
<script type="text/javascript">
cmSetCookieSetting("S"); // session cookies only
</script>
Intelligent tracking description
When cookies are disabled, either by a visitor or through the tag library, intelligent tracking is used to track individual visitors, who have not explicitly opted out.
The visitors are tracked by collecting and hashing a set of technical properties from JavaScript variables and HTTP headers. This feature is enabled through the tag library.
To enable intelligent tracking, call the cmSetIT(true) function. To disable intelligent tracking, call cmSetIT(false). Intelligent tracking is disabled by default.
Note: cmSetIT(true)requires the use of cmSetCookieSetting("D") as described in
“Cookie suppression and session-only cookie tracking” on page 69.
<script type="text/javascript">
cmSetIT(true);
</script>
Automatic technical property tag
Normally, a technical property tag is fired with a page view if the cmTPSet cookie is not set to Y, and then the cmTPSet cookie is set so the technical properties tag is not sent again for the visitor's session.
If cookies are disabled, the tag library adds technical properties to a percentage of page view tags. The script generates a random number between 0 and 1. If that number is less than the configured threshold, the technical properties are added to the page view tag.
The threshold for sending technical properties on a page view is set using cm_TPThreshold. A value greater than or equal to 1 always sends the technical properties on a page view, while a value less than 0 never sends a technical property tag. The default value is .10.
<script type="text/javascript">
cmSetupOther({"cm_TPThreshold":"0.5"});
</script>
Note: cm_TPThreshold is only used in combination with cmCookieSetting("D") and cmSetIT(true).
Example
This example shows a correct implementation for cmSetCookieSetting(setting), cmSetIT, and cmTPThreshold.
<head>
<script type="text/javascript" src="//testlibs.coremetrics.com/eluminate.js">
</script>
<script type="text/javascript">
cmSetClientID("99999999",true,"data.coremetrics.com",
"127.0.0.1");
cmSetCookieSetting("D");
cmSetIT(true);
cmSetupOther({"cm_TPThreshold":"0.5"});
</script>
</head>
Opt-out for intelligent tracking
When using Intelligent Tracking, no cookies are set on the visitor browser.
The standard Client Managed opt-out code described in “7.2 Implementing
Opt-Out with IBM Digital Analytics First Party Data Collection Solutions” on page 64 cannot be used to implement visitor opt-out for Intelligent Tracking. To provide visitors the opportunity to opt-out of Intelligent Tracking, the cmSetOptOut function
is provided. This function must be called on each and every page of the web site with the designated value ("A", "Y" or "N").
The opt-out form or other input mechanism used by visitors to make the opt-out, opt-anonymous or opt-in decision must be provided by the web site author: this input code is not provided by IBM. The visitor decision should be persisted by the web site author so that the cmSetOptOut(...) function can be called with
appropriate parameter value from each new page.
v Available parameter values for the cmSetOptOut function:
Parameter value Setting
A Anonymous data collection
Y Total opt-out of all data collection
N No opt-out. Normal data collection
v Script block example:
<script type="text/javascript">
cmSetOptOut("Y"); // total visitor opt-out of data collection on this page
</script>
Appendix A. Category Definition File
To define the category structure and display names for category IDs that you send through tags, you must use a Category Definition File (CDF).
The Category Definition File maps every category ID sent in tags to a display name and a parent category. The file should be uploaded to Digital Analytics through the https://import.coremetrics.com Import GUI, or the FTP account that is configured and managed through the GUI.
Category 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:
v Client ID v Category ID v Category Name v Parent Category ID.
Column Description
Client ID Digital Analytics assigned ID. This value
should be the same for all rows within a given file.
Category ID Category ID for the category being defined.
This value should match the values being sent in the Digital Analytics tags or
referenced in the Parent Category ID column of the CDF.
Category Name The display name that should be used for
this category ID in reporting.
Parent Category ID The Category ID of this category's parent
category. For top-level categories, this column should be empty.
Every category ID that is sent through the Digital Analytics tags on your site or referenced in the Parent Category ID column should have a matching line within the CDF that maps the ID to a display name and parent category. Category IDs that do not have a matching line within the CDF will be grouped into the "No Category Assigned" top-level category in reports.
The Digital Analytics 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.
Invalid characters
Single quotation marks (') and double quotation marks (") are automatically removed from collected tag Category ID parameter values. Thus, no tag data can be assigned to Category IDs that contain quotation marks. However, single and double quotation marks can be included in Category Name column values for report display purposes. This is accomplished by enclosing the Category Name in double quotation marks:
99999999,204,"DRILL BITS 1/4" TITANIUM",202
Commas (,) found in Category ID or Parent Category ID column values are replaced with spaces (" ") during loading of the category records. This ensures that tags sent with Category ID (cg) parameter values including commas will match the loaded Category Definition File record (see section 2.6 for more information on removal of commas from tag parameter data).
Multibyte CDF characters
Only single byte data should be included in the CDF supporting a single byte-enabled Client ID. Single byte-enabled Client IDs cannot include categories with multibyte characters; such categories will not be available in reporting.
CDF column data (Category ID, Name and Parent) for multibyte-enabled Client IDs can include multibyte characters.
Example of Category Definition File
The following example shows the category structure with corresponding records.
Category ID, Category Name, and Parent Category columns (2-4) values can be in uppercase, lowercase, or mixed case for character sets having multiple case values.
All CDF column values are converted to uppercase upon import to Digital Analytics (import.coremetrics.com or ftp.coremetrics.com). All collected tag Category ID values are also converted to uppercase after receipt of the tag by Digital Analytics, so the Category ID values in columns 2 and 4 of the CDF will always match the same Category ID value collected in tag data.
Client ID Category ID Category Name Parent Category ID
99999999 101 MENS
99999999 201 WOMENS
99999999 301 SALE
99999999 102 MENS SHIRTS 101
99999999 103 MENS PANTS 101
99999999 104 MENS SHIRTS:
DRESS
102
99999999 105 MENS SHIRTS: TEE 102
99999999 202 WOMENS SHIRTS 201
99999999 203 WOMENS PANTS 201
99999999 204 WOMENS SHIRTS:
DRESS
202
99999999 205 WOMENS SHIRTS:
TEE
202
99999999 302 SALE: SHIRTS 301
99999999 303 SALE: BRANDS 301
Example file 99999999,101,MENS, 99999999,201,WOMENS, 99999999,301,SALE,
99999999,102,MENS SHIRTS,101
99999999,103,MENS PANTS,101
99999999,104,MENS SHIRTS: DRESS,102 99999999,105,MENS SHIRTS: TEE,102 99999999,202,WOMENS SHIRTS,201 99999999,203,WOMENS PANTS,201
99999999,204,WOMENS SHIRTS: DRESS,202 99999999,205,WOMENS SHIRTS: TEE,202 99999999,302,SALE: SHIRTS,301 99999999,303,SALE: BRANDS,301
Uploading the CDF
The CDF should be uploaded through the CDF import tool at
https://import.coremetrics.com(US Data Center). This tool allows direct uploads of CDFs through the user interface, or creation of an ftp (port 21) or sftp (port 998) server account with Digital Analytics (ftp.coremetrics.com - US Data Center) for scheduled upload of automatically generated CDFs.
China Data Center domains:
import.cn.coremetrics.com ftp.de.coremetrics.com Europe Data Center domains:
import.de.coremetrics.com ftp.de.coremetrics.com
Files imported through the Import GUI or sent to ftp.coremetrics.com will be automatically imported and processed, and your categorization hierarchy in reporting is updated 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. If your hierarchies might change on a daily or weekly basis, Digital Analytics recommends setting up an automated script that will generate the CDF and upload it daily. This ensures that Digital Analytics picks up any changes in the hierarchy on a daily basis.
File Naming Convention
The CDF should be named according to the following convention:
CDF_<client_id>.csv
where <client_id> is your Digital Analytics assigned client ID.
Multisite Analytics
Category Definition Files can be created and uploaded for both the Multisite Analytics Global ID (5xxx0000) and Site Alias/Sub-IDs (5xxxxxxx). CDFs for Multisite IDs follow the standard file naming and file formatting requirements, except that the column 1 'Client ID' and file name <client_id> values will be either the Multisite Global ID or one of the provisioned Site Alias/Sub-IDs.
Here is an example of a Multisite Analytics Global ID file name and its contents.
CDF_50010000.csv 50010000,101,MENS, 50010000,201,WOMENS, 50010000,301,SALE,
Here is an example of a Multisite Analytics Site Alias/Sub-ID file name and its contents.
CDF_50010001.csv 50010001,101,MENS, 50010001,201,WOMENS, 50010001,301,SALE,
Multisite Analytics CDFs are uploaded using the standard CDF Import tool at https://import.coremetrics.com.
Log on using the Multisite Global ID to upload the Global ID CDF and the Site Alias/Sub-ID to upload Sub-ID CDFs.
Appendix B. Data Integrity Process File
Digital Analytics uses the Data Integrity Process (DIP) to validate the data being collected by the IBM Digital Analytics tagging.
DIP compares data directly imported from your backend database to the data collected and used by Digital Analytics reporting. Data is imported through the upload of a DIP file, which is sent via FTP to Digital Analytics on a daily basis.
This feature is not available in Test reporting.
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 Description
Order Date Date of the order in appropriate format (see
Section 8.2.3)
Order ID Order ID should match the Order ID being
sent in the Digital Analytics Order Tag.
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 Quantity of the product purchased for this
line item.
Unit Price 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 Digital Analytics. It should not include any orders placed from other channels, such as store, catalog, or call center/telephone sales. Do not include commas in Order Subtotal or Unit Price values.
Date Formatting
The Order Date should be in the same time zone as your Digital Analytics 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
Example File
Below is an example set of order data for one day and the corresponding DIP file entries.
Order Date Order ID Product ID Order Total Qty Unit Price 27-Oct-2010
13:32:17
5328031 47175 20.97 3 6.99
27-Oct-2010 14:12:05
5328032 156564 243.87 4 3.49
27-Oct-2010 14:30:07
5328032 187167 243.87 1 29.99
27-Oct-2010 14:55:46
5328032 185767 243.87 4 19.99
27-Oct-2010 14:59:43
5328032 186891 243.87 4 29.99
27-Oct-2010 15:10:23
5328034 188353 231.76 1 19.97
27-Oct-2010 15:19:53
5328034 188396 231.76 2 15.97
27-Oct-2010 15:24:31
5328034 188412 231.76 1 24.97
27-Oct-2010 15:43:14
5328034 188487 231.76 1 29.97
27-Oct-2010 16:03:28
5328034 188529 231.76 1 64.97
Example DIP File
Uploading the DIP File
The DIP file should be uploaded to IBM Digital Analytics' FTP server for your data center. Depending on the Data Center and database type used by your Client ID, the ftp account and ftp target used to upload the DIP files will vary.
FTP Target Domain
US Data Center: ftp.coremetrics.com Europe Data Center: ftp.de.coremetrics.com China Data Center: ftp.cn.coremetrics.com
FTP Account Type
For 5- or 9-series Client IDs worldwide, use a "clientid-import" account self-configured in the appropriate Import application UI for your Data Center:
import.coremetrics.com (US), import.de.coremetrics.com (Europe), import.cn.coremetrics.com (China).
For 9-series Client IDs using Oracle, use a "clientname-dip" account created by Digital Analytics Support.
Contact Digital Analytics Support to confirm which type of ftp account should be configured for your Client ID.
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.
Appendix C. Multi-Currency Support
IBM Digital Analytics supports capturing multiple different currencies for
purchases under a single client ID. To enable this functionality, you must specify a currency code that conforms to the ISO4217 specification. See http://www.xe.com/
iso4217.htm for reference.
A given Client ID can report currency format data using only the single currency code that you specified in the settings for that Client ID. Using "multi-currency conversion" through the cmSetCurrencyCode function or the cm_currencyCode variable does not change the currency code used to report currency data within a given Client ID; it only converts Order Total, Unit Price and Shipping Charge values collected in different currencies to the single reporting currency that you have specified for that Client ID.
Currency values must be included in the data captured in Shop Action 5, Shop Action 9, and Order tags. To capture the currency code with the relevant tag data, call the cmSetupOther(...) function with the variable name cm_currencyCode and the 3-byte currency code. For example:
cmSetupOther({"cm_currencyCode":"EUR"});
The cmSetupOther(...) function can be called in the same script block as the cmSetClientID(...)call on the page.
If you are not using IBM Digital Analytics hosted libraries (libs.coremetrics.com/
eluminate.js) version 4.7.5 or later, the cmSetupOther function will not be
available. In this case, call the cmSetCurrencyCode function anywhere in the tagged page prior to the related Shop or Order tag function calls. For example:
<script>
cmSetCurrencyCode("EUR");
</script>
Multi-Currency Support for IBM Digital Analytics Multisite
IBM Digital Analytics Multisite implementations should always set the 3-byte ANSI currency code in all pages which will send currency data with tags. The 3-byte code set on the page should match the currency type sent in tags from that page. This will ensure that collected currency values are converted properly for display in both the Multisite Analytics Global ID and the Multisite Analytics Site ID ("59990000|SITEID1"), in cases where these IDs are configured to report in different currencies.
Appendix D. Additional Tag Attributes for IBM Digital Analytics Explore
IBM Digital Analytics Explore allows for reporting based on attributes of a tag (for example, brand, language, author). Collecting and using attributes in reporting requires the Explore product and the IBM Digital Analytics-hosted library (//libs.coremetrics.com/eluminate.js).
The following tag types each support up to 50 attributes with a length of 256 characters per attribute:
v Pageview v Productview
v Shop Action Order Conversion Event v Element
v Registration (1-15 are available in Digital Analytics, 1-50 are available in Explore reporting)
v Marketing Attributes (query string parameters cm_mmca1-50)
Microsoft Internet Explorer request length is limited to 2083 bytes. Please check that your total attribute length for each tag is no more than 1.5k to allow for collection of standard tag parameters (Page ID, category ID, Product ID, etc.), destination and referring URL values, and around 200 additional bytes for data included in all requests.
To obtain IBM Digital Analytics Explore please contact your IBM Digital Analytics Account or Sales Representative. See the IBM Digital Analytics Explore User Guide for more information on suggested attributes for capture and how to create reports using attributes.
Capturing IBM Digital Analytics Explore Attributes
Explore Attribute values are sent to IBM Digital Analytics Explore as a single "-_-"
delimited tag parameter value. The Explore Attribute tag parameter is located in the parameter list for each tag supporting Explore data collection (see Section 2.6).
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.
v Function Definition from //libs.coremetrics.com/eluminate.js:
function cmCreatePageviewTag(pageID, categoryID, searchString, searchResults, attributes, extraFields)
v Function Call
<script type="text/javascript">
cmCreatePageviewTag("PageID","PageCategoryID",null,null,"attribute-1-_--_-attribute-3-_-attribute-4");
v 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"
Video Tracking - IBM Digital Analytics Explore Attributes
Advanced IBM Digital Analytics Explore video tracking can be implemented through the Element Tag 'attributes' 13, 14 and 15:
v Element ID:pass the name of the video (e.g. Six Minute Abs)
v Element Category:pass the category of the video (e.g. Fitness Videos) v 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."
v 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.
v 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."
Alias Element Attribute 15 in reporting as "Video Length."