Adobe Analytics Workbook
Adobe Analytics Workbook
y
t e nl
Implementation Training Student Workbook
bu O
tri se
D lU
ot na
is
N ter
D In
e
ob
o
Ad
1996-2012. Adobe Systems Incorporated. All rights reserved. Adobe, the Adobe
Ad
logo, Omniture, Adobe SiteCatalyst and other Adobe product names are either regis-
tered trademarks or trademarks of Adobe Systems Incorporated in the United States
and/or other countries.
All rights reserved. No part of this work may be reproduced, transcribed, or used in
any form or by any meansgraphic, photocopying, recording, taping, Web distribu-
tion, or information storage and retrieval systemswithout the prior and express
written permission of the publisher.
Disclaimer
Adobe reserves the right to revise this publication from time to time, changing con-
tent without notice.
0212
y
t e nl
Introduction ix
bu O
SiteCatalyst Implementation ix
The Sitecatalyst Implementation Manual:
tri se
A Companion Document ix
Course Objectives ix
D lU Pre-Course Downloads for Implementation
Earn Your Adobe Professional Certification
x
x
Chapter Two
Ad
Chapter Three Key Business Requirements & Solutions Design Reference 3-1
KBRs vs. KPIs 3-2
Before You Start Coding 3-2
Key Business Requirements & Key Performance Indicators 3-2
Focus of the Course 3-3
Adobe Fusion Method 3-4
Implementation Documents Summary 3-5
iii
Exercise for Section Two: Generate Your Own S_code.js File 4-2
y
Effective Page Naming 5-7
t e nl
Level of Granularity 5-10
Page Naming Strategies 5-13
bu O
Renaming Pages with the Page Naming Utility 5-16
Exercise 5.1: Detailed Page Names 5-17
Site Exercise 5.2: Detailed Page Names Practice 5-17
tri se
Chapter Six Additional Predefined Traffic Variables 6-1
Other Standard Variables 6-2
D lU Key Business requirements
The Channel Variable
6-2
6-2
The Server Variable 6-4
ot na
The Hierarchy Variable 6-4
404 Error Pages (pageType Variable) 6-8
Exercise 6.1: Traffic Variable Usage 6-10
is
N ter
y
t e nl
Chapter Nine Predefined and Custom Events 9-3
Events are Conversion Metrics 9-4
bu O
Introduction to s.events 9-4
Conversion on Your Site 9-5
tri se
s.events Syntax 9-5
Predefined Events (Retail) 9-5
Custom Events 9-6
D lU Site Exercise 9.1: Custom Events 9-10
Table of Contentsv
Its All About the Tracking Code 12-2
Campaign 101: tracking marketing success 12-2
Capturing Tracking Codes 12-3
Assigning Conversion Credit Across Visits 12-5
Internal vs. External Campaigns 12-7
Exercise 12.1: Campaign Tracking 12-7
Site Exercise 12.2: Campaign Tracking with getQueryParam 12-8
y
How s.eVars Work 13-2
Conversion Variable Use 13-3
t e nl
Internal Search Term 13-4
A/B Testing 13-4
bu O
Three Internal Campaign Tracking Methods 13-4
Site Exercise 13.1: Internal Campaign Tracking 13-6
Good Navigation Drives Success 13-7
tri se
Exercise 13.2: JJ Hotel reservation Conversion Tracking 13-8
List Variables for Conversion 13-9
D lU Cross-Category Merchandising
Merchandising Review
13-9
13-12
Exercise 13.3: Merchandising Revenue by Channel 13-13
Conversion Variables Summary 13-14
ot na
y
Calling Plug-Ins 16-4
t e nl
VISTA 16-8
The Tech Perspective 16-11
bu O
Quick Quiz 16.1: Plug-in Functions 16-11
Site Exercise 16.2: Internal Search Term 16-12
Site Exercise 16.3: Newsletter Subscriptions 16-12
tri se
Site Exercise 16.4: Time Parting Plug-in 16-13
Chapter Seventeen
D lU Processing Rules 17-1
A Server-side Implementation Solution 17-2
Solving Common Implementation Problems 17-2
ot na
Test Required 17-2
Processing Rule Examples 17-3
Context Data Variables 17-3
is
N ter
Table of Contentsvii
Example Three: Two Sources of Data 17-19
y
Mobile Site Tracking Considerations 18-3
t e nl
Mobile Report Suite 18-3
Anatomy of a SiteCatalyst Mobile Image Request 18-4
bu O
Web Beacon Placement 18-7
Query String Parameters 18-7
Site Exercise 18.1: Mobile Site Landing Page 18-9
tri se
Custom Link Measurement Without JavaScript 18-9
Site Exercise 18.2: Mobile Site Charge Card Application 18-10
D lU AppMeasurement Library Option
AppMeasurement Library Code
18-11
18-11
Server-side Scripts 18-12
ot na
PHP Page Code Example 18-12
Abbreviated Java Page Code Example 18-13
Abbreviated ASP.NET Page Code Example 18-14
is
N ter
Site Exercise 18.4: Enable Send From Server and Debug Tracking 18-18
Making It Work 18-18
Follow Best Practices 18-19
e
Limitations 19-2
Click-through vs. View-through Tracking 19-3
Enabling Light Server Calls 19-4
Anatomy of a Light Server Call (Offsite Display Example) 19-4
Retrieving Light Server Call Data 19-6
Email Light Server Calls 19-6
Onsite Display Light Server Calls 19-7
y
Creating Classifications in the Admin Console 21-9
t e nl
Date Enabled Classifications 21-12
bu O
Steps to Use SAINT 21-14
Exercise 22.1: Create Product Classifications 21-26
tri se
Cleanup Time 21-26
Exercise 22.2: Upload Classification Data with SAINT 21-27
Chapter Twenty-Two The Developer Portal and Intro to the SiteCatalyst API 22-1
e
Table of Contentsix
DigitalPulse Scan Manager 24-2
Configure 24-3
Masks 24-3
Limits 24-4
Scheduling 24-4
Forms 24-5
y
Keyword Distribution Report 24-9
Broken Links and JavaScript Errors Reports 24-9
t e nl
Class Exercise 24.1: DigitalPulse Test Scan 24-10
bu O
Chapter Twenty-Five Validation and Troubleshooting 25-1
Implementing the Right Way 25-2
tri se
Deployment Validation 25-3
Viewing Reports for Accuracy 25-4
D lU Troubleshooting Tools and Considerations 25-6
Site Exercise 25.1: Solution Validation 25-13
y
This manual should be used in conjunction with the SiteCatalyst Implementation
t e nl
Training course, not as a standalone training resource. However, after attending a
class, returning often to this manual as well as the online training resources will help
bu O
you become more expert at implementing Adobe SiteCatalyst.
tri se
A Companion Document
This training workbook is not meant to give you information about every last vari-
D lU
able, implementation option and strategy. Instead, it provides explanations and ex-
amples that will best help you best understand how to implement SiteCatalyst code in
common situations.
ot na
Download and refer to the SiteCatalyst Implementation Manual and manuals on non-
JavaScript implementations as companion documents explaining alternate solutions
is
N ter
that may be necessary for your site. They are available for download in the SiteCatalyst
interface on the Help page.
D In
Course Objectives
Define your Key Business Requirements (KBRs)
e
Validate code
Ad
Introduction xi
Pre-Course Downloads for Implementation
Recommended if coding the hard drive-based JJ Esquire Web site:
FireFox
Plain text editor (such as Notepad or TextEdit)
Adobe JavaScript Debugger (installed later)
FireFox
FireFTP https://addons.mozilla.org/en-US/firefox/addon/684/) or an FTP client
y
of your choice
Adobe JavaScript Debugger (installed later)
t e nl
Optional:
bu O
A Packet Analyzer of your choice such as HTTPFox, WASP, OmniBug, Charles,
Fiddler, WireShark or others
tri se
D lU
ot na
is
N ter
opportunities by displaying your advanced skills, and put your expertise to the test.
You can earn a certification to show your company and industry peers that you are an
Adobe Certified Expert in SiteCatalyst Implementation.
e
ob
This certification is available to the public and to our partners. After you complete
this training and implement SiteCatalyst on your own site, you can take the Adobe
o
Certified Professional Implementation exam. This course will assist you in preparing
Ad
y
t e nl
This first section introduces you to the SiteCatalyst code and shows you how data is
bu O
collected and sent from the visitors Web browser to the SiteCatalyst Data Center. It
also briefly explores the SiteCatalyst Interface and how to use the tool. Its important
tri se
to be familiar with SiteCatalyst because during the training you will run reports that
contain values that you will have coded on the fictitious JJ Esquire Web site.
D lU
Last, this section covers Key Business Requirements and how you can translate those
into Key Performance Indicators. During the course, youll map your Key Performance
Indicators to SiteCatalyst variables and metrics. This section should cause you to con-
ot na
sider the following questions:
Can I justify every piece of data that I capture with a Key Business Requirement
or am I just capturing interesting information that may never be used to
optimize the Web site?
D In
1-1
y
t e nl
bu O
tri se
D lU
ot na
is
N ter
D In
e
ob
o
Ad
y
t e nl
Overview
bu O
Chapter One offers a look into how Adobe SiteCatalyst Code works. This chapter in-
troduces and defines the three most common Traffic metrics. Finally, youll use the
tri se
JavaScript Debugger to verify that SiteCatalyst Code is executing and correctly send-
ing data to the Adobe data center.
Objectives
D lU
Understand how Adobe SiteCatalyst code works
ot na
Understand Traffic Metrics
Install the JavaScript Debugger
is
N ter
D In
e
ob
o
Ad
1-3
How Does It Work?
y
Web site reporting and analysis. Much more advanced than log file appli- cations that
t e nl
only measure server activity, SiteCatalysts next-generation Web analytics captures
visitors activity directly from their browser. By uncovering the facts about visitor in-
bu O
teractions with a site, SiteCatalyst users can receive precise answers to unique
questions.
tri se
SiteCatalyst provides organizations with actionable, real-time intelligence regard- ing
their online strategies and marketing initiatives. It also helps them quickly identify
D lU and understand the most profitable paths through their Web sites, where visitors are
dropping off, what is driving critical success events, and how various visitor segments
interact with the site.
ot na
is
N ter
D In
sitecatalyst code
JavaScript code on
the page and in an include
e
When a visitor to your site launches a Web browser and types in your URL, a request
is made to your server (1), your site sends the page code information, and the Web
page displays in the browser (2).
y
t e nl
bu O
tri se
D lU
ot na
is
N ter
As the page loads and the code on the page executes, it sends an image request (3) to
the SiteCatalyst server which returns a transparent pixel image (4). The code collects NOTE: Each image
and sends additional information, included in the image request, to Adobe data cen- request contains a
D In
browser language).
requests are made by the
ob
browser.
o
Ad
y
t e nl
bu O
Dont worry about the image request being cached in the browser. A random number
tri se
precedes the query string in the image request to prevent caching.
Page View
A page view is just one Web page loading in a visitors browser. They saw the page.
D In
Simple. Under the hood, a page view is actually one execution of the SiteCatalyst
JavaScript for that page. Because of this, Adobe is able to accurately count how many
times that page loaded, even if the visitor is refreshing the page over and over. Each page
e
load is a page view. Also, when the visitor hits the Back button in the browser and the
ob
page is pulled from cache, the JavaScript still runs and sends the page view to SiteCatalyst.
o
Visit
Ad
A visit is just a sequence of page views in one sitting. A visit begins when a viewer
sees a page on your Web site and ends after 30 minutes of inactivity (in other words,
when the visitor hasnt clicked or typed anything on the site for 30 minutes). A visit
can last several hours, as long as the visitor loads at least one page every 30 minutes. A
visit is sometimes called a session, but it does not necessarily coincide with a
browser session. This is because a visit ALWAYS ends with the 30-minute time out.
That means that if a visitor closes the browser, reopens the browser, and comes to your
site five minutes later, it is recognized as a continuation of the same visit (because 30
minutes didnt pass between page views). This also means that if a visitor stares at one
page for 35 minutes, the visit will have closed and processed, and a new visit will start
if they click through to another page.
While one person may visit your site any number of times and view any number of
pages during a desired time period, the Unique Visitors report records that person as
one unique visitor so you can tell exactly how many individuals are coming to your
site. The key to understanding the Visitor metric is that it is always associated with a
time period, because you have to know whether to count a person again or not when
y
they come back to your site. This metric answers the question:
t e nl
How many different people visited my site during...
this hour?
bu O
this day?
this week?
tri se
this month?
this quarter?
this year?D lU
Please note that in SiteCatalyst Version 15, Unique Visitors can be requested for any
time period even outside of those bucketed periods listed above.
ot na
When a person visits a site for the first time within the specified time period, he or she
is counted as a unique visitor.
is
N ter
Configuration
There are six basic steps to configuring SiteCatalyst code on a Web site. This course
D In
covers each of the steps in detail. Step 6, the validation step, will be emphasized
throughout the other steps.
e
SiteCatalyst Code
SiteCatalyst implementation involves adding two components to a site: the SiteCatalyst
JavaScript page code and the JavaScript include file. The page-level code contains a
few short lines of customizable JavaScript code that should be placed on every page NOTE: Visitors to your
that you want to track. The JavaScript include file (this JS file is commonly named site cache the Global
JavaScript Include File (s_
s_code.js) contains many global values and the code that ultimately builds and
code.js) after the first request,
sends the image request. The page-level code calls the Global JS file (or s_code.js) be-
resulting in virtually no
fore the page-level variables are read.
incremental server load for
your site.
/* You may give each page an identifying name, server, and channel on
the next lines. */
s.pageName=
s.server=
s.channel=
D In
s.pageType=
s.prop1=
s.prop2=
s.prop3=
s.prop4=
e
s.prop5=
/* Conversion Variables */
ob
s.campaign=
s.state=
s.zip=
o
s.events=
s.products=
Ad
s.purchaseID=
s.eVar1=
s.eVar2=
s.eVar3=
s.eVar4=
s.eVar5=
/************* DO NOT ALTER ANYTHING BELOW THIS LINE ! **************/
var s_code=s.t();if(s_code)document.write(s_code)//--></script>
<script language=JavaScript type=text/javascript><!--
if(navigator.appVersion.indexOf(MSIE)>=0)document.write(unescape(%3C)+\!-+-)
//--></script><!--/DO NOT REMOVE/-->
<!-- End SiteCatalyst code version: H.21. -->
var s_account=jjesquireprod
var s=s_gi(s_account)
/************************** CONFIG SECTION **************************/
ot na
/* You may add or alter any code config here. */
s.charSet=ISO-8859-1
/* Conversion Config */ NOTE: For pages that
s.currencyCode=USD
may be loaded either
is
N ter
s.linkInternalFilters=javascript:,jjesquire.com
s.linkLeaveQueryString=false includes/s_code.js, which
s.linkTrackVars=None
s.linkTrackEvents=None will use the protocol of the
current page. This will avoid
e
y
AND_PATH_TO_CODE_HERE, and replace the text with the domain and
t e nl
path of the location to the Global JS file.
2. Upload the Global JS file. Determine a location on the Web server(s) that is
bu O
accessible to all site visitors.
3. Customize the page-level code file on each page as directed in the Solutions
Design Reference.
tri se
4. Insert the modified page-level code file into each page or in a global include
file.
D lU Placing the Code
The SiteCatalyst code can be placed anywhere inside the Body tags (<BODY>
ot na
</BODY>) of a well-formed HTML page. Most browsers do not interpret image re-
quests placed inside HEAD tags (<HEAD></HEAD>) correctly, which can cause the
code to function erroneously. Adobe recommends placing the code in a global include
is
N ter
file at the top of the page (inside the HTML body tag), however the code can be placed
anywhere on the page.
D In
e
ob
o
Ad
y
on their site (think very large media sites). allows you to view
t e nl
data collected from
your site on any
bu O
DigitalPulse Debugger Automatic install given page, works
1. Go to KB ID 534. for SiteCatalyst,
2. In FireFox or Chrome: Click and hold the green DigitalPulse Debugger Test&Target,
tri se
Recommendations and
button in the KB article, and drag to your bookmarks toolbar, or to the
Survey
desired location in your Bookmarks menu.
D lU
3. In Internet Explorer: Right-click the green DigitalPulse Debugger button
in the KB article and select Add to Favorites. You will be prompted to
approve this action because the bookmark contains JavaScript. Choose to
ot na
accept. You will then need to assign the favorite to a folder or toolbar.
4. If neither work, use the manual install described below.
is
N ter
y
t e nl
bu O
tri se
D lU
ot na
is
N ter
Packet Analyzers
D In
In addition to the SiteCatalyst JavaScript Debugger, there are many different third-
party packet analyzers that you can use to read image SiteCatalyst image requests.
One of the most popular packet analyzers is HTTPFox for FireFox. Other popular
e
packet analyzers, some generic and some specifically made for Web analysts, are
ob
For this training, we recommend that you use the SiteCatalyst JavaScript Debugger or
Ad
HTTPFox. Take note that if youre using a packet analyzer during the training, quick-
ly cut to the SiteCatalyst image request by searching for /ss/ which stands for
packet analyzer SuperStats, a former name of Adobe SiteCatalyst. All SiteCatalyst image request
software that can log
URLs contain /ss/.
traffic over a network, can be
used in lieu of the javascript
debugger to read data
collected by the sitecatalyst
code
Exercise 1.1
e
Assignment:
Ad
Setup 1.2
Using Your JJ Esquire Web Site
Estimated Time: 5 minutes
Assignment:
1. View your personal JJ Esquire Web site (familiarize yourself with it)
2. If using an FTP account, log in so that you can modify your Web site code
3. Log into your SiteCatalyst account and select your Report Suite to start view-
ing reports
y
t e nl
Overview
bu O
In this chapter, well briefly explore the Adobe SiteCatalyst Interface. During this
Implementation Training, you will run reports and become well acquainted with the
tri se
interface as you validate your code. This chapter will show you some of the options
associated with SiteCatalyst reports.
Objectives
D lU
Sign into Adobe SiteCatalyst
ot na
Explore the Adobe SiteCatalyst Interface
Understand Data-driven Decision Making in Adobe SiteCatalyst
is
N ter
D In
e
ob
o
Ad
2-1
SiteCatalyst Reports
Overview
y
TIP: In addition to The SiteCatalyst interface hosts the data collected from your Web site. As you learn
t e nl
perusing the interface about the SiteCatalyst code throughout this course, you should be able to map the
during training, you can learn variables to the different reports in SiteCatalyst.
bu O
more about the SiteCatalyst
14 or 15 Interface by watching The report organization in SiteCatalyst starts with metric-based reports at the top of
the SiteCatalyst New User the menu, continues with out-of-the-box item-based reports and concludes with cus-
tri se
Orientation video available tom item-based reports (Custom Traffic and Custom Conversion reports).
under Help>Training Videos.
Its free! D lU There are many reports in SiteCatalyst; far too many to discuss here. However, as a
SiteCatalyst implementor, you ought to be familiar with the interface so that you can
verify that your code is working correctly and populating the reports with the infor-
ot na
mation that you intended. This is also helpful so that you can understand questions
that you may get from report consumers and analysts.
is
N ter
As you run each report in SiteCatalyst, you will also find information on the left-hand
side under the Knowledge Base section to help you understand what kind of infor-
mation the report is giving you.
D In
Logging in to SiteCatalyst
To log into SiteCatalyst, go to http://my.omniture.com and enter your SiteCatalyst
e
login credentials (Company Name, User Name and Password). From the drop-down
ob
Running Reports
Running reports is easy. Select the desired report from the left-hand menu. Metric-
based reports are located in the Site Metrics folder. All other reports are item-based
reports sorted by a metric or calculated metric.
y
t e nl
bu O
tri se
D lU
ot na
is
N ter
Report Structure
SiteCatalyst reports consist of Report Details and a Graph. In a metric-based report,
the Report Details show the metric broken out over a unit of time such as hours or
D In
days. In item-based reports (pictured below), the Report Details show the line items of
the report (in the example, the line items are products) sorted by a metric (in the ex-
ample, products are sorted by Revenue).
e
ob
The Graph can show a ranked view of the top five values (default) or a trended view of
the top five values over a period of time by any applicable metric (for example, trend-
o
ing the top five products by revenue for each day of December).
Ad
Change the Report Date using the calendar at the top-right corner. Choose a graph
D In
that best displays the data in your report using the graph selector under the calendar.
Filter by any value in your line items by using the search field (the advanced filter
e
makes it possible to include or exclude words in your search). The tool bar hosts sev-
eral SiteCatalyst features that allow you to download, schedule and bookmark re-
ob
ports. Here, you can also create Dashboards, Targets, Alerts, Data Extracts and per-
o
At the top of the interface, you should see a short welcome message followed by your
name and company name. Moving from left to right across the top of the interface,
you should encounter a universal Search/Help field. In this field, you can search the
y
t e nl
bu O
tri se
D lU
ot na
is
N ter
D In
e
ob
o
Ad
y
t e nl
NOTE: Make sure
that you know what
bu O
Report Consumers need
to see in the reports. Dont
skimp when defining the Key
tri se
Business Requirements of
your Report Consumers.
D lU 1. Measure: Capture KPIs and other metrics
ot na
2. Report: Generate reports on collected data
4. Optimize: Test and enhance effectiveness (the purpose of gathering this data)
The process shown here should be followed over and over again in order to make posi-
tive changes to your site, thus increasing your conversion and reaching your Web site
e
goals.
Your job is to make sure that analysts have the reporting data that they need to go
ob
through this Web analytics strategic process. If they cannot find the data that they need
o
to make sound analysis, then you may need to do some additional implementation to
Ad
meet their needs. Wed like you to get it right the first time, so think about what Report
Consumers need during this training and as you implement. If you dont know what
they need, schedule a meeting with the Report Consumers in your company to discuss
their needs. Review the next chapter on KBRs and KPIs to help you keep them focused
on true data needs and not data requests that will never be used to optimize the site.
For more information on this process, contact Adobe Training Services regarding the
SiteCatalyst User Training course.
y
t e nl
Overview
bu O
This chapter introduces the concept of Key Business Requirements and Key
Performance Indicators. By accurately defining your KBRs and KPIs, your implemen-
tri se
tation of SiteCatalyst will meet the needs of your Report Consumers. This chapter also
introduces the Business Requirement and Solutions Design Reference documents.
Use these documents to record the business objectives behind your implementation
D lU
and SiteCatalyst variable and metric usage (very helpful because you probably wont
remember how you coded the site months from now without this document).
ot na
Objectives
Understand how to derive KPIs from your KBRs
is
N ter
3-1
KBRs vs. KPIs
y
One of the most important things you will do during the Implementation Process is
t e nl
work with Report Consumers to define the Key Business Requirements. These KBRs
are key objectives for the site. Report Consumers will need to know if these KBRs are
bu O
being met in order to make accurate and timely site optimization decisions. Before
you start coding, make sure that you understand the expectations of your Report
tri se
Consumers.
If your goal is to be healthier, you may wish to define certain requirements that make
key objective or site up this ambiguous goal to be healthier. Maybe you want to...
goal
1. Lose weight.
D In
2. Lower cholesterol.
These are possible KBRs. You need hard and fast metrics to determine if and when
e
key performance you meet those KBRs. These are the Key Performance Indicators. KPIs in this case
would be:
ob
indicators
the metrics and
1. Weight in pounds/kilograms/stone (trended over time)
o
report consumers if
deciliter of blood (trended over time)
they are meeting their
kbrs or key goals KPIs show if you are meeting those KBRs.
The requirements above are in fact the Key Business Requirements, but you can re-
state them to be a bit more focused so that others can easily understand what you want
in an automobile:
At this point, you need to think about the metrics or Key Performance Indicators that
can show you if the car of your dreams meets your objectives or Key Business
Requirements. From your KBRs, you define the following KPIs:
y
t e nl
bu O
tri se
D lU
ot na
is
N ter
TIP: Be sure to
Your Key Performance Indicators tell you if you are meeting your goals (fulfilling
D In
if youre meeting your objectives. This Implementation Course focuses on Design and design and deployment of
o
Deployment (i.e., mapping your KPIs to SiteCatalyst variables and tagging pages with code and assumes that the
Pre-Implementation stage is
Ad
SiteCatalyst code).
complete.
Chapter Three Key Business Requirements and Solutions Design Reference 3-3
Your Ideal Implementation is More Than Just Code
The ideal SiteCatalyst Implementation should answer the business questions of your
report consumers. Do you know what their questions are? If not, find out before im-
plementing. Youll save yourself a lot of time. Remember the law of Garbage In=
Garbage Out. You wont know what to capture if you dont know what your report
consumers expect.
y
t e nl
An ideal SiteCatalyst Implementation should also be scalable. By planning ahead, you
can efficiently implement code on your site and stay within the limits of 75 Traffic and
bu O
75 Conversion Variables, 20 Custom Events (metrics) and all character limits associ-
ated with each variable. What will your needs be next year? How will your implemen-
tation need to evolve with your site? Create an implementation that can scale with
tri se
your site. Always think of the most efficient way to implement using the variables and
tools (such as classifications) available to you.
D lU
TIP: Adobe Consulting Adobe Fusion Method
can help you with With new customers, Adobe uses an effective implementation process known as
ot na
your industry-specific Fusion. Adobe Fusion incorporates an awareness of a companys technical needs,
implementation needs Key Business Requirements, and Adobes best practices for implementing SiteCatalyst
through the Adobe Fusion for Web sites in a particular industry.
is
N ter
Method.
This course focuses on two phases of the implementation process, namely the Solution
Design and the Code Deployment. Involved primarily in these two phases are two
D In
specific documents: The Key Business Requirements document and the Solutions
Design Reference document. Adobe offers templates for these documents, but there is
e
no obligation to use them. The main purpose of these documents is to ascertain needs
from the business owners and to map these needs to SiteCatalyst variables, docu-
ob
menting the process along the way. There are some key aspects of the Fusion Method
o
Adobe Fusion
Adobe Fusion is the proprietary deployment methodology for all Adobe products. At
the core of this methodology is the blending of the customers business needs, with
Adobes industry best practices, and technical deployment expertise.
t e nl
recommends Key Performance Indicators and sample reports to visualize results, and
Quick-Win actions a company can make to improve business after implementation.
bu O
Specific deployment instructions guide the sites team through the implementation
process itself and is followed up with a formal Implementation Validation Review. In
tri se
short, the Adobe Fusion Methodology is designed to enable tangible return on invest-
ment (ROI).
D lU
Implementation Documents Summary solutions design
There are several documents to help guide you through the implementation process. reference
Some are owned and maintained by you, and some are resources to help you along journal of
ot na
the way. implementation
variable and features
is
Your Documents usage, your future
N ter
A Business Requirements Document is simply information from the business self will thank you for
owners in your company that outlines their needs. This class will teach you how keeping this record
D In
to transform these needs into solutions and variables. During this course, the
Business Requirements Document is included with the Solutions Design
Reference Excel spreadsheet.
e
The Solution Design Reference is an Excel spreadsheet that is used to map out
ob
and document each variable and function that will be used in the deployment of
the SiteCatalyst code. This is either provided to you through the implementa-
o
tion process, or you should create your own. During this course, use the SDR
Ad
Reference Information
The SiteCatalyst Implementation Manual is a reference manual for all
SiteCatalyst variables and functions.
Custom materials may be provided by Adobe Consulting to help you get up and
going. You then own, maintain and update these materials as your implementa-
tion grows and changes over time.
Chapter Three Key Business Requirements and Solutions Design Reference 3-5
The SiteCatalyst Knowledge Base, available in the SiteCatalyst interface, can
help you get answers to common questions throughout your SiteCatalyst
implementation and use.
y
t e nl
bu O
tri se
D lU
ot na
is
N ter
D In
e
ob
o
Ad
Traffic Variables
y
t e nl
This second section introduces you to the SiteCatalyst Traffic Variables and shows
bu O
you how they behave. Youll learn about Predefined and Custom Traffic Variables and
different ways they can be used to help you track whats happening on your site. Youll
tri se
learn how to tackle the complicated task of naming your pages and site sections. Last,
you will learn about additional features and functions that can be enabled on your
variables such as correlations and pathing.
D lU
Exercises throughout this section are based on your own JJ Esquire Web site. Your
instructor will assign you a Web site and FTP credentials so that you can modify the
ot na
SiteCatalyst code on your JJ Esquire Web site during this training. This will provide
you with excellent practical experience.
is
N ter
4-1
Exercise for Section Two
Generate Your Own S_code.js File
Estimated Time: 5 minutes
y
6. Dont select https://
t e nl
Create s_code.js file
bu O
1. Copy code under Core JavaScript File tab
2. Paste code into your JJ Esquire s_code.js
tri se
3. Add Global Report Suite ID s_account
y
t e nl
Adobe uses Traffic Variables to collect traffic and pathing data and display it in
bu O
SiteCatalyst reports. This chapter introduces you to Traffic Variable functions and
behavior. Traffic Variables are one of four basic variables used in a SiteCatalyst
tri se
Implementation. The other variable types are Conversion, Configuration and
Automatic variables.
Objectives
D lU
Understand predefined Traffic Variable uses
Learn how metrics are applied to Traffic Variables
ot na
Learn what Traffic Variables help you know about site activity
is
Introduction
N ter
Traffic variables are the real building blocks of Web analytics. In SiteCatalyst, there
are some Predefined Traffic Variables that have specific functions, and there are also
D In
Custom Traffic Variables that allow you to measure custom site attributes (your site is
different from others and thus you have different tracking needs). Just by having the
most basic of code on your site, you can get about 60% of the reports available in
e
SiteCatalyst. However, the remaining 40% of the reports are often considered the
ob
most powerful, because they are customized to your needs. These Custom Traffic
Variables should be enabled as needed.
o
Ad
Traffic Variables are used to capture traffic and pathing data in SiteCatalyst. They
function as counters. They count instances of specific usage on a Web page, e.g., the
number of times a user clicks a certain link on a page. Additionally, the Traffic
Variables enable you to logically group pages based on a select set of characteristics or
conditions to help answer your business questions. Each instance applies only to the
page on which the value is set. The available traffic variables are defined as follows:
4-3
Page Name The pageName variable contains the name of each page on
your site. It should be populated with a value your Report
Consumers will recognize.
Server The server variable is used to show either the domain of a
Web page (to show which domains people come to) or the
server serving the page (for a load-balancing quick refer-
ence).
Site Sections The channel variable is most often used to identify a section
of your site. For example, a merchant may have sections like
NOTE: In the
Electronics, Women, or Jewelry. A media site may have sec-
SiteCatalyst code, tions like News, Sports or Business.
y
Custom Traffic or Custom
Hierarchies The hierarchy variable is used to determine the location of a
t e nl
Insight variables appear as
(maximum of 5) page in your sites hierarchy. This variable is most useful for
s.props. sites that have many levels in the site structure. For example,
bu O
a media site may have four levels to the Sports section:
Sports, Local Sports, Baseball, Red Sox. If someone visits the
Baseball page, then Sports, Local Sports and Baseball will all
tri se
reflect that visit.
404 Error Page The pageType variable captures the errant URL and refer-
D lU ring URL when a 404 Error Page is displayed, which allows
SiteCatalyst analysts to quickly find broken links and paths
that are no longer valid on the site.
Custom Traffic Custom Traffic (called Custom Insight Variables in parts
ot na
(maximum of 75) of the interface or s.props in the code), are counters
that count the number of times each value is sent into
SiteCatalyst. For example, property variables can be used
is
N ter
Pathing While path reports are shown for page names by default,
SiteCatalyst offers the ability to enable path reports for other
ob
variables. Thus, you can see path reports by site section, sub sec-
o
y
t e nl
bu O
tri se
D lU
ot na
is
Why would you want to see these reports?
N ter
servers)
ob
o
Youll soon be coding your own JJ Esquire site and putting the knowledge you gain
from this section into practice. As you do so, dont hesitate to take notes in the mar-
gins of this workbook about things that you should track on your own Web site.
y
t e nl
bu O
tri se
D lU
ot na
is
N ter
D In
e
ob
o
Ad
Page Naming
y
t e nl
Overview
bu O
Page Names are the foundation of your implementation. Imagine opening up the
SiteCatalyst Pages report and seeing a list of URLs or nonsensical page names. It can
tri se
frustrate any Web analyst. Use the concepts in this chapter to make reports that in-
volve page names as easy to understand as is possible within the context and size of
your site. D lU
Objectives
ot na
Learn the Five Cs of effective page names
Learn how metrics are applied to Traffic Variables
Understand Page Name variable limitations
is
N ter
D In
e
ob
o
Ad
5-1
Laying a Solid Foundation
The page is the most important unit of measurement on the Web site. Several metrics
y
are based on page data (e.g., pathing metrics). Additionally, many reports display data
t e nl
from the page name. Therefore, deploying a page naming strategy that is helpful to
the SiteCatalyst user most often requires forethought and planning. A good page
bu O
naming strategy will enable your Report Consumers to maximize their use of
SiteCatalyst reports.
tri se
Key Business Requirements
Here are some of the common business questions and objectives that can be answered
D lU though proper use of the s.pageName variable:
s.pageName
captures page name,
Naming Strategy: Laying a Solid Foundation
Without question, your page naming convention is the most important element you
D In
sensitive, limited to what level you need to understand exactly what your visitors are doing and how they
100 bytes are interacting with your site.
ob
o
The time and effort you initially spend in developing a page naming strategy is a
Ad
worthwhile investment. Page names impact many other forms of analysis, such as
pathing and data correlations. Well-planned page names ensure cleaner, more accu-
rate data as well as enhanced and accelerated user-adoption of SiteCatalyst through-
out your organization.
y
Show how people path (move) between pages
t e nl
Syntax
s.pageName=page name
bu O
Example NOTE: Traffic
s.pageName=Home Page Variables such as
tri se
s.pageName are case-
The example above and most examples throughout this workbook employ double sensitive and sensitive to
quotes in the JavaScript; however, using single quotes, such as in s.pageName=Home
D lU diacritical marks such as
Page, is also valid. Just be consistent (always use double quotes or always use single accents, umlauts and tildes.
quotes).
ot na
is
N ter
D In
e
ob
o
Ad
y
t e nl
bu O
Clear and user-friendly Unclear and confusing
More concise Too long (URLs)
tri se
Easy to filter and search Awkward to filter and search
Consistent format Inconsistent format
D lU PageName Considerations
Remember the following when working with the pageName variable:
The pageName variable is case-sensitive, for example: Home Page and home
ot na
page are seen as two different pages.
Sensitive to diacritical markings (e.g., , , , , , , , , ). For example,
is
LOral cosmetics and LOreal cosmetics are two different pages. If its not
N ter
nized as single quote will prematurely close statement causing the entire image
request to fail).
o
100 bytes do not always equal 100 characters. For example, e typed 100 times
equals 100 bytes (e stored as one byte); however, typed 50 times also equals
100 bytes ( stored as two bytes in SiteCatalyst). Other characters with
diacritics, Cyrillic characters, Asian characters and other character sets vary
NOTE: Only the first
between 1 and 4 bytes.
20 to 30 characters of
the page name are displayed Only the first 20 to 30 characters of the page name are displayed in most
in most SiteCatalyst graphs or SiteCatalyst graphs or Path reports.
pathing charts. If a page name changes, historical data cannot be easily re-assigned to the new
name. In order to facilitate the measurement of page-related trends over time, it
is important to maintain consistent page names in s.pageName.
Recommended Options
Server-side
Use server-side logic to populate page name for each Web page.
y
The following limitations may exist when using server-side logic to populate the page
t e nl
name:
bu O
Flexibility in page naming will depend on your platform.
Requires some ongoing diligence to ensure that the page naming logic doesnt
tri se
break based on changes to the URL structure or new content additions.
Hard-coded
D lU
Manually set page name on each Web page.
Page names can be manually hard-coded into each Web page in the s.pageName
variable.
ot na
Allows you to create a friendly page name that isnt restricted to whats found in
the URL or title tag.
is
N ter
D In
e
ob
The following limitations may exist when hard-coding the page name:
o
Even though the domain has been stripped from the page names, using URLs
for page naming can still lead to long page names (page name is truncated at
100 bytes).
Will treat different URL variations of the same Web page as separate pages (e.g.,
http://www.jjesquire.com/index.html and http://www.jjesquire.com/home.html).
Will aggregate dynamic pages under the same page name because it ignores the
query string (e.g., ../storypage.html?storyid=123, and
../storypage.html?storyid=456).
y
Not Recommended Options
t e nl
Document.title
Uses the title of each page instead of URL.
bu O
s.pageName can be set to each Web pages TITLE tag;
e.g., s.pageName=document.title;
tri se
D lU
ot na
The following limitations may exist when using document.title:
Page titles can contain leading white space which may be interpreted differently
by different browsers. Potential to create two page name records from one title
D In
SEO initiatives can pack page titles with unnecessary keywords and cause the
ob
Leave Blank
SiteCatalyst defaults to page URL. If the pageName variable is left blank, the page
URL will be entered into s.pageName (excluding any query strings).
The following limitations may exist when leaving the s.pageName variable blank:
URL page names can be very long and unwieldy for users.
Valuable real estate at the beginning of each page name is unnecessarily wasted
on http://www.domain.com... (can be difficult to read some graphical
SiteCatalyst reports such as the Path reports).
Different URL variations of a particular Web page will be treated as separate
pages instead of aggregated together (e.g., http://www.jjesquire.com/index.html
y
By default, Adobe displays the page URL in SiteCatalyst reports. URLs are used for
t e nl
Web operation, not Web analytics. Using URLs in Web analytics reports is disadvan-
tageous to users who are not familiar with the URL names; they may get confused
bu O
when they view the reports. For this reason, Adobe makes it possible to apply friend-
ly names to replace the URLs in the SiteCatalyst reports.
tri se
Friendly Page Names
There are five key aspects of effective page naming:
D lU
ot na
is
N ter
D In
e
ob
o
As illustrated above, your page naming strategy must balance the five seemingly dis-
Ad
parate requirements.
Contextual Context focuses on the URL structure stem, which helps to identify
where a page resides. Include directory structure or content hierar-
chy in the page name to help users orient the page within the site
and simplify report filtering.
Clear Clarity is an overarching concern for the entire page name. Ensure
that it is clear and easily identifiable for infrequent users.
Concise Conciseness primarily focuses on making the URL structure stem
as short as possible. The specific page name part should also be as
concise as possible, but most of the emphasis will be on the stem.
Keep the page name as short as possible to maximize limited char-
acter space.
y
t e nl
bu O
tri se
D lU
ot na
Concise: Instead of using categorys full name, JJ Esquire Women, it has been
abbreviated to just women. You can only abbreviate directories and subdirec-
e
the reports are in lower case, thus avoiding duplicate values for the same page.
o
Consistent: Processes are put in place (agreed upon and distributed) so that the
format of the page naming is the same across all departments, even though the
pages are created and managed by different groups.
The follow list shows some of the common benefits of implementing user-friendly
page names:
y
are recorded in their entirety terface, but is sent directly to Data Warehouse.
t e nl
in Data Warehouse.
bu O
tri se
D lU
ot na
is
N ter
Traffic metrics are always recorded, but fall under separate line items listed as
Unspecified for page names not in the first 500,000 page recorded during the
D In
month (Version 15). All page names are always available in Data Warehouse.
e
ob
o
Ad
1. Aggregate
Product Details
Tools:Screwdrivers:Product Details
y
t e nl
bu O
2. Keep Unique
Product Details
tri se
Craftsman:18 pc Screwdriver Set
Article Pages
Most content sites need visibility into specific article pages, so page names must
be unique.
Many media companies find it beneficial to include the content hierarchy in the
page name.
Some content sites cannot do this because one article can reside in multiple
content sections.
For usability purposes, it is also helpful to include an abbreviated article title.
Full article title, date, and article ID can be placed into prop variables and
correlated with the page name.
If s.prop1 is the Date, s.prop2 is the Article ID, and s.prop3 is the Full Article Title
(the detailed page name), then
s.prop1=20090916
s.prop2=2344581
s.prop3=Australian Cat Strays 2,400 miles, returns home
y
Alternate Detailed Page Names
t e nl
If you have over 500,000 page names, it may make sense to consolidate all of your
Product Detail pages into one Page Name and detail those page names in a separate
bu O
s.prop or Custom Traffic Report. The page name strategy should ensure that your
page name is detailed, but not so granular that it becomes cumbersome. By setting a
tri se
different, more-detailed level of granularity in a Custom Traffic Variable, we create a
new report dedicated to product pages. This reduces the number of unique page
names for s.pageName. If you wish to path by product pages and you use this type of
D lU implementation, be sure to enable pathing for s.prop1.
You can specify a friendly name for Custom Traffic Reports in the Admin Console.
Go to Admin>Report Suites>Edit Settings>Traffic>Traffic Variables.
The best page naming strategies utilize a different variable for each level of hierarchy
within your site. For example, the channel variable can be used to indicate the site
section, the s.pageName variable to show content type, and a custom insight variable
for detailed content. The following questions may help you to properly define your
page names:
y
What site was the user on?
t e nl
What template served the site content?
In which process was the user involved?
bu O
What content did the user see? (if the data is too detailed, but necessary to
record, move it into a separate variable)
tri se
What event happened next? (pathing)
What conditions existed within a specific state of the page? (page errors,
alternate versions of the page)
D lU
On the fictitious JJ Esquire site, we recommend setting the Page Hierarchy into the
page name.
ot na
s.pageName=Women:Activewear:Fur Trim Ski Jacket
A good page naming strategy will enable you to maximize your users SiteCatalyst
experience. The following practices will help you to create the best page naming strat-
egy for your organization:
e
y
t e nl
bu O
tri se
D lU The following Path report shows aggregate page names. This method consolidates
some pages by type such as product pages. In the report below, the analyst can
quickly estimate conversion rates, on a certain path, between such buying steps as
ot na
viewing a product, selecting a size and adding the item to the cart.
is
N ter
D In
e
TIP: If you
ob
have a Multi-
o
Suite Environment, be
conscientious of how
Ad
Multi-suite Environment
When you use multi-suite tagging or even rollup functionality to create a Global
Report Suite, you need to create a page naming strategy that works within a global
report suite. Within a multi-suite environment, Adobe recommends that you add a
brand and/or region identifier to each page name. This identifier will be most impor-
tant in the global report suite because without it users will not be able to discern which
pages belong to which Web sites. In order to keep page names concise, you may want
to consider using recognizable acronyms for each regional or brand-specific site:
y
t e nl
bu O
International Sites
tri se
The 100-character limit for page names in SiteCatalyst is for languages that rely on
single-byte characters (English, French, German, Spanish and others without the use
D lU
of diacritical marks). Asian languages such as Japanese or Korean rely on multi-byte
character sets, which require more space. Depending on the character setdouble-
byte vs. multi-bytethe page name length limitations in SiteCatalyst can be much
ot na
tighter and can vary by Asian language.
The granularity level chosen for page names will impact ClickMap analysis. ClickMap
depends on the s.pageName variable for page link measurement. It will default to the
URL to define a page link when the s.pageName variable is not populated. You need to
D In
ensure that your chosen granularity level will support the needs of your ClickMap us-
ers. Ask yourself if aggregating low-level pages enhances or undermines your page link
e
analysis.
ob
o
Ad
y
Cannot combine multiple pages by renaming
to modify the page
Example: two pages that you name Home cannot be combined
t e nl
name, changing the name in
s.pageName will create a new
page record. For example, if your
bu O
wish to rename Homepage to
Home Page, doing so in the
code creates a new record with
tri se
no historical link between the
two pages. The page naming util-
ity allows you to give the page
D lU
a new name that appears in the
interface (Home Page). The
When using the Page Naming Utility, page names can be reset as needed. Of course,
page name in the s.pageName
the best practice is to do the best implementation that you can and get it right the first
ot na
code (Homepage) should not
time. This tool can make life a little confusing for analysts that use the debugger and
be changed.
see a different page name being sent from the page than appears in the reports. When
you change a page name, think about putting a note in the notes section at the foot of
is
N ter
Additional Considerations
D In
Remember that the s.pageName variable creates a unique record. This means that the
URL can change, but the page name remains the same as long as you continue to
populate s.pageName with the same friendly name.
e
For example, lets suppose that there are multiple URLs leading to the same HTML
ob
http://jjesquire.com/index.html
Ad
http://www.jjesquire.com
If you always populate s.pageName with a friendly name, such as Home Page, all
instances of the page will fall under Home Page in SiteCatalyst reports regardless of
the URL. If you fail to populate s.pageName, SiteCatalyst will default to the URL and
that would result in two different page names since there are at least two different
URLs for the Home Page.
y
Page Views, Visits and Unique Visitors for Page Names with prepended Report
t e nl
Suite ID
Page Views, Visits and Unique Visitors for Hierarchy Levels
bu O
Assignment:
Write the Page Name code for the following pages:
tri se
1. The JJ Esquire Home Page on the Germany site
2. The Womens Fur Trim Ski Jacket in Activewear on the JJ Esquire United
D lU
States site.
3. The Mens Tuxedo page in Fine Apparel on the JJ Esquire France site.
4. The Mens Tuxedo page in Fine Apparel on the JJ Esquire UK site.
ot na
Solution
D In
1. _________________________________________________________________
2. _________________________________________________________________
e
3. _________________________________________________________________
s.pageName =UK:Men:Fine Apparel:Tuxedo
4. _________________________________________________________________
ob
o
Assignment:
On your own JJ Esquire Web site, code Page Name based off of the site structure using
a colon delimiter. Validate that the code was passed in appropriately.
Note: To differentiate page names on your site from those of other students, prepend a
global value such as your initials; e.g., s.pageName=JG:Men:Fine Apparel:Tuxedo
Additional Predefined
Traffic Variables
y
t e nl
Overview
bu O
In this chapter, well cover the other predefined Traffic Variables that are available
besides s.pageName. These variables, except for the hierarchy and error page variable,
tri se
function just like s.pageName and have the same limitations.
Objectives D lU
Understand the purpose of additional predefined Traffic Variables
Understand coding best practices
ot na
Learn about variable limitations
is
N ter
D In
e
ob
o
Ad
6-1
Other Standard Variables
In addition to the s.pageName variable, SiteCatalyst offers several other traffic vari-
y
ables to help you collect and segment Web analysis data from your site.
t e nl
Key Business requirements
bu O
Here are some of the common business questions and objectives that can be answered
though these other standard traffic variables:
tri se
Identify how various content categories are utilized by visitors.
Track site usage based on established content hierarchies.
Site Sections The channel variable is most often used to identify a section
s.channel of your site. For example, a merchant may have sections like
Electronics, Toys or Apparel. A media site may have sections
D In
s.hier1-5 ful for sites that have many levels in the site structure. For
example, a media site may have four levels to the Sports sec-
ob
its the Baseball page, then Sports, Local Sports and Baseball
will all reflect that visit.
Ad
404 Error Pages The pageType variable captures the errant URL and referring
s.pageType URL when a 404 Error Page is displayed, which allows users
to quickly find broken links and paths that are no longer
valid on the site.
y
t e nl
In the case of your Jewelry site section, every page within that section should con-
tain the s.channel=Jewelry code. In the case of the Electronics site section, every
bu O
page within that section should contain the s.channel=Electronics code. All Page s.channel
Views, Visits and Unique Visitor metrics associated with pages within the site section captures traffic to
tri se
will roll up in the Site Section reports under section names such as Jewelry and high-level page groups
ElectronicsAnything that you put into s.channel will show up in the Site Sections such as site sections,
report, in the Traffic > Site Content folder. Therefore, channel and site sections
D lU populates the site
are synonymous. section report, case
sensitive, limited to
100 bytes
Once again, we recommend that you populate the channel variable on every page that
ot na
belongs to a section. You can even make a key page (such as the home page) its own
section. When sections have one or more levels of subsections, you can use additional
is
N ter
Custom Traffic Variables (s.props) to identify such levels (discussed later in this
chapter).
D In
It is usually easy to identify prime values for the channel variable, simply by looking at
the main navigation for the site. If you want to know how much traffic goes to these
areas of your site, code the channel variable with the associated value.
e
ob
Note: Classifications can be used in SiteCatalyst Version 15 to group pages into Site
Sections as well (with accurate Page View, Visit and Unique Visitor counts); however, pa-
o
thing can only be enabled for s.channel or other Traffic Variables, not classifications.
Ad
y
the server variable is not used to measure servers, but is used to measure specific sites,
s.server
data centers, or vanity domains. The following examples show how the server variable
t e nl
records web page
can be used.
domain or the server
bu O
serving the page, s.server=mainserver.bell.ca
populates the server s.server=JJ United Kingdom
report, case sensitive, s.server=window.location.host
tri se
100 bytes
D lU
ot na
Any value going into the server variable fills the Servers report found in the Traffic >
is
N ter
Site Content folder. Like other traffic variables, s.server has a limit of 100 bytes and is
case sensitve. The server variable could be used to identify traffic between sites in-
stead of putting a site ID into the s.pageName variable. Consider a page populated
D In
By correlating these two variables in a Global Report Suite, you can segment page
o
names by domain (country sites in the example above). The use of s.server to indicate
site domain is also very useful when creating segments with the Data Warehouse tool
Ad
y
records site structure
and allows the analyst
t e nl
to start from the top
of the site hierarchy
bu O
and drill down through
it, populates the
tri se
hierarchy report, case
sensitive, limited to
255 bytes
D lU
ot na
Multiple Hierarchies
If you have different ways to cut your site into hierarchical views, you can use more
than one hierarchy variable. There are five different hierarchies available in
is
N ter
SiteCatalyst, each having its own settings and character length. You simply use the NOTE: Up to five
numbers 1-5 with the s.hier variable. For example: hierarchies are
D In
In this case, there might have been two logical ways to cut the site into a hierarchy,
including:
ob
Hierarchy 1 matches the site structure. Hierarchy 2 segments the site by seasonality and
newness of the product. Additional hierarchies give the analyst multiple ways to drill
down into logical page groupings. Using separate hierarchy variables, you can drill
down into your site a couple of different ways to see the site usage in different fashions.
Please note, you may find that one hierarchy overlay (using s.hier1) is sufficient even
for a very large site. Do not feel obligated to use s.hier2 through s.hier5 if it does not
fulfill a Key Business Requirement.
The Hierarchy variable allows you to code up to 98 levels on your site. Its great to
know that the Hierarchy variable has that type of flexibility, but keep in mind that 98
levels is provides for some pretty intense and deep reporting. In fact, using just 3-5
levels is common among even large sites. Using more than 10-15 levels is actually less
y
common. Well let you come to your own conclusion on that one in case you havent
yet created the hierarchical architecture of your site.
t e nl
Hierarchy Gotchas
bu O
The following items are limitations or gotchas that you need to keep in mind when
working with hierarchies.
tri se
The maximum length of each hierarchy level is 255 characters. Each portion is
limited to 255 characters, and the total for the entire variable is also 255
D lU characters. The length of any individual level should be clipped to 255 divided
by the number of elements plus one (to account for the delimiter character
between levels).
ot na
Strip delimiter characters from hierarchy level names.
No blank beginning, middle, or ending levels, which create a blank level of
the hierarchy, reported as Unspecified in the reports, as shown in the
is
N ter
following examples:
s.hier1=|Level 2|Level 3
D In
s.hier1=Level 1 |Level 2
o
Ad
Both serve a purpose. Lets think about this graphically and take a look at the resultant
reports. In the following example, weve captured the hierarchy of this site in s.hier1
and the same hierarchical information in three Traffic Variables: s.channel, s.prop1
and s.prop2 for Site Section, Subsection and Sub-subsection, respectively.
levels? The answer is yes. The only drawback is that the Page View metric is the only
metric available when breaking one Traffic Report down by another. If you wish to see
Visits and Unique Visitor metrics at each level, use the Hierarchy variable.
D In
So when trying to remember the difference between Hierarchies and Site Sections,
consider the following:
e
Hierarchies show traffic subordinate to any superior levels while still showing
all enabled metrics (Page Views, Visits, Unique Visitors).
o
Hierarchy drill down follows site structure and may be easier for new analysts
Ad
Many Adobe SiteCatalyst clients employ both Hierarchies and Site Sections.
y
menting the s.pageType variable on the error page that your system serves when a visi-
t e nl
tor clicks on a retired link or enters an erroneous URL in the browser address bar.
With the s.pageType variable, you can discover broken site links and broken referral
bu O
links.
tri se
s.pageType To populate the s.pageType variable, follow the example below on your 404 error page
coded only on the 404 (remember to never populate s.pageType on any other page besides your error page).
error page, errorPage
D lU Do not deviate; the variable is case-sensitive.
is the only possible
value, s.pageName s.pageName=
variable, any URL captured in s.pageName is placed into the Site Content > Pages
Not Found report.
D In
This will show you all of the pages that people were looking for that no longer exist so
NOTE: You dont need that you can make necessary corrections to retired links on your site. In the Pages
to set other variables
e
Not Found report, click the icon to the left of the missing page name to see referring
on 404 pages, and you pages so that you can see where any broken links might be hiding on your site or a
ob
bu O
syntax:
s.pageName=404 Error: + document.location
tri se
s.pageType=errorPage
Using this method, you should prepend 404 Error: for easy filtering in the Pages
D lU
report. The erroneous URL will appear in both the Site Content > Pages and the Site
Content > Pages Not Found reports. Using this method, SiteCatalyst can only cap-
ture up to 100 characters of the erroneous URL.
ot na
is
N ter
D In
e
ob
o
Once again, remember to use the following code only on your sites error page. Use the
following syntax and be sure to enable a correlation between s.prop1 and s.prop2:
s.pageName=404 Error Page
s.prop1=document.location
s.prop2=document.referrer
By using this method, we actually opt not to use the s.pageType variable. The main
purpose behind Method 3 is to avoid populating too many erroneous URLs into your
Pages report (only one unique page name, 404 Error Page, will ever be populated
into the Pages report when the 404 Error Page is served).
In general, Method 1 is recommended for most clients, but these alternate methods
may be useful based on your site requirements. If you cant decide, contact Adobe
Client Care or your Implementation Consultant.
y
t e nl
Exercise 6.1
Traffic Variable Usage
bu O
Estimated Time: 3 minutes
tri se
Need to know content site usage at page and section levels
Determine if there are links to retired content
D lU Key Performance Indicators
Number of Page Views to pages that get traffic
ot na
List of links to missing content and number of attempts to access content
Traffic Metrics for the main areas of our site, available in top-level site navigation
is
N ter
Assignment:
What kind of variable(s) should you use to fulfill each business requirement?
D In
Solution
ob
Example
Ad
Implementation
Assignment:
y
Code the 404 Error Page to automatically record links to retired content (error page
t e nl
can be accessed from the Site Map).
bu O
Exercise 6.3
Traffic to Content Structure
tri se
Estimated Time: 2 minutes
D lU
Key Business Requirements
Track visitor traffic to multiple levels of page structure on the site
Understand consolidated site traffic across multiple sites
ot na
Ability to segment by site at the Global Report Suite level
is
Key Performance Indicators
N ter
Assignment:
D In
What kind of variable(s) should you use to fulfill the business requirements?
Solution
e
ob
Ad
Example
Implementation
Assignment:
On your own JJ Esquire Web site, code the following pages:
1. Home Page
2. Women Site Section page
3. Womens Activewear subsection page
4. The Fur Trim Ski Jacket page in Womens Activewear
y
t e nl
With the following values where applicable:
1. Page Name
bu O
2. Server
3. Site Section
5. Hierarchy
tri se
D lU
ot na
is
N ter
D In
e
ob
o
Ad
y
t e nl
Overview
bu O
As you implement SiteCatalyst code, you may need to capture certain values that are
custom to your site. If SiteCatalyst does not have a Predefined Traffic Variable to cap-
tri se
ture the data that youd like to record (examples of predefined variables are
s.pageName, s.channel, s.server, s.hier1), you should use a Custom Traffic Variable..
D lU
As an implementor, you have the option to enable and use up to 75 Custom Traffic
Variables. These variables are calls s.prop in the code and are numbered from s.prop1
to s.prop75. These variables havent been pre-named since custom variable usage dif-
ot na
fers between each SiteCatalyst client. You can name them in the interface and use
them for whatever purpose that best serves your analytical needs. This chapter will
is
N ter
Objectives
D In
7-1
Using s.props
y
Because Custom Traffic variables (also known as s.props in the code and Custom
t e nl
Insight Variables in the interface before they are renamed) are in fact custom, there
are endless business questions that can be answered though the Custom Traffic
bu O
Variables, depending on what you are capturing from your Web site. The following
list contains a few common goals and objectives:
tri se
Count values on a given page or function on the site.
Understand user navigation through the Web site.
D lU Understand internal user search behavior.
Segment visitor traffic by navigation or category.
Segment visitor traffic by demographics.
ot na
There are several terms that might be used when you are talking about these variables.
These include:
s .prop
custom traffic variable,
ob
custom insight
o
variable, property
variable, each s.prop
Ad
populates a custom
traffic report, is case
sensitive, limited to
100 bytes, up to 75
available
y
t e nl
Looking at these examples, you can now see why they are called s.props. That is how
they look in the code. They are also sometimes called props for short, or property
bu O
variables for long.
In the interface, the menus call the reports Custom Insight reports. These Custom
tri se
Insight reports are based on traffic variables that behave the same as the predefined
variables such as s.pageName, s,channel, and s.server. For example, they are limited to
D lU
100 bytes of data, are case sensitive and they do not persist from page to page. There are
75 Custom Traffic Variables available for your use and enjoyment (s.prop1 through
s.prop75). You can enable and name these Custom Traffic Variables in the Admin
ot na
Console under Admin>Report Suites>Edit Settings>Traffic>Traffic Variables.
There are two main purposes for populating a custom traffic variable:
Flash version
Media player version
Item selected
In all of these cases, you are not really asking how much traffic (how many page views)
happened with a specific value. You are simply asking how many times a value was
recorded.
By the way, it is ALWAYS a good idea to push values to a specific case when the user
has a chance to type something in. As has already been stated, Traffic Variables are
case sensitive, so in the case of an internal search field, hat, Hat, and HAT would
all be separate entries in SiteCatalyst reports if not forced to lowercase or uppercase.
The most common and recommended solution is to push all user-inputted data to
lower case.
y
t e nl
bu O
tri se
D lU
To force an internal search term to lower case, use the following code:
ot na
s.prop2=USB Memory
TIP: Force all user-
inputted values s.prop2=s.prop2.toLowerCase()
is
to lower case to prevent
N ter
s.prop2? The answer is that it depends on your site. The focus of this course is to help
case through a JavaScript
you know how to code, but there are many methods to actually populate the variables.
function.
We leave that up to you.
e
ob
Pull the internal search term value from a session variable and populating into
o
s.prop2.
Ad
Use the free SiteCatalyst getQueryParam plug-in to pull the search term from
the query string (if present in the query string) to populate s.prop2.
An alternate, but less common option, would be to capture all terms in one variable
and use SAINT Classifications to create the three separate reports (saves variables,
but requires more maintenance).
bu O
other and see how they break down by each other (e.g., When the scope of the search
is just the Home and Garden section of my site, what were the search terms?).
tri se
Purpose 2: Measuring Traffic for a Specific Segment
The other purpose of setting an s.prop is to see how much traffic comes from a spe-
D lU
cific segment. This entails placing a value on EVERY page that belongs to a segment.
Some segment examples include:
Language pages
If your site attracts people who speak different languages, you may have several ver-
sions of pages that have been translated for their convenience. You may then want to
know which language pages have the most traffic. In the following example, a visitor
e
might start at a choose your language page and then go to different English and
ob
French pages (which may actually be unlikely in one visit, but illustrates the point NOTE: If an s.prop
well). value is omitted, it
o
y
In the example, the visitor viewed six pages, but only five Page Views appear in this
t e nl
Page Language report. Why? If a value is omitted (as it was on Page 1 since nothing
bu O
was populated into s.prop17 on that page), it isnt counted. Nevertheless, our site still
received six Page Views. In which report would we be able to see all six Page Views?
You could see those Page Views in either the Site Metrics > Page Views report or the
tri se
Site Content > Pages report in SiteCatalyst.
sections and subsections at each level. This is similar to the hierarchies function, but
with some key differences:
With hierarchies, you drill down through the structure to lower levels.
D In
With s.props, you could see ALL of the lower level groupings across the entire
site in one report.
e
y
t e nl
bu O
tri se
D lU
ot na
is
N ter
Please note that classifications can be used in SiteCatalyst Version 15 to group pages
D In
without the use of s.props while still maintaining accurate Page View, Visit and Unique
Visitor metrics. Pathing is not available for classifications.
e
JJ Esquire Pages
o
Assignment:
Code the following pages:
1. Home Page
2. Women Site Section
3. Womens Activewear subsection page
4. The Fur Trim Ski Jacket page in Womens Activewear
With the following value where applicable (not all pages may be part of a
subsection):
5. Sub Section
The key here is that you must set the s.prop on every page, so you need to make sure
that you have access to the information (in this case Registration Status) on every page
y
so that you can set it into the s.prop. This may entail accessing a session variable or
t e nl
reading a cookie, etc.
Membership Types
bu O
This same principle could apply to other kinds of segments, such as membership type.
If you have Platinum, Gold, Silver and Bronze members on your site, you could have
tri se
them log in, and then populate the s.prop on every page that the member touches so
that you know how much traffic is attributed to different membership types. In the
D lU next chapter, you will also see that with Correlations (Traffic Report breakdowns),
you can know not only how much traffic is coming from these segments, but also what
content each segment consumes
ot na
s.prop18=Platinum Member
s.prop18=Silver Member
is
N ter
a little confusing. The List Prop allows you to capture multiple values, but breaks the
values up so that they appear as separate line items in the report.
e
The list prop is most commonly employed with pages that contain user-selectable
ob
values such as listed items with check boxes or radio buttons. With the List Prop, each
o
selected item will increment as a separate line item. Problem solved! Pass in multiple
values at the same time that appear in the same report, but on separate line items!
Ad
This is not helpful, because each line item shows combinations of software products
list prop
y
owned by each visitor. With only three line items, we could do some quick mental
captures multiple
calculations to determine how many own Photoshop, but imagine if we received one
t e nl
values concurrently
thousand survey submissions. Now, if we had used a List Prop-enabled s.prop, the
from the same page
bu O
resultant report would look like this instead:
(through the same
image request),
values are passed into
tri se
the same prop and
appear as separate
D lU line items in reports,
case sensitive, limited
to 100 bytes including
delimiter, delimiter is
ot na
chosen by the client
and enabled by Adobe
is
ClientCare
N ter
This report is much more useful because it splits the individual values out into sepa-
D In
rate line items instead of the jumble of combinations we saw in the previous report.
back end by Adobe Client Care. When you request that it be enabled, indicate the de-
ob
limiter that you would like to use. Once the s.prop of your choice has been enabled,
o
multiple values can be set in the variable as shown in the following examples:
Ad
Caveats
When a Custom Traffic Variable has been enabled by Adobe Client Care as a List
Prop, some additional Traffic Variable features are not supported. These features are
discussed in detail later. Here is the overview of their supported status:
Since a List Prop-enabled s.prop is still a Traffic Variable (besides possessing its magi-
cal List Prop properties), it is subject to Traffic Variable limitations. List Props are
limited to 100 bytes of data and they are also case sensitive.
y
Naming Custom Traffic Variables
t e nl
Custom Traffic reports display metrics related to the values added to a specific prop-
erty variable. For example, data collected for Custom Traffic Variable 1 (i.e., s.prop1)
bu O
will display in the interface as Custom Insight 1 report, which is the default name for
that report. However, it is highly recommended that you change the report title to be
tri se
more user-friendly. Your analysts will thank you.
D lU
ot na
is
N ter
D In
e
ob
To change the name of a Custom Traffic Variable, follow the steps below.
o
1. Log in to SiteCatalyst.
Ad
2. Click the Admin tab and select Report Suites from the drop-down menu.
3. Select the report suite(s) that contain the Traffic Variable in question.
4. Under Edit Settings, select Traffic>Traffic Variables.
5. Select the Traffic Variables in question and rename
6. Dont forget to click Save at the bottom.
The name you give to each Custom Traffic Variable will show up in the SiteCatalyst
Report menus in the interface.
y
If youre trying to determine the traffic activity of a segment, then the segment value,
t e nl
once identified, should be populated on every page. Examples of this are Groups of
Pages, Membership Types and Login Status. Groups of Pages, whether were grouping
bu O
by Page Language or Site Section, can be theoretically hard coded. User-related values
such as Membership Type and Login Status, must be determined through your own
scripting and subsequently populated into the appropriate Traffic Variable. By popu-
tri se
lating the value onto every page, you can see how much traffic you get from each
segment.
D lU
Remember, whatever you pass in is counted and recorded exactly as it was populated
into the s.prop. Whatever you omit does not get passed in.
ot na
Exercise 7.2
Internal Search Tracking
is
N ter
The number of results per search term including zero search results
o
The number of times a search scope is used in conjunction with the search term
Ad
Assignment:
What kind of variable(s) should you use to fulfill the business requirements?
Solution
Example
Implementation
y
Site Exercise 7.3
t e nl
Internal Search Term Tracking
Estimated Time: 5 minutes
bu O
Assignment:
Record the following search activity on the appropriate page and force user-inputted
tri se
values to lowercase using JavaScript:
D lU A visitor searches for Wall Decor in the Home & Garden section and gets 78 search
results.
ot na
Note: Make sure that the search term is set to lowercase via JavaScript.
is
N ter
Understand visitor behavior and choices throughout the online booking process
ob
Track by Hotel ID, Rooms Booked, Length of Hotel Stay, Days to Arrival and
Ad
Rate Code
Number of reservations by Hotel ID, Rooms Booked, Length of Hotel Stay, Days
to Arrival and Rate Code
Assignment:
Record the visitors actions on the appropriate JJ Travel page:
A visitor to the JJ Travel site books a stay at the JJ Esquire Park City, Utah (Hotel ID)
with 2 rooms (Rooms Booked) for 7 days (Length of Hotel Stay) 21 days in advance
(Days to Arrival) at the 0759 rate (Rate Code).
y
t e nl
Key Performance Indicators
How much traffic is coming from members who log in (Gold, Silver, Bronze
bu O
members) and those who dont (public traffic)?
Assignment:
tri se
What kind of variable(s) should you use to fulfill the business requirements?
Solution
D lU
ot na
is
N ter
Example
D In
ob
Implementation
o
Ad
Assignment:
JJ Esquire offers various weekly newsletters. Code to record the following using
s.prop(s):
A visitor signs up for the following newsletters: JJ Living, JJ Foreign Policy, JJ Special
Offers and Random Spam.
y
t e nl
bu O
tri se
D lU
ot na
is
N ter
D In
e
ob
o
Ad
y
t e nl
Overview
bu O
The Traffic Variables discussed in the previous chapters offer a powerful means by
which you can capture and analyze your traffic data. In addition to the variables,
tri se
SiteCatalyst offers several features and functions that you can use to break down and
further analyze your traffic data. These features and functions apply to predefined
Traffic Variables (s.pageName, s.channel, and s.server) as well as Custom Traffic
D lU
Variables (s.props). The features are:
traffic patterns.
Objectives
e
8-1
Features and Functions
Traffic Correlations
y
Correlations are custom report relationships requested by you, the client, and en-
t e nl
abled by either you (for 2-item correlations, or just linking 2 reports together) or by
Adobe Client Care (for 5-item or 20-item correlations, or linking 5 to 20 reports to
bu O
each other).
tri se
Our Data Collection Module removes data relationships to optimize SiteCatalyst re-
ports. By creating a correlation, you tell SiteCatalyst which data relationships should
D lU remain intact so that you can break down one traffic report by another. This allows you
to understand the unique relationships between different line item combinations.
ot na
correlation
a breakdown of
is
N ter
NOTE: Correlated
reports can only
e
(instance) metric.
o
Ad
For values to correlate, they must be set on a single page. This creates the correlating
link between the data points. For instance, if the s.channel value of Women is set on
the same page as the s.pageName of Women:Activewear:Wasatch Mountain Ski
Coat, they would correlate and show in the same report.
Correlating a Report
Whenever a Traffic Report has line items that can be correlated with other Traffic
y
Reports, the analyst will see a small green magnifying glass to the left of each line
t e nl
item.
bu O
tri se
D lU
ot na
To correlate a report:
is
1. Click the breakdown icon next to the line item that you wish to break down.
N ter
2. Select the correlation report to run (e.g., analyze traffic to the Home Page by
visitors city).
D In
e
ob
o
Ad
y
t e nl
bu O
tri se
D lU
ot na
Optimum Path Engine
The Optimum Path engine records the entire path of your online visitors and custom-
is
N ter
ers and allows you to dissect these paths to reveal hidden behavior patterns. Clear,
graphical representations let you view site traffic as it flows from one page or item to
the next, understand high-level navigation and see visitor fallout. athing
p
D In
While path reports are shown for page names by default in the Paths > Pages report,
enabled by clientcare
SiteCatalyst offers the ability to enable pathing for other Traffic Variables giving
o
you 16 Path reports for each enabled variable. Since the majority of Traffic Variables
Ad
can be enabled for pathing, you could see Path reports that show you how visitors
move between site sections, subsections, or detailed content sections.
y
t e nl
Pathing is really defined as changing from one value to another value.
bu O
When you enable pathing for the s.channel variable, it allows you to track how site
visitors move between Site Sections (as the value changes).
tri se
D lU
ot na
This is then available in the various paths reports, including the Next Site Section
is
N ter
Flow Report:
D In
e
ob
o
Ad
Pathing shows us what the next changed value is. If you need to know the order in
which values are collected, then you need to enable pathing for the variable collecting
those values.
y
In this example, you could see how people refine their search as they try to find your
t e nl
products. You could use that information to make products or groups of products that
people are searching on more readily available.
bu O
tri se
D lU
ot na
is
N ter
D In
e
Once you turn pathing on for any Traffic Variable, such as a custom s.prop that cap-
ob
tures your Internal Search Terms, you can see reports like the Internal Search Terms
Flow report seen above.
o
Ad
Instead, what you really want in this situation is page pathing per login status. To get
this information in SiteCatalyst, you can concatenate the segment value with the
s.pageName variable, and then path that resultant variable. Here is some sample code
for page pathing per member status:
Then enable pathing for s.prop19 to see how members path through pages.
y
NOTE: Adobe Discover
gives you the ability to
t e nl
segment page paths without
The Next Membership Status Page Flow report shows you, in the case of the graphic
the need to concatenate below, how members with Gold Status path through the site.
bu O
segment values, and with the
ability to apply ANY segment to
pathing reports. Its really quite
tri se
amazing. Check it out today!
D lU
ot na
is
N ter
D In
e
ob
o
Ad
Understand how visitors move from Site to Site and Site Section to Site Section
Track site traffic by visit and unique visitor metrics
Analyze the relationship between Site-, Site Section- and Page-level information
y
t e nl
Traffic metrics for all corporate domains in a single report
Paths between Sites, Site Sections and Pages
bu O
Visit and Unique Visitors (Daily, Weekly, Monthly) for each level (Site, Site
Section, Page)
Page Views for break downs by Site, Site Section, and Pages by each other in any
tri se
combination
Assignment:
D lU
What kind of variable(s) and feature(s) should you use to fulfill the business
requirements?
ot na
Solution
is
N ter
D In
e
ob
Example
o
Ad
Implementation
y
Page Views per registration status (registered/guest user)
t e nl
Path Views of paths by registration type
Path Views of paths between Site Sections
bu O
Assignment:
What kind of variable(s) and feature(s) should you use to fulfill the business
tri se
requirements?
D lU Solution
ot na
is
N ter
Example
D In
ob
Implementation
Ad
Understand what terms come before and after a specific internal search term
Understand the path a visitor traverses by internal search term
Dont inflate the regular Internal Search Term report (double counting searches
in s.prop2)
y
Key Performance Indicators
t e nl
Path Views of keyword paths (When someone searches by watch, what do
bu O
they search next?)
Path Views of page paths by keyword (When someone searches by watch,
which pages does he or she view next?)
tri se
Assignment:
D lU
Code the Search Results page with the proper variable(s) and enable the proper
feature(s) to fulfill the business requirements for the following scenario:
ot na
A visitors searches by watch.
is
N ter
D In
e
ob
o
Ad
y
As discussed in this section, one of the first steps you should take prior to implement-
t e nl
ing SiteCatalyst is to develop a good page naming strategy for your Web site. By doing
so, your reporting will be more user friendly.
bu O
Another important step as you decide on values for ANY of your reports in SiteCatalyst
(including Traffic Reports) is to incorporate all of the needs of the entire enterprise.
tri se
Talk with all of the people involved, especially the Report Consumers. If you are going
to roll values up into a Global Report Suite, you will want to ensure that everyone is
D lU putting the same kinds of values into the same Traffic Variables. For example, if you
use s.prop2 to capture Internal Search Terms on the US site, make sure that the UK,
German, Japanese and all other sites are using s.prop2 for the same purpose.
ot na
In any case, the Predefined and Custom Traffic Variables can be used to collect traf-
fic-related data from all visitors to your Web site and display it in SiteCatalyst to an-
is
N ter
swer the questions you have about the general populous coming to your site. The cus-
tom variables can also be used to count the number of times a value is sent into
SiteCatalyst, whether simply counting values (like Internal Search Terms) or counting
D In
Finally, SiteCatalyst offers additional features and functions to segment data and dis-
e
y
Additional Variable Considerations
t e nl
The following information may be helpful in determining how to use traffic
variables.
bu O
Variables can be set on the page or in the Global JavaScript file (s_code.js).
Not all reports or metrics are automatically enabled.
tri se
Enable features that answer your Key Business Questions
Possible cost implications for enabling metrics, reports and correlations (for
D lU
questions on this, contact Client Care).
Extraneous correlations only slow down SiteCatalyst.
Separate object name for multiple instances of code on the page (variables
ot na
usually begin with s.)
If multiple clients own a page, they must use different object names (s and
s1, for example) to populate their own code.
is
N ter
Review Questions
D In
Choose the best answers for the following questions from Chapters 1 and 2:
1. How does SiteCatalyst collect traffic data for your site?
e
B. The Adobe Crawling Engine crawls the Web site and logs all traffic data
C. Code is placed on each page of your site, and information is sent to Adobe
o
4. When selecting the appropriate level of page naming detail, you should be sure
to include the User ID or Session ID within the page name.
A. True
y
B. False
t e nl
5. What is the maximum character (byte) length for the s.server variable?
bu O
A. 20
B. 100
C. 255
tri se
D. 2083
D lU 6. Custom Traffic Variables (s.props) must be set on every page that you want the
value reported.
A. True
ot na
B. False
7. Where can you give a user-friendly name to your Custom Traffic Variable
is
reports?
N ter
C. It has to be set in the variable string along with the specific value.
D. It must be done by Adobe ClientCare.
e
8. Match the Traffic Variable to its function (some functions will not match). Write
ob
A. _____ s.pageName
Ad
B. _____ s.channel
C. _____ s.server
D. _____ s.hierN
E. _____ s.propN
Functions
1. This is a special variable type used for cascading views of content categories.
2. This is used for site conversion numbers and provides conversion visits and
visitors.
3. This is a Predefined Traffic Variable, traditionally used for high-level content
categories.
y
t e nl
Traffic Variable Code in Action
Lets see how Traffic Variables work by going through a scenario with a visitor that
bu O
comes to our JJ Esquire site. Throughout this scenario, keep in mind that were speak-
ing about a company, JJ Esquire, that uses SiteCatalyst to track visitors. The scenario
tri se
explains how a company that uses SiteCatalyst might track a visitor, not how Adobe
tracks visitors to the Adobe Digital Marketing Site.
Scenario
D lU
Lets imagine that this person has been to our JJ Esquire site before and filled out a
survey capturing his age. Hes now returning to the site. Lets see how wed use Traffic
ot na
Variables to record his behavior. Please note that each variable and its value should be
contained on one line. Because of space limitations in this example, some variables
is
and their values are displayed over two lines instead of one.
N ter
D In
e
ob
o
Ad
As the visitors arrives to the site, we identify the visitor and populate his Age Group
value into s.prop20. Page Name and Site Section can either be hard coded or popu-
lated dynamically through our own scripting. Weve concatenated the Age Group and
Page Name and enabled pathing for s.prop.21 so that we can path by Age Group.
y
t e nl
bu O
tri se
Traffic Metrics such as Page Views, Visits and Unique Visitors are calculated
D lU automatically. No need to send Traffic Metrics through the code. We take care of
those calculations for you automatically on the traffic side.
ot na
is
N ter
D In
Our visitor has reached the fourth page. Thats the end of the visit. Take a look at the
e
Traffic Variable values that have been populated. How will these values appear in the
ob
reports?
o
Ad
Every page receives a Page View since each page name was submitted one time
y
through the s.pageName variable. Page Views are really a representation of Instances
t e nl
of values being set in a Traffic Variable.
bu O
How would the Site Section Report look? This report, populated by s.channel, would
look like the report below.
tri se
D lU
ot na
Since the Site Section name Electronics was passed in on both Page 2 and 3, it
receives two Page Views on line item 1.
is
N ter
The next report, Age Group, populated by s.prop20, the s.prop that we chose to
capture Age Group during the implementation stage of JJ Esquire, shows us Traffic
D In
by Segment. So how many Page Views did we get from 40-44-year-olds? See the
report below.
e
ob
o
Paths by Age Group. What would this Next Age Group Flow report look like? See the
report below.
Conversion Variables
y
t e nl
bu O
This third section introduces you to the SiteCatalyst Conversion Variables and shows
you how they behave. Well learn about Predefined and Custom Conversion Variables
and different ways they can be used to help you track whats happening on your site.
tri se
Well learn what s.eVars and Custom Events are. Well find out how to use the persis-
tence functionality of Conversion Variables to our advantage to get all sorts of great
analytical information about visitor activity on our Web site.
D lU
Exercises throughout this section are also based on your own JJ Esquire Web site. This
will provide you with excellent practical experience.
ot na
9-1
9-2
Ad
ob
e
D In
o
N ter
ot na
D lU
is
tri se
bu O
t e nl
y
Chapter Nine
y
t e nl
Objectives
bu O
Define the purpose and use of Conversion Events
Learn how to code predefined SiteCatalyst events or metrics
tri se
Learn how to create and code your own custom events
D lU
ot na
is
N ter
D In
e
ob
o
Ad
9-3
Events are Conversion Metrics
Introduction to s.events
y
The s.events variable differs from all of the other Conversion Variables (discussed in
t e nl
the next chapter). While the other Conversion Variables often hold text strings in the
same way that Traffic Variables do, the s.events variable just counts the number of
bu O
times that an event happens (e.g., a purchase, registration or other conversion). These
events are simple counters designed to measure the number of times a Success Event
tri se
(conversion) happens on your site.
D lU The s.events code is placed on the page on your site where the Success Event or
Conversion thing happens or on the confirmation page of the action. Remember,
events are really just Conversion Metrics that tell us how many things or conver-
sions happened on your site.
ot na
is
N ter
D In
e
There are many kinds of success events, depending on your Web site type. Several
ob
When we were dealing with Traffic Metrics, we didnt have to worry about coding them
into the site. Page Views, Visits and Unique Visitors were instantly calculated based on
the number of times a Traffic Variable value was set. So why do I have to set Conversion
Metrics in the code with s.events? Because we dont know where conversions occur on
Adobe offers both Predefined and Custom Events. The Predefined Events are related
y
to Retail conversions and have specific names (discussed later in the chapter). The
t e nl
Custom Events can be used for any purpose and are commonly used for conversion
activities such as registrations, subscriptions, downloads, form completions, sign-
bu O
ups, etc. They can even be used in a Retail solution to fill in any gaps in the checkout
process that go beyond what is provided with the Predefined Events.
tri se
s.events
s.events Syntax the variable that
The general syntax for the s.events variable is as follows:
D lU captures success
events (aka custom
s.events=[SiteCatalyst event name];
events, conversion
This variable cannot accept just any value, but must be filled with either a Predefined events, conversion
ot na
Event name or a Custom Event name, as described in the following sections. metrics), can be
serialized to prevent
Predefined Events (Retail) duplicates, populates
is
N ter
Each of the Predefined Retail Success Events is defined in the table below with sug- custom event reports
gested use:
D In
prodView Success event occurs any time a visitor views a product de-
tail page.
e
scView Success event occurs any time a shopping cart is viewed. Retail Events can
be repurposed for other
o
scAdd Success event occurs any time a product is added to a site types. Event names in
Ad
When any of the Predefined Events above occurs, an instance of the event is incre-
mented, and you can view the Conversion Metrics related to the event in several dif-
ferent SiteCatalyst reports. The steps used to code these are similar to the steps dis-
cussed in the custom events area:
The following is an example of the code used to configure Predefined Events. (In
regular page code, the s.events variable only appears one time. If you need to add
multiple events on one page, follow the middle example and delimit the events by a
comma.)
s.events=prodView
y
s.events=scOpen,scAdd
s.events=purchase
t e nl
In the first example above, prodView is the value set in the s.events variable. Any
bu O
time a product detail page is viewed, the event is incremented by one. In the second
example, two values are captured at the same time. When multiple success events oc-
tri se
cur on the same page, each event is incremented.
D lU Custom Events
Custom Events enable you to define the conversion event that you want to track. For
example, if your site has a newsletter, your success event might be Newsletter
Subscription. This event is not one of the Predefined Retail Events, but by using a
ot na
Custom Event, you can track the number of times that visitors subscribe to your
newsletter.
is
N ter
The basic steps that you go through to assign and code a Custom Event are:
2. Put code on the page where the event is completed (Confirmation Page,
ob
Regardless of what you decide to use the event for, the syntax will stay the same. This
o
This greatly necessitates documenting the purpose of your Custom Events. If you
dont document what the event is being used for, it may be difficult later to determine
exactly why you coded an event onto a page. Make sure to document everything in the
Solutions Design Document.
Naming events is done through the SiteCatalyst Admin console. To name your success
y
event, click into the Admin console, select your report suite(s) in question, and select
t e nl
Success Events under the Conversion menu.
bu O
tri se
D lU
ot na
is
N ter
Here you will be able to give a friendly name for each event. In fact, in this same menu,
you can rename the Predefined Retail Events if you need to repurpose them.
D In
e
ob
o
Ad
This can be helpful if Retail conversions on your site have different names than the
default Success Event names. For example, a travel site might want to change the
Orders metric to bookings and the Units metric to nights booked.
When you rename a metric, it works in the same way. The event code is the address. It
must be present in the JavaScript page code in order for SiteCatalyst to increment the
even properly in the correct report. When you rename an event, youre renaming the
Conversion Event Report that you can see in the interface, but youll never use this
friendly name in the code. Remember, SiteCatalyst only recognizes addresses, not
friendly names.
y
t e nl
Correct syntax for events:
bu O
s.events=event3
tri se
Incorrect syntax events:
s.events=Registration Completions
D lU
ot na
is
N ter
D In
e
ob
o
Ad
y
t e nl
bu O
tri se
The event types are:
D lU
Counter Increment one or more (integers only). This is the most common
type of event, and would include such events as registrations, subscriptions,
ot na
form completions, leads, etc.
Currency Increment by any amount. This type also performs currency
exchange if necessary, which will be discussed in later in this workbook.
is
N ter
Numeric Increment by any amount, but does not use currency conversion.
You will also notice in this list a choice for each type of event that says (no subrela-
D In
tions). Subrelations functionality gives you the ability to apply the event (remember,
an event is a metric) when you are breaking down one Conversion Report by another.
In almost every case, you should choose the event type that does not have the No
e
Subrelations limiter.
ob
Conversion ratios usually measure conversion between the starting, ending and mile-
Ad
stone events or points of a conversion process. Once you have coded the Success
Events onto the site, SiteCatalyst will create the ratios between these different Success
Events and show them in a Conversion Funnel Report. There are several of these re-
ports under such names as the Products, Campaign, Purchase, Cart and Custom
Events Conversion Funnel.
bu O
Generally, Success Events are good candidates for this type of Conversion Funnel
tri se
Analysis if they almost always occur linearly, i.e., in a specific order. For example, on
a Retail site, Success Events generally occur in this order: Product Views, Cart
D lU Additions, Checkouts, Purchases. If you have a linear conversion processes on your
site, try out the Conversion Funnel.
ot na
Custom Events
Estimated Time: 5 minutes
D In
Assignment:
Code the JJ Newsletter Subscription pages in the Company Site Section with the
proper custom event(s) to count all Newsletter Subscription Starts and Completions.
Conversion Variables
y
t e nl
Objectives
bu O
Learn about how Conversion Variables work
Apply SiteCatalyst events to the products variable
tri se
Understand how Conversion Metrics are applied to Conversion Variables
Learn the names of Predefined and Custom Conversion Variables
D lU
ot na
is
N ter
D In
e
ob
o
Ad
10-1
The Purpose of Conversion Variables
y
Conversion Variables are one of four variable types in SiteCatalyst (Traffic,
t e nl
Conversion, Configuration and Automatic Variables). Conversion Variables are used
to capture conversion data in SiteCatalyst. They are persistent variables and thus can
bu O
hold values between pages and visits.
tri se
There are two main types of Conversion Variables:
As we learned from the last chapter, s.events is a Conversion Variable.; however, from
here on, Conversion Variables will refer to any of the available Conversion Variables
ot na
except the s.events variable. Well refer to the s.events variable and any accepted val-
ues or metrics as Success Events or Conversion Metrics.
is
N ter
Following is a list of the basic purposes of all of the conversion variables, including the
events variable.
D In
y
s.eVar1-75 identify how well specific attributes or actions contribute
to success events on your site.
t e nl
bu O
What Can Conversion Variables Do For My Reporting?
tri se
Conversion Variables are either Predefined or Custom Conversion Variables describ-
ing what led to the conversion. They contain the who, which, or what actually con-
D lU
verted (i.e., performed the conversion event). Consider the following examples:
ot na
is
N ter
D In
In the first example, the Success Event is the Order. It is the desired conversion activ-
e
ity. The Campaign is the Conversion Variable, or the who, which or what that af-
fected success. For example, my campaign may have been the Get 50% off today
ob
sale. We tie Conversion Variables values to the Success Event or Conversion Metric (in
o
this case Orders) so that you can see that one of the Orders came from someone that
Ad
clicked through one of our online campaigns called Get 50% off today. Looks like
that campaign is giving us some return on our investment!
In the second example, the Success Event is the Form Completion, and the Conversion
Variable is the User Type (populated into the variable by your sites own scripting logic
that determines what kind of user the visitor happens to be).
Right now, this may make sense. Right, I get it, you might be thinking, the Conversion
Variable is the Line Item value in the report and the Event is the Conversion Metric by
which I sort my report. If you said that, youd be right; however, you may soon forget
and mix up the two. Perhaps, to use a grammatical metaphor, an easier way to remem-
ber this concept is to think of the Conversion Variable as the noun (the who, which
As you can see from this scenario, Conversion Variables persist with your visitor so
that they can be tied to conversions (Conversion Metrics) so that you and your
analysts can know what was responsible for the conversion. Pretty cool, eh? Keep in
mind that each Conversion Variable can have a different expiration period.
y
t e nl
bu O
tri se
D lU
ot na
is
N ter
D In
e
ob
o
Ad
With each Retail event, you must specify the product that is viewed, the product that
y
is checked out, or the product that is purchased, etc. You will do so through the
t e nl
Conversion Variable called the Products Variable. If you tell SiteCatalyst that you are
making a purchase, it only makes sense that you should state which product(s) you are
bu O
purchasing (the same goes for products being viewed or which are in the cart when
you start the check out process).
tri se
The Retail Predefined Event must be specified on the same page as the Products
Variable. The Products Variable does not persist across pages. You may also specify a
D lU
product when you set a Custom Event, but it is not required.
s.products Syntax
ot na
The following is the full syntax for the products variable:
s.products=Category;Product;Qty;TotalPrice;Incrementor;
is
Merchandising
N ter
s .products
capture multiple
Not all fields are used for all events, and each usage is discussed in the following sec-
products on the same
D In
tion. The Product Variable itself can contain many products, but the Category Field
page (in one image
and the Product Name Field each have a limit of 100 bytes. The delimiter between
request), capture
fields is the semicolon (;) and the delimiter between two or more products is the
revenue, units,
e
merchandising values,
If somebody buys 100 products, there is certainly no limit on the number of charac- a retail event should
o
ters that can be pushed into the product string as long as none of the previous limita- be coded on the same
Ad
tions are broken; however, most browsers such as Internet Explorer have a URL limit page, product field
of 2083 characters for the SiteCatalyst image request. If you feel there are cases where limited to 100 bytes,
your implementation may exceed such limits, contact Client Care or Adobe Consulting populates the products
to discuss alternatives. report
The examples show in this course will sometimes use a category in the product string
and sometimes will not. Either of these use cases is legitimate.
When using the Products Variable, different events and situations warrant usage of
different fields. These situations can be broken down into the following:
General Use
Purchase
y
Event Incrementor
t e nl
NOTE: Product
Merchandising
attributes (fields) are
The relationship between these scenarios and the products string fields is illustrated
bu O
separated by semicolons.
in the following image.
Multiple products are
separated by commas. Make
tri se
sure that your product names
contain neither semicolons
nor commas. D lU
ot na
is
N ter
each of the components. The same general format is used for non-purchase use as
shown below.
e
s.products=;Running Shoe
a size limit on s.products,
o
some browsers like IE impose In this case, the category and product are added to the product string (Category Field
a size limit on the URL of the is left blank), and prodView event is added to the Events Variable. Each time the prod-
Ad
SiteCatalyst image request. uct name is set into the s.products variable with the prodView event, the Product View
The limit is 2083 characters. metric will be incremented for that product.
Additionally, the Product and
Category fields of s.products Similarly, if you want to track a product, but not the category, you can leave that field
each have a limit of 100 bytes.
blank. Dont forget to include the semicolon as a placeholder denoting the blank cat-
egory, as shown below.
s.events=prodView
s.products=;Running Shoe
prodView
scAdd
scOpen
scView
scRemove
Product Granularity
As you start putting products into SiteCatalyst, the question will often come up, Should
y
I track every single product, including size, color, etc.? This question of product granu-
larity is usually only an issue for Retail sites, especially when speaking of parent and
t e nl
child SKU, but it can also apply to other site types that use the products variable.
bu O
The general rule for this situation is that you should track products at the most granu-
lar level that you will ever want to analyze in SiteCatalyst reports, without going over
tri se
the unique values limit of 500,000 different products per month. If you have more
than 500,000 products that could be purchased on your site, please contact an Adobe
Consulting representative to discuss options.
D lU
ot na
is
N ter
As discussed earlier, you will be able to use a feature called Classifications to put the
products into groups, so that you can retrieve higher-level product data from
D In
SiteCatalyst, such as whether mens shoes typically sell as well as womens shoes (not
likely).
e
mend that you set the product SKU in the Product Name Field. Using Classifications,
or ID, then upload
you can rename your products. We recommend using the SKU since product names
o
Example 1
Detailed Product View Page
s.events=prodView
s.products=activewear;ski jacket(54321)
Example 2
y
Detailed Product View Page
t e nl
s.events=prodView
s.products=;54321
bu O
Shopping Cart page (scOpen, scView, scAdd, scRemove)
s.events=scOpen,scAdd
tri se
s.products=;54321
Note: Going forward, use the SKU and leave the Category blank as shown here in
Example 2. Its already been said, but note how each page in our example couples an
is
N ter
event with a product. A product should always be accompanied by an event (the met-
ric). If you populate s.products with a value, but forget to set an event in s.events,
SiteCatalyst automatically fires off a prodView event for you. Best practice: associate
D In
correct metrics with your products by coding properly to begin with (and dont let us
fire off the default prodView metric).
e
Some Retail events are infrequently used because some Adobe clients, because of site
functionality, have no way to implement these events.
o
can be difficult to track a new cart especially since carts may be held between
sessions; however, please implement this if it applies to your site.
scRemoveThe scRemove event can be difficult to implement with scAdd if
the visitor can update the cart for multiple products at once (add and remove
products at the same time). Events that are set in s.events apply to all products
set into s.products. So if you add product A and remove product B on the same
page, and then throw an scAdd and an scRemove event on the same page, both
events would apply to both products. There are other ways to work with
situations like this, using what is called an event incrementor. This will be
discussed later in the chapter.
y
t e nl
bu O
tri se
D lU
ot na
is
N ter
In addition to the Conversion Metrics based off of Retail events, you can now see these
numbers PER PRODUCT, because the products were sent into SiteCatalyst on the
same page as the Retail event. Running a Products Report in SiteCatalyst and adding
D In
the appropriate Conversion Metrics gives you the ability to see product-specific con-
version data.
e
ob
o
Ad
y
View Banking Products > Online Banking Form > Form Confirmation
t e nl
Example 3: Auto Industry
bu O
View Model > Complete Dealer Request Info Page > Request Info Confirmation
tri se
Request for Information > Form Confirmation
Example 4: General content site where the user can register for access or complete an
interest form, using just custom events.
Request for Information = event1
Success Confirmation = event2
y
s.events=prodView;
t e nl
Enter Travel Dates page
s.events=scAdd;
bu O
Review Order page
s.events=scCheckout;
tri se
Confirm Order page
s.events=purchase;
D lU
Example 2: Banking industry, using a combination of predefined eCommerce events and
custom events.
ot na
View Banking page
s.events=prodView;
is
Complete Online Banking page
N ter
s.events=event1;
s.events=event2;
custom events.
ob
s.events=event1;
Success Confirmation
s.events=event2;
Example 4: General content site where the user can register for access or complete an
interest form, using just custom events.
y
t e nl
Site Exercise 10.1
bu O
The Checkout Process
Estimated Time: 10 minutes
tri se
Key Business Requirements
Understand and improve purchase behavior at each step of Checkout
D lU Maximize checkout process conversion
Assignment:
e
A visitor views the Military Jacket in Mens Activewear, adds it to the Cart, Checks out
o
y
t e nl
Objectives
bu O
Learn how to set the Products Variable for one or more purchases
Use additional predefined variables in conjunction with s.products
tri se
Properly set the incrementor value in s.products
D lU
ot na
is
N ter
D In
e
ob
o
Ad
11-1
Coding the Purchase
Overview
y
The Confirmation Page is located at the end of the order process. Its primary purpose
t e nl
is to confirm the purchase you have made. Even though you can use the Products
Variable on any page of your Web site, the Confirmation Page is the page where the
bu O
most of the fields of the product string are used. These fields are discussed in this
section.
tri se
Purchase Component
The Purchase Event should be set on the Final Confirmation (Thank You) Page of
D lU the order process after the order has been finalized. On this page, the product name,
category (optional), quantity and price are all captured in the Products Variable, as
shown below.
ot na
s.products=Category;Product;Qty;TotalPrice
is
N ter
As you have possibly noticed, the previous examples have not used the quantity and
price fields of the product string. These two fields are specified only at purchase. If it
is easier to implement Quantity and Total Price with all events, the s.products values
D In
will still be accepted, but the Quantity and Total Price fields will be ignored with all
events except for the Purchase Event. For a Retail site, the Purchase Event is the most
important because Revenue, Orders and Units come from this event. All other re-
e
ports, like Campaigns, Traffic Sources and Custom Segments get credited with
ob
Multiple Products
Ad
If a customer on your site purchased multiple products, you can submit them all
through the Products Variable by using a comma separator, as shown in the example
below.
Example syntax:
s.events=purchase
NOTE: An event s.products=Cat;Prod;Qty;Price[,Cat;Prod;Qty;Price]
should accompany
s.products each time it is set
s.events=purchase
on a page.
s.products=;100240;1;1849.99,;100233;1;650
Please note that you MUST use a period (.) as the Decimal Separator when you pass
in currency, even if it is customary to use a comma in your country. You can display
Good: 1849.99
Bad: 1849,99
Bad: 1,849.99
Bad: 1.849,99
Using the multiple products syntax also applies to other events, such as the general
y
usage events discussed earlier in the chapter. For example, if you have a checkout with
t e nl
the two products listed above, you could populate the variables as follows:
s.events=scCheckout
bu O
s.products=;100240,;100233
tri se
The Purchase Event populates Orders, Units, and Revenue metrics. When you set the
Purchase Event, the following variables can be or should be set (depending on wheth-
D lU
er or not they are required, highly recommended or optional).
s.events (Required)
ot na
s.products (Required)
s.purchaseID (Highly Recommended)
s.state (Optional)
is
N ter
s.zip (Optional)
s.transactionID (Optional)
D In
The first two variables (s.events and s.products) were discussed earlier in this chapter.
The purchaseID, state, zip and transactionID variables are discussed next. For more
information on these or other variables, refer to the online Implementation Manual.
e
ob
SiteCatalyst. It is the method used to serialize the Purchase Event. Every time the
Ad
Purchase Event is set on your site, you should use the s.purchaseID variable. If the
s.purchaseID is populated, the products on the Thank You page will only be count-
s .purchaseID
ed once per s.purchaseID. Setting it is critical because visitors to your site may save the
serializes the purchase
Thank You or Confirmation page and refer to it later thus re-executing the event, limited to 20
Purchase Event. If you do not use the s.purchaseID variable, when the visitor returns bytes
to the page, another Purchase Event will be sent to SiteCatalyst via an image request
giving your analysts erroneous data.
y
t e nl
s.transaction ID
The s.transactionID variable makes it possible to tie offline data to online transac-
bu O
tions. Lets suppose that someone applies for a loan today, but we cant approve it for a
couple of days. Once we approve it, we can upload the Approval data (offline data) to
the Loan Submission data (online data) via a tool called Data Sources (discussed in
tri se
Section Four).
D lU Why go through all this work? Well, there are other values associated with the origi-
nal online Loan Submission such as a Campaign and Campaign costs that influenced
the visitor to apply for the loan. The s.transactionID makes it possible to tie the entire
ot na
conversion process together.
The same goes for a Retail site. Lets suppose that someone clicks through a Google
is
N ter
Text Ad that cost us $2.00 per click and then bought an item for $10.00 (online). Later,
we find out they returned the item (offline) two weeks later. If we have set a transac-
tion ID on the original online purchase, we can deduct credit two weeks later from the
D In
s .transactionID
original purchase to understand the true cost of our Campaign (it didnt give us the
optional identifier used
to tie offline data to Return on Investment wed previously calculated before the return). This
e
online transactions, s.transactionID stuff is pretty cool and important because it, as said before, ties to-
limited to 100 bytes gether the whole conversion process.
ob
It can be up to 100 bytes in size. The variable must be enabled by Adobe Client Care. If
it hasnt been enabled, contact Client Care to turn it on. You can see if the variable has
already been enabled through the Admin>Data Sources>Manage section.
Example syntax:
s.transactionID=1234abcd
s.transactionID=s.purchaseID
y
The user saves the page to his or her machine for later reviewa scenario that is
quite common on purchase confirmation pages to review purchase receipts.
t e nl
Event serialization prevents the subsequent page reloads from re-counting the
events.
bu O
The following code example shows how to implement event serialization.
tri se
s.events=event1:1234abcd
of event1, the value could be passed multiple times and falsely inflate the numbers
in the reports.
D In
This Event Serialization is not always used as often as it is for the Purchase Event be-
cause you have to create and maintain a unique list of IDs to be used for this purpose.
The cost and hassle of doing this may override your need to avoid a few extra registra-
e
Event Serialization must be enabled by Adobe Client Care for the event of your choice.
The serial number must not be more than 20 bytes and is alphanumeric standard
Ad
ASCII text. Client Care can also set the event, configured on the back end, to record
only once per visit without using a Unique ID (use with caution for events that can
occur more than once per visit such as purchase, form submission, etc.).
Since the State and Zip Variables expire immediately, the only events associated with
them are events that are fired on the same page on which they are populated. For ex-
ample, if you are using s.state to compare conversion rates by state, you should popu-
late the s.state variable on every event page of the checkout process.
The s.state and s.zip variables are each limited to 50 bytes of alphanumeric ASCII text.
Multi-byte characters are acceptable if the Report Suite and s.charSet have both been
properly configured. Examples of the state and zip variables are shown here:
s.state
s.state=California
s.state=Surrey,UK
y
s.state=Paran
t e nl
s.state=Sector 7
bu O
s .state and s.zip s.zip
geographic identifiers s.zip=84097
tri se
populated during s.zip=C1A 7J6
checkout process, s.zip=TW20 9AW
limited to 50 bytes
D lU s.zip=95082-380
each
As you can see, even though these variables are called s.state and s.zip, their origi-
ot na
nally United States-centric names do not preclude you from populating local geo-
graphic data. You can place ANY value in them, and those values will tie to any event
that was coded on the same page. In theory, they could be completely repurposed and
is
N ter
The values that you populate into the Zip report will show in the Visitor Profile >
D In
y
t e nl
Site Exercise 11.1
bu O
Multiple Products
tri se
Key Business Requirements
Ability to track multiple item orders at the product level from browsing to final
D lU
purchase
Track shopping cart conversion
Ensure that orders are only counted once
ot na
Make it possible to later link offline data to this online transaction
Ability to track orders and revenue by state and zip
is
N ter
Assignment:
e
Code for the following scenario for the Final Confirmation Page:
ob
Visitor purchases one (1) Black Dress and two (2) Red Dresses from Women:Fine
o
Apparel
Ad
The Event Incrementor is the 5th field in the product string. An example of settin the
incrementor appears below.
s.products=Cat;Prod;Qty;Price;eventN=Increment Amount
By default, Success Events are configured as Counter type events (as discussed ear-
y
lier). Counter Events simply count the number of times a Success Event is set. When
t e nl
using the Event Incrementor field, you will generally need to increment the event by
some custom amount (more than the Counter default of one).
bu O
To accomplish this, you should change the Event Type to either Numeric or
tri se
Currency when incrementing via the product string (done in the Admin Console as
previously discussed). Because the incremented amount is set in the product string,
D lU the incrementor only applies to individual products. This means, in the case of sales
tax, that you could apply a different sales tax value to each product even if 5 products
were being purchased at the same time.
ot na
Common Uses
Some of the most common uses for incrementors include:
is
N ter
When adding multiple Event Incrementors to one product, as seen in the Multiple
Events example, delimit the Event Incrementor values with a pipe character (|).
y
Assignment:
t e nl
Assume that you are coding on the JJ Esquire Germany site. Code for the following
scenario on the Order Confirmation page:
bu O
Visitors purchases Red Dress (SKU 101341) for 3.499,99
Postage cost = 4,50 and tax (VAT) = 6,19
tri se
Order ID is 987654321
Billing state is Nordrhein-Westfalen and postal code is 40547
Note: Assume that the Euro has already been set as the Report Suite default currency.
D lU
Exercise 11.3
ot na
Event Incrementor with multiple products
is
Estimated Time: 10 minutes
N ter
Track product sales on the site by SKU, including customer location, postage
D In
Revenue for multiple item orders by product SKU, State and Zip
ob
Note: Where applicable, use the same events from the previous exercise.
Ad
Assignment:
Assume you are coding on the JJ Esquire Japan site. Code for the following scenario
on the Order Confirmation page:
Visitor purchases two (2) Sport Jackets (SKU 200244) for 22,000
Postage is 400 and Sales Tax is 1,100 for each unit
Visitor purchases one (1) Hooded Sweater (SKU 200233) for 42,500
Postage is 250 and Sales Tax is 2,100
Order ID is 1234abcd
Billing prefecture is Kansai and city is Osaka (use s.state and s.zip, respectively)
Note: Assume that the Yen has already been set as the Report Suite default currency.
You have learned that different fields of the product string are used at different times,
including general use, purchases, and custom incremented events. The only one left to
discuss is the Merchandising component. This will be discussed later in this section.
Dont worry, youll get there!
y
t e nl
Products Review
Here are some additional points to remember as you work with products:
bu O
If a value is not used, keep the semi-colon ( ; ) as a placeholder.
Remove commas, semicolons, special characters from category and product
tri se
name.
Category field in product string has been deprecated (use Classifications for
D lU
grouping - coming up later).
Tax, Postage, other numbers can be increased via the incrementor field.
Use product SKU number if not too granular (500,000 SiteCatalyst limit).
ot na
Always use s.purchaseID with Purchase Event to ensure the most correct
numbers.
Use s.transactionID if you need to tie post-transaction data to the online
is
N ter
y
t e nl
Objectives
bu O
Learn how to measure Campaign effectiveness
Understand how to set Campaign expiration and allocation
tri se
Install the getQueryParam Plug-in
D lU
ot na
is
N ter
D In
e
ob
o
Ad
12-1
Its All About the Tracking Code
Overview
y
A campaign is a marketing effort that is used to accomplish the following objectives:
t e nl
Drive more qualified traffic to the site.
bu O
Improve campaign effectiveness (spend less per conversion).
Track Return on Ad Spend on all paid advertising.
Track a key segments interaction with campaigns.
tri se
D lU Campaign 101: tracking marketing success
How do we get people do the site? Through one of many different marketing strate-
gies. Perhaps we have Text Ads, Partner Referrals, Banners, Emails, Direct Mail or
Viral Marketing working in our favor to bring new qualified traffic to our site. Once
ot na
visitors land on one of our entry pages, we hope that our site leads them to peruse our
offerings and eventual complete a Success Event of some type. These conversions on
is
N ter
y
to a specific landing page as shown in the following example.
t e nl
s.campaign=tracking code getQueryParam
s.campaign=radio_spot_xyz Set in the Global JS file
bu O
(s_code.js), it automatically
In the example above, the Tracking Code radio_spot_xyz is set directly into the
checks the query string for a
s.campaign variable. In this case, any time a visitor accesses the radio_spot_xyz cam-
tri se
specific field parameter and
paign landing page, a click-through will be reported by SiteCatalyst. However, this automatically populates the
method is really only recommended for offline ads (such as radio or print ads that ask value of the parameter into
D lU
visitors to go to a vanity URL of some type that leads them to the landing page). s.campaign. The plug-in can be
used with other SiteCatalyst
For online ads, the most common method to track a campaign click-through is to ac- variables.
ot na
cess the Tracking Code in the query string of the URL. This Tracking Code value is
set by you when creating the campaigns destination link. The following two examples
show how that could be set.
is
N ter
D In
e
ob
o
Ad
choose more than one in most cases. It can be applied to your email, search engine
and display campaigns.
D In
Assume that you have decided to use cid as the Query String Parameter name. Your
campaign link to your site then might look like this:
e
ob
o
Ad
If that is the case, then the call to the JavaScript plug-in would look for the cid pa-
rameter and populate the s.campaign variable with its value (in this case, its the
ab1234 value.
This is set in the Global JavaScript File (s_code.js) so that you dont have to set it on
every campaign landing page:
s.campaign=s.getQueryParam(cid);
The resultant code would look like this, although you wont see this on any page:
s.campaign=ab1234
The getQueryParam code is actually set in the Plug-ins area of the Global JavaScript
File. This one line of code will cover situations where people land on any page of your
s.campaign Limitations
The s.campaign variable is a Predefined Custom Conversion Variable. It has the fol-
lowing limitations:
y
t e nl
All Custom Conversion Variables possess these same limitations. Well talk about
those (s.eVars) in the next chapter.
TIP: Proper expiration
bu O
Assigning Conversion Credit Across Visits and allocation settings
greatly depend on your sites
Although this part has less to do with what you will be doing as a technical consultant,
tri se
Conversion Cycle. Discuss this
it is good for you to know how these variables work. The s.campaign has a persistence
with the Business Analysts
and allocation value that can be adjusted in the Admin Console (and just so you know,
if in doubt. The Tracking
functionality).
D lU
the Custom Conversion Variables behave in the same manner and have the same Code can be set into multiple
Conversion Variables if
multiple expiration periods
ot na
For example, when someone lands on your site after having clicked on a banner, or allocations are required for
SiteCatalyst will assign credit to the banner when they convert; however, the conver- optimum analysis.
sion may not happen on the same visit. Therefore, you need to be able to assign this
is
N ter
credit across visits. SiteCatalyst can do this. Here is an example of the value flow in a
situation like the one just described.
D In
e
ob
o
Ad
As you can see here, when someone lands on the page, you DONT have to worry
about persisting that value across pages. SiteCatalyst will hold it for a given period of
The SiteCatalyst Admin at your company will usually decide on and set the proper
settings. The settings are easily accessible in the Admin console, and credit can be
given for any period of time (visit, page view, never, week, month, 9 days, etc). Credit
allocation can be set to the most recent campaign clicked or the first one that was
clicked (in the case that a visitor clicks through more than one campaign).
y
t e nl
bu O
tri se
D lU
ot na
is
N ter
D In
e
ob
o
Ad
eVars expire based on the time they were set, to the second (minute, hour, day, month,
etc).
MINUTE=60 seconds
HOUR=3600 seconds (60 minutes)
DAY=86400 seconds (24 hours)
WEEK=604800 seconds (7 days)
MONTH=2678400 seconds (31 days)
QUARTER=8035200 seconds (93 days - 3 months of 31 days)
YEAR=31536000 seconds (365 days)
y
part of your Web site from another part of your Web site, or is a call to action of Codes into separate
Conversion Variables so that
t e nl
some kind. An External Campaign drives traffic from another source completely
they dont fight for allocation
outside of your Web site.
(credit for conversions).
bu O
Though Internal and External Campaigns are similar, they should be tracked differ-
ently. Internal Campaigns should be tracked with a Custom Conversion Variable (dis-
tri se
cussed in the next chapter), and External promotions should be tracked with the
Campaign Variable. If you were to assign both to the Campaign Variable, the internal
D lU
value would overwrite the external value when it is passed if Campaign Allocation
were set to always give credit to the most recent value. By coding them into different
variables, the internal and external values will be tracked separately, and wont com-
ot na
pete for the conversion (compete for allocation or credit).
is
N ter
Exercise 12.1
Campaign Tracking
Estimated Time: 3 minutes
D In
Assignment:
What kind of variable(s) and feature(s) should you use to fulfill the business
requirements?
Solution
Implementation
y
t e nl
bu O
Site Exercise 12.2
Campaign Tracking with getQueryParam
tri se
Estimated Time: 7 minutes
D lU Key Business Requirements
Track Return on Ad Spend on all online paid advertising including online
efforts (banners, emails, paid search, affiliates)
ot na
Assignment:
Install the getQueryParam plug-in in your s_code.js file and verify that Tracking
D In
To verify that Tracking Codes are populating, go to the Search Engine Page (link
ob
available on the Site Map) and click through the JJ Esquire Ski Sale add. The
o
y
t e nl
Objectives
bu O
Revisit how Custom Conversion variables work
Learn about common uses for Custom Conversion variables
tri se
Use the getQueryParam plug-in to capture internal tracking codes
D lU
ot na
is
N ter
D In
e
ob
o
Ad
13-1
s.eVars for Custom Tracking
Overview
y
Often as people learn SiteCatalyst, they confuse s.eVars with Conversion Events or
t e nl
they dont understand when to use an s.prop and when to use an s.eVar.
bu O
First of all, the only thing that s.eVars really have in common with s.props is that they
are both Custom Variables. Just as s.props are Custom Traffic Variables, s.eVars are
tri se
Custom Conversion Variables. Thats about where the similarities end, however, as
they really are two completely different animals in terms of what kinds of information
they provide and in how they behave.
D lU But the fact remains, just as with Custom Traffic Variables, that these Custom
Conversion Variables give you custom information, allowing you to answer your cus-
ot na
tom questions for your chosen segments.
This is very important when considering segmentation because it allows you to seg-
is
N ter
ment your key visitors and understand conversion by these key segments (and not just
conversion for your site visitors as a whole).
D In
s.Evars or s.eVars?
In our literature, we use eVar or s.eVar. In some of our older literature or perhaps on
e
SiteCatalyst blogs out on the net, you might see users write Evar. In the code, you
should always use the latter capitalization: s.eVar (if not, the SiteCatalyst code will
ob
s .eVar fail). You will see code that looks like this:
populates custom
o
Conversion Reports are used to answer questions about what led to conversion on the
site. For example, if Id like to see what type of Internal Campaigns on my Home Page
may spawn purchases, Ill need to first capture the Internal Tracking Codes and set
persistence to a period of one visit for the s.eVar that captures the Internal Campaigns.
When a Success Event is completed (like purchase), the credit for that success is given
to any Conversion Variables that are still stuck to the visitor such as Internal
Campaign ID. By running the Internal Campaign report, we can see which campaign
y
generated the most onsite conversion.
t e nl
bu O
tri se
D lU
ot na
is
N ter
In the example above, you can see that on Page 2 a person logs in. That value of
Logged In can be held indefinitely, to see if there is ultimately a conversion. When
there is (as seen on Page 4), the Logged In status receives credit for one conversion.
D In
Remember, this conversion can be any Success Event. What kind of reporting could
we get from this? Things like Registrations for logged in or not logged in status, Form
Completions by people who were logged in or not, or Revenue generated by people
e
y
t e nl
Although the s.eVar is set only once, it persists across multiple pages and is credited
bu O
for the conversion, or in the example above, an order and $100 revenue.
A/B Testing
tri se
It is very common to use an s.eVar for A/B testing. Simply assign a value to the s.eVar
for each different page to see which page drove more conversion or success. Steps for
D lU using s.eVars for A/B testing:
4. SiteCatalyst will hold the value and show conversion metrics for each page
based on the visitors actions after landing on either A or B.
D In
Method 1
Track your Internal Campaigns by using the getQueryParam plug-in. This means that
you should place an Internal Campaign Tracking Code into the query string of the
destination URL of each creative on your site. This method is recommended as long
as placing values in query strings in links on your site is acceptable.
y
t e nl
bu O
tri se
D lU
Method 2
ot na
The second method is quite simple: hard code the landing page. As long as there is no
other link that leads to the same landing page then this method will work fine for of-
is
N ter
fline creatives such as radio or print ads. Only use this method if alternate methods
are not available or will simply not work.
D In
e
ob
o
Ad
Method 3
The third method involves the use of Custom Link Tracking. Well cover this in depth
in a later chapter, but basically this method sends the Tracking Code through the
JavaScript onClick event instead of waiting to send it on the destination page. The
getQueryParam plug-in isnt necessary for this method to work (it is necessary for
y
t e nl
No matter how you choose to set your Internal Campaign Tracking Codes, once
bu O
theyre set, the persistence of the values is determine through the settings that youve
configured in the Admin Console. Any conversion that is completed while the visitor
has the Internal Campaign stuck to them is credited to the Internal Campaign.
tri se
D lU
Site Exercise 13.1
ot na
Internal Campaign Tracking
Estimated Time: 5 minutes
is
N ter
application conversions
Assignment:
o
The home page Charge Card promotions link contains the tracking code homepage-
Ad
Using the getQueryParam function in the s_code.js, set s.eVar1 to capture all Internal
Campaigns that contain the intcmp query string parameter.
y
t e nl
bu O
tri se
D lU
ot na
Adobe Example
is
N ter
Of course, Adobe uses its own tools to better its site. Those responsible constantly test
page designs and calls to action to determine which ones drive the most desired re-
sults. In one example, tests were done to determine which Download button was
D In
Several button types were tested, and it was found that the winning button had a
300% lift in success over the control button. These kinds of tests can provide valuable
results as you optimize both your site and marketing. Who knew that a button could
have such influence over conversion?
and number of guests (to find which options resulted in the most bookings)
Number of bookings by Internal Promotional links
ob
Assignment:
o
What kind of variable(s) and feature(s) could you use to fulfill the business require-
Ad
Solution
Example
y
way to List Props (covered previously in Traffic). The difference is that you can apply
t e nl
Conversion Metrics to List Variables.
bu O
Code Example (with pipe delimiter):
s.list1=Flex|Illustrator|Photoshop
tri se
s.events=event1
D lU
ot na
s.events=event1=10
D In
e
ob
List Variables do not have a byte limit, but they do have a limit per delimited field of
o
255 bytes. Remember, the no-byte limit doesnt mean limitless because of certain
Ad
Cross-Category Merchandising
Often the same product is available in multiple areas on the site. We want to know if
the diamond ring sold better in the Jewelry/Ring area or in the Women/
Accessories area. With Merchandising Categories, we can get that kind of
information.
tri se
into an s.eVar, and SiteCatalyst can track Revenue by the values passed into the s.eVar.
The problem is that SiteCatalyst s.eVars are configured to only hold a single value at a
D lU time.
For example, your Web site contains different sections (e.g., Electronics, Clothing,
erchandising
m
ot na
cross-category Jewelry, etc.) and you want to analyze Revenue broken down by category. However, if
merchandising allows a user enters the Electronics section, adds a stereo to the shopping cart, and then navi-
you to compare the gates back to the Jewelry section, but decides not to buy any Jewelry, but goes directly
is
N ter
relative effectiveness to the shopping cart and makes a purchase, the initial value of Electronics that has
of multiple product been passed to the s.eVar would have been replaced by the Jewelry value. The reve-
categories, i.e., if one nue is credited to the wrong value site section value.
D In
A Merchandising Analogy
o
aisle location. You might also have found the same tape in an end-cap promotion area.
In addition, the tape is available right before checkout in the last-minute-items area.
When the employee is pulling that tape over the scanner, there is no way to know
where you picked up the tape. Instead, you must place a where I got it value on the
tape as you pick it up. This is merchandising. If you have multiple areas where a prod-
uct is available, where was it seen or added to the cart?
Merchandising Settings
The first thing to know about the Merchandising settings is that they will not show up
for you in the Admin Console until Adobe Client Care enables merchandising for a
particular s.eVar. Thereafter, you will be able to enter the Admin Console and see (and
y
t e nl
There are two settings for Merchandising:
bu O
1. Product Syntax
2. Conversion Variable Syntax
tri se
Merchandising: Product Syntax
This method is probably the safest, as long as you can grab the Merchandising value
D lU
when you are looking at the product. Then you use the Merchandising field of the
product string to assign the value to the product:
s.products=Category;Product;Qty;TotalPrice;
ot na
Incrementor;Merchandising
Syntax Examples
is
N ter
s.events=scAdd;
ob
s.products=;AA Batteries;;;;eVar6=Checkout;
o
You will also notice that since you are setting this variable with the prodView or
Ad
scAdd events, you do not need to set the quantity or price fields of the product string.
You do, however, have to keep the placeholders in the variable, so that SiteCatalyst
knows how to process the data. So you can usually just remember that there are four
semicolons between the product name and the Merchandising value.
In the settings, you will also need to tell SiteCatalyst which binding event to watch
for.
y
happens, it sticks the Merchandising value to the product. This image shows ex-
amples of the pages and how the code would be set.
t e nl
bu O
tri se
Be careful, though. This value will apply to all of the products that have that binding
D lU event until the value has been replaced with another value. Be sure to test your results
in a development report suite.
Merchandising Example
ot na
A basketball is available in multiple areas on a Retail Web site: Sporting Goods, Toys,
Gifts for Dad and New Items.
is
N ter
D In
e
ob
When found in the New Items area, code on the Product Detail Page would be set
o
s.events=prodView
s.products=;Basketball;;;;eVar6=New Items
Merchandising Review
Once again, here are the steps to take when using Merchandising:
Assignment:
y
Scenario: Tissot Aviator Watch (SKU 300720) is available for sale in two sections of the
t e nl
Web site: Men:Accessories and Jewelry:Watches.
bu O
One visitors viewed the watch in the Men: Accessories category. Another visitor
viewed the w atch through the Jewelry:Watches category.
tri se
How would you code the Merchandising Category in each circumstance on the
Product Page, using s.eVar6, and following Product Syntax?
D lU
Solution
ot na
is
N ter
Example
D In
ob
Implementation
o
Ad
y
Keep variables under the 255 byte limit.
No byte limit for List Variables, but a limit of 255 bytes per delimited field.
t e nl
bu O
tri se
D lU
ot na
is
N ter
D In
e
ob
o
Ad
y
t e nl
Objectives
bu O
Understand the difference between Basic and Full Subrelations
Learn about additional metrics available for Conversion variables
tri se
Review Conversion Variable concepts
D lU
ot na
is
N ter
D In
e
ob
o
Ad
14-1
Enhance your Analysis
Overview
y
Adobe offers additional features and functions to increase your ability to track your
t e nl
online conversion data. These are listed as follows:
bu O
Break down Conversion Reports by other Conversion Reports to cross-segment
Conversion Metrics.
Add Visits and Visitors metrics to Conversion Reports for additional insight.
tri se
These features and functions are described in this chapter.
D lU Conversion Breakdowns or Subrelations
Adobe uses the word subrelation to describe the ability to break down Conversion
Reports by other Conversion Reports. A Subrelation is synonymous with Conversion
ot na
Report breakdown.
s ubrelation
is
a break down of one
N ter
Campaigns reports
Products reports
Customer Loyalty report
y
but not the two reports from the Everything Else cant be broken down by each
t e nl
other. For example, you cannot break down one s.eVar report by another s.eVar f ull subrelation
report. also known as a super
bu O
breakdown, is a fully-
subrelated conversion
variable that can
tri se
break down all other
conversion variables,
D lU two normally-
subrelated conversion
variables cannot break
down each other
ot na
is
N ter
Please note that Full Subrelations or Super Breakdowns are enabled for all Conversion
D In
As this image suggests, you can have a regular report upgraded to the super-break-
e
down list, but since it requires a high amount of processing and data storage, it is likely
ob
to have a cost associated with it. Please contact your Adobe Account Manager for
more details if youre using SiteCatalyst Version 14 and youd like this upgrade..
o
Ad
The result of being able to break down reports is that you will be able to see relation-
ships between various segments and their effect on conversion. For example, if you
break down Campaign Name (a Classification report based on the Tracking Code or
s.campaign report) by Products (to see what users buy when the enter through the
Show Style, JJ Esquire campaign), you would get the following report.
bu O
report).
tri se
D lU
ot na
is
N ter
D In
e
ob
In addition to the basic Conversion Metrics, you can have Adobe Client Care enable
Ad
Visits and Visitors in the Conversion Reports (Version 14). This can be helpful so that
you can understand not only how much conversion came from a particular segment,
but how many visits or visitors (traffic) there were that completed that conversion.
This is especially helpful when you have a conversion event that one visitor may per-
form several times. It might not be sufficient to know how many conversions there
were, but might also be important to know how many different people converted.
Visits and Visitor metrics are enabled for Conversion Reports automatically in
SiteCatalyst Version 15.
y
Here are some points to remember as you work with Conversion Variables and
t e nl
Conversion Events, including Predefined Conversion Variables (like s.campaign) and
Custom Conversion Variables (s.eVars):
bu O
Persistent Custom Conversion Variables track what, which or who affected
conversion on your site.
tri se
75 eVars and 20 events available for site use (+ 80 integration events for use with
Data Sources or Genesis).
Only enable those in use for optimal reporting speed in SiteCatalyst.
D lU
s.eVar is proper capitalization.
s.campaign and s.eVar1-75: 255 byte limit.
Product variable: 100 bytes per field (category; product) with no variable limit.
ot na
purchaseID variable: 20 bytes.
transactionID variable: 100 bytes.
is
Custom event serialization: 20 bytes.
N ter
In this scenario, we are examining a visitor to the fictitious JJ Esquire Web that has
undergone a SiteCatalyst implementation.
y
t e nl
Our visitor has returned to the JJ Esquire site through a Google Text Ad. The
s.campaign variable, used to capture Tracking Codes, is automatically populated with
bu O
the Tracking Code google_ad_7 and this value is then stuck to our visitor
(Conversion Variables can persist with visitors between pages and visits).
tri se
The value google_ad_7 is actually inside a virtual cookie which means that its a
value stored on SiteCatalyst servers tied to the SiteCatalyst Visitor ID value stored on
D lU the visitors computer. We use this method so that the SiteCatalyst cookie set on the
visitors computer doesnt get too large.
ot na
is
N ter
D In
e
ob
o
Ad
How long is this value in s.campaign stuck to our visitor? Its all up to you! (An impor-
tant marketing decision.) It depends on how long you want to allow the value google_
ad_7 to get credit for things he does like purchase, subscribe, or any other conversion.
Weve identified this visitor (hes been to our site before) and weve chosen to input his
Age and User ID into custom Conversion Variables (s.eVar3 and s.eVar4, respectively).
y
the Search Results page (Page 2), the internal search term is populated into another
t e nl
conversion variable (s.eVar5) and stuck to our visitor.
bu O
tri se
D lU
ot na
is
N ter
D In
e
ob
o
Ad
y
t e nl
bu O
tri se
D lU ...and on the purchase page (Page 4), our visitor triggers a Success Event (a Conversion
Metric) called purchase.
ot na
Purchase credit (the metric Order in SiteCatalyst) is awarded to all values still stuck
to our visitor at the time of the purchase.
is
N ter
D In
e
ob
o
Ad
Thinking back to our grammatical metaphor that was previously mentioned, Purchase
is the verb and all the values stuck to the visitor like Campaign ID, Age Group, User
ID and Internal Search Term, are the nouns.
y
from someone in the 40- to 44-year-old demographic. applies to all Success
Events. To demonstrate, if
t e nl
the Conversion Metric were
Newsletter Sign Up, that
bu O
metric would be credited to all
s.eVar values currently stuck
to the visitor in the same way
tri se
Purchase was credited in the
By viewing the User ID Report (s.eVar4), we know that the visitor with User ID example.
123456 bought from us.
D lU
ot na
is
N ter
And finally, through the Internal Search Term Report (s.eVar5), we can see that there
was a purchase from someone that searched by sensible shoes.
D In
e
ob
o
Ad
Question 2
You need to identify the number of Page Views you get from people that search by
y
Sport Jacket on your site. What variable type should you use to capture Internal
Search Term?
t e nl
Question 3
bu O
You want to create a report that shows which products 40-44 year olds purchase.
What variable type should you use to capture Age Group?
tri se
Question 4
You want to create a report that shows which pages 40-44 year olds view on your
D lU site. What variable type should you use to capture Age Group?
ot na
Quiz 14.2
A Plethora of Forms
is
Estimated Time: 7 minutes
N ter
Assignment:
Divide into two teams.
D In
You have 10 different Forms on your site. You need to track Form Starts and
e
Figure out three different ways to code the 10 Form Starts and Completions using:
o
1. Only s.prop(s)
Ad
2. Only s.events
3. A combination of s.eVar(s) and s.events
4. Determine which method you think is best for your purposes.
Extra credit: Is it possible to code 20 forms and record form starts and form comple-
tions without using more than the SiteCatalyst limit of 75 props, 75 eVars or 20 events?
What if you had 100,000 different forms?
a. Track the revenue, units, and orders of standard shopping cart Web sites.
b. Track the conversion of any type of Retail (revenue generating) Web site.
c. Track visitor success or conversion of any events that occur on a Web site.
d. Track pages relating to conversion transactions.
2. Out of the following list, chose the Predefined Retail Success Events (circle all
that apply).
a. scOpen f. prodView
y
b. scAdd g. scOrder
t e nl
c. revenue h. scUnits
d. scRemove i. scCheckout
bu O
e. scView j. purchase
3. What are the four most common pages to be coded in order to capture basic
tri se
shopping cart success?
a. Product detail page, shopping cart page, shipping page, checkout page
D lU
b. Product detail page, shopping cart page, billing page, order confirmation
page
c. Product detail page, shopping cart page, checkout page, order confirmation
ot na
page
d. Home page, shopping cart page, checkout page, order confirmation page
is
N ter
4. Which of the following are correct syntax for the product variable on a product
detail page? Circle all that are correct.
D In
a. s.products=prodView
b. s.products=category;product
e
c. s.products=product;category
d. s.products=category,product
ob
e. s.products=;product
o
a. True
b. False
y
c. Merchandising values can be set in the product string or on the page, depend-
t e nl
ing on the settings chosen.
d. All of the above.
bu O
tri se
D lU
ot na
is
N ter
D In
e
ob
o
Ad
Enhancements
y
t e nl
This fourth section introduces you to SiteCatalyst Configuration and Automatic
bu O
Variables. By modifying SiteCatalyst Configuration Variables, you can control how
SiteCatalyst records data. Well learn about SiteCatalyst features and functions that
tri se
will help you to modify your data such as SiteCatalyst Plug-ins and VISTA. Well show
you how to import data to and export data from SiteCatalyst. Finally, well cover some
important site-based implementation considerations such as non-JavaScript imple-
D lU
mentation options.
As the technical lead, you may not personally use some of the tools that well cover
ot na
during this section, but its important to know how they work so that when your
Report Consumers make demands for certain reporting, you know what is available
is
to you in your SiteCatalyst tool kit.
N ter
Many exercises throughout this section are also based on your own JJ Esquire Web
D In
15-1
Introduction
Up to this point, this course has reviewed the basic variables and functions for collect-
ing both Traffic and Conversion data. The power of SiteCatalyst is that the collected
data can be modified with additional global variables, features and tools. The addi-
tional features are defined in the following tables.
This first table provides a list and explanation of the Configuration Variables that can
be set in the Global JavaScript file on your site.
NOTE: The variables
are contained within s_account The s_account variable determines the report suite
y
the Global JS file (s_code. where data will be stored and reported in SiteCatalyst.
t e nl
js). Additionally, for H code, all s.currencyCode The currencyCode variable is used to identify the cur-
of the variables listed use s. rency type that you are passing in through the code to
bu O
to denote the object, with the SiteCatalyst.
exception of account, which s.charSet SiteCatalyst uses the charSet variable to translate the
uses s_ as a prefix. character set of the Web page into UTF-8.
tri se
s.trackDownloadLinks Set trackDownloadLinks to True if you would like
to track links to downloadable files on your site. If
D lU trackDownloadLinks is true, linkDownloadFileTypes is
used to determine which links are downloadable files.
s.trackExternalLinks If trackExternalLinks is true, linkInternalFilters and
linkExternalFilters are used to determine whether any
ot na
link clicked is an exit link.
s.trackInlineStats The trackInlineStats variable determines whether
ClickMap data is gathered or not.
is
N ter
y
ness requirements.
t e nl
VISTA SiteCatalysts Visitor Identification, Segmentation and
Transformation Architecture (VISTA) is a real-time server-side
bu O
data modification and segmentation solution. If you cant pop-
ulate a variable client-side, try VISTA. These rules can really
help you out when youre in a coding fix.
tri se
Classifications Classifications are attributes or properties (metadata) that
are applied to a key such as a Tracking Code. New reports are
created in SiteCatalyst by grouping these keys. Each key uses
D lU a unique alphanumeric entry in a table (template). The clas-
sifications are contained next to the key in the template. With
classifications you can gain an even deeper understanding of
elements driving your success.
ot na
SAINT SAINT (SiteCatalyst Attribute Importing and Naming Tool)
allows you to quickly configure SiteCatalyst classifications.
is
Using a simple tab-delimited data file format, SAINT enables
N ter
Data Warehouse Data Warehouse refers to both the storage of raw, unprocessed
data collected by Adobe and to the custom reports a user
can create by filtering data. Data Warehouse enables you to
request reports to display advanced data relationships from
raw data based on your unique questions.
ASI ASI stands for Advanced Segment Insight. This tool is used to
segment data retroactively from the Data Warehouse and cre-
ate a new custom segment in a new SiteCatalyst Report Suite
without the need to add implementation code.
y
Microsoft Excel to modify the data in the data block as neces-
sary. Additionally, you can save any worksheets to the Excel
t e nl
Workbook Library for later use.
Discover Adobe Discover is an extension of Adobe SiteCatalyst that
bu O
combines the speed and flexibility of Adobe SiteCatalyst with
the granularity and power of Adobe Data Warehouse. It allows
experienced Web analytics professionals to go beyond the
tri se
scope of traditional Web analysis by creating an unlimited
number of on-the-fly visitor segments and applying those seg-
D lU ments to any report, across any time period, and at any level
of detail. Discover helps to optimize the Web site and site
marketing by giving the analyst the ability to segment every
report. In brief, Discover is a segmentation tool.
ot na
Flash Tracking Frequently, companies develop applications in Flash, and
they would like to use SiteCatalyst to track certain events
that occur. You can track Flash events by using Adobes
is
N ter
In addition, this section covers several other topics of interest, including cookies, re-
ferrers and redirects. Adobe uses cookies to differentiate requests from different
browsers and to store helpful information that can be used by the application at a later
e
time. A referrer is the Web page location your visitors were viewing before coming to
ob
your site. A redirect occurs when a Web page or a Web server directs a browser to
some other URL without any user interaction.
o
Ad
These topics are discussed at length in the following chapters. For more information,
refer to the online Implementation Manual available for download in the SiteCatalyst
Help section.
Configuration Variables
y
t e nl
Objectives
bu O
Learn the purpose of SiteCatalyst Configuration Variables
Set Configuration Variables based on site locale and requirements
tri se
Learn how to implement Custom Link Tracking
D lU
ot na
is
N ter
D In
e
ob
o
Ad
15-5
Controlling Data Capture
The Configuration Variables control the wa that data is captured and processed by
y
SiteCatalyst. The list below shows some of the more-common Configuration Variables
t e nl
that are typically set in the main Global JavaScript (s_code.js). These variables can be
set within the SiteCatalyst page-level code and links when appropriate.
bu O
Not all of these variables appear in the code by default when you generate code
through the Admin Consoles Code Manager. Some of these Configuration Variables
tri se
may not be applicable to your sites implementation needs.
D lU s_account
s_dynamicAccountSelection
s_dynamicAccountList
s.dynamicAccountMatch
ot na
s.charSet
s.currencyCode
is
s.cookieDomainPeriods
N ter
s.fpCookieDomainPeriods
s.cookieLifetime
D In
s.doPlugins
s.trackDownloadLinks
s.trackExternalLinks
e
s.trackInlineStats
ob
s.linkDownloadFileTypes
s.linkInternalFilters
o
s.linkLeaveQueryString
Ad
s.linkTrackVars
s.linkTrackEvents
s.linkExternalFilters
s.usePlugins
Some of the goals and objectives of using these configuration variables are:
y
t e nl
bu O
tri se
The Report Suite can be specified by server code on page, but usually is contained in
the .JS file (s_account). The following sample code gives a good example of how the
D lU
s_account variable is used.
var s_account=jjesquireuk
ot na
In this case, the Report Suite ID is jjesquireuk. These IDs are created by Adobe, but
then applied to the JS file by the client.
is
N ter
employee multiple Report Suites. Each Report Suite is independent from the others.
Analysts that analyze the JJ Esquire Germany site and JJ Esquire Japan site may prefer
to keep site data separate. This can be done by feeding each sites data into its own
e
Report Suite.
ob
o
While analysts may analyze sites separately, they may also want a global view of
worldwide site activity. There are two methods to combine multiple Report Suites into
Ad
y
Code examples:
t e nl
s_account=jjesquireuk,Global
s_account=jjesquirede,Global
bu O
s_account=jjesquireau,Global
tri se
Rollup Report Suites
Rollup Report Suites can be created without the need to add any code to your imple-
D lU mentation. Rollup Report Suites are created in the Admin Console. These Global
Rollups sum the values of the Report Suites of your choice.
ot na
TIP: Assess your
Report Consumers
Global Report Suite needs
is
N ter
Character Sets
Character sets determine how data is displayed in the interface. Adobe supports two
different character set types including ISO-8859-1 and UTF-8. Languages with latin
y
character sets such as English, Spanish, and French use ISO-8859-1 (with no diacrit-
t e nl
ics). Languages that use other characters must enable a multi-byte Report Suite for use NOTE: The s.charSet
with the UTF-8 character set. Any languages that are not in ISO-8859-1 or UTF-8 can
bu O
variable should be set
be captured as long as the appropriate value is set into s.charSet, but since Adobe does to match the charset value set
not support the other character sets, SiteCatalyst uses the s.charSet variable to convert in the head tags of your Web
tri se
any characters in for example, Shift_JIS, Big5,ISO-8859-5 and other formats to UTF- site.
8. The following sample code shows an example of how the s.charSet variable is
populated. D lU
s.charSet=ISO-8859-1
ot na
If the s.charSet variable contains an incorrect value, the data in all other variables will
be translated incorrectly. The s.charSet variable should match the charset value that is
set in the headers of your Web site.
is
N ter
D In
e
ob
o
Ad
Multi-Currency Support
SiteCatalyst supports multiple currencies, so you can provide multi-currency func-
tionality to your end user and know that it will report correctly in the reports. There
are three times that you need to consider when working with currency in SiteCatalyst:
If you allow people to purchase items on your site in different currencies, you will
want to set this variable dynamically, usually at the page level.
y
t e nl
bu O
tri se
D lU
ot na
Storing Currency
When you set up a Report Suite, you have to choose a currency in which all numbers
will be stored. You can, however, still allow people to purchase items in multiple cur-
is
N ter
rencies on your site. The Report Suite currency by you or Adobe Client Care when you
initially create the Report Suite. If the currency being passed in does not match the
stored currency type, a currency exchange will take place as it flows into the database.
D In
This exchange rate is updated daily. In the rare case that you need to change the
Report Suite default currency, contact Client Care.
e
ob
o
Ad
y
t e nl
bu O
tri se
D lU
So how does this all work? Lets imagine that a buyer makes a purchase on the JJ
Esquire Denmark site. The Report Suite default currency is the Danish Krone, but
the visitor chooses to purchase using Pounds Sterling. How would this work?
ot na
is
N ter
D In
e
ob
o
Ad
Currency Format
Currencies that do not use a period (.) as the decimal separator will have to be modi-
fied to use the period instead of alternate decimal separators. For example, the Swedish
Krona, which uses a comma, will have to be modified to use a period instead of the
comma for the decimal separator. SiteCatalyst uses the comma to separate different
products in the product string, and if there is a comma inside of the product strings
revenue field, SiteCatalyst will interpret the comma as the start of a new product and
Domain Periods
Within the Global JavaScript File (s_code.js), you may find two curious variables:
s.cookieDomainPeriods and s.fpCookieDomainPeriods. For .com sites, you may
never deail with these variables, but if you have a site that, counting from the right to
the left, has more than two periods in the domain (like .jjequire.co.uk), you may deal
with these variables.
y
s.cookieDomainPeriods
t e nl
The s.cookieDomainPeriods should be created automatically in the Admin Console
Code Generator as long as you indicate three or more periods in your domain name
bu O
in the Code Generator menu.
tri se
D lU
ot na
is
N ter
D In
e
ob
o
Ad
This variable tells the SiteCatalyst code where to set the s_vi[ID] cookie. This cookie
ties together all of the visitors activity on your site. If a visitor visits www.jjesquire.
co.uk (three periods), but s.cookieDomainPeriods is set to two (it defaults to two if
not set), then SiteCatalyst will attempt to set the cookie to .co.uk which the
browser rejects. If this is not set properly, we will not set cookies correctly.
tri se
var d=window.location.hostname
if(d.indexOf(.co.uk)>-1||d.indexOf(.com.au)>-1)
D lU
s.cookieDomainPeriods=3
s.fpCookieDomainPeriods
ot na
This variable is used for cookies that are inherently first party cookies such as the
SiteCatlayst plug-in cookies and cookies set by the SiteCatalyst code (s_sq and s_cc,
discussed later). It does not affect how the s_vi[ID] cookie is set. That is only con-
is
N ter
Example code:
e
s.fpCookieDomainPeriods=3
ob
o
Ad
y
t e nl
bu O
tri se
D lU
ot na
is
N ter
Example Code:
<a href=http://www.asite.com/somepage.htm onclick=s_
objectID=SS1234;>Some Site Link</a>
This ID then overrides the href, and the numbers can roll up. One common use of this
is to track real estate value on your site instead of specific link value. If you assign an
y
objectID to a link location, no matter what link shows up there, you will be able to see
how many people clicked on links in that spot.
t e nl
Archiving Key Pages with ClickMap
bu O
In some cases, you might want to save versions of pages with ClickMap data, and then
be able to compare them later to current versions of the page. This will work fine.
tri se
Simply save the key pages to your hard drive or shared drive, and then later you can
load them back into the browser. The ClickMap data is stored right along with the
Web page. D lU
The only gotcha here is that the page will need to be able to find your JS file to make
the ClickMap popups work, so you will need to double-check the path to the JS file. If
ot na
you were using a relative link on the site, you will probably now have to change the
path to an absolute path, in order to really find the JS file.
is
N ter
to identify your mobile visitor in place of cookies. This can be done for mobile visits
to a non-mobile site. Non-mobile users will not be affected by the inclusion of this
variable.
e
ob
The s.mobile variable controls the order in which cookies and mobile Subscriber IDs
are used to identify visitors. When s.mobile is enabled, the SiteCatalyst JavaScript
o
code checks the HTTP headers for the Subscriber ID. If its present, its used to iden-
Ad
tify the visitor in lieu of cookies. If its not available, SiteCatalyst will default to the
cookie tracking method.
Setting this variable is very simple. Simply set s.mobile equal to any string in the
Configuration Variables section of the s_code.js file and SiteCatalyst enables its
functionality.
Example:
s.mobile=yes
When s.mobile is populated with a value, a /5/ value appears in the path of the image
URL and the Subscriber ID is used first if present. When s.mobile is not included, a
/1/ appears in the path of the image and cookies are used first for identification.
In these cases, you will want to send information (send the image request) to
SiteCatalyst in an onClick event in the link instead of during the page load.
y
Remember, if you send information to SiteCatalyst, even if it is on a link click, you are
t e nl
still paying for that server call, just as if it were a page view. So again, if the click des-
tination is one of your pages, its best to put the code on the destination page instead.
bu O
If the link click doesnt load a page you can code, then you have to code the link. This
is referred to as Custom Link Tracking.
tri se
Here are some examples of when you would want to use link tracking:
1. Download links
2. Exit links (External links)
D In
With Download and Exit links, you have a choice between an easy configuration and
e
how to set up the easy configuration for downloads and exits, and then cover custom
o
link tracking.
Ad
This variable denotes whether or not to track download links. Set to true if you
want to track Download links with the easy configuration settings.
s.linkDownloadFileTypes (exe,zip,wav,mp3,etc.)
y
t e nl
bu O
tri se
D lU
ot na
The value is only captured if the visitor does a regular left-click with the mouse, not if
is
N ter
they do a right-click. If you want to have a friendlier name show up in the Downloads
report, you must use Custom Link Tracking.
D In
is done by telling SiteCatalyst which kinds of links are internal (are destinations to
sites you own). Everything other link outside of the domains that belong to your site
ob
are considered exit links. There are three variables which control this easy setup of
o
s.trackExternalLinks (true/false)
This variable denotes whether or not to track exit links. Set to true if you want
to track external links on your site with the easy configuration settings.
s.linkInternalFilters (mysite1.com,mysite2.com)
s.linkLeaveQueryString (true/false)
This is the same variable used with download links. It controls whether to leave
or strip URL query string.
tri se
Exit Links report is in the Site Content > Links folder in SiteCatalyst.
If you want to give friendlier names to links in the Exit Links report, you must use
D lU Custom Link Tracking.
s.linkExternalFilters (Optional)
For sites with lots of exit links that dont wish to track every exit, the s.linkExternalFilters
ot na
can save you some time. Its used for less common implementations. You specify
which domains should be treated as exit links. An exit link is recorded if the domain
is
is NOT INCLUDED in the s.linkInternalFilter list and IS INCLUDED in the
N ter
tom links to be tracked in situations where page load tracking is not sufficient or ap-
ob
function.
Ad
Custom links are link tags that have been implemented with code that is inserted in
each link. This code identifies the link, and then calls a function that sends the image
request to the Adobe Data Center in order to track the link. Additionally, if there are
any s.props, s.eVars, or events set in the link, the variables and events must be included
in the following configuration variables, set either in the link or in the .JS file (s_code.
js).
y
t e nl
bu O
Here are some notes regarding this syntax:
In the s_gi function, you need to include the Report Suite ID that you want to
tri se
capture this data. This can be provided to you by your Account Manager.
The s.linkTrackVars and s.linkTrackEvents can be set in the link or in the JS
D lU
file, as stated earlier.
If you are going to set an event with the custom link, you need to put events in
the s.linkTrackVars variable, and then which event you are tracking (like
ot na
event1 in the s.linkTrackEvents variable).
You can then set any s.props or s.eVars that you want, separating them with a
semicolon (assuming you have included the appropriate references in
is
N ter
o pushes the Friendly Name into the Custom Links report (o means
other)
e pushes the Friendly Name into the Exit Links report
e
JS file for a site that has many Java-based games. In this scenario, the visitor launches
a Tetris game.
JS Configuration:
s.linkTrackVars=prop1
s.linkTrackEvents=None
Link code:
<a href=index.html onClick=var s=s_gi(mysiteid);
s.prop15=Tetris;
s.tl(this,o,Game); // Game into Custom Links
report>Launch Game</a>
The following is an example of a shopping portal link that sends buyers to partner
sites to complete their transactions. The report suite ID is mysiteid. Event 8 is
y
>Go Purchase Product</a>
t e nl
bu O
Custom Link Summary
Use when result of a link is not code-able (e.g., button leads to another site not
tri se
owned by you)
Use to give downloads and exit links custom names and values
D lU Set the type of link
e = exit link
d = download link
ot na
o = custom link (o is for other)
Config vars can go in JS file or in the link
Commonly placed in link instead of in JS file
is
N ter
D In
e
ob
o
Ad
Automatic Variables
In addition to the Configuration Variables, SiteCatalyst uses some variables that are
automatically set. These variables do not require any configuration, and they cannot
be configured in any way. They are read-only variables. Any time the .JS file is set, the
Link information
Browser height, width, type, version
Referring URL (can be overwritten)
Current URL (can be overwritten)
Netscape plug-ins
Screen width/height
Color depth
JavaScript version
y
Java enabled
t e nl
OS
bu O
SiteCatalyst Variables Summary
Traffic Variables (s.prop)
tri se
Basic value counters; page specific
Common Uses; segmentation, internal search, etc.
D lU
Conversion Variables (s.eVar)
Persistent variables; set in virtual cookie
Track what affected conversion
ot na
Events (s.events)
Counts instances of various conversion events (success on your site)
Configuration Variables & Automatic Variables
is
N ter
May change how data is collected, may collect http header data, etc.
D In
e
ob
o
Ad
y
Revenue in Pounds Sterling
All Metrics by Report Suite segment
t e nl
Assignment:
bu O
How would you set the Configuration Variables to comply with our KBRs and KPIs?
Solution
tri se
_________________________________________________________________
D lU _________________________________________________________________
_________________________________________________________________
Example
ot na
_________________________________________________________________
_________________________________________________________________
is
N ter
_________________________________________________________________
Implementation
D In
_________________________________________________________________
_________________________________________________________________
e
_________________________________________________________________
ob
o
Ad
Exercise 15.2
More Configuration Options
Estimated Time: 5 minutes
Scenario:
Japanese Web site is encoded in SHIFT_JIS
Adobe assigned report suite ID of yoursitejp
URL of your site is www.jjesquire.co.jp
Custom links use s.prop5, s.prop6, and event3
Track exit links, but not file download links
Track mobile visitors using the Subscriber ID if available
y
Assignment:
t e nl
How should the configuration variables be set in the JavaScript file (assuming that
you are setting custom link configuration variables in the JS file instead of in the
bu O
links)? Please fill in the blanks.
Solution
tri se
Fill in the blanks:
D lU
ot na
is
N ter
D In
e
ob
o
Ad
Implementation
_________________________________________________________________
_________________________________________________________________
_________________________________________________________________
_________________________________________________________________
y
Note: The application is completed on a third-party site called Passport Charge Card.
t e nl
For this exercise, we want to know if the visitor has completed the parts of the applica-
tion contained on our web site (we cannot place SiteCatalyst code on a third-party site
bu O
that we do not own). Completion should be recorded each time a visitor completes
Step 2 of the application.
tri se
Assignment:
Code the JJ Charge Card Application fulfilling the KBR and KPIs listed above.
D lU
ot na
is
N ter
D In
e
ob
o
Ad
y
t e nl
Objectives
bu O
Learn the order in which SiteCatalyst Code is read
Learn how SiteCatalyst Plug-ins can manipulate client-side data
tri se
Understand how VISTA can make server-side data modifications
D lU
ot na
is
N ter
D In
e
ob
o
Ad
16-1
Client-side and Server-side
Data Manipulation
y
After all of the experience youve had with SiteCatalyst Code thus far, youve probably
t e nl
already figured out how the code is read, but if there is any doubt, lets take care of that
right now. Lets break down this process into six steps.
bu O
1. Page Code calls the external s_code.js file
2. The entire s_code.js file is read
tri se
3. Page Code is read (can overwrite s_code.js variables)
4. s.t() function on page executes to start creating the image request
D lU 5. The Plug-ins execute and contribute values to the image request (can over-
write Page Code)
6. Finally, the Image Request is made
ot na
is
N ter
D In
e
ob
o
Ad
JavaScript Plug-Ins
Plug-ins are small programs that work together with the Global JS file (s_code.js) to
increase functionality and add special features that are otherwise unavailable in
SiteCatalyst. Plug-ins are added to the Global .JS file. The plug-ins are typically called
from the s_doPlugins function. Adobe does not include all the plug-ins by default.
There are several free standard plug-ins available in the SiteCatlyst Help section
(Help>Supporting Docs>Implementation>Plug-ins) and the list is constantly growing
as new functionality is created. Please contact your Adobe Account Manager to dis-
cuss other available plug-ins if you have an implementation need that isnt satisfied by
the plug-ins offered in the Help section. There may even be some plug-ins that are
commonly used by other Adobe clients in your vertical.
y
These following plug-ins are available free of charge, and more information can be
t e nl
found by looking in the Help section of the Adobe Digital Marketing Suite. Other free
plug-ins are available in the Help menu.
bu O
getQueryP- Returns the value of a specified query string parameter, if found
aram in the current page URL. Since important data (such as campaign
tracking codes, internal search keywords, etc.) is often available in
tri se
the query string on a page, getQueryParam is a powerful tool to
help capture these data into SiteCatalyst variables.
getValOnce D lU
Used to force a variable to be populated only once within a single TIP: Free SiteCatalyst
session or time period. The most common reason for doing this is plug-ins are available
to keep campaign click-throughs from being inflated. in the Knowledge Base at
APL Provides a simple mechanism to append a value to any delimited Help>Supporting Docs>
ot na
(appendList) lists, with the option of a case-sensitive or case-insensitive check to Implementation>Plug-ins.
ensure the value doesnt already exist in the list.
is
getPercent- Captures the percentage of the previous page that the user viewed.
N ter
PageViewed Use to determine how much of your content users are seeing on
average so that you can optimize your page lengths and layouts
based on real user behaviors.
D In
Time Parting Populates SiteCatalyst reports with hour of day, day of week and
weekend/weekday values. Use to understand when you get the
most Traffic and Conversion.
e
detectRIA Determines whether users on your site have Adobe Flash and/or
ob
sistValue a SiteCatalyst variable for a determined period of time. For exam- Plug-ins
ple, you might use this plug-in to set a campaign tracking code from Client-side approach
the s.campaign variable into a Custom Traffic (s.prop) variable on
to populate SiteCatalyst
each page view made by the user for the next 30 days in order to
variables. Plug-ins are small
determine how many page views the tracking code ultimately gen-
JavaScript programs placed in
erated as a result of the original click-through.
the Global JS file (s_code.js).
getNewRe- Determines whether a user on your site is a new visitor or a repeat
peat visitor.
daysSinceL- Determines the number of days since a user last visited your site
astVisit
getVisitNum- Determines how many visits a user has made to your site.
ber
The following plug-ins are not free of charge, but are available through Adobe Consulting
as part of solution packages. Please contact your Adobe Consultant or Account Manager
to get nformation about implementing these plug-ins. Other plug-ins may be available.
Adobe Consulting can be contracted to help you build a plug-in to complete your
implementation.
Form Analysis Used to track the use of forms on your site. Possible outcomes of
y
form usage include abandonment, success, or error. Examples of
t e nl
form elements: text boxes, radio buttons, drop-down boxes, etc.
dynamicOb- Provides an automated way of assigning and customizing IDs. This
bu O
jectID is especially useful when your link URLs exceed 255 characters
getTimeto- Tracks the time it takes a user to complete a process on your site.
Complete The clock begins when you call the plug-in with the start value
tri se
and stops with the stop value.
linkHandler Contains the linkHandler, downloadLinkHandler, and exitLinkHan-
D lU (Suite) dler plug-ins. The linkHandler plug-in was created to automate
custom link tracking. Instead of adding functionality to the onClick
event of a link, the linkHandler plug-in may be used to identify
links, set a link type, set variables or fire events whenever a link
ot na
is clicked. The downloadLinkHandler plug-in returns the URL
of a link clicked if that URL is considered an exit link. The exit-
LinkHandler plug-in allows you to fire an event when an exit link
is
N ter
is clicked. It also returns the URL of the link, which can be parsed
to populate JavaScript variables.
getVisitStart Used to determine first page of a visit. It returns 1 on the first
D In
Calling Plug-Ins
o
JavaScript plug-ins are typically called by the doPlugins function in the Global JS file
Ad
which is executed when the s.t() function is called in the Page-Level Code. Because the
s.t() function is placed at the bottom of the Page-Level Code, if you set a variable in the
doPlugins function, you may overwrite a variable you have set on the HTML page.
The only time the doPlugins function is not called is when the usePlugins variable is
set to false. The doPlugins function appears as seen below (assuming you have H
code) in your SiteCatalyst Global .JS file (s_code.js).
/* Plugin Config */
s.usePlugins=true
function s_doPlugins(s) {
/* Add calls to plugins here */
}
s.doPlugins=s_doPlugins
/* Plugin Config */
s.usePlugins=true
function s_doPlugins(s) {
/* Add calls to plugins here */
y
s.prop1=s.myPluginExample(param);
t e nl
s.eVar1=s.myOtherPluginExample(param);
}
bu O
s.doPlugins=s_doPlugins
/* Plugins Here */
tri se
Keep in mind, however, that changes to the JavaScript file are not always immediate.
Return visitors to your site are often using cached versions of the JavaScript file, mean-
D lU
ing that updates to the file may not be applied to all visitors for up to one month after
the change is made. A possible remedy for this is to change the name of your Global .JS
file when you make updates (only do so if you can easily update all of your SiteCatalyst
ot na
Page-Level Code with the new address of your s_code.js file).
is
Lets briefly cover three popular plug-ins. (Many of the other plug-ins are very popular
N ter
too, so dont forget to read up on them and see if they can improve your
implementation.)
D In
1. getQueryParam
2. getValOnce
3. APL Append List
e
This plug-in should be familiar to you since you installed it when we were learning
about the Campaign Variable (s.campaign). The getQueryParam plug-in is important
for campaigns because its primary purpose is to return the value of the Query String
Parameter (Tracking Code) found in the current URL. When a tracking code is as-
signed to a campaign, the getQueryParam plug-in reads the Tracking Code value
from the Query String Parameter in the URL. The getQueryParam code is displayed
below:
s.campaign=s.getQueryParam(cid);
In this case, the getQueryParam Plug-in will populate the s.campaign variable with
the value contained in the cid name-value pair in the query string of the URL.
Additionally, the getQueryParam plug-in may specify more than one parameter; all
values are returned in a delimited list, as shown below.
y
s.eVar1=s.getQueryParam(cid,src,:,f);
t e nl
Arguments (2nd and 3rd are optional): s.getQueryParam(Comma-separated list of
parameters, delimiter for list of values, where to search for value)
bu O
In this case, getQueryParam will look for values from cid and from src and use the
colon as a separator as it pushes the value into eVar1. The f value indicates that it
tri se
should search for the query string parameter in the parent frame (3rd argument is not
commonly used).
D lU If one query string parameter should take precedence over another when both are
found, use an if statement as shown below.
ot na
s.campaign=s.getQueryParam(cid);
if(!s.campaign)
s.campaign=s.getQueryParam(src);
is
N ter
In this case, cid takes precedence over src if both exist in the query string.
D In
As you can see, there is much you can do to manipulate or make needed changes to
your data as it comes off of the query string and is set into s.campaign. This plug-in,
as stated, is most commonly used to place Tracking Codes into the s.campaign vari-
e
able, but can be used freely to pull a value from the URL query string and populate
ob
ANY variable.
o
The getValOnce plug-in is used to force a variable to be populated only once within a
single session or time period. The most common reason for doing this is to keep cam-
TIP: Is it possible that
paign click-throughs from being inflated. We have a way to serialize Conversion
a visitor could refresh
Eventsthink of this plug-in as the way to serialize Conversion variables.
a campaign landing page on
your site? If it is (which it likely
is), that means that Tracking Inflated click-throughs can be caused by visitors that click back to the campaign landing
Code click-throughs could page on the site. The URL of the campaign landing page contains the Tracking Code in
be counted more than once. the query string. This value is sent into SiteCatalyst each time the page is viewed with
Prevent duplication with the the Tracking Code in the Query String Parameter. For example, when visitors click to
getValOnce plug-in. your site from a campaign ad, the landing URL usually contains a Query String
Parameter that is used to populate the s.campaign variable (Tracking Code).
y
You can name the cookie anything you like, but it should be something specific to this
purpose so that you dont conflict with other site functionality. The time frame pa-
t e nl
rameter controls how long this cookie should live before it expires. The value 0 de-
notes the browser session, which is the most common setting.
bu O
APL Append List Plug-in
tri se
The APL Append List Plug-in is used to add a value to a list variable without duplicat-
ing a value already in that variable or overwriting any values. For example, a media
site may wish to add a Conversion Page View event to all pages. This can easily be set
D lU
with this plug-in. If s.events is ever populated with purchase, the Conversion Page
View event will simply be appended instead of overwriting the purchase event. The
variable can also be used to add values to s.products or parameters like s.linkTrackVars
ot na
or s.linkTrackEvents.
s.events=s.apl(s.events,event1,,,1);
is
N ter
Scenario: Add event1 to the current events variable while ensuring that the event
isnt duplicated.
e
Before Plugin:
ob
s.events=scCheckout;
Before Plugin:
s.prop1=Travel,Business;
(0=no unique check, 1=case-insensitive check, append only if value isnt in list
2=case-sensitive check, append only if value isnt in list)
Result:
s.prop1=Travel,Business;
y
VISTA
t e nl
SiteCatalysts Visitor Identification, Segmentation and Transformation Architecture
(VISTA) is a server-side approach to populating SiteCatalyst Variables. VISTA server-
bu O
side data manipulation is done live as the data comes in through the image request. An
unlimited number of visitor segmentation rules can be defined with VISTA. To gain a
new understanding of how behavior differs from segment to segment, and bring valu-
tri se
able new insight to your site development efforts, VISTA can be leveraged for significant
improvements in site performance and profitability.
D lU
ot na
is
VISTA
N ter
Server-side approach
to populating SiteCatalyst To sum up VISTAs main purpose, it is to act as a real-time data manipulation en-
variables through real-time gine, so that you can change, add or delete any variable before it actually goes into the
D In
data manipulation. Rules SiteCatalyst reports. After analyzing your companys needs, the Adobe team creates
are defined by you and then VISTA rules for you. An unlimited number of rules can be created on each report
written and tested by Adobe suite.
e
Engineering Services.
ob
Because VISTA is a real-time solution, any rules that are created have to act on the
o
data as it is coming in and cannot act on data that is already in the SiteCatalyst data-
base. However, these rules can act on data in the HTTP header as well as any data ele-
Ad
grammed, review the requirements with you, test the rule in a development environ-
ment, and deploy the validated rule into production.
D In
VISTA rules require time to design, approve, test, and deploy. Since VISTA rules modify
the data collected by SiteCatalyst, new rules as well as changes to existing rules are made
carefully, and both tested extensively. In most cases, the data of affected report suite(s)
e
are duplicated onto a separate server, and the VISTA rules applied to this test data. Once
ob
the data has been validated and the performance verified, the rule can then be promoted
to production servers. Contact your Adobe Account Manager to discuss the time frame
o
This simple rule was created using VISTA because it was too difficult for our techni-
cal lead to program this client-side. JavaScript plug-ins can be used to manipulate all
sorts of data, but if its too difficult to make a client-side change to your data, see if
y
t e nl
bu O
tri se
Common VISTA Rules
GrabberVISTA can grab a value from the URL, the HTTP header or a
D lU variable, and set it into another variable or manipulate it and set it into a
variable.
ExploderVISTA can take an incoming value from a variable, and break it out
ot na
into several different variables. This can be very helpful when you have a long
string of concatenated values that you want to push into different reports.
ConcatenatorVISTA can take any number of values from variables, the
is
N ter
URL, or the HTTP header and concatenate them into one variable. This can be
quite helpful when the separate variables are dynamic and could come into
SiteCatalyst in many different combinations.
D In
Traffic CopBasically acting as a filter, VISTA can watch for specific values in
the HTTP header, variables, or URL and segment that data. You could use this
e
to allow only good values into a report, to watch for IP ranges, or even watch
for specific page names and populate appropriate events on them.
ob
Database LookupSecurely push values into props, eVars and metrics into
o
Goods Sold)
VISTA Benefits
The benefits of using VISTA include the following:
Justify the need to change server-side data (what KPIs and KBRs does this
satisfy?)
Determine if it is best to manipulate data client side (plugins) or server side
(VISTA)
y
Help define what VISTA rules should do
t e nl
Work with Adobe Engineering Services while the rule is written
bu O
Quick Quiz 16.1
Plug-in Functions
tri se
1. W hat would be the Adobe-recommended way to capture internal promotion click
throughs?
D lU
a. Use the s.campaign variable to capture the values
b. Use an eVar on the landing page to capture the value
c. Use the getQueryParam plug-in to capture the value
ot na
d. Use custom link tracking to capture the value
2. W hat would be the Adobe-recommended way to segment employee site traffic from
is
N ter
visitor traffic?
b. Duplicate domain on your intranet for employees and create a second report
suite
c. C
reate an employee landing page that drops a cookie; use a prop and pathing
e
to segment
ob
d. Use a VISTA rule to separate internal and external traffic into two report suites
o
3. How can you ensure that the tracking code click-throughs metric is not inflated?
Ad
4. How could you quickly add a Page View event to every page on your site?
a. Use the getQueryParam plug-in to pull page views from query string
b. Use the APL plug-in to append a Page View event to s.events
c. Use getValOnce to add but not over count Page View events
d. Use VISTA to add the Page View event each time a page is viewed
y
Assignment:
t e nl
Capture Internal Search Term (Internal Search Term appears in query string after the
q parameter) with the getQueryParam plug-in.
bu O
Site Exercise 16.3
tri se
Newsletter Subscriptions
Estimated Time: 10 minutes
D lU Key Business Requirements
Understand which Newsletters are most popular
Create a single report that shows Newsletter subscriptions
ot na
Assignment:
Code the Newsletter Subscription process to capture Newsletter names (a visitor can
D In
sign up for multiple Newsletters at the same time). Record the number of subscription
instances per Newsletter.
e
Hint: Selected newsletter subscriptions appear on subsequent page in the query string
ob
Assignment
y
Install the getTimeParting Plug-in (ask your Instructor and colleagues for assistance if
t e nl
necessary). Use props and eVars 16, 17 and 18 for hour, day and weekday/weekend,
respectively.
bu O
The Plug-in is available in Company>White Papers on the fictitious JJ Esquire Web
site or in Help>Supporting Docs>Implementation>Plug-ins in SiteCatalyst.
tri se
D lU
ot na
is
N ter
D In
e
ob
o
Ad
Processing Rules
y
t e nl
Objectives
bu O
Understand how Processing Rules work
Code Context Variables on your site
tri se
Create Processing Rules in the Admin Console
D lU
ot na
is
N ter
D In
e
ob
o
Ad
17-1
A Server-side Implementation Solution
y
If youve implemented before, you may have experienced an array of different prob-
t e nl
lems. For example:
bu O
IT schedules that dont align with marketing and analytics timelines
Technical Lead spending too much time training developers and documenting
implementation requirements
tri se
SiteCatalyst degrading over time without proper IT support
D lU These implementation problems can be solved through the Processing Rules tool.
Processing Rules are a server-side solution that allow you to modify your data without
IT assistance. Non-IT users can easily modify and manipulate implementation data
within an easy-to-use interface.
ot na
is
N ter
D In
e
Test Required
ob
In order for you to use, create and modify Processing Rules, you must pass the
o
Processing Rules test. Processing Rules are enabled per user by Adobe, so even if
Ad
youre a full administrator within SiteCatalyst, you will only have access to Processing
Rules after you pass the test. Non-certified admins can still view active Processing
Rules so that you are aware of how your implementation data is changed by them.
Contact your Account Manager for more information.
y
t e nl
bu O
tri se
D lU
ot na
is
N ter
So once youve determined what data you can manipulate with Processing Rules,
think about the types of things that you do with them. Here are some examples:
Populate variables with values from the query string parameter without the
getQueryParam plug-in
Concatenate category and page name in a prop for easier reporting
e
Map values from Context Variables to props and eVars or trigger an event
Ad
Context Data Variables contain a key value that you provide (names your Context
Variable, since you can have more than one of them, similar to how props are named
s.prop1 or s.prop2).
Example:
s.context[key_value]=value
y
t e nl
bu O
tri se
D lU
Context Data Examples
Context Data Variables are written in code as s.contextData[key_value]. The Key
ot na
Value is something that you create that makes sense to you. Key Values or variable
names are anything that youd like them to be. For example, book is used as a Key
is
Value in the code example below.
N ter
The technical lead could later use Processing Rules to map the Key Value of book to,
D In
lets say, s.eVar7 (which would forever hold the name of the book). The value set equal
to the Context Data Variable with Key Value of book would then go into s.eVar7
(effectively, wed be setting s.eVar7=Americas Favorite Game Show Host with this
e
s.contextData[author]=Guy Smiley
s.contextData[genre]=Autobiography
s.contextData[year]=1982
y
Processing Order
t e nl
As you set Processing Rules, you should be aware of what can be modified by
Processing Rules and also what data could still be modified even after they are touched
bu O
by Processing Rules.
tri se
Before Processing Rules, the following data is processed and therefore could be modi-
fied by Processing Rules:
After Processing Rules, the following data is processed and therefore cannot be modi-
Ad
fied by Processing Rules. These data processes could modify data already modified by
Processing Rules since they occur after:
y
Query String Parameters cannot be read beyond the first 255 characters of a
URL (consider using the getQueryParam plug-in instead if you have very long
t e nl
URLs)
Query String values must be encoded in Unicode or UTF-8 to be read by
bu O
Processing Rules
Rules apply to only one Report Suite (but rules can be copied)
tri se
Hits cannot be excluded with this tool (use VISTA instead)
Available Values:
D In
Custom Values
Custom Value (commonly used withevents, accepts alphanumeric values)
Concatenated Value
e
Traffic Variables
ob
s.props1-75
s.server
o
s.channel
Ad
s.hier1-5
Conversion Variables
s.eVar1-75
s.campaign
s.list1-3
s.state
s.zip
s.purchaseID
s.transactionID
s.currencyCode
Conversion Events
events1-100
purchase, scCheckout, prodView, scView, scAdd and other cart events
y
Referring Domain (read-only)
t e nl
(e.g., subdomain.jjesquire.com)
Referring Root Domain (read-only) (e.g., jjesquire.com)
bu O
Referring Path (read-only)
Referring Query String (ready-only)
IP Address (read-only)
tri se
User Agent (read-only)
AppMeasurement Code Version (read-only, e.g., H.23.1)
D lU
Values that cannot be changed by Processing Rules:
Product Variable
User Agent
ot na
Referrer
Mobile device attributes
Classifications
is
N ter
their effects. Processing Rules permanently change your implementation. Make sure
that they work as you intend them to work before switching them over to a production
e
Report Suite. If something isnt working as you thought that it would in your dev
Suite, go through the Rule Set logic to see where you might have gotten something
ob
wrong. That little bit of learning will be very beneficial in the future as you create new
o
rules.
Ad
Creating Processing Rules is a fairly easy process, but you must pay special attention
y
to the logic of each Rule Set that you create. To access the Processing Rules Manager,
t e nl
go to Admin > Report Suites > Edit Settings > General > Processing Rules. Processing
Rules are specifc to a Report Suite, so make sure that youve selected the Report Suite
bu O
to which youd like to apply the rules.
tri se
D lU
ot na
is
N ter
Create a Rule
Once you are inside the Processing Rules Manager, click Add Rule in the Rule Sets
D In
Conditions
Rules consist of Conditions and Actions. A rule action will not run if it does not pass
the condition that youve set. It is a best practice to set a condition in nearly all of your
rules. At the very least, you should check if a value that you are about to overwrite has
already been set. If it has been set, a Processing Rule that does not do this check could
overwrite it (if a Processing Rule has nothing to set into a variable, a blank value
would still thus overwriting any value set into a variable previously by other means
(for example, JavaScript AppMeasurement).
You can set one or more Conditions based on Hit Attributes, Traffic or Conversion
y
Variables or Conversion Events. Limit of 30 values per condition (place one value per
line).
t e nl
bu O
tri se
D lU
ot na
You can set AND or OR statements for multiple conditions by selecting All or
Any from the highlighted drop-down menu.
D In
e
ob
o
Ad
y
t e nl
bu O
Setting Multiple Rules per Report Suite
Processing Order matters (drag and drop to change rule order) so make sure to review
rule order so that you can determine how the rules affect each other.
tri se
D lU
ot na
is
N ter
D In
e
ob
o
In this example, Rule Set 1 values could potentially be changed by subsequent Rule
Ad
Sets.
tri se
D lU
ot na
is
N ter
Rule History
D In
Click View History if you wish to see any changes made to your Processing Rules.
Click View of a past Rule Set within the View History section to see any old Rule
e
Sets.
ob
o
Ad
y
t e nl
bu O
tri se
D lU Copy Processing Rules
If youd like to apply Processing Rules from your current Report Suite to others, you
ot na
can easily copy rules with the Copy Processing Rules function. Within the
Processing Rules manager, click Copy Processing Rules. Select the Report Suites to
is
copy Processing Rules to (copies rules from present Report Suite - click Expand in
N ter
Selected Report Suites if unsure of your present Report Suite). Click Copy and youre
done.
D In
e
ob
o
Ad
Processing Rules have all sorts of uses. You will probably find that this becomes an
y
integral part of your implementation. In some cases, IT may never again be setting
t e nl
props or eVars. This can now all be done by the technical lead! This makes it much
easier for you to make changes to your implementation when you need them. Lets
bu O
explore some examples of Processing Rules.
tri se
You can set s.campaign with Processing Rules. Notice that the Campaign Variable
isnt set unless the Condition is met (s.campaign shouldnt be set and the Query String
D lU
Parameter cid should be set). Never set an action without a condition (e.g., If
Campaign is not set, then).
ot na
Keep in mind that Query String must occur within the first 255 characters of the URL
(if you have extremely long URLs, consider the getQueryParam plug-in).
is
N ter
D In
e
ob
o
Ad
that ClientCare seet for you when you set List Props and List Vars (commonly, the
delimiter is | called the pipe - double check with ClientCare first).
D In
e
ob
o
Ad
Even though this is a fairly simple rule, please make sure to document the reason for
the rule. Do this with all of your rules. Its just as important as filling out the Solutions
Design Reference document (which you should also fill out).
y
t e nl
bu O
tri se
D lU
ot na
is
N ter
Correct Misspellings
Lets suppose that you cant make a change to your code for a couple of months, but
D In
one of your Site Sections has been misspelled. Do you have to stand for that? No!
Simple set conditions to search for the offending Site Section name, e.g., shoppping
e
, Shop ping, shoping, etc. Conditions are case insensitive, so that means that
ob
In the example, the rule checks for any misspellings and if present, populates the cus-
Ad
tom value Shopping so that the Site Section is appropriately named. This can all be
done without having to involve IT! Youll probably want to involve them later to cor-
rect the misspelling. I mean, isnt it going to bug you that its not set correctly in the
code? Yes, its going to bug you; we know your personality type). :)
first 255 characters of the URL so make sure that the parameter always occurs within
those first 255 characters of the URL. If you have extremely long URLs, consider using
the getQueryParam plug-in which is available for free (but does mean that youll have
D In
encoded.
ob
o
Ad
There are a couple of catches or gotchas associated with Processing Rules, so lets
y
review those so that you never get any unexpected results with your Rule Sets. These
t e nl
arent bugs or errors within the tool. Theyre just elements within the rules that you
may not catch the first time around.
bu O
Example One: Copying a Page Name into an eVar
Scenario:
tri se
You have Events that fire on link clicks (s.events set with Custom Link
Tracking) D lU
You want the Events associated to the page on which they were fired (Page
Name isnt included in the link click)
You set the Page Name into an eVar with Most-Recent (last-touch) Allocation
ot na
and Visit Expiration
Events fired will be attributed back to the active Page Name that persists in the
is
N ter
eVar
D In
e
ob
o
Ad
If s.pageName is empty, the eVar wont be set (an empty s.pageName variable
defaults to the clean URL after , but the eVar will NOT be set to the URL)
Not a problem if every page has a Page Name
Solution
Use a second rule to rectify the potential problems with rule one (example on
next slide)
Scenario
A new marketer used camp_id instead of cid in the query string of the
destination URL of 1,000 campaign creatives
D In
If camp_id is not present in the query string, s.campaign will be left blank
You will lose ALL tracking codes (if cid is present in the query string,
associated tracking codes will be overwritten with nothing)
Set a condition to first check and see if camp_id has been set in the query
string
y
t e nl
bu O
tri se
Example Three: Two Sources of Data
Scenario
D lU
Two web sites feed Internal Search Terms data into one Report Suite
Developer for Web Site X uses a Context Variable called search_keyword
Developer for Web Site Y uses a Context Variable called search_term
ot na
We want to populate s.eVar1 with either of these Context Variables
is
N ter
D In
e
ob
o
Ad
bu O
tri se
D lU
ot na
is
N ter
D In
e
ob
o
Ad
As you start using Processing Rules, youll likely be impressed with how easy they are
y
to use and how flexible your implementation can be when you have server-side control
t e nl
over how SiteCatalyst records visitor activity on your Web site.
bu O
Best Practices
At this point, you should be aware that Processing Rules are very powerful and useful,
but also potentially dangerous if you do not use caution and good sense when using
tri se
them. When you set a Processing Rule, you are permanently changing your imple-
mentation during the period in which the rule runs.
D lU
Here are some helpful best practices to keep in mind as you use Processing Rules:
Always test new rules in a Development Report Suite (you can easily create a
ot na
new Report Suite for this purpose in the Admin console)
Use conditions to check for empty values (if not, you may unintentionally
overwrite a value already set in a variable)
is
N ter
Keep Processing Order in mind (what is set before and after Processing Rules)
because whatever is processed after can affect what was set before
Take advantage of Contextual Variables so that IT doesnt have to learn how
D In
Assignment
Capture a Campaign Tracking code from Query String Parameter cid
Assignment
As youve done by using JavaScript AppMeasurement and plug-ins in previous exer-
cises, use Processing Rules to:
y
Prop 11
t e nl
3. Use the Pipe (|) as the delimiter between values
4. Do not Save the Processing Rule
bu O
5. Ask your instructor to check your work
tri se
Site Exercise 17.3
Coding Context Variables
D lU Estimated Time: 10 minutes
Assignment
ot na
1. Set Page Code on the Corduroy Blazer page in Mens Activewear:
s.contextData[page]=Men:Activewear:Corduroy Blazer
is
s.contextData[section]=Men
N ter
s.contextData[subsection]=Activewear
Note: Remember that Context Data is only processed and recorded if Processing Rules
e
have been configured previously for such data. In this example, nothing will be recorded
since no Processing Rules have been set up yet for this Context Data.
ob
o
Exercise 17.4
Ad
Assignment
1. In the Processing Rules Manager, create Processing Rules to:
Push the value of s.contextData[page] into s.pageName
Push the value of s.contextData[section] into s.channel
Push the value of s.contextData[subsection] into s.prop1
2. Do not Save the Processing Rule
3. Ask your instructor to check your work
y
t e nl
Objectives
bu O
Learn how Mobile Site Tracking works
Write image requests and HTTP requests to pass data into SiteCatalyst
tri se
Use the AppMeasurement Library to dynamically create image requests
D lU
ot na
is
N ter
D In
e
ob
o
Ad
18-1
How Does It Work?
If youre like me, as you look up at the stars at night and stare into the infinite, you ask
y
yourself, How does mobile site tracking work? Youre in good company. Lets take a
t e nl
look and understand how you can send image requests from your mobile site when
JavaScript isnt an option.
bu O
tri se
D lU
ot na
is
N ter
D In
e
ob
o
Ad
1. The Mobile Device makes a request for a Web page to the Tower
2. The Tower forwards the mobile request to the Gateway
3. The Gateway converts the mobile request into an HTTP request
4. The Web Server responds to the HTTP request with a page built for the
Mobile Device
5. The Gateway sends the page back through to the Tower
6. The Tower sends the data for this page to the Mobile Device (there is a hard-
coded image request built into the page)
7. The image request is made from the Mobile Devices browser to the
SiteCatalyst Data Center
8. SiteCatalyst records analytics data for the Mobile Site in question
y
It is perfectly acceptable to track your mobile site using JavaScript if
youre capturing all user activity (most of your visitors use a JavaScript-
t e nl
enabled browser)
Should I hard code image requests or use the PHP, Java or .NET
bu O
AppMeasurement libraries to dynamically create an image request?
The server-side AppMeasurement libraries are a great idea and ease
tri se
implementation
Think about how you wish to analyze your data and then make your move. Its easy to
create new Report Suites to keep your data segmented at a very high level although
you can create a segment to view just your Mobile Site data in SiteCatalyst Version 15.
If you did combine data from two sites into one Report Suite, consider how Page
Names and other values would mesh in non-segmented reports.
Requesting Domain
The Domain through which the image request is sent (CNAME or Adobe domain)
Example:
<img src=http://jjesquire.d1.sc.omtrdc.net/b/ss/
y
jjesquireapac/5/WAP/65793524981?gn=Mobile%20Home%20
t e nl
Page&v0=spring_campaign&c2=handbag&ce=UTF-8&cc=USD width=5
height=5 alt= border=0 />
bu O
tri se
D lU
ot na
is
N ter
Note: You can find the Requesting Domain by running the Debugger on a page with
SiteCatalyst JavaScript Code. This is the same as the s.trackingServer value if that value
is populated.
D In
Legacy Code
e
<img src=http://jjesquire.d1.sc.omtrdc.net/b/ss/
o
jjesquireapac/5/WAP/65793524981?gn=Mobile%20Home%20
Ad
Page&v0=spring_campaign&c2=handbag&ce=UTF-8&cc=USD width=5
height=5 alt= border=0 />
Mobile RSID
The SiteCatalyst Report Suite ID that receives mobile site measurement data
Example:
<img src=http://jjesquire.d1.sc.omtrdc.net/b/ss/
jjesquireapac/5/WAP/65793524981?gn=Mobile%20Home%20
Page&v0=spring_campaign&c2=handbag&ce=UTF-8&cc=USD width=5
height=5 alt= border=0 />
bu O
Console > Report Suites.
Image Type
tri se
Image Type (/5/ indicates a mobile request):
Example:
is
N ter
<img src=http://jjesquire.d1.sc.omtrdc.net/b/ss/
jjesquireapac/5/WAP/65793524981?gn=Mobile%20Home%20
Page&v0=spring_campaign&c2=handbag&ce=UTF-8&cc=USD width=5
D In
Code Version
e
This value can be anything you want, but weve set it to WAP to indicate that this
ob
image request is from our mobile site. In a JavaScript request, you would see a value
o
such as H.23.4 in this field. This field is very useful for debugging purposes.
Ad
bu O
This prevents Web browser and carrier image caching (Adobe also instructs mobile
browsers not to cache images)
Example:
tri se
<img src=http://jjesquire.d1.sc.omtrdc.net/b/ss/jjesquireapac/
WAP/5/65793524981?gn=Mobile%20Home%20Page&v0=spring_
D lU campaign&c2=handbag&ce=UTF-8&cc=USD width=5 height=5
alt= border=0 />
ot na
Query String
Predefined and Custom Variables and their values piggyback on the image request
is
N ter
Example:
D In
<img src=http://jjesquire.d1.sc.omtrdc.net/b/ss/jjesquireapac/
WAP/5/65793524981?gn=Mobile%20Home%20Page&v0=spring_
e
Note: You must URL encode the link. For example, %2F for /, %3a for :, %20
for a space, etc.
Example:
<img src=http://jjesquire.d1.sc.omtrdc.net/b/ss/jjesquireapac/
WAP/5/65793524981?gn=Mobile%20Home%20Page&v0=spring_
campaign&c2=handbag&ce=UTF-8&cc=USD width=5 height=5
alt= border=0 />
y
Web Beacon Placement
t e nl
The Web Beacon must be placed inside the <body> tags of your page whether you
hard code your image request or use JavaScript code or other AppMeasurement code
bu O
to create the web beacon.
Example:
tri se
<body>
D lU
<img src=http://jjesquire.d1.sc.omtrdc.net/b/ss/jjesquireapac/
WAP/5/65793524981?gn=Mobile%20Home%20Page&v0=spring_
campaign&c2=handbag&ce=UTF-8&cc=USD width=5 height=5
alt= border=0 />
ot na
</body>
is
N ter
short Query String Parameter name. In cases where you may need to hard code an
image request, keep these tables of Query String Parameters handy.
e
ob
o
Ad
tri se
Names option in the Digital Pulse debugger.
D lU
ot na
is
N ter
D In
e
ob
o
Ad
Notice the values that are being passed into SiteCatalyst via the query string? The fol-
lowing table shows each of the query string parameters, their values and the
y
t e nl
bu O
tri se
Site Exercise 18.1
Mobile Site Landing Page
Estimated Time: 5 minutes
D lU
Key Business Requirement
Page Views, Visits, Unique Visitors and Campaign instances and Conversion
metrics
Assignment
D In
1. Hard code the image request for the Kitchen Essentials Campaign Landing
Page using the same variables that you would use on the regular site (access
e
from Mobile Home Page the partially completed image request is at the bot-
ob
2.
3. Site Section is Home and Garden
Ad
4. Subsection is Kitchen
5. Campaign is kitchen_sale
So how in is this done? Its done by implementing a redirect. SiteCatalyst variables are
coded into this HTTP request.
<a href=<requesting domain>/b/ss/<Mobile RSID>/4/REDIR/
Example:
<a href=http://jjesquire.d1.sc.omtrdc.net/b/ss/
jjesquirelatam/4/REDIR/?url=https%3A%2F%2Fptop.only.wip.la%3A443%2Fhttp%2Fwww.jjesquire.
com%2Fsize_chart.pdf&pe=lnk_d&pev1=D=url&pev2=size_
chart&ev=event7&v8=Size%20Chart&ce=UTF-8&cc=USD />Download the
Clothing Size Chart</a>
y
t e nl
The pe value or Link Type should be set to one of these three values:
bu O
lnk_e = Exit Link
lnk_o = Custom Link
tri se
In the previous example, pev1 employs a Dynamic Variable (D=url) to populate the
URL (stated earlier in the string) into pev1 in order to shorten the image request
D lU (Dynamic Variables are discussed later). pev2 holds link name.
Note: You must URL encode the link. For example, %2F for /, %3a for :, %20
ot na
for a space, etc.
is
N ter
Understand Charge Card Application Conversion on our mobile Web site (find
e
out if applicants submit the application on our site and continue on to the
ob
Assignment
1. Hard code the image request for the Mobile Site JJ Charge Card Application
exit link button on the final application page (siteN/mobile/chargecard/
jjcard_app2.php).
2. Recording the Application Completion event and the name of the Form (link
is at the bottom of the final application page its called Proceed to Apply)
3. Some of the values in the request have been filled in for you double check to
make sure all necessary values have been recorded and test your results
If you dont wish to hard code image requests, you can use server-side AppMeasurement
y
Library code to build the image request dynamically for you. JavaScript is part of the
t e nl
AppMeasurement Library, but it is a client-side code (executes on the browser).
bu O
If youve already decided that JavaScript wont capture the majority of users that visit
your mobile site because they use browsers that do not have JavaScript enabled, you
should stick with a server-side AppMeasurement solution to dynamically build your
tri se
image requests if you do not wish to hard code them.
D lU
AppMeasurement Library Code
You can use PHP, Java or .NET to dynamically build the image request for your Mobile
Site (we will train on PHP code in this chapter). To do so go to Admin > Admin
ot na
Console > Code Manager.
y
t e nl
bu O
tri se
D lU Look closely at the PHP Config Text and youll notice that not all variables are in-
cluded by default in the page code generated by the Code Manager (similar to the
JavaScript code not including s.hier or s.transactionID by default). Some of those vari-
ables youll need to write in yourself. Review the appropriate documentation on the
ot na
KB for information on all possible variables for the AppMeasurement Library that
youve chosen to use.
is
N ter
Server-side Scripts
PHP, Java and ASP.NET are server-side scripts. SiteCatalyst Code implemented
D In
through one of these methods do not appear client-side (within the source code of the
Web page) as JavaScript appears (being a code that executes client-side). These scripts
dynamically create the image request which, by default, does appear in the source
e
code of the Web page and can be read by the Digital Pulse debugger.
ob
<?php
Ad
require_once OmnitureMeasurement.class.php;
$s = new OmnitureMeasurement();
$s->currencyCode = USD;
y
$s->cookieDomainPeriods = 2;
t e nl
$s->mobile = true;
bu O
/* Turn on and configure debugging here */
$s->debugTracking = false;
$s->sendFromServer = false;
tri se
/* WARNING: Changing any of the below variables will cause
drastic changes
D lU
to how your visitor data is collected. Changes should only be
made
when instructed to do so by your account manager.*/
ot na
$s->trackingServer = dcrookston.d1.sc.omtrdc.net;
is
N ter
?>
<?php $s->track(); ?>
D In
mport com.omniture.AppMeasurement;
o
AppMeasurement s;
Ad
s.currencyCode = USD;
s.cookieDomainPeriods = 2;
y
ote: You must also place one of the Java component files on your server and use it in
N
t e nl
conjunction with your Page Code (similar to the s_code.js file). See the Java SE and EE
AppMeasurement implementation guide.
bu O
tri se
Abbreviated ASP.NET Page Code Example
using com.omniture;
D lU namespace AppMeasurementExample {
public partial class Page : UserControl {
AppMeasurement s;
ot na
public Page() {
is
N ter
InitializeComponent();
s = new AppMeasurement();
D In
s.debugTracking = true;
ob
s.pageURL = ;
Ad
s.charSet = UTF-8;
s.currencyCode = USD;
Uses the mobile devices Subscriber ID first before cookies to identify visitors
Sets the image beacon to 5x5 pixels (defaults the imageDimensions variable to
5x5)
Measurement library automatically shortens the Adobe image request when
y
enabled
t e nl
E
xample:
bu O
$s->mobile = true;
tri se
The track variable makes the image request.
Example:
$s->track();D lU
Web Beacon Placement for PHP
ot na
The Web Beacon should be placed inside the <body> tags of your page (best practice)
just as you currently do with JavaScript AppMeasurement code.
Example:
is
N ter
<body>
<?php $s->track(); ?>
</body>
D In
e
Accurately track Conversion and Traffic site activity on the JJ Esquire Mobile
Site using the PHP AppMeasurement Library
Page Views, Visits, Visitors, Product Views, Page Name, Product Name, Site
Section, Subsection
Assignment
Example:
y
$s->sendFromServer = false;
t e nl
JavaScript creates the image request by executing code within the browser (client side)
bu O
while PHP and other SiteCatalyst AppMeasurement languages create the image re-
quest server-side and populate the completed image request into the page source code.
tri se
D lU
ot na
is
N ter
D In
e
ob
o
Ad
J
There is an option to send data directly to the Adobe Data Center from your own serv-
ers. To do this, set the sendFromServer variable to True.
Example:
$s->sendFromServer = true;
A direct HTTP request with SiteCatalyst variable data is made from the companys
server to the SiteCatalyst server.
y
t e nl
bu O
tri se
D lU
ot na
is
N ter
ment its not pretty). Debugging info includes request, request headers, response and
errors.
e
ob
o
Ad
Assignment
y
notice that there is no client-side indication that the page is being tracked
t e nl
4. Disable Send From Server and Debug Tracking
bu O
Note: It is only possible to see the effects of this exercise on the PHP JJ Esquire site. The
HTML version of the site does not reside on a Web server and cannot process PHP.
tri se
Making It Work
D lU When you need an alternative to JavaScript when tracking your site properties, the
AppMeasurement Library has you covered. Keep in mind that not every option that is
available ot you in JavaScript may be available to you in, for example, the PHP
ot na
AppMeasurement Library.
Plug-in Architecture is supported for your own custom plug-ins in Java and PHP (see
is
N ter
the AppMeasurement for Java or PHP white paper for more information). You may
need to use your own PHP, Java or .NET expertise to replicate some of the plug-in
functionality provided to you by Adobe for JavaScript implementations.
D In
Remember that server-side Context Variables can simplify implementation for mobile
sites (available for Java and .NET, not available for PHP).
e
ob
Lets go through a couple of examples of how you might replicate some of the things
that you do in JavaScript. Its not difficult; however, its much easier with JavaScript
Ad
AppMeasurement because the code has already been built for you in the form of
JavaScript plug-ins that you use in the s_code.js file.
y
efficient ways for you to populate certain values).
t e nl
Example (from the Mobile Site):
bu O
$n1 = $_GET[n1];
$n2 = $_GET[n2];
tri se
$n3 = $_GET[n3];
$n4 = $_GET[n4];
D lU
$n5 = $_GET[n5];
$n6 = $_GET[n6];
$n7 = $_GET[n7];
ot na
$n8 = $_GET[n8];
$n9 = $_GET[n9];
$param_array = array($n1,$n2,$n3,$n4,$n5,$n6,$n7,$n8,$n9);
is
N ter
Note: Use $_POST to grab values sent through a form using the POST method.
e
Regardless of the AppMeasurement that you choose to employ to track visitor activity
o
on your site properties, you should always follow best practices. Best practices that
Ad
y
t e nl
bu O
tri se
D lU
ot na
is
N ter
D In
e
ob
o
Ad
y
t e nl
Objectives
bu O
Understand when to use Light Server Calls
Learn how to create Light Server Calls
tri se
D lU
ot na
is
N ter
D In
e
ob
o
Ad
19-1
What is a Light Server Call?
Light Server Calls let you track high-level events (and even eVars) without using a full
y
server call. They are more economical for events that dont require segmentation or
t e nl
in-depth analysis because theyre priced cheaper than a full server call. You can use
Light Server Calls with Version 14 and 15 of SiteCatalyst.
bu O
tri se
D lU
ot na
is
Reasons to Use Them
N ter
When might you use Light Server Calls? It may make sense to employ them when you
need to measure something that is high in volume, when you just need a few metrics
D In
about the item in question or when you dont wish to inflate Visits and Visitors.
Onsite Ad Impressions
ob
Limitations
Light Server Calls are excellent for the aforementioned reasons, but they do have some
limitations. They shouldnt be used in place of full server calls for your Web pages.
Some of the limitations are:
y
code on the landing page. This tracking code is then populated into s.campaign.
t e nl
bu O
tri se
D lU
ot na
is
N ter
D In
e
View-through Tracking
ob
View-through Tracking shows you when a visitor visits your site (and potentially con-
verts) after seeing your display ad, but doesnt click on it. For example, lets suppose
o
that a visitor sees a display ad to JJ Esquires Ski Sale on Monday, but doesnt click on
Ad
the ad.
A Light Server Call made from the Web site hosting the display ad will place a cookie
on the visitors browser with the ad data to record that the visitor saw the display ad
(an ad impression).
y
t e nl
bu O
tri se
D lU Through the Light Server Call data captured in this example, the analyst will be able
to see that the display ad, although not responsible for a Click-through, was still an
influence in the visitors purchase based on the View-through recorded. The display
ad is certainly a winner (got us a conversion) and so View-through Tracking will en-
ot na
sure that these ads continue to be purchased by analysts.
is
N ter
If the visitor in this scenario had chosen to click through, special code on the landing
page (or in the s_code.js file) can cancel out any Light Server Call profile data (in other
words, you should set your code so that Click-throughs win or cancel out View-
D In
To enable Light Server Calls, contact Adobe ClientCare to. Together you will need to
ob
select a Custom Event to track the Light Server Call, choose additional Events and/or
eVars to track (optional), and select a Profile ID to associate with the call (the Profile
o
Code Version
This can be any value, but it must contain some value (e.g., email, display, etc.). In a
standard server call, code version would be something such as H.24. Remember that
AppMeasurement Code Version can be accessed via Processing Rules in v15
Example:
<img src=http://jjesquire.d1.sc.omtrdc.net/b/ss/
mtp
Set this value to the Profile ID that youve set up with ClientCare (Profile ID is like the
RSID of the Light Server Call). The Profile ID will trigger an ad event.
Example:
<img src=http://jjesquire.d1.sc.omtrdc.net/b/ss/
jjesquire/1/display/s23409583?mtp=ad1&mtss=86400&ns=dcrooks
ton&cdp=2&cl=86400&v1=ad1&v2=campaign_34&ce=UTF-8 />
y
t e nl
mti
This is the amount that you would like to increment your events (if not included,
bu O
events are only incremented by one). You dont need to use this if youre only incre-
menting events by one (basic counter).
tri se
mtss
This stores Light Server Call values in a cookie which expires after the number of
D lU
seconds set in this variable (e.g., 86400 = 1 day).
Example:
ot na
<img src=http://jjesquire.d1.sc.omtrdc.net/b/ss/
jjesquire/1/display/s23409583?mtp=ad1&mtss=86400&ns=dcrooks
ton&cdp=2&v1=ad1&v2=campaign_34&ce=UTF-8 />
is
N ter
Note: If the image request is made from a third-party site (not within your Internal URL
Filters), you need to include the following to prevent the call from being filtered:
D In
ns=visitor namespace
cdp=cookie domain periods
e
Example:
o
<img src=http://jjesquire.d1.sc.omtrdc.net/b/ss/
Ad
jjesquire/1/display/s23409583?mtp=ad1&mtss=86400&ns=dcrooks
ton&cdp=2&v1=ad1&v2=campaign_34&ce=UTF-8 />
Variable Data
Use the same Query String Parameters that we learned about in the Mobile Site
Tracking to populate eVar values.
Example:
<img src=http://jjesquire.d1.sc.omtrdc.net/b/ss/
jjesquire/1/display/s23409583?mtp=ad1&mtss=86400&ns=dcrooks
ton&cdp=2&v1=ad1&v2=campaign_34&ce=UTF-8 />
Example:
<img src=http://jjesquire.d1.sc.omtrdc.net/b/ss/
jjesquire/1/display/s23409583?mtp=ad1&mtss=86400&ns=dcrookst
on&cdp=2&v1=ad1&v2=campaign_34&ce=UTF-8 />
y
In the case of this example of a Display Ad, remember that the Light Server Call
t e nl
should be placed on the page on which the ad appears.
bu O
When a visitor has interacted with a page that contains a Light Server Call (offsite
display, email, etc.), that data is only collected by Adobe when and if the visitor arrives
tri se
at your site. To collect this data, verify that you include the following code in your s_
code.js to retrieve Light Server Call data (or similar code - this is just an example).
D lU You can remove unnecessary if statements if necessary (again, the following code is
just an example). This code is set to delete any Light Server Call profiles if a cid value
ot na
is detected in the Query String (in the case of this client, a cid value detected in the
Query String denotes a Click-through negating the need to record any View-through
activity):
is
N ter
else
ob
s.retrieveLightProfiles = ad1
}
o
s.t()
Ad
When might you want to use a Light Server Call on your own Web site? Lets suppose
that you wanted to track visitor impressions for rotating display ads on your home
page. If a visitor were to see 10 ads during the rotation, this could be easily recorded
with Light Server Calls. This is a much more sensible and cheaper alternative than
sending in 10 full server calls to SiteCatalyst.
y
t e nl
The code in this example shows a Light Server Call that increments an event for each
ad display with an associated eVar with the ad ID:
bu O
s.eVar20 = adID;
s.lightTrackVars = eVar20;
tri se
s.trackLight(ad1);
The trackLight variable in the previous examples contains the following arguments:
D lU
s.trackLight(profileID, storeForSeconds = 0, incrementBy =
0, variableOverrides = null)
As you can see from the previous example, you dont need to populate values in each
ot na
field/argument of the s.trackLight variable; however, you should always populate the
profileID.
is
N ter
In this onsite example, a Light Server Call has been made sending data for two eVars:
s.evar1 = myAdID;
s.eVar2 = myCampaignID;
D In
s.lightTrackVars = eVar1,eVar2;
s.trackLight(ad1, (60 * 60 * 24 * 5));
/* cookie expiration has been set for 5 days, no
e
Site-based Implementation
Considerations
y
t e nl
Objectives
bu O
Learn about available non-JavaScript Implementation methods
Understand how SiteCatalyst cookies work
tri se
Learn how to avoid data loss with redirects
D lU
ot na
is
N ter
D In
e
ob
o
Ad
20-1
More Nitty-Gritty Implementation Stuff
Overview
y
This chapter discusses Site-based implementation topics, or in other words, those top-
t e nl
ics that affect your whole site and how and if data is collected (as opposed to specific
variables). There are several site-based implementation concerns that you should have
bu O
including the following. Ask yourself, Does my site deal with any of the following?
tri se
Cookies
Referrers
D lU Redirects
Cookies set by the SiteCatalyst application are secure and only available to SiteCatalyst.
The data is unavailable to any third parties. Since customer privacy is a top priority
with Adobe, SiteCatalyst cookies contain no Personally Identifiable Information
(PII). Cookie data is completely anonymous.
y
SiteCatalysts Cookie Use
t e nl
The SiteCatalyst data collection method is more accurate than older, Web log-based
solutions for various reasons. First, SiteCatalyst overcomes issues with both proxy and
bu O
browser caching of pages (which Web logs do not measure). Second, SiteCatalyst mea-
sures only pages loaded within a Web browser and not automated traffic such as spi-
ders and bots. Third, SiteCatalyst uses cookies to measure visitors, whereas most log
tri se
file-based solutions rely upon IP addresses; thus visitors are counted more
accurately.
D lU
This cookie-based system allows SiteCatalyst to know when a person (a unique browser,
really) comes back to your site. This gives SiteCatalyst the ability to give you informa-
ot na
tion like return frequency, visit number, time between first visit and first purchase, etc.
Adobe clients can implement either first- or third-party cookies. If implementing with
third-party cookies, the domain of 2o7.net or omtrdc.net is used on the cookie. Third-
party cookies are more likely to be blocked by security software these days. Therefore, it
D In
is much more common to implement with first-party cookies. Implementing this way
will use the customers domain and just add a subdomain that is specific to the
e
configure them.
o
The following are some technical aspects about cookies being set:
Ad
There is a Cookie redirect/handshake if s_cc is true. If s_cc is not true, it means that
cookies have been disabled, and that they cannot be used to denote uniqueness of the
visitor. In this case, the fallback method, IP/User Agent is used to attempt to track
uniqueness of the visitor (although it is not as accurate).
Adobe does not engage in the practice of cross-company tracking. To ensure the
privacy and security of customers data, SiteCatalyst uses a separate set of cookies for
each site tracked. Additionally, Adobe also offers customers the ability to use their
own domain name as the owner of the cookie (stats.yahoo.com for example). This
practice creates an extra layer of privacy and security, as it makes all SiteCatalyst
y
cookies first party cookies, as discussed above.
t e nl
One possible downside to First-Party Cookies is that they are domain specific and
bu O
cannot cross domains. Third-Party cookies can cross domains and in some cases they
may be the best solution for you.
tri se
Regional Data Collection
Regional Data Collection can reduce image request latency for site visitors that are
D lU geographically distant from Adobe servers. The RDC can decrease the chance that
cookies will not be set because of long-distance image requests. RDC migration is
available for 1st and 3rd party implementations. Those using the 2O7.net domain will
ot na
switch to the omtrdc.net domain. When a visitor visits a site tracked by SiteCatalyst
with RDC-enabled code, image requests are sent to the RDC closest to visitors loca-
tion and then later forwarded to the San Jose or Dallas servers.
is
N ter
D In
e
ob
o
Ad
r egional data
collection
option that captures
image requests at
local data centers
and later forwards
them to Adobe data
centers (san jose or
dallas), can reduce
latency associated with
long-distance image
requests
Data is subsequently forwarded from the RDC to the San Jose or Dallas servers.
Latency, if any was experienced before RDC migration, is greatly reduced for the
visitor.
y
Referrers
referrer
t e nl
A Referrer is a third-party domain that has a page with a link to your site which at
third-party domain
least one visitor has clicked to access your site. This referring link to your site is count- with a link to your
bu O
ed each time it is clicked regardless of whether it begins a session or not. site, recorded by
sitecatalyst using the
SiteCatalyst uses the referrers from the Referrer report to calculate Referring Domains, document.referrer
tri se
Search Engines and Search Keywords. The Search Engines Report is created from the browser document
recorded Referrers based on a built-in list of all worldwide recognized search property
engines.
D lU
Internal URL Filters
ot na
No coding is necessary in order to instruct SiteCatalyst on how to know whether a
link is a Referrer (external third-party link to your site) or just a clicked internal link
from another page on your site. Setting up the tracking for Referrers is all done
is
N ter
through the Admin Console through a feature called Internal URL Filters in Edit
Settings>General>Internal URL Filters.
D In
In the Internal URL Filters, simply indicate the domain(s) that belong to you. Those
domains will not be reported as referrers. For example, for JJ Esquire, we would report
e
jjesquire.com, jjesquire.co.uk, jjesquire.de and all other properties that we dont wish
to count as referrers (keep in mind that from a local Report Suite level, Report
ob
Consumers may wish to recognize their own foreign country sites as referrers to the
o
local country site.) Before setting your Internal URL Filters, be sure that you know
Ad
tri se
menu, you can exclude up to five IP addresses. You may use wildcards to exclude a
range of IP addresses in your company. If you need to exclude more than five IP ad-
D lU dress ranges, talk to Client Care about creating a special VISTA rule for IP exclusion.
ot na
is
N ter
D In
e
Redirects
ob
Redirects point the browser to a new location without user interaction. They are exe-
cuted at either the Web browser (client-side redirect) or at the Web server (server-side
o
redirect). Since redirects do not require any user interaction, they are often executed
Ad
without the user ever noticing. The only thing that indicates that a redirect has oc-
curred is the browsers address bar. The address bar displays a URL that is different
from the link the browser initially requested.
Server-Side Redirects
Server-side redirects, which are more common than client-side redirects, normally
strip the original referring URL. This makes it hard to properly analyze where traffic
comes from as it flows to your site.
To rectify this situation, you can send the original referrer along via the query string
and then set it into the s.referrer variable, which will override the referrer on the land-
ing page. This is shown in the following two steps:
s.referrer=s.getQueryParam(origref);
Note: See the Redirects and Aliases white paper Answer ID 543 NOTE: If the meta
y
redirect is on another
t e nl
domain, leave the domain
Client-Side Redirects
name out of Internal URL Filter
These redirects (although less common) can use the same steps as the server-side re-
bu O
list; it will be captured via
directs, which capture the actual referrer from the header, send it along in the URL,
normal referrer reports.
and then push it into the s.referrer variable.
tri se
The other option (which is not great but still possible) is that you let the page load long
enough to run SiteCatalyst code and then forward the visitor to the eventual landing
D lU
page. This could be confusing to the end user, as they see the browser move to the new
page. Most of the time you want it to happen without notifying the end user.
ot na
Dynamic Variables
Dynamic variables are shortened identifiers that correspond to SiteCatalyst variables,
is
N ter
and which allow you to copy values from one variable to another without writing
out the full values multiple times in the SiteCatalyst image requests on your site.
D In
e
ob
o
Ad
Because some browsers limit the maximum length of HTTP GET requests (of which
the Adobe image request is one), using dynamic variables can help ensure that all de-
sired data is captured by reducing the length of the request to Adobe servers in cases
where data is duplicated across several variables. The variable abbreviation used must
match the variable parameter name passed in the image request.
Common uses:
Shorten the length of image requests when populating the same value into
multiple variables on the same page
Use the same parameter that occurs in the current image request
y
t e nl
bu O
tri se
D lU
ot na
is
N ter
Values set directly by the SiteCatalyst JavaScript can be set into Custom Traffic or
Conversion Variables using Dynamic Variables.
D In
e
ob
o
Ad
Examples:
s.prop16=s.getTimeParting(h,-7);
s.eVar16=D=c16 /* D means Dynamic Variable, c16 is the
parameter for prop16 */
s.campaign=goog_ad_7
s.eVar20=D=v0 /* captures the tracking code in eVar20 (the
client could set different allocation and expiration for
eVar20) */
y
s.prop20=D=User-Agent //captures the user agent string
t e nl
bu O
s.transactionID=D=pi //captures the Purchase ID in
Transaction ID
tri se
s.prop21=D=User-Agent //captures the user agent string
D lU
s.prop32=D=cc7 /* captures value in cookie named cc7
(possible in first-party SiteCatalyst implementations
useful for sending campaign names, user IDs or any other
ot na
values that you set into a cookie) */
is
N ter
passing and eVar value to a prop, dont forget that props are case sensitive and only
accept up to 100 bytes of data). For more information on Dynamic Variables, see
Knowledge Base Article 10099.
e
ob
Exercise 20.1:
o
Effeciently code for the following scenario using Dynamic Variables. Write the an-
swer in your workbook.
Solution
y
_________________________________________________________________
t e nl
bu O
tri se
D lU
ot na
is
N ter
D In
e
ob
o
Ad
y
t e nl
Objectives
bu O
Learn about creating new reports called Classifications
Learn how to insert off-platform data into SiteCatalyst
tri se
Learn various ways to extract data from SiteCatalyst
Were almost done. You can do it! (And this chapter is pretty interesting too!)
D lU
Overview
ot na
SiteCatalyst is flexible enough that you can import data into it and export data from
it. In order to import or export data, Adobe offers the following tools:
is
Importing
N ter
SAINT Classifications
Data Sources
D In
Adobe Genesis
Exporting
e
Data Warehouse
Data Feed
ob
Adobe Discover
o
21-1
What are Classifications?
y
make analysis a whole lot easier. You group things in everyday life already, so we hope
t e nl
this concept isnt to much of a leap.
c lassifications
bu O
For example, you may group foods in your refrigerator (vegetables go in the veggie
new reports created
drawer, meats in the meat drawer, condiments in the fridge door shelves and every-
by grouping very
thing else goes by the milk). You may group your songs on your computer with pro-
tri se
granular data from a
source report grams like iTunes or others (the Beatles song Strawberry Fields Forever belongs to
the group 1967 in the Year Column, Rock in the Genre Column, The Beatles
D lU in the Artist Column, Magical Mystery Tour in the Album Column, and Five
Stars in the Rating Column).
ot na
So why would I want to group values in my reports? Have you ever looked at a report
with thousands of values and thought to yourself, How can I ever make sense of so
much data? If you havent, our guess is that you will.
is
N ter
looking at the Tracking Code report surveying your success. Youre trying to glean
information from these reports so that you can speak intelligently to your marketing
e
team and decide how to reallocate funds to optimize your marketing efforts.
ob
Where do you start? Youd like to analyze display/banner ads, but theyre mixed in
o
with email, partner, text ad and social media campaigns. How do you make sense of
Ad
the masses? The answer is by creating groups you wish to analyze so you can study
them separately. If you wish to analyze your display, text ad, partner, social media and
email campaigns separately, lets create a report called Media Type that devotes one
line item to each of the aforementioned campaign media types that you employ
Wish to delve a little deeper? We could create a report called Display Color, another
called Display Size, others called Campaign Name, Email Send Date, Campaign Time
Period, and the list could potentially go on and on. And weve only spoken about
Campaigns. What about grouping your Products reports? Imagine being able to see
how the Electronics products did in comparison with the Home & Garden products?
Which groups should you create? Thats dictated by the values that you wish to group.
This is going to require you to think about what your analytical needs are. Think back
y
t e nl
bu O
tri se
D lU
ot na
Its Retroactive and Easy
Adobe SiteCatalyst doesnt analyze the data for you, thats your job, but we want to
is
N ter
deliver it in forms that facilitate your analysis. With Classifications, you have com-
plete control over the groups. In fact, if you collected data a year ago, but you just
thought of new groups to create, you can retroactively group. No need to plan ahead.
D In
If uploading data to SiteCatalyst sounds scary, youll upload your own Classifications
e
before this chapter is over so that you can experience first-hand the ease of the pro-
ob
cess. Even if you make a mistake, it can always be overwritten with a new Classification
(just make sure that you know youve made an error so that it can be corrected).
o
Ad
y
t e nl
bu O
tri se
D lU You are, however, a victim of your own success. And Im not talking about tripping
over gold bricks carelessly stacked in the south wing of your home on your way to your
underground horse track. You have thousands of products, and although you can see
ot na
the top 50 pretty easily and identify your top sellers, you may have a group of other
products that are not top sellers, but collectively they may be supporting your whole
business. How do you learn about them? Classify!
is
N ter
While analyzing this product data, you might already be asking questions like these:
D In
To answer the first question, you may want to find out if Swiss Rocks products are
e
outperforming Charrel or D&B products. For the second question, you may want to
ob
compare Gifts & Home product sales to Womens and Jewelry & Accessories products
sales. Technically (if you want to get crazy) you could look through every line item in
o
the report and add up the numbers every time you asked these questions. However,
Ad
Classifications allow you to group these line items automatically. So instead of guess-
timating, do yourself a favor and set up your Classifications as soon as possible!
For example, after going through the classification process (discussed next), you
could run the Brand report to show all revenue for all of the products, grouped by
Brand, in real time. Now thats convenience!
t e nl
would help you understand the products on your site, like Category, Sub-Category,
Style, Size, etc.
bu O
As you will see later in this chapter, to create these new reports, you simply need to
create the Classification and upload the grouping or meta data. You can think of it as
tri se
a simple grid, as the following image shows.
D lU
ot na
is
N ter
D In
e
ob
o
Ad
In this example, if you capture SKU numbers in the site code when someone buys
something, you can later group the SKUs by any of the group values listed in the head-
ers of this grid. For example, in the Manufacturer column, you will assign each SKU
(Key) a manufacture name. You will also fill in data for all of the other cells in each
column of this lookup table and upload them to SiteCatalyst.
Features of Classifications
Before we view more classification examples, take note of a few of the awesome advan-
tages of using classifications:
y
can break down all of the reports by each other. In addition to that, the
t e nl
classifications inherit all of the breakdowns that the parent (key) report has, so
you can break them down by other reports as well. For example, since you can
bu O
break down the Campaign Tracking Codes report by the Products report (to see
which campaigns sold which products), you will also be able to break down the
Tracking Codes report by classifications, such as product group. This means
tri se
you can see which kinds of products are being sold by different campaigns, or
even campaign types.
D lU Metrics Like the breakdowns, the metrics in classification reports are also
inherited by the parent (key) report. So when you place a Product Views metric
into the Products report, you will also have that metric available in all of the
ot na
classification reports. This means you will be able to see which kinds of
products people are looking at the most, adding to their cart the most, buying
the most, etc.
is
N ter
Seriously, it really doesnt get any better than this. It is probably the coolest and most
powerful segmentation tool out there, and its especially cool that it is free.
D In
Code examples were given at the beginning of this chapter, but lets talk about Tracking
ob
Codes again. This is probably the most commonly classified report of any of the
Reports in SiteCatalyst.
o
When a visitor clicks through to your site through a campaign creative such as
an email link, a text ad, a display ad or any other type of campaign, each link
contains a tracking code that you or someone else in your company has
appended. The free plug-in called getQueryParam has been installed on your
site and is not automatically grabbing the tracking code and setting it into the
s.campaign variable. You now have conversion for each and every Tracking
Code.
Wouldnt It Be Nice
...to be able to know the Campaign Name, Campaign Dates, Media Channel,
Search Keyword, Banner Size or even the Creative Owner?
y
Wouldnt It Be Nice...
t e nl
...if you could create reports according to Department, Location, Level, etc.? You
bu O
could see which groups of people are using the Intranet most often and do all of
this retroactively. Since youve always captured employee login names, you can
apply the Department, Location and Level of each employee by using
tri se
Classifications. Since the Classification data is tied to the Key value (employee
login), your new reports will go back as far as the original report (the Key
D lU
value). So if youve been capturing employee logins for two years, your new
Department, Location and Level reports will also go back two years!
For this next example, imagine that you decide to populate a custom variable with a
code that represents the exact minute of the year (you may have written a script to ac-
is
N ter
complish this or requested help from Adobe Engineering Services to write a VISTA
rule for you). You could then classify that time code to gain more insight into traffic
and conversion for various time periods throughout the year, over and above what the
D In
The time code would get credit for the traffic or the conversion. For example,
8:47 a.m. on December 19, 2008, might be represented this way:
ob
200812190847
o
Ad
This would populate a report with codes that would be very difficult to decipher
in real time, especially because there would be only one available for every
minute of the year.
Wouldnt It Be Nice . . .
. . . to be able to put the codes into groups so that you could analyze chunks of
time (groups of minutes) and see when conversion occurred on your site by
grouped time periods? By classifying the minutes into the day of the week,
weekend vs. weekday, hours, half-hours and even quarter-hours, you would be
able to know which products sell the best on certain days of the week, which
campaigns drive the most traffic during a certain hour of any day, which hour
of the weekend was responsible for the most traffic and even which quarter-
hour saw the most conversions on Mondays. This is very powerful data!
y
Wouldnt It Be Nice . . .
t e nl
. . . to be able to know which article content types are most popular on your site?
Wouldnt it be great to group these articles by their position within the site
bu O
hierarchy such as Site Sections and Subsections? Wouldnt it be nice to know
how many Unique Visitors one of the content authors attracts each month to his
tri se
or her articles?
D lU
ot na
is
N ter
D In
e
ob
o
Ad
Now that youve seen the power in the concept of Classifications, lets talk nuts and
y
bolts.
t e nl
The first step to create Classifications is to add the Classifications report names in the
bu O
Admin Console. Go to Admin>Report Suites>Edit Settings>Conversion>Conversion
Classifications. Youll need to select a Report Suite at the Report Suite level. Traffic
Classifications are available at Admin>Report Suites>Edit Settings>Traffic>Traffic
tri se
Classifications.
D lU
These two areas exist because Traffic and Conversion variables (and by extension re-
ports) function and behave differently. Well learn more about custom variables in the
next chapter.
ot na
is
N ter
D In
e
ob
o
Next, select the variable that you wish to classify. You should see a list of all of your
Ad
y
t e nl
bu O
tri se
Add classifications by mousing over the icon next to the variable name, and selecting
Add Classification. Always add Classifications to the root (the variable) never to other
D lU Classifications. You can also edit and delete classifications in this section.
ot na
is
N ter
D In
After clicking Add Classification, select a Classification type (Text is the default), name
e
the Classification and click Save. Do not populate drop-down list (used with a legacy
ob
y
t e nl
bu O
tri se
D lU
ot na
Once the classifications are added, new reports appear with the same classification
is
N ter
name in the data sets report section. This is where you will generate your classified
reports.
D In
e
ob
o
Ad
y
t e nl
bu O
tri se
D lU If you do not wish to view your values in a Gantt Chart in SiteCatalyst, then you are
not required to use this option. If you simply wish to create a Classification that shows
ot na
the date ranges of your campaigns in a line-item report, you can use the default Text
Classification without selecting the Date Enabled option.
is
N ter
D In
e
ob
o
Ad
y
t e nl
bu O
tri se
D lU
ot na
is
N ter
In this section, weve mostly focused on creating Classifications for Campaigns, but
this can be done for Products and other Traffic and Conversion Variables including
all Custom Variables as discussed in the beginning of the chapter.
D In
e
ob
o
Ad
SAINT, or the SiteCatalyst Attribute Importing and Naming Tool, is, simply put, the
y
upload and download tool for your Classification data.
t e nl
How to Access SAINT
bu O
To find the SAINT interface, go again to the Admin menu at the top of the Adobe
Digital Marketing Suite interface. Then click on SAINT Classifications. This is the
tri se
entry point into SAINT for any Classification type, including Products, Campaigns,
Custom Traffic and Custom Conversion Variables.
D lU
SAINT
The bulk upload
ot na
tool used to populate
classification reports.
is
N ter
D In
e
ob
o
The main steps for using SAINT for classification data upload are as follows:
OR
y
Still, use this option with mild caution because if you wish to classify a Tracking Code
t e nl
that belongs to a creative thats never been touched by any visitor, then that tracking
code wont appear in the SAINT export file (if a text ad on a search engine that links
bu O
to your site has never been clicked by a visitor, then the Tracking Code that identifies
that text ad has never been passed into SiteCatalyst).
tri se
Its not going to destroy your data if it isnt classified, but when that rogue tracking
code finally does get captured by SiteCatalyst, it wont belong to any groups in your
D lU
classification reports. Of course you can always go back and classify it later when it
does appear. Ideally, if you have your own in-house list of Tracking Codes (which you
should since you created them), you can copy and paste that into the SAINT Template
ot na
instead. You decide what is easiest for you.
is
N ter
D In
e
ob
o
Ad
When exporting data from SiteCatalyst via SAINT, you do not have to export and
work with the entire data set. In the export dialog, there are filter options that allow
you to limit the data that you are exporting.
y
t e nl
bu O
tri se
D lU
ot na
is
N ter
D In
e
ob
o
In addition to the Browser Export option, you have an FTP Export option as well. This
can be crucial if you need to retrieve a large number of rows. Sometimes browsers can
time out when retrieving a large file. If you suspect your file may be larger than 1 MB
in size, you should use the FTP option.
y
If SAINT encounters # at the beginning of a line, all data in that line will be ignored
t e nl
by SAINT. Any lines that begin with ## SC are SiteCatalyst headers and can be ig-
nored. If you are going to copy and paste a SAINT file into another file, dont forget to
bu O
add the header information at the top of the file. It includes information indicating
into which Report Suite the data should be imported. NOTE: Remember to
save the file in tab-
tri se
The image below shows an exported SAINT file in Microsoft Excel. This contains delimited (.tab) format (or .txt
classification data. If we had downloaded a blank template, rows 5-26 would be blank. files). SAINT does not process
D lU native Excel (.xls) files.
Rows 1-3 contain the file headers. Row 4 contains the Key in Column A (the original
report) and each Classification report title appears in Columns B through I in this
example.
ot na
is
N ter
D In
e
ob
o
Ad
There is always a Key column header in a SAINT file. The line items under the Key
column header are the unique items to be classified. In the Campaign example above,
the Key column contains Tracking Codes. Each Tracking Code is assigned to a differ- NOTE: You
ent group in each of the Classification Reports. In review, if you download a SAINT cannot create new
template, the Key will be empty. If you export a SAINT file, the Key will be populated Classifications in the SAINT
with data that SiteCatalyst has already captured. Template. You must first
create them in the Admin
Console, as we did earlier in
To modify or add your Classification data, simply add the data value that belongs to
the chapter, and download the
the original report under the Key header (again, if you have exported the SAINT
SAINT Template again..
Campaign Example
Below is an example of a Campaign Classification reprinted again on this page for our
examination. Lets take a look at the Tracking Code bing_3 on row 21. In the new
Campaigns report (a Classification in Column C), weve assigned bing_3 to the
Fall Suits campaign. Any conversion (purchase, subscription, registration, etc.) as-
sociated with bing_3 will now be grouped into the Fall Suits line item value in the
Campaigns report. Pretty nifty, dont you think?
y
This same Tracking Code has been assigned to the PPC Keyword group in the
t e nl
Channel report (Column E). In the SiteCatalyst interface, when you later run the
Campaigns>Tracking Code>Channel report, all conversion associated with
bu O
bing_3 will be grouped into the line item value PPC Keyword in that Channel
report. Remember, youre really just building a big lookup table with SAINT.
tri se
It really is one of the most useful tools youll use extensively in SiteCatalyst.
D lU
ot na
is
N ter
D In
e
ob
o
Ad
Once youve filled out all of the Classification values to your satisfaction, the next step
is to upload the data into SiteCatalyst for processing and storage.
Reality Check
The reality is that you will not want to (or have the time to) type all of the classifica-
tion data into the SAINT file by hand. Instead, you will want to somehow automate
the system to create the file for you. At the very least, you will want to copy and paste
values into the SAINT file, unless you are working with a very small and new data set
every week or so (then maybe you could type it in). Otherwise, look for ways to auto-
mate this process. In fact, for some clients, the types of data and availability of data
help them determine which classifications they choose to implement in the first place.
y
If your file is over about 1 MB, use the FTP Import option (discussed later) instead of
t e nl
the Browser Import option.
bu O
There is one very important option on import that you should consider. In the
Browser Import interface, notice the Overwrite data on conflicts in the Import
tri se
Options section near the bottom.
D lU
ot na
is
N ter
D In
e
ob
o
This option sounds scarier than it is. The data that is going to be overwritten is the
Ad
classification data, which you DO want to overwrite. Its basically asking if you want
to put new data in, or if it should ignore the data if the key is already in the system.
You will almost always want to check this box. One exception would be when it is
simply easier to upload a large data set and you wish to push new data in and com-
pletely ignore the data rows that are already in the system. This is not a common
scenario. Bottom line: go ahead and check that box. If you make a mistake, you can
do it again and change the Classification data.
One exception: If you put Classification data into a field and upload it and then decide
that its incorrect, you cannot currently overwrite the data in the system by uploading
an empty string. You would have to overwrite it with some new value (a blank field
means that the Classification is not modified).
Adobe offers several ways for you to blank out SAINT Classification values, de-
pending on the scope of data that you want to remove. Each of these ways is described
below.
y
t e nl
If there are specific classification values that you intend to remove (and others that
you intend to keep), you can enter a value of ~empty~ (a tilde, followed by the word
bu O
empty, followed by another tilde with no quotation marks) in the field being re-
moved. For instance, if you are working with Campaigns and want to clear out the
Banner Size value for the Tracking Code (Key value) of bing_3, then you would lo-
tri se
cate this tracking code in the Key column, move over to the Banner Size column and
type ~empty~. You would then upload the file, and the Banner Size value would be
D lU removed.
You can also contact Adobe ClientCare and request to have the Classification flushed.
ot na
There is no charge for this service, but it takes time to arrange and should not be used
frequently.
is
N ter
FTP it to Adobe instead of using the Browser Import. Make sure that you set the cor-
rect Data Set to Be Classified when uploading. The default is Campaigns, but if you
try to upload Product Classifications and you forget to change the Data Set to Be
e
SAINT Step 3 (Option B): Using FTP Import to Upload the SAINT File
o
As stated previously, you can use the FTP Import option to upload SAINT files that
Ad
are greater than 1 MB. Using the FTP Import option, you can upload up to 50 MB of
data. The SAINT FTP limits you to 30 MB files, so you can break 50 MB of data into
a 30 MB SAINT file and a 20 MB data file satisfying both the limits of the SAINT file
(30 MB or less) and of the FTP server (50 MB). Now thats a pizza!
Processing Time for large SAINT files varies by file size, but in general almost all files
of allowable size will be processed within 72 hours
y
9. Authorize the Classification as youve configured it
t e nl
10. Click Save
bu O
tri se
D lU
ot na
is
N ter
D In
e
ob
After youve created your SAINT FTP account, use the FTP Account credentials pro-
Ad
bu O
FTP client of your choice such as FireFTP for FireFox, FileZilla or others. You or your
IT developers may wish to write a script to automate uploads as well.
tri se
The .fin File
When you upload using the FTP Import option, you always need to follow up your
D lU SAINT file upload with a .fin file of the same name. This tells SAINT that youre
FINished with the upload. You do not need to do this with the Browser Import option.
Its only done with the FTP Import.
ot na
The .fin file needs to be a blank file with the EXACT same name as the tab-delimit-
ed SAINT file. The only difference is that it must have a true .fin extension (no
is
N ter
quotes). In other words, if I upload classifications.tab via FTP Import, Ill need to
later upload a blank file called classifications.fin to tell SAINT to start processing
NOTE: the first file. Be sure that you truly give the second file a .fin extension and that you
D In
If you choose dont just push .fin into name of the file resulting in classifications.fin.txt or some-
to submit your SAINT thing similar.
Classifications file via FTP,
e
empty .fin file should have 2. Then you must upload a blank .fin file with the same name as the tab-
Ad
the same name as your delimited file in order for SAINT to start processing your Classifications
.tab classification file, the
only difference being the In the following image, the SAINT file and .fin file are being uploaded using
extension (.fin). Example: FireFTP, a FireFox Web browser plug-in.
upload myclass.tab first,
then myclass.fin second.
tri se
(Campaign Name and Delivery Tool) and also for Products (Product Department and
Brand).
D lU
ot na
is
N ter
D In
e
ob
o
Ad
All of the values in these reports came from a SAINT file. If you want to change any
of the values, you can simply go back into the SAINT file (export), make changes and
then upload the new version (remember, youll need to overwrite on data conflicts).
Classification data is completely retroactive going back as far as the original report
values (the Key values), so you can create a Classification today that groups data from
the distant past whether thats last month or last year.
However, in a Product Classification, the None value may not make sense unless
you have any other Revenue generating Success Events (conversion actions) that are
not associated with any type of Product. If Revenue is always assigned to a Product on
your site and a None value appears in a Product Classification report, it probably
y
means that you have new Products that have not yet been assigned to a classification
t e nl
group.
bu O
When in doubt about how your site was implemented, speak with your Adobe
SiteCatalyst developers (likely your IT group or an agency that you work with).
tri se
Classification Hierarchies
As an experience Adobe SiteCatalyst analyst, youre familiar with the concept of re-
D lU port breakdowns. You may remember that Conversion Reports in SiteCatalyst have a
limit of two breakdown levels. This means that you can break down the Products re-
port by the Campaigns report (two reports), but that you cannot break down the
ot na
Products report by both the Campaigns report and the Custom Loyalty report at the
same time (three reports are a no go).
is
N ter
This limitation of two reports for Conversion Breakdowns (also called Subrelations) is
also enforced for Classifications that are based off of the same parent report. For ex-
ample, lets suppose that you have Product Classifications called Product
D In
The way to get around this (and you may be saying to yourself, But isnt this just one
o
report? Its not even two.) is to use Classification Hierarchies. With this tool, you
simply indicate the hierarchical relationship between different reports. Once youve
Ad
done this, line items within a report that has been enabled with Classification
Hieararchies will contain a drill down icon in the shape of a +. Simply click the icon
to drill down into the next subordinate report.
Click on the +
to drill down
Weve essentially broken down four reports by each other using this method! This
also makes analyzing data groups much simpler for the analyst. This can be done with
y
any value that, in your minds eye, has a hierarchical structure in the reports.
t e nl
bu O
tri se
D lU
ot na
All SiteCatalyst reports that have been enabled with Classification Hierarchies will
is
N ter
display a Classification Hierarchy symbol next to the Report Name in the interface.
D In
e
ob
o
Ad
Symbol indicates
the presence of
Classification
Hierarchies in
the report
y
to build a hierarchy. Product is selected in the example below. Current Product
t e nl
Classifications appear on the right side of the Classification Hierarchy field. Drag
and drop desired Product Classifications into the Classification Hierarchy field in the
bu O
order of hierarchy.
tri se
D lU
ot na
is
N ter
D In
e
ob
o
Ad
In our example, not all of the Classifications will work in our Classification Hierarchy
such as Brand and Country of Origin so weve left them out.
After a long chapter, its time to put our knowledge to the test. Lets try to classify the
Products report. Keep in mind that the concepts that we learned about with the
Campaign Classifications apply to Product Classifications as well.
Exercise 22.1:
Create Product Classifications
1. Under the direction of the Instructor, create a Product Classifications of your
choice (prepend your initials to your classification):
Hint: Product Classifications can be found in the Admin Console under Report Suites
>Edit Settings>Conversion>Conversion Classifications.
Note: Make sure to create each classification from the Product root, NOT from other
classifications. See the Instructor for more details.
y
t e nl
Cleanup Time
bu O
2. Once the instructor has checked your work, delete the classification(s) that
you created. Be sure to not disturb any of the other classifications.
tri se
Exercise 22.2:
Upload Classification Data with SAINT
D lU
Under the direction of the instructor, upload Brand classifications for Products.
4. In the SAINT Classifications interface, select the Import File option and
then the Browser Import option
D In
9. Run the Product Brand Student Use classification report to see the new
data
o
Ad
Capturing unique values in the code from a page that will later be classified
Automating the creation of the classification file, pulling information from
other systems
Automating the upload of SAINT files via FTP
Data Sources
y
Sometimes conversion and other important events take place offline. There is cer-
t e nl
Data Sources
tainly important activity that occurs before a visitor hits your site and after a visitor
Upload offline data
leaves your site. Data Sources makes it possible to upload new metrics and data that
bu O
into SiteCatalyst to combine it
with online data.
come from offline sources. The purpose of this is to give you a 360 degree view of your
conversion process.
tri se
D lU
ot na
is
N ter
D In
e
ob
WARNING:
Lets think about a bank. Before a visitor lands on the bank site, he or she may do
Ad
Ideally, the banking site would like to know what kind of Return on Ad Spend theyre
getting for all of their marketing efforts. SiteCatalyst can record campaign activity,
but SiteCatalyst doesnt know how much each click costs on a search engine like
Next, we know that the visitor applied for the loan onine, but we dont know if the visi-
tor was approved for the loan, nor do we know if the loan amount was modified before
everything was finalized because all of the post-application approval stuff takes place
offline. Once the approval and final loan information is available, we can use that data
ITS ALL RIGHT:
as our second Data Source (loan approval and loan value). Even though Data
Sources come with the above
By uploading this data, the bank can get a better understanding about how much they warning accompanied by the
y
spent to market their product, how many final buys they got and then finally a scary bomb with a lit fuse,
t e nl
Revenue by Cost ratio to tell them whether theyre doing things right or not. dont let that keep you from
using Data Sources. Theyre
bu O
Online and Offline Metrics Together really awesome and useful!
Now go and get that 360 view
of your conversion process!
tri se
D lU
ot na
is
N ter
D In
Data Sources makes it possible to view online and offline metrics in the same report.
This functionality allows you to add powerful offline Custom Metrics such as Ad
e
creation process. It also displays all currently activated Data Sources for your
o
account.
Ad
these two tools. At first glance, they may appear similar, but they are used for very
different purposes.
D In
Technical Lead, what will most likely be your involvement with Data Sources?
ob
etc.).
Creating the tab-delimited data file.
Ad
Adobe Genesis
So what is Genesis? It looks like its one of the major tools offered by Adobe. So what
does it do? Genesis is essentially the automated version of Data Sources. Weve created
integrations between certain partners and SiteCatalyst. This doesnt mean that youre
Genesis
obligated to use Genesis instead of Data Sources, but if the time savings is worth more
The automated version
than the Genesis fees then using Genesis is a no-brainer.
of Data Sources.
tri se
Drag and Drop Interface to configure integrations
Accredited Application Partner Network
D lU
Accredited Partner data is automatically fed into SiteCatalyst (available in
reports and Dashboards)
ot na
is
N ter
D In
y
t e nl
bu O
PPC Integration with Adobe SearchCenter
tri se
Adobe SearchCenter is a separate tool that is an offshoot of the Genesis family in the
sense that one of its major functions is integration. The tool automatically pulls Cost,
D lU Clicks, Average Position and Impressions on a daily basis for all supported Search
Engines. If youd like to know more about available partners that offer a Genesis
Integration such as Salesforce, Double Click, Responsys, Silverpop, Endeca, Forsee
and many others, click on the Genesis button in the SiteCatalyst interface. Call your
ot na
Account Manager if you dont see the integration that you need listed in the Genesis
interface.
is
N ter
Data Warehouse
y
Data Warehouse is the repository of raw, unprocessed, data. This raw data is also re-
t e nl
ferred to as unnormalized data, whereas data in SiteCatalyst reports have been
normalized into summary tables for quicker querying. Data Warehouse enables you
bu O
to request reports showing extremely advanced data relationships. This is possible
because data relationships, generally severed when the image request is broken out
tri se
into the different SiteCatalyst reports, is completely preserved in Data Warehouse.
How? By pushing each string of data from each image request into this raw repository
of data before any SiteCatalyst data normalization occurs.
D lU
Data Warehouse
ot na
The raw repository
of all SiteCatalyst data used
is
N ter
The data in a Data Warehouse report is recorded pre-VISTA (any VISTA rules that
modify SiteCatalyst data will not modify Data Warehouse data). The queries are easy
to construct and the Data Warehouse interface is very easy to use. The queries are NOTE:
automated, run in a queue and return to the analyst via email or FTP in CSV (comma- Data is sent to the
separated value) format. Data Warehouse turnaround depends on the quantity of Data Warehouse at the end
data, but is generally within hours (80 percent of requests are returned on the same of the day. It may take up to
day). Adobe generally requires 12 to 48 hours to process the request before the data is 12 hours after the final visit is
accessible. closed before Adobe writes off
and compresses the file.
The Data Warehouse interface must be enabled in order for analysts to access and use
Data Warehouse. Data Warehouse is accessible in SiteCatalyst via the drop-down but-
ton at the right-side end of the product suite bar. For more information on how to
make a report request, refer to the Data Warehouse white paper.
based on a complex segment which the analyst defines, without any coding. This
Ad
Report Suite can be created retroactively and even erased and rebuilt based off of a
new segment. Once this new Report Suite is selected, all SiteCatalyst reports are based
off of the new segment.
ASI Slots
Creates a new Report
Suite retroactively without
code. The new Report Suite
is based on a user-defined
segment.
y
t e nl
bu O
tri se
D lU
This means that every Conversion, Traffic and Path Report and every Predefined and
Custom Metric will be based off of that segment. If there is a new segment that youd
ot na
like to analyze in depth for a couple of weeks or months, we recommend ASI slots.
Segmentation Tool
is
N ter
SiteCatalyst 15 Users can use the SiteCatalyst Segmentation Tool in lieu of ASI.
Segments are created in the same way as theyre created in the ASI tool and they can
be applied to all reports instantly (no processing time).
D In
e
ob
o
Ad
Data Feed
This option feeds your raw data directly to your own servers for additional data min-
ing. Data Feed is popular among some clients because it gives the analyst the ability to
marry offline user-level data and SiteCatalyst aggregate data. It makes extremely
complex data sets (its raw data) readily available for frequent queries.
y
SiteCatalyst users frequently use a Data Feed to take data from SiteCatalyst and populate
another corporate data warehouse. The users corporate data warehouse may contain
t e nl
data relating to sales, marketing, accounting, etc., from other sources. The SiteCatalyst
Data Feed
bu O
data from the Data Feed adds Web analytics data to the clients data warehouse and
Raw data sent directly
to your own servers. enables them to obtain a view of their overall organization.
tri se
Because the Data Warehouse and a Data Feed both provide raw data, one might think of
a Data Feed simply as the process of sending a copy of the Data Warehouse data to the
D lU client so that further custom analysis can be done.
ot na
is
N ter
D In
NOTE: Receiving Data Important facts that you should know about Data Feed:
e
Adobe prefers to push data to a client-managed FTP location. However, if that is not
possible, Adobe can set up an FTP site if necessary. Additionally, be sure to allocate ap-
propriate internal space for the Data Feed data. Running a Data Feed is an automated
process at Adobe. Contact Adobe Client Care to request a Data Feed.
Adobe Discover
This tool allows you to slice and dice your data to the Nth degree on the fly with the
convenience and speed of SiteCatalyst, but the data flexibility of Data Warehouse.
Discover
Using Discover, you can create any segment on the fly and apply it to any SiteCatalyst
Adobes premier
report, even path reports and instantly see results.
y
segmentation tool that
allows you to view multiple
t e nl
As opposed to ASI which takes days or more to build out and Data Warehouse which segments side by side in your
may take more than a day to process reports, Adobe Discovers fast processing engine reports..
bu O
makes it possible to switch segments in an out at will. That is its greatest advantage:
speedy at segmentation. After you answer one question, you can go get the answer to
tri se
another and so forth. It really is an impressive data discovery tool.
D lU
ot na
is
N ter
D In
e
ob
o
Ad
Adobe Discover data is hosted on Adobe servers just like your SiteCatalyst and Data
Warehouse data. No extra coding is required to use this tool. If youve already been
using SiteCatalyst for a while and wish for Adobe to back fill data into Discover, you Adobe Insight
must have had Data Warehouse during the period from which you wish to back fill. A multichannel
segmentation and analysis
Adobe Insight tool. Able to combine
The Adobe Insight tool offers even greater flexibility since almost any data value can SiteCatalyst data with data
be fed into this system. Adobe Insight data is typically hosted on your own servers from other channels, such as
retail POS and call centers,
instead of Adobe servers. Clients that use insight require multi-channel analysis. For
enabling businesses to better
example, you could use Insight to feed in data from your web channel, your brick-and-
understand their customers
mortar channel and call center channel and analyze all data points together in the
and make informed strategic
same system.
business decisions.
y
t e nl
bu O
tri se
D lU
ot na
is
N ter
D In
your job is limited to the technical aspect of the site, coding the pages.
As technical lead, your involvement with Discover will most likely be:
ob
y
t e nl
bu O
tri se
D lU
It gives you the ability to combine Report Suites into one document, upload data from
ot na
other sources to create advanced calculations and distribute this information across
your global environment.
is
N ter
D In
e
ob
o
Ad
a. Data Sources
b. SAINT
c. VISTA
y
d. Send the file to [email protected]
t e nl
2. You cant get code onto the page until the next code review, but you want to start
tracking a custom success event. What can you do?
bu O
a. Use SAINT to upload the page into SiteCatalyst
b. Have Adobe create a VISTA rule to add the event in the mean time
tri se
c. Create a classification for the event in the Admin tool.
d. Beg and plead with your IT team to allow the change.
D lU 3. W
hich tool(s) provides a graphical overlay on your Web page to show you which
links are the most popular?
ot na
a. Adobe ClickMap
b. Adobe SearchCenter+
is
N ter
c. Adobe Discover
d. Adobe ReportBuilder
D In
a. Data Warehouse
e
b. SAINT
c. Adobe ReportBuilder
ob
d. Data Feed
o
Ad
6. W hich tool(s) can be used to upload offline data, such as orders, email send and
open data, etc.?
a. Adobe Genesis
b. VISTA
c. Data Sources
y
t e nl
bu O
tri se
D lU
ot na
is
N ter
D In
e
ob
o
Ad
y
t e nl
Objectives
bu O
Explore the Developer Portal
Learn about the possibilities of the SiteCatalyst API
tri se
D lU
ot na
is
N ter
D In
e
ob
o
Ad
22-1
The Developer Connection
Do you have any questions on these tools that weve learned about so far? Do you have
y
questions about SiteCatalyst code and implementation strategies? Maybe questions
t e nl
about plug-ins, our API or some other Web analysis question? Try the Developer
Community. The Developer Community is accessible to you as long as you have a
bu O
SiteCatalyst log in.
Go to: http://developer.omniture.com
tri se
The Developer Community offers API Docs, Web Services Docs, a Code Gallery,
D lU Blogs, Forums, a Sandbox and much more. Try it out!
ot na
is
N ter
all within the Developer Connection. Code in this area is experimental or in beta and
so its not guaranteed, but it is a lot of fun. Test it out on a development Report Suite
on your site before using any code.
e
ob
A few examples of cool things to try out are (you can search for them on the Dev site):
o
This Enterprise API makes it possible to both import and export data.
y
t e nl
bu O
tri se
D lU
Common data imports using the Enterprise API are Data Sources and SAINT
Classifications. This makes it possible to communicate directly with SiteCatalyst and
submit this type of data as an alternative to the browser or FTP import required by
ot na
these tools. You can also export data such as SiteCatalyst reports for use in your own
tools.
is
N ter
Delete Group
ob
Report Suite
o
Add Correlations
Add Internal URL Filters
Ad
Company
Get Token Usage
Get Token Count
Chapter Twenty-Two The Developer Portal and Intro to the SiteCatalyst API 22-3
y
t e nl
bu O
tri se
Using the API Explorer
D lU To use the API Explorer, youll need your User Name (your login appended by : and
company name) and your Shared Secret.
ot na
is
N ter
D In
e
ob
o
Ad
Both of these values can be accessed at Admin > User Management. Once within User
Management, locate and click your User ID. In the Access Section, look for the Web
Service Credentials field to find your User Name and Shared Secret. You must be
part of the Web Service Access group to use this tool.
Once this is done, click Get Response and data will populate the Response field.
Remember, this tool is designed for you to test calls without building out a full client
application, but it is not a replacement for a full client application.
Chapter Twenty-Two The Developer Portal and Intro to the SiteCatalyst API 22-5
Trended (Overtime) Report Sample Request
Request to SiteCatalyst (do not use this code example only):
// This is the object that you pass to the API call - API
calls are described in Report Definition.
reportDescription = {
reportSuiteID = myrsid,
dateFrom = 2008-01-01,
dateTo = 2008-01-03,
dateGranularity = day,
y
metrics = [
t e nl
{
id = pageViews
bu O
},
{
id = visits
tri se
}
]
D lU }
report = {
is
N ter
reportSuite = {
id = myrsid,
name = My Report Suite
D In
},
period = Mon. 1 Jan. 2008- Wed. 3 Jan. 2008,
elements = [
e
{
ob
id = datetime,
o
name = Date
}
Ad
],
metrics = [
{
id = pageViews,
name = Page Views,
type = number
},
{
id = visits,
name = Visits,
type = number
},
y
{
t e nl
name = Tue. 2 Jan. 2008,
year = 2008,
bu O
month = 1,
day = 2,
counts = [1143,131]
tri se
},
{
D lU
name = Wed.
year = 2008,
3 Jan. 2008,
month = 1,
ot na
day = 3,
counts = [1212,146],
}
is
N ter
],
totals = [2357,276]
}
D In
Exercise 22.1:
Test Calls with the API Explorer
e
ob
1. Go to https://developer.omniture.com/en_US/get-started/api-explorer
2. Populate Username and Shared Secret (go to Admin > User Management >
o
3. SOAP should already be selected, Post URL should already be set, and the
Environment should already be set to San Jose Production
4. Set Method to Company.GetTokenCount
5. Click the Get Response button
Chapter Twenty-Two The Developer Portal and Intro to the SiteCatalyst API 22-7
y
t e nl
bu O
tri se
D lU
ot na
is
N ter
D In
e
ob
o
Ad
Tag Management
y
t e nl
Objectives
bu O
Understand the purpose of Tag Management
Explore the Tag Management interface
tri se
D lU
ot na
is
N ter
D In
e
ob
o
Ad
23-1
Using Tag Management
Have you ever needed to update your s_code.js file during a code freeze? With Tag
y
Management, thats no longer a problem.
t e nl
The Tag Management Advantage
bu O
Adobe can store your s_code.js on a CDN (Content Delivery Network). This makes it
possible for you to be able to change your s_code.js through the Tag Management in-
terface at any time without the assistance of IT (add tag, plug-ins, Genesis integra-
tri se
tions, other code, etc.).
D lU
ot na
is
N ter
D In
e
Besides Adobe Digital Marketing Suite-specific code, you can even deploy third-party
ob
tags. Your site will still employ a JavaScript your s_code.js file hosted on your Web
o
server, but it will act as a loader file for the remotely stored s_code.js file on Adobe
servers. Any changes to your s_code.js file can also be rolled back easily to previous
Ad
versions of code because old versions are stored within the Tag Management tool.
Code Processing
The following diagram shows how Tag Management processes data. It optimizes
loading through asynchronous code processing (some code is run simultaneously
such as Page Code and Product Code to increase loading efficiency).
bu O
The first step to Tag Management is the creation of a container to hold all of your code
(SiteCatalyst product code, third-party SiteCatalyst integration code and other third-
party code). Simply provide the container with a name and description.
tri se
D lU
ot na
is
N ter
D In
e
ob
o
2. Define Tags
Ad
Choose tag code in the Define Tags step (Core JavaScript, Product Code, Custom
Code). All of your code will be inserted in this step (all parts of the basic s_code.js file
and all plug-ins, third-party integration code, etc.).
y
t e nl
bu O
tri se
D lU
ot na
are set on page using the same process used with a standard implementation.
Example:
D In
<script type=text/javascript>//<![CDATA[
Ad
if(s){
s.pageName =
s.server =
s.channel =
s.t()
}
//]]></script>
<!-- End Adobe Online Marketing Suite Tag Management code -->
Adobe DigitalPulse
y
t e nl
Objectives
bu O
Understand the purpose of DigitalPulse
Learn how to set up a scan
tri se
View a sampling of available reports
D lU
ot na
is
N ter
D In
e
ob
o
Ad
24-1
DigitalPulse Configuration
If youve ever wondered if your SiteCatalyst tracking code on your Web pages is work-
y
ing properly or if youre actually tracking all of your pages, DigitalPulse can help you
t e nl
answer those questions.
bu O
DigitalPulse provides automated validation and audit of your SiteCatalyst data collec-
tion. The DigitalPulse digital spider crawls your Web site (you specify the entry point)
and scans for the following:
tri se
Missing SiteCatalyst tags (also find HBX tagged pages)
party
The DigitalPulse scan manager is your control dashboard that shows you every scan
ob
and their results. It lists scans by Name, Creator, Status, Last Scan, Pages Scanned,
o
Missing Tags and Data Errors. There is an option to create new scans or rescan your
Ad
site. Since your site is always changing, you should scan your site on a regular basis.
y
t e nl
bu O
tri se
D lU
ot na
is
N ter
Masks
D In
In the Masks section, you can exclude or include URLs with URL masks (accepts
wildcards and regular expressions) so that DigitalPulse doesnt scan pages or groups
of pages that you dont need to be scanned. There is also an option to scan all pages
e
including those pages that disallow bots or spiders (DigitalPulse can ignore no in-
ob
dex tags and other restrictions that your site places on bot or spider activity.
o
Ad
y
t e nl
bu O
tri se
D lU
Scheduling
ot na
After setting your Time Zone, program DigitalPulse to scan at the times that make
the most sense for your site. In fact, you can even set blackout times. Any scans that
overlap with blackout times will pause during and then resume after the blackout
is
N ter
period.
D In
e
ob
o
Ad
y
t e nl
bu O
tri se
D lU
ot na
is
N ter
D In
e
ob
o
Ad
y
t e nl
bu O
tri se
D lU
ot na
is
N ter
D In
e
ob
o
Ad
DigitalPulse offers full reporting to keep you on your site tags and technological
y
health.
t e nl
Missing Tags Report
bu O
This report allows you to quickly locate all pages that arent being tracked by
SiteCatalyst so that you can place tag on them immediately. You can filter pages by
URL, Title, Content, Keywords and Description. This the report that you will want to
tri se
be sure to check every time you sign into DigitalPulse.
D lU
ot na
is
N ter
D In
e
ob
o
Ad
y
t e nl
bu O
tri se
D lU
ot na
is
N ter
be consistent with tag placement on your pages). You can filter your pages by Tag
Location (or by no Tag found) so you can quickly make changes.
e
ob
o
Ad
y
t e nl
bu O
tri se
D lU
ot na
Broken Links and JavaScript Errors Reports
This report allows you to locate broken links in your Web site so that you can quickly
correct them. It also shows you any JavaScript errors not necessarily related to
is
N ter
SiteCatalyst tag within your Web site so that you can quickly make fixes. This reports
help you take preventative measures to mitigate conversion loss due to technological
errors.
D In
e
ob
o
Ad
1. One student should volunteer his or her JJ Esquire site for a scan (if using the
online PHP version). If no version is available, scan the Adobe Training
Services Web site.
2. The instructor will set up the scan.
3. Once the scan is complete, determine how many pages havent been tagged.
y
4. Optional: Find pages with images that lack ALT text (ALT text helps our
images show up in some search engines).
t e nl
bu O
tri se
D lU
ot na
is
N ter
D In
e
ob
o
Ad
y
t e nl
Objectives
bu O
Learn the steps to validate your code
Learn about popular debugging tools
tri se
Review common Implementation mistakes
D lU
ot na
is
N ter
D In
e
ob
o
Ad
25-1
Implementing the Right Way
Overview
y
Validation and troubleshooting are important parts of the implementation process
t e nl
because they ensure that you have properly configured and implemented SiteCatalyst.
You can use Adobes processes to solve any implementation issues.
bu O
Introduction
tri se
This chapter discusses SiteCatalyst deployment validation process and offers some
troubleshooting tools and considerations.
D lU The validation process is part of a larger process and is made up of several action
items, including the following:
ot na
1. Corporate Standards: It is very important that you think globally when you
start to implement SiteCatalyst. Even if you are only a small part of a global
environment, you must communicate with the right people from other
is
N ter
TIP: Establish
totals (to combine Report Suites), make sure that everyone puts the same kind
Corporate Standards
before implementing. Other of data in the same variables (e.g., if you use s.prop2 to capture Internal
Search Terms, make sure that every local Report Suite uses s.prop2 for the
e
Adobe offers the JavaScript Debugger as the primary tool to check the code for errors.
By now, you should be familiar with the JavaScript Debugger. You can find more in-
formation in the SiteCatalyst Knowledge Base or on the JJ Esquire site under
Deployment Validation
SiteCatalyst provides the metrics needed for all types of users within the organization
to fulfill their reporting needs. In order to get the most value at a specific department
and an enterprise-wide level, customers should take the time to determine a standard
set of configuration settings to which all implementations should adhere.
y
1. Check for code accuracy.
t e nl
2. Validate the parameters in the image request
3. View reports for value and metric accuracy
bu O
Checking Code Accuracy
tri se
By checking the code accuracy, you ensure that the code is located in the correct place
and it is being called in the right order. Also check the following:
Configuration
D lU
Make sure that the Configuration Variables have been set correctly for your business
needs (the majority of these are set in the Global JS file or s_code.js). For example, one
ot na
small Configuration Variable determines if ClickMap Data should be collected.
Another Configuration Variable determines the currency type of all recorded Revenue
is
N ter
Page Templates
Many clients site architecture uses page templates to create site pages dynamically,
D In
templates so that each and every page that uses the template contains the proper code.
Some page template types might include:
ob
Product pages
o
Code Exceptions
Even if you use page templates that create pages on your site, you will still need to
populate certain variables just once or so on specific pages. These could include the
404 Error Page and Conversion Event pages or whenever you need to pass in a special
value on just one page. Pay special attention to pages that employ Custom Link
Tracking. Dont forget to check any global values that you may have set in the s_code.
js file. Make sure that these pages are correctly coded.
Use the Debugger to find any missing variable values. For example, if the code says
s.pageName=Home and pageName=Home is not in the Debugger, theres a problem.
y
Use the tables provided in the Debugger white paper (available in the SiteCatalyst
t e nl
Knowledge Base) to translate the Debugger variables.
NOTE: A blank
bu O
Debugger may indicate To recognize code errors, watch for any of the following:
that the page was tagged
Variables with the wrong values
incorrectly or the page cannot
tri se
Variables set on the page that dont show in the Debugger
load the Global JavaScript file
(s_code.js).
Code validation ensures that variable configuration for the following variables actu-
D lU ally supports business requirements.
Configuration Variables
Traffic Variables
ot na
Conversion Variables
Custom Links
is
N ter
can also be done by the technical consultant. As the technical consultant, youll need
to be familiar with the SiteCatalyst interface so that you can run the correct reports to
verify report accuracy.
e
ob
To check reporting accuracy, log into SiteCatalyst and run the report that captures the
data of the variable in question. For example, s.pageName populates the Pages report,
o
prop1 populates Custom Insight 1, eVar1 populates Custom Conversion 1. Some of the
Ad
Data points
Orders
Events
Page views
Adobe expects minor loss of data (1-3%) for reasons such as the image request does not
reaching our servers due to Internet latency, visitors having JavaScript disabled, and
because the Internet is not a guaranteed delivery medium. Page weight can also be an
y
issue so image request placed higher on the page will be the more accurate. The fol-
t e nl
lowing issues may affect accuracy:
bu O
implementations.
Dial-up slows load times.
tri se
Inconsistency with code placement throughout the site (code that is placed
higher on the page will measure more data while code that is placed lower on
the page will measure visitors who loaded the whole page).
D lU
Implementation problems or issues: bad chars or formatting, other JavaScript
errors, page or .JS file doesnt load.
Excluded IP addresses placing orders (internal IP addresses or employee activity).
ot na
Check to ensure that none of the orders are related to any excluded IP addresses.
Special products (may be ordered through a different process).
is
Alternate order processes (customer service site, etc.).
N ter
Internal testing, such as test orders, is included in comparison data, but not in
SiteCatalysts data due to internal IP exclusion.
D In
Order numbers are not unique, and therefore new Orders are being excluded by
SiteCatalyst (we remove duplicate orders when properly using the s.purchaseID
variable).
e
s.purchaseID values)
Unique Order Numbers are generated every time the Order Confirmation page
o
Time zone difference between SiteCatalyst Report Suite data and client
back-end system data.
Order page failure (the order recorded by the back-end system, but the order
confirmation/thank you page is not loading, and therefore not being recorded
in SiteCatalyst).
Duplicate orders are removed in back-end system, but not in SiteCatalyst.
If you have a lot of Mac-based users, there may be issues with character line-end-
ings that are causing problems with any dynamically included variables put into
the code to paste area of the pagelike s.purchaseID, s.events, s.products, etc.
Consult Client Care for advice on how to best check and verify metrics on your site.
You may also run into discrepancies with the Conversion Reports. If this occurs,
check any of the following:
y
t e nl
bu O
tri se
D lU
ot na
is
Other Debugging Techniques
N ter
As stated earlier in the course, you can use any other packet analyzer of your choice in
lieu of the JavaScript Debugger. If you choose to use a packet analyzer, you will still
D In
need to know the parameter names, as they appear in the Debugger. Keep the
Debugger white paper nearby with the parameter name reference table.
e
ob
o
Ad
y
t e nl
bu O
tri se
D lU
These tools are especially useful for debugging Flash and Custom Link tags, because
ot na
Flash and links may occasionally not show up in the SiteCatalyst Debugger tool (al-
though the debugger is designed to capture these image requests). They can also be
is
N ter
used to catch multiple image requests, in the case when a page is double-tagged (dif-
ferent from Multi-suite Tagging). The image request is a GET request using HTTP as
the protocol and is displayed as the following (if using third-party cookies):
D In
http://reportSuiteID.d2.sc.omtrdc.net...
or
Adobe
e
http://reportSuiteID.112.2o7.net... DigitalPulse
ob
Adobe DigitalPulse provides monitoring capabilities that allow businesses to detect SiteCatalyst tags.
Ad
and quickly resolve issues that can negatively impact how consumers interact with
their Web sites.
DigitalPulse helps analysts identify missing or incorrectly configured tags and bro-
ken linksensuring that online analytics and reporting are complete and accurate,
leading to a more optimized customer experience, increased engagement and im-
proved SEO rankings.
Contact your Account Manager for more information about this solution.
Variables and Values syntax: Lack of knowledge regarding how to use specific
variables and functions
New pages on site: Process not in place to include SiteCatalyst code on new
pages
y
Code Modifications: Sudden change of implementationsomeone changes the
t e nl
page without considering the SiteCatalyst tag
JavaScript .JS File: referenced incorrectly or nonexistent
bu O
Common Problem Countdown
tri se
The following problems are some of the most frequently encountered during the im-
plementation process, starting with number 11 and working down to number 1:
D lU 11. Strange characters from your text editor
What It Is
Instead of editing in Notepad, you edit your code in Microsoft Word or another
ot na
program inappropriate for coding.
After copying from Word and pasting code into the Web page, strange charac-
is
N ter
ters appear causing problems with the code and perhaps the site.
How to Prevent It
D In
Make sure that you use a Text Editor that doesnt introduce hidden characters
into your code such as Notepad or another appropriate editor.
e
Use of Single Quotes and Apostrophes could produce illegal code that would
o
Example:
s.pageName=LOral Home Page
s.pageName= Samsung 55 LED LCD TV
How to Prevent It
Choose to use Single or Double Quotes and be consistent
Watch out for any () or () that could break the code
Turn off SMART QUOTES in your code editor
Possible solutions:
s.pageName=LOral Home Page
s.pageName=L\Oral Home Page
How to Prevent It
s.pageType should only be populated on the 404 error page with the value
errorPage
s.pageType=errorPage
y
8. Misuse of Comma (,) and semicolon (;) in s.products
t e nl
What It Is
bu O
Using a comma or semicolon in product names
Product name is Ski Coat, size medium contains a comma
Example:
tri se
s.products=;Ski Coat, size medium;1;295.50
D lU
How to Prevent It
Strip all characters such as semicolon (;) and comma (,) from product names
Best option: just use the SKU as the product name
ot na
Only use semicolons to delimit the product string fields and the comma to
separate one product from another in the product string
is
N ter
How to Prevent It
e
All variables that you are passing (including the event variable if applicable)
ob
by commas)
<a href=index.html onClick=var s=s_gi(mysiteid); s.linkT
Ad
rackVars=eVar1,eVar2,events;
s.linkTrackEvents=event3;
s.eVar1=Blue Hat;
s.eVar2=Hats R Us;
s.events=event3;
s.tl(this,o,Vendor Link);
>Go Purchase Product</a>
Note: If these variables are set in the JS file or anywhere else on the page,
the values will be pulled in when the link is clicked.
y
t e nl
bu O
tri se
D lU How to Prevent It
Make sure that s.cookieDomainPeriods is set correctly (if you dont set it, the
default is two periods)
ot na
Select the number of periods in your domain when you generate code in the
Admin Console
is
N ter
What It Is
Essentially the client needs to avoid things such as:
s.prop27=document.location (shouldnt use quotes)
e
How to Prevent It
Ad
Use the debugger to check that all variable values are passed in correctly
An error such as this will cause the image request to fail
How to Prevent It
Always set this variable for purchases
s.events=purchase
s.products=;ski coat;1;850.25
s.purchaseID=239sd913kf8
How to Prevent It
Ensure that the JavaScript include file is accessible to ALL tagged pages
Make sure to test your code after you modify you s_code.js file or the page code
Consider using an absolute link to the s_code.js file
y
2. Wrong Report Suite ID no data in expected Report Suite
What It Is
t e nl
Setting the wrong Report Suite ID in the Global JS file
bu O
How to Prevent It
Check your list of Report Suite IDs and ensure the s_account variable is set
tri se
correctly
Monitor traffic after going live to ensure the page names are correct
Use the Debugger to read the RSID in the image request
D lU
1. Placing Page-Level Code in the <head> tag
What It Is
ot na
Incorrect location of Page-Level Code
The image request fails (cant be made from the head tags in most browsers)
is
N ter
How to Prevent It
Ensure that Page-Level Code is between <body> tags
D In
INCORRECT CORRECT
prop1 s.prop1
o
(uses s.)
Ad
s.tl(this,o,PageA) s.tl(this,o,PageA)
(correct usage of single quotes)
s.events=event1, event2 s.events=event1,event2
(no spaces between events)
s.events=event1; s.events=event1,event2
s.events=event2; (correct format)
s.products= ;JJ Camper s.products= ;JJ Camper Tent;1;300.00
Tent;1;$300.00 (does not use a currency symbol)
These values could be a result of strange browsers that dont understand the logic on
your page that is populating variables. They could also be a result of values replaced
by parental software, or any other software, including viruses on the visitors com-
puter, etc.
y
The point of this is that you need to decide if it is worth your time to figure it out. If
t e nl
the numbers are very low for this strange value, do you really need to spend your time
running it down, just so you can get it out of your report? Maybe it would be better to
bu O
ignore it, since you are not going to change anything on your site based on the strange
value.
tri se
However, if the strange and unexpected values represent a sufficient percentage to
throw off your numbers, or if you just need them out of your reports, you can use the
D lU Debugger to troubleshoot your site, testing different pages and checking values. You
can also contact Adobe Client Care and discuss options for tracking down these val-
ues such as Adobe Digital Pulse.
ot na
is
N ter
D In
e
ob
o
Ad
The goal of this exercise is to validate that the pages below have been correctly imple-
mented and if not, make the necessary corrections to the code.
y
3. List errors on an Error Log in your book
t e nl
4. Correct errors in page code (.php files)
5. Rerun debugger to ensure the solution works
bu O
Check the following pages:
Men:Fine Apparel:Two-Button Suit (errors with 2 variables)
tri se
Men:Fine Apparel:Blue Shirt (errors with 1 variable)
Men:Fine Apparel:French Cuff Shirt (custom link code errors)
Men:Fine Apparel:Tuxedo (error with 1 variable, error with page code)
D lU
Error Log
ot na
is
N ter
D In
ob
Ad
t e nl
bu O
tri se
D lU
ot na
is
N ter
D In
ob
Ad
y
t e nl
Objectives
bu O
Understand common terminology used during the Implementation process
Learn how to ask the right questions to Report Consumers before implementing
tri se
Find out where to get help once youre implementing on your own
D lU
ot na
is
N ter
D In
e
ob
o
Ad
26-1
Recommendations and Best Practices
Overview
y
Adobe offers some best practices defined here as a tool to help you successfully imple-
t e nl
ment SiteCatalyst as quickly and effectively as possible. The following topics will be
discussed:
bu O
Understanding terminology
Dos and donts
tri se
Asking the right questions
Considering all options
D lU Identifying variable use
Populating variable values
Where to get help
Design Solution Project
ot na
is
N ter
D In
e
ob
o
Ad
Understanding Terminology
The Glossary in the SiteCatalyst User Guide and the offer terms that are commonly
used both in SiteCatalyst and in Web analytics in general. Both the technical and
business teams at your organization should become well-versed in the nomenclature
used by Adobe and throughout the Web analytics industry so that they can commu-
nicate effectively, not only with each other, but also with Adobe. We want to make
sure that everyone is talking about the same thing.
1. RolesThis one is probably pretty easy, because it mirrors what you already
have in place, but some of the roles involved with SiteCatalyst could be
2. Metrics and ReportsYou should also be familiar with the names of the
metrics and reports used in SiteCatalyst and in the industry, and know how
they are best used. These include Visit, Unique Visitor, Page View, Exits (Exit
Pages), Time Spent per Visit, etc. Think about an executive asking a simple,
but ambiguous, question such as, How many people did this? Think to
yourself, Does that mean visits or visitors or even page views or a custom
conversion event of some type to some executives or business analysts?
y
3. Features and FunctionsIt is helpful to be familiar with the different features
t e nl
and functions that are available in SiteCatalyst and other Adobe products.
These include pathing, Data Warehouse, ASI, Data Sources, Genesis, Discover,
bu O
SearchCenter, Test&Target, Insight, Merchandising, etc.).
tri se
Here are some helpful hints as you implement SiteCatalyst:
Do D lU
Make sure your page names are well planned and discussed.
Call things in the right orderespecially with H code.
ot na
Verify the outcome with the Debugger tool or packet analyzer.
Establish global standards for incorporation across the enterprise.
Do your investigation in the Knowledge Base prior to calling Adobe (it makes
is
N ter
Dont
Deploy SiteCatalyst code without talking to the Report Consumers.
In order to get ANY value from the SiteCatalyst implementation:
e
Values in reports must be understandable to those running reports. TIP: Verify your Report
ob
Business issues must be solved by collecting the right data. Consumers needs by
o
It is very important that you understand the Key Business Requirements before at- understanding of their needs
is correct. Never assume that
tempting to map them to variables. Make sure that you clarify any business needs.
you know what they mean
This is the old measure twice, cut once rule. It is much better to verify multiple
without follow-up questions.
times what the business user needs before coding the page. This will help avoid a use-
less report later that doesnt contain the requested information.
For example, if a business requirement came through simply to track content chan-
nels, you would need to verify exactly what the users need to know. Some clarifying
questions might include:
Do you need page views, visits or visitors for those content channels?
Do you need to know how people path between those content channels?
In addition, make sure that you align your terminology with the person who requests
the information. For example, make sure that visitor means the same thing to you
as it does him or her. Dont ever assume that you know what they mean. Ask
questions!
y
Once the Key Business Requirements are clear, you can take those requirements and
associated Key Performance Indicators and map them to Adobe products, features,
t e nl
functions, variables, etc. Be sure to explore all the different options, understand the
differences in those options, and choose the best solution for your site. There are often
bu O
multiple ways to get the same kind of information, but there are sometimes subtle dif-
ferences in the outcome.
tri se
Some example questions you can ask yourself in this regard include:
D lU Is this a Traffic-based objective?
Can we answer it using s.props?
If not, what else do we need? (VISTA, ASI, Discover, Excel, etc.)
ot na
Is this a Conversion-based objective?
Can we answer it using eVars?
If not, what else do we need? (Classifications & SAINT, full conversion
is
N ter
subrelations, etc.)
D In
e
ob
o
Ad
You should map out and DOCUMENT (ALWAYS DOCUMENT) your variable use.
Document variable usage in the Solutions Design Reference document.
Example:
Another important question to ask when you are mapping the variables out is:
This could be broken down into specific questions, such as these examples:
y
At the page level do I know the content category and sub-category?
t e nl
For any given visitor can I determine the segment such as registered vs.
non-registered?
bu O
Based on our site architecture, how best can I put events onto the appropriate
pages?
tri se
For example, it doesnt do any good to map a variable to be the Age variable if you
dont ascertain the age of site visitors. So make sure that you can get the information
that you are planning to put into the variable.
D lU
Populating Variable Values
Next, determine how to get the values that you need into the code on the page.
ot na
Common solutions include:
Although the architecture of your site will dictate how you will likely code your
SiteCatalyst variables, it is also sometimes a variable-by-variable decision. For exam-
e
ple, you might be able to pull a value from the URL for one variable, while you need to
ob
Keep in mind that SiteCatalyst records whatever is passed in exactly as it is sent in the
Ad
image request. Dont forget the garbage in/garbage out rule. If the Report Consumers
cant use the information, then its likely an implementation problem.
In any case, the onus is, of course, on you to provide quality values into the variables.
You may contact Adobe Consulting for some suggestions and best practices in this
regard.
y
t e nl
bu O
tri se
D lU
ot na
You should have (at least) two users at your company that are set up as supported us-
is
ers and can call or email for help from Adobe Client Care. If you would like more
N ter
help implementing SiteCatalyst, you may also engage an Adobe Technical Consultant.
Please contact your Account Manager for more information.
D In
Course Summary
1. Define your KBRs based on site goals with Report Consumers
e
4. Deploy code
5. Validate code
Ad
6. Repeat and modify as needed (the site will change and the implementation
will need to keep up)
Course Wrap-up
Thank you for taking this course. We hope that you have enjoyed it. For information
regarding additional courses, please visit http://www.omniture.com/education/.
y
t e nl
Index
bu O
subrelations 14-214-3
traffic correlations 8-28-4
business requirements document 3-5
tri se
Symbols C
D lU
404 error pages variable 6-86-9 campaign variable 10-3, 12-212-7
404 error page variable 4-4 certification exam for sitecatalyst implementation xii
channel variable 4-4, 6-26-3
A
ot na
classifications 21-221-4
ace implementation exam xii code
adobe blog for omniture technology 26-526-6 global javascript file (s_code.js) 1-8
is
N ter
adobe certified expert program xii how sitecatalyst code is read 16-2
adobe developer community 22-222-3 page-level code 1-8
adobe digitalpulse 24-224-10, 25-7 configuration variables
D In
allocation 12-5
s.linkDownloadFileTypes 15-16
Ad
api 22-3
api explorer 22-3 s.linkExternalFilters 15-18
apl append list plug-in 16-7 s.linkInternalFilters 15-17
appmeasurement for actionsource 20-220-8 s.linkLeaveQueryString 15-17
appmeasurement library code 18-11 s.linkTrackEvents 15-18
asi (advanced segment insight) 21-34 s.linkTrackVars 15-18
asynchronous tag container processing 23-2 s.mobile 15-15
automatic variables 15-2015-21 s_objectID 15-14
s.trackDownloadLinks 15-16
B s.trackExternalLinks 15-17
bookmarklets 23-3 s.trackInlineStats 15-14
brd 3-5 context data variables 17-3
breakdowns conversion allocation 12-5
y
usage example 14-614-9
t e nl
cookies in sitecatalyst 20-920-10 first-party cookies 20-10
correlations 8-28-4 flash tracking 20-220-8
bu O
cross-category merchandising 13-913-12 fusion deployment methodology 3-4
custom events 9-6
custom event types 9-8
G
tri se
custom insight variables 4-4, 7-27-11 genesis 21-3021-31
custom link tracking 15-1815-20 getQueryParam plug-in 12-3, 16-516-6
D lU
without javascript 18-9
custom traffic variables 4-4, 7-27-11
getValOnce plug-in 16-6
global javascript file (s_code.js) 1-8
D H
ot na
insight 21-37
developer community 22-222-3 internal campaigns 12-7, 13-413-5
digitalpulse 24-224-10, 25-7 internal url filters 20-12
e
masks 24-3
J
o
reports 24-724-9
Ad
y
scView 10-7 process of using web analytics 2-5
t e nl
traffic metric availability by report 8-88-9 products variable 10-2, 10-510-12, 11-10
visits 1-6 prodView event 10-6
bu O
mobile device subscriber id 15-15 props 4-44-6, 7-27-11
mobile image request 18-418-7 usage example 8-158-17
mobile report suite 18-3 purchase event 11-211-3
tri se
mobile site tracking 18-2 purchase id variable 10-2, 11-3
multi-currency support 15-915-11
D lU
multi-suite tagging 15-8 Q
query string parameters 18-7
N
R
ot na
naming conversion events 9-7
naming traffic variables 7-10 rdc 20-11
is
redirects 20-13
N ter
O
referrers 20-12
optimum path engine 8-5 regional data collection 20-11
report builder 21-38
D In
P
reports
packet analyzers 1-12, 25-625-7 conversion funnel report 9-99-10
e
page name variable 4-4, 5-25-18 shopping cart conversion funnel 10-9
o
y
server variable 4-4, 6-4 tag management 23-2
t e nl
s.eVarN 13-213-12 third-party cookies 20-10
usage example 14-614-9 tracking code variable 10-3, 12-212-7
bu O
s.events 10-210-12 traffic breakdowns 8-28-4
s.fpCookieDomainPeriods 15-13 traffic variable enhancements
s.hierN 4-4, 6-46-7 classifications 4-4, 21-221-4
tri se
shopping cart conversion funnel 10-9 correlations 4-4
sitecatalyst pathing 4-4
D lU
asi (advanced segment insight) 21-34 unique visitors metric 4-4
visits metric 4-4
code 1-81-10
cookies 20-920-10 traffic variable limitations 4-5
ot na
data warehouse 21-3321-34 traffic variables 4-34-6
exclude by ip address 20-12 naming 7-10
usage example 8-158-17
is
interface elements 2-4
N ter
s.linkInternalFilters 15-17
V
s.linkLeaveQueryString 15-17
ob
y
mation architecture) 16-816-11
t e nl
W
bu O
web analytics
strategic process 2-5
tri se
Z
zip/postal code variable 10-3, 11-511-6
D lU
ot na
is
N ter
D In
e
ob
o
Ad
y
t e nl
bu O
Traffic Section 2: Answers to Review Questions
tri se
1. How does SiteCatalyst collect traffic data for your site?
D lU
a. Reading server logs that are passed to SiteCatalyst
b. The Adobe Crawling Engine crawls the Web site and logs all traffic
data
ot na
c. Code is placed on each page of your site, and information is sent to
Adobe when pages load and the code is executed
d. Customers opt in to be part of the tracking community, at which time
is
N ter
3. What is the default page naming value (if the pageName variable is not
Ad
populated)?
a. There is no default; the page name variable must be populated for the
page information to be recorded in SiteCatalyst
b. The HTML page title tag
c. The page URL
d. The page URI
4. When selecting the appropriate level of page naming detail, you should be
sure to include the User ID or Session ID within the page name.
a. True
b. False
A-1
5. What is the maximum character (byte) length for the server variable?
a. 20
b. 100
c. 255
d. 2083
6. Custom Insight Variables (props) must be set on every page that you want
the value reported.
a. True
y
b. False
t e nl
7. Where can you give a user-friendly name to your Custom Insight Variable
bu O
reports?
a. On the Tools page in SiteCatalyst.
b. In the Admin console in SiteCatalyst.
tri se
c. It has to be set in the variable string along with the specific value.
8. Match the Traffic variable to its function (some functions will not match).
Write the number of the correct function next to the variable.
ot na
Variable
a. pageName 6
is
N ter
b. channel 3
c. server 8
D In
d. hierN 1
e. propN 4
e
Functions
ob
2. This is used for site conversion numbers and provides conversion visits
Ad
and visitors.
3. This is a predefined traffic variable, traditionally used for high-level
content categories.
4. This provides customization and segment reporting based on page
views, visits or visitors.
5. This is used for tracking external campaigns.
6. This controls the value displayed in all page-related reports, including
Path reports.
7. This provides customization and segment reporting based on conversion
metrics such as revenue and orders.
8. This is a predefined traffic variable sometimes used to show balance
between multiple Web sites in a global environment.
y
d. Track pages relating to conversion transactions.
t e nl
2. Out of the following list, chose the predefined retail success events (circle
bu O
all that apply).
a. scOpen f. prodView
b. scAdd g. scOrder
tri se
c. revenue h. scUnits
D lU
d. scRemove i. scCheckout
e. scView j. purchase
ot na
3. What are the four most common pages to be coded in order to capture basic
shopping cart success?
is
N ter
a. Product detail page, shopping cart page, shipping page, checkout page
b. Product detail page, shopping cart page, billing page, order confirma-
tion page
D In
c. Product detail page, shopping cart page, checkout page, order con-
firmation page
d. Home page, shopping cart page, checkout page, order confirmation
e
page
ob
o
4. Which of the following are correct syntax for the product variable on a
product detail page? Circle all that are correct.
Ad
a. s.products=prodView
b. s.products=category;product
c. s.products=product;category
d. s.products=category,product
e. s.products=;product
6.
Enabling full subrelations (super-breakdowns) for an eVar will provide
essentially the same breakdown options as the s.campaign variable.
y
a. True
t e nl
b. False
bu O
7. eVars are persistent and will expire:
a. when the visit has ended.
tri se
b. when the visitor reaches the predefined success event.
c. when the expiration time or event is reached as defined in the Admin
D lU console.
d. on each page load.
ot na
8. Which is true of the SiteCatalyst cross-category Merchandising functionality?
a. It allows products to be tied to a dynamic merchandising channel rather
is
than a static parent channel.
N ter
Answers to Exercises
y
t e nl
NOTE: The exact variable that you use will be specific to your implementation (the
bu O
exercise example may use s.prop2 to capture Internal Search Term, but you may use
s.prop2 for a different purpose in your implementation). Please contact your Account
Manager or Implementation specialist for more information about your solution.
tri se
Chapter 5
D lU
Exercise 5.1: Page Names
Report Suite ID
Page Views, Visits and Unique Visitors to Hierarchy Levels
e
Assignment
ob
In your book, write the Page Name code for the following pages:
1. The JJ Esquire Home Page on the Germany site
o
2. The Womens Fur Trim Ski Jacket in Activewear on the JJ Esquire United
Ad
States site.
3. The Mens Tuxedo page in Fine Apparel on the JJ Esquire France site
4. The Mens Tuxedo page in Fine Apparel on the JJ Esquire United Kingdom
site
Solution
1. s.pageName=DE:Home Page;
2. s.pageName=US:Women:Activewear:Fur Trim Ski Jacket;
3. s.pageName=FR:Men:Fine Apparel:Tuxedo;
4. s.pageName=UK:Men:Fine Apparel:Tuxedo;
B-1
Site Exercise 5.2: Detailed Page Names
Assignment
On your own JJ Esquire Web site, code Page Name based off of site structure using a
colon as a delimiter. Validate that code was passed in appropriately.
Note: To differentiate page names on your site from those of other students, prepend a
global value such as your initials, e.g., s.pageName=JG:Men:Fine Apparel:Tuxedo.
y
Solution
t e nl
Use s.pageName to record basic user-friendly hierarchical page names
bu O
Examples
Code the page name
s.pageName=Home Page;
tri se
s.pageName=Women:Fine Apparel:Sequin Dress;
s.pageName=Men:Activewear:Hooded Sweater;
D lU Implementation
Document the variable in SDR (if you havent already): s.pageName
Deploy code & Validate: PageName plug-in, Dynamic script, etc.
ot na
Chapter 6
is
N ter
Traffic Metrics for the main areas of our site, available in top-level site navi-
Ad
gation
Assignment
What kind of variable(s) should you use to fulfill each business requirement?
Solution
Use s.pageName for user-friendly page names
Use s.pageType to track 404 Error page
Use s.channel for major/top level site sections
Example
s.pageName=Jewelry:Rings:Diamond Ring
s.pageType=errorPage
s.channel=Jewelry
y
List of retired links and the number of times each link is clicked
t e nl
Assignment
Code the 404 Error Page to automatically record links to retired content (error page
bu O
can be accessed from the Site Map).
Solution
tri se
Code the s.pageType variable appropriately on the 404 Error Page
Example D lU
s.pageName=
s.pageType=errorPage
ot na
Implementation
Assign variables in SDR: s.pageType
Deploy code & Validate
is
N ter
Assignment:
What kind of variable(s) should you use to fulfill the business requirements?
Solution
Use s.hier1 to track visitor traffic on multiple site levels and enable desired
metrics
Use s.server to identify the site name (use a Global Report Suite to consoli-
date metrics from multiple sites)
(Alternate: Use s.channel and multiple s.props for each level of hierarchy - enable metrics
as needed for each variable - Page Views is the only available metric when drilling down.)
Implementation
Assign variable in SDR: s.hier1
Deploy code & Validate
Verify that hierarchy is being recorded correctly in SiteCatalyst reports
y
Assignment
t e nl
Code the following pages:
1. Home Page
bu O
2. Women Site Section page
3. Womens Activewear subsection page
tri se
4. The Fur Trim Ski Jacket in Womens Activewear
Solution:
is
N ter
s.channel=Women
o
Chapter 7
Assignment
y
Code the following pages:
t e nl
1. Home Page
bu O
2. Women Site Section page
3. Womens Activewear subsection page
4. The Fur Trim Ski Jacket in Womens Activewear
tri se
With the following value where applicable (not all pages may be part of a subsection):
1. Subsection
D lU
Solution:
use s.prop1 for all subsections
ot na
Product Page Example:
s.hier1=Activewear
is
N ter
(or Womens Activewear if you dont wish to combine Traffic Metrics with Mens
Activewear, but be consistent)
No subsection
s.prop1=Activewear
ob
(or Womens Activewear if you dont wish to combine Traffic Metrics with Mens
Activewear, but be consistent)
o
Discussion:
Do I need to give my Home Page a subsection name? What kind of reporting does it
give me? If I enable Paths for s.prop1, what kind of path reports can I see?
Generally, placing the home page into a subsection report is done so that you can see
the home page in subsection Path Reports. Additionally, if you wish to see traffic for
subsections and the home page in the same report, the home page must be included
as a subsection in the Subsection Report.
y
Assignment:
What kind of variable(s) should you use to fulfill the business requirements?
t e nl
Solution
bu O
s.prop2 for search term (force lower case)
s.prop3 for the scope of the search
s.prop4 for the number of search results
tri se
(Alternate: Capture all values in one prop and use classifications to break values out
into separate reports - more work, but less props used)
D lU Example
s.prop2=Laptop Computers
s.prop2=s.prop2.toLowerCase()
ot na
s.prop3=Computers
s.prop4=125
is
N ter
Implementation
Assign variables in SD: s.prop2, s.prop3, s.prop4
Deploy code & Validate: Dynamic script or getQueryParam
D In
Hint: Always force case with user input to avoid multiple entries
ob
Assignment
Ad
Record the following search activity on the appropriate page and force user-inputted
values to lowercase using JavaScript:
A visitor searches for Wall Decor in the Home & Garden section and gets 78 search
results.
Note: Make sure that the search term is set to lowercase via JavaScript.
Solution
s.prop2 for search term (force lower case)
s.prop3 for the scope of the search
s.prop4 for the number of search results
Example
s.prop2=Wall Decor
Implementation
Assign variables in SD: s.prop2, s.prop3
Deploy code & Validate: Dynamic script or getQueryParam
Specify report name: Internal Search Term, Internal Search Success
Hint: Always force case with user input to avoid multiple entries
y
Site Exercise 7.4: Hotel Bookings
t e nl
Key Business Requirements
Understand visitor behavior and choices throughout the online booking
bu O
process
Track all hotel booking options within the selection process
tri se
Track by Hotel ID, Rooms Booked, Length of Hotel Stay, Days to Arrival and
Rate Code
D lU
Key Performance Indicators
Number of reservations by Hotel ID, Rooms Booked, Length of Hotel Stay,
Days to Arrival and Rate Code
ot na
Assignment
Record the visitors actions on the appropriate JJ Travel page:
is
N ter
A visitor to the JJ Travel site books a stay at the JJ Esquire Park City, Utah (Hotel ID)
with 2 rooms (Rooms Booked) for 7 days (Length of Hotel Stay) 21 days in advance
(Days to Arrival) at the 0759 rate (Rate Code).
D In
Solution
Code the props on the confirmation page Company:JJ Travel Completion
e
Example
s.prop5=JJ Esquire Park City, Utah
s.prop6=2
s.prop7=7 Nights
s.prop8=21 Days
s.prop9=0759
Implementation
Assign variables in SDR: s.prop5 - 9
Deploy code & Validate: Dynamic script
Specify report names in the Admin Console
Assignment
y
What kind of variable(s) should you use to fulfill the business requirements?
t e nl
Solution
bu O
Set s.prop10 as Public User on every page if not logged into site
Set s.prop10 as user type (Silver Member) on every page after logging in
tri se
Example
s.prop10=Public User;
D lU s.prop10=Silver Member;
Implementation
Assign variable in SDR: s.prop10
ot na
Deploy code & Validate: Dynamic script pulling user type
Specify report name in the Admin Console
is
N ter
visitors
o
Assignment
Ad
JJ Esquire offers various weekly newsletters. Code to record the following using
s.prop(s):
A visitor signs up for the following newsletters: JJ Living, JJ Foreign Policy, JJ Special
Offers and Random Spam.
Solution
Enable List Prop functionality for s.prop11 with pipe (|) as delimiter and
set all survey responses from a visitor into the prop
Example
s.prop11=JJ Living|JJ Foreign Policy|JJ Special
Offers|Random Spam
Implementation
Assign variable in SDR: s.prop11 (ask ClientCare to enable as List Prop)
Deploy code & Validate: Dynamic script or getQueryParam to pull responses
submitted
Specify report name in the Admin Console
Chapter 8
y
Exercise 8.1: Additional Traffic Features
t e nl
Key Business Goals
bu O
Understand how visitors move from Site to Site and Site Section to Site
Section
Track site traffic by visit and unique visitor metrics
tri se
Analyze the relationship between Site-, Site Section- and Page-level informa-
tion
D lU
Key Performance Indicators
Traffic metrics for all corporate domains in a single report
Paths between Sites, Site Sections and Pages
ot na
Visit and Unique Visitors (Daily, Weekly, Monthly) for each level (Site, Site
Section, Page)
Page Views for break downs by Site, Site Section, and Pages by each other in
is
N ter
any combination
Assignment
D In
What kind of variable(s) and feature(s) should you use to fulfill the business require-
ments?
e
Solution
Use s.server for domain names and s.channel for site sections in a global
ob
report suite
o
Enable Visits and Unique Visitors (Daily, Weekly, and Monthly) for Server,
Site Section (channel), and Page Name
Ad
Example Code
s.server=JJ Esquire Spain;
s.channel=Company;
s.pageName=Company:Newsletter Subscription Start;
Implementation
Assign variables in SDR: s.server, s.channel, s.pageName
Deploy code & Validate
Adobe ClientCare enables the following:
Paths for s.server and s.channel (paths enabled by default for
s.pageName)
y
Page Views per registration status (registered/guest user)
t e nl
Path Views of paths by registration type
Path Views of paths between Site Sections
bu O
Assignment
What kind of variable(s) and feature(s) should you use to fulfill the business require-
tri se
ments?
Solution
D lU Set s.prop12 to record registration status. Persist that value across all pages
with a cookie or the Persist Value plug-in. Set an additional Custom Traffic
Variable, s.prop13, that concatenates first s.prop value with s.pageName.
ot na
Enable pathing for s.prop13
Enable pathing for Site Sections
is
Example
N ter
s.prop12=Registered
s.prop13=s.prop12 + :+ s.pageName
D In
Implementation
ob
Assignment
Code the Search Results page with the proper variable(s) and enable the proper
feature(s) to fulfill the business requirements for the following scenario:
y
Solution
t e nl
Capture internal search term in s.prop2 and force to lowercase
Set the term into s.prop14 on every page using the getAndPersistValue plug-
bu O
in or your own server-side scripting and concatenate Page Name (hard code
for this practice exercise)
tri se
Enable pathing for s.prop2 and s.prop14
Example
D lU
s.prop2=watch
s.prop2=s.prop2.toLowerCase()
s.prop14=s.getAndPersistValue(s.prop2,s_getval)+>+s.
ot na
pageName
End result example: s.prop14=watch>Men:Accessories:Watches
is
N ter
Note: the > sign was arbitrarily used as a delimiter between Internal Search Term and
Page Name in this example. The implementer used it to visually separate Terms from
Page Names.
D In
Implementation
Assign variables in SDR: s.prop2 and s.prop14
e
s.prop14
Chapter 9
Assignment
Solution
Use Event 1 and Event 2 to track Starts and Completions, respectively
View automatically created conversion rate reports in SiteCatalyst
Example
s.pageName=Company:Newsletter Subscription Start
s.channel=Company
s.hier1=Company|Newsletter Subscription Start
y
s.events=event1
t e nl
s.pageName=Company:Newsletter Subscription Completion
bu O
s.channel=Company
s.hier1=Company|Newsletter Subscription Completion
s.events=event2
tri se
Implementation
D lU Assign variable in SDR: Event 1 and Event 2
Specify report names in the Admin Console
Deploy code & Validate
ot na
Chapter 10
is
Site Exercise 10.1: The Checkout Process
N ter
Assignment
Code for the following scenario:
A visitor views the Military Jacket in Mens Activewear, adds it to the cart, checks out
and completes the shipping and payment information pages.
Solution Step 1
Identify the conversion events:
View product (prodView)
Add product to cart (scAdd)
Proceed to checkout (scCheckout)
Input Shipping information (event3)
Input Payment Info (event4)
Solution Step 3
Men:Activewear:Military Jacket page
s.events=prodView
y
s.products=;200241
t e nl
After Add to Cart button Checkout:Shopping Cart page
bu O
s.events=scAdd
s.products=;200241
tri se
After Checkout button Checkout:Shipping Step 1 page
s.events=scCheckout
D lU
s.products=;200241
ot na
After Shipping Information page Checkout:Payment Step 2
s.events=event3 //Shipping complete
s.products=;200241
is
N ter
s.products=;200241
Implementation
e
Chapter 11
Assignment
Code for the following scenario for the Final Confirmation Page:
Visitor purchases one (1) Black Dress and two (2) Red Dresses from
Women:Fine Apparel
Order number is 123456789
Billing state is California and zip is 92121
y
Solution
t e nl
Order Confirmation Step 4 (Purchase button clicked on Order Review Step 3)
bu O
s.events=purchase
s.products=;101340;1;3290.00,;101341;2;9440.00
s.purchaseID=123456789
tri se
s.transactionID=s.purchaseID
s.state=California
D lU s.zip=92121
Note: s.zip is alphanumeric. If San Diego is more meaningful to the analyst than
92121, then the city name can be used (the analyst could also classify postal codes).
ot na
Implementation
Assign variables in SDR: predefined and custom variables and events
is
Deploy code & Validate: Dynamic script
N ter
Postage and Sales Tax by product and all other associated conversion vari-
o
ables
Ad
Assignment
Assume that you are coding on the JJ Esquire Germany site. Code for the following
scenario on the Order Confirmation page:
Visitors purchases Red Dress (SKU 101341) for 3.499,99
Postage cost = 4,50 and tax (VAT) = 6,19
Order ID is 987654321
Billing state is Nordrhein-Westfalen and postal code is 40547
Note: Assume that the Euro has already been set as the Report Suite default currency.
Solution
Use the purchase event to track the order
Use events 5 and 6 to track postage cost and sales tax
Note 1: Only use (.) as decimal separator and do not use a thousands separator.
y
Note 2: s.zip is alphanumeric. If Dsseldorf is more meaningful to the analyst than
40547, then the city name can be used (the analyst could also classify postal codes).
t e nl
Implementation
bu O
Assign variable in SDR: predefined events, event5 & event6
Deploy code & Validate: Dynamic script
Enable events 5 & 6 as currency types in Admin tab
tri se
Specify event names: Postage Cost, Sales Tax
D lU
Site Exercise 11.3: Event Incrementor with Multiple Products
Revenue for multiple item orders by product SKU, State and Zip
Postage and tax by product
Note: Where applicable, use the same events from the previous exercise.
D In
Assignment
Assume you are coding on the JJ Esquire Japan site. Code for the following scenario
e
Visitor purchases two (2) Sport Jackets (SKU 200244) for 22,000
Postage is 400 and Sales Tax is 1,100 for each unit
o
Visitor purchases one (1) Hooded Sweater (SKU 200233) for 42,500
Ad
Note: Assume that the Yen has already been set as the Report Suite default currency.
Solution
Use the purchase event on page after order is finalized (Order Confirmation
Step 4)
Use event5 for Postage and event6 for Sales Tax
Include the purchaseID, transactionID, state, and zip variables on the pur-
chase event page
y
Note 2: s.products should be written on one line (written on two lines in example).
t e nl
Implementation
bu O
Assign variables in SD: purchase, event5, event6, products, purchaseID,
transactionID, state, zip
Enable event5 and event6 as currency event type
tri se
Deploy code & Validate: Dynamic script
Specify event and variable names in Admin Console: Postage Costs (event5),
D lU Sales Tax (event6), Prefecture (s.state), City (s.zip)
Chapter 12
ot na
landing page
o
Assignment
Ad
What kind of variable(s) and feature(s) should you use to fulfill the business require-
ments?
Solution
Use s.campaign to record all external campaign traffic
Capture query string parameter with getQueryParam (set in s_code.js)
Create special landing page for radio ad
Example
Captured with Plug-In (any landing page):
s.campaign=s.getQueryParam(cid)
Hard coded on specific landing page:
s.campaign=radio ad:1
y
Key Performance Indicators
t e nl
Click throughs and Conversion Events for online external campaigns
bu O
Assignment
Install the getQueryParam plug-in in your s_code.js file and verify that Tracking
tri se
Codes are populating s.campaign (getQueryParam available in Company:White
Papers).
D lU
To verify that Tracking Codes are populating, go to the Search Engine Page (link
available on the Site Map) and click through the JJ Esquire Ski Sale add. The
Tracking Code is jj_ski_sale.
ot na
Solution
Copy and paste in the code from the Company:White Papers section. This code
is
includes the s_doPlugins function. Notice that the call to the getQueryParam
N ter
plug-in is placed in the doPlugins function. You should also place calls to any
future plug ins within doPlugins.
D In
Example
/* PLUGIN CONFIG */
e
s.usePlugins=true
ob
function s_doPlugins(s) {
o
Ad
s.campaign=s.getQueryParam(cid);
}
s.doPlugins=s_doPlugins
/* PLUGIN MODULES */
/*
* Plugin: getQueryParam 2.3
*/
s.getQueryParam=new Function(p,d,u,
+var s=this,v=,i,t;d=d?d:;u=u?u:(s.pageURL?s.
pageURL:s.wd.locati
+on);if(u==f)u=s.gtfs().location;while(p){i=p.
indexOf(,);i=i<0?p
y
substring(0,i),v=i<0?T
t e nl
+rue:t.substring(i+1);if(p.toLowerCase()==k.
toLowerCase())return s.
bu O
+epa(v)}return );
tri se
Chapter 13
Assignment
D In
The home page Charge Card promotions link contains the tracking code homepage-
cc-advert preceded by the trigger intcmp.
e
Using the getQueryParam function in the s_code.js, set s.eVar1 to capture all Internal
ob
Solution
Ad
Example Code
s.usePlugins=true
function s_doPlugins(s) {
s.eVar1=s.getQueryParam(intcmp)
}
s.doPlugins=s_doPlugins
Implementation
Assign variable in SDR: s.eVar1
Specify variable name in Admin Console: Internal Campaign Tracking Code
y
and number of guests (to find which options resulted in the most bookings)
t e nl
Number of bookings by Internal Promotional links
Assignment
bu O
What kind of variable(s) and feature(s) could you use to fulfill the business requirements
in this travel site scenario?
tri se
Solution
Use purchase event for bookings and product string for the hotel name, num-
D lU
ber of nights and total revenue for stay (alternate: an eVar could be used for
hotel name and three custom events for bookings, number of nights and total
revenue)
Use eVar1 for internal promotions (getQueryParam to capture internal promo
ot na
codes)
Use eVar2 for travel date
is
N ter
Example Code
D In
s.events=purchase;
s.products=;JJ Esquire Park City;1;349.00;
e
s.eVar1=s.getQueryParam(intcmp)
s.eVar2=20 July
ob
s.eVar3=2
o
s.eVar4=Park City
Ad
Implementation
Assign event in SDR: purchase
Assign variables in SDR: eVars 1-4
Deploy code & Validate: Dynamic script and getQueryParam()
Specify report names in Admin console for each eVar report
Change Orders metric name to Bookings in Admin console (also possibly
change Units to Nights Booked)
Assignment
Scenario: Tissot Aviator Watch (SKU 300720) is available for sale in two sections of the
Web site: Men:Accessories and Jewelry:Watches.
One visitors viewed the watch in the Men: Accessories category. Another visitor viewed
the watch through the Jewelry:Watches category.
How would you cod e the Merchandising Category in each circumstance on the
y
Product Page, using s.eVar6, and following Product Syntax?
t e nl
Solution
Set an eVar to record merchandising category on the Product Page
bu O
Examples
Product viewed from the Men:Accessories category:
tri se
s.events=prodView
s.products=;300720;;;;eVar6=Men:Accessories
D lU s.pageName=Men:Accessories:Tissot Aviator Watch
Results: When the item is purchased, the revenue will be allocated to the category in
which the product was viewed.
D In
Implementation
Assign variable in SDR: s.eVar6
Adobe ClientCare enables Merchandising for eVar6
e
Chapter 14
Question 1
You need to identify the number of Orders you get from people that search by Sport
Jacket on your site. What variable type should you use to capture Internal Search
Term?
Answer
A Converion Variable (s.eVar)
s.eVar5=sport jacket
s.events=purchase
Answer
A Traffic Variable (s.prop).
s.prop2=sport jacket
(Page View counted each time a prop is set)
Question 3
y
You want to create a report that shows which products 40-44 year olds purchase.
What variable type should you use to capture Age Group?
t e nl
Answer
bu O
A Conversion Variable (s.eVar)
s.eVar20=40-44
s.products=;101333;1;4250
tri se
s.events=purchase
(s.eVar20 and s.products are subrelatable with common metric Orders)
Question 4
D lU
You want to create a report that shows which pages 40-44 year olds view on your site.
What variable type should you use to capture Age Group?
ot na
Answer
A Traffic Variable (s.prop).
is
N ter
s.prop20=40-44
s.pageName=Women:Fine Apparel:Sequin Dress
(set up a correlation between s.pageName and s.prop4)
D In
Assignment
Divide into two teams.
ob
o
You have 10 different Forms on your site. You need to track Form Starts and
Ad
Figure out three different ways to code the 10 Form Starts and Completions
using:
1. Only s.prop(s)
2. Only s.events
3. A combination of s.eVar(s) and s.events
4. Determine which method you think is best for your purposes.
Extra credit: Is it possible to code 20 forms and record form starts and form completions
without using more than the SiteCatalyst limit of 75 props, 75 eVars or 20 events? What
if you had 100,000 different forms?
Example
s.prop30=Customer Service Form Start //Form Name and Status
s.pageName=Customer Service Form Start
y
s.prop30=Customer Service Form Completion//Form Name and Status
t e nl
s.pageName=Customer Service Form Completion
bu O
Use event1 for the Start and event2 for the Completion of the First Form. Use
event3 for the Start and event4 for the Completion of the Second Form and so
tri se
forth until all 10 forms are coded (exhausting our 20 events). The result is 20
different reports.
D lU Works for this example, but it doesnt work for 20 forms. On top of that, we no
longer have any events to use for other purposes!
ot na
Example
s.events=event1 //Form Start Metric
is
N ter
Use s.eVar7 to capture form name and set with event7 or event8 for Form Start and
ob
Example
Ad
Chapter 15
y
Track data in appropriate Report Suite (jjesquireuk)
t e nl
Key Performance Indicators
bu O
Revenue in Pounds Sterling
All Metrics by Report Suite segment
tri se
Assignment
How would you set the Configuration Variables to comply with our KBRs and KPIs?
Solution D lU
Set s.currencyCode for Great Britain Pounds
Set s.cookieDomainPeriods for 3
ot na
Verify that s_account is populated with the correct Report Suite
Example
is
s.currencyCode=GBP
N ter
(All currencies are converted to the default Report Suite currency which is set dur-
ing Report Suite creation. If USD was originally set as the default, all new currency
values, including Pounds Sterling, would be converted to US Dollars. Each Report
D In
s_account=jjequireuk
ob
Assignment
How should the configuration variables be set in the JavaScript file?
y
Solution
t e nl
bu O
tri se
D lU
ot na
is
N ter
Implementation
D In
Assignment
Code the JJ Charge Card Application fulfilling the KBR and KPIs listed above.
y
t e nl
Example for Application Page Step 2 (last page on the JJ site)
<a href=exit_site.php onClick=var s=s_gi(your-rsid);
bu O
s.linkTrackVars=eVar7,events;
s.linkTrackEvents=event10;
s.eVar7=Charge Card Application;
tri se
s.events=event10;
s.tl(this,o,JJ Charge Card:Proceed to Apply);
D lU
>Proceed to Apply</a>
Note: Even though s.eVar7 persists from the App Start Page, it should be set here again
in the case that a visitor started a different application in another window while still
ot na
in the middle of this one (which would change the value set in s.eVar7 with last-touch
application).
is
Implementation
N ter
Chapter 16
e
Question 1
o
throughs?
Answer
C or D. B is also technically valid, but not recommended for internal promotions.
Question 2
What would be the Adobe-recommended way to segment employee site traffic from
visitor traffic?
Answer
D. Its a lot easier and much more realistic.
y
Question 3
t e nl
How could you ensure that the tracking code click-throughs metric is not inflated?
bu O
a. Hardcode the campaign value (tracking code) on the landing page
b. Use the getValOnce plug-in to ensure no Click-through duplication
c. There will be no recounting; Pathing de-duplicates reloads
tri se
d. Use a VISTA rule to prevent overcounting click throughs
D lU Answer
B. getValOnce keeps you from counting twice!
Question 4
ot na
How could you quickly add a Page View event to every page on your site?
a. Use the getQueryParam plug-in to pull page views from query string
b. Use the APL plug-in to append a Page View event to s.events
is
N ter
c. Use getValOnce to add but not over count Page View events
d. Use VISTA to add the Page View event each time a page is viewed
D In
Answer
B and D. B is a client-side solution (preferred because the plug-in is free). D is a
server-side solution.
e
to conversion
Assignment
Capture Internal Search Term (Internal Search Term appears in query string after the
q parameter)
Solution
Use the getQueryParam function to capture Internal Search Term on the
search results page
Designate q as the parameter in the getQueryParam function
Implementation:
Assign variable in SDR: s.eVar5
Deploy code & Validate: verify with debugger
Place getQueryParam in JS file
Specify report name in Admin Console: Internal Search Term
y
Site Exercise 16.3: Newsletter Subscriptions
t e nl
Key Business Requirements
bu O
Understand which Newsletters are most popular
Create a single report that shows Newsletter subscriptions
tri se
Key Performance Indicator
The number of times a Newsletter was selected during the subscription pro-
cess D lU
Assignment
Code the Newsletter Subscription process to capture Newsletter names (a visitor can
ot na
sign up for multiple Newsletters at the same time). Record the number of subscription
instances per Newsletter.
is
N ter
Hint: Selected newsletter subscriptions appear on subsequent page in the query string
under parameters n1 through n9.
Solution
D In
Example
s.prop11=s.getQueryParam(n1,n2,n3,n4,n5,n6,n7,n8,n9,|)
o
Ad
Implementation
Assign variable in SDR: s.prop11 (enabled as a List Prop)
Deploy code & Validate: verify with debugger
Places getQueryParam plug-ins in JS file
Specify report name: Newsletter Subscriptions
Solution
Install the getTimeParting Plug-in. Set the each eVar equal to its corresponding prop.
Example
y
/* timeparting daylight savings info is placed in the
t e nl
configuration variables area, before doPlugins. Set
your daylight savings time according to local custom.
bu O
*/
s.dstStart=3/14/2010;
tri se
s.dstEnd=11/7/2010;
s.currentYear=2010;
D lU /* Here, in doPlugins, we set the calls to the plug-in
for each prop and also populate the data into eVars
for Conversion by Hour, Day and Weekday or Weekend.
ot na
Your doPlugins function will already have calls
to other plug-ins such as the getQueryParam plug-
in. Those other values have been omitted in this
is
N ter
example.*/
s.usePlugins=true
D In
function s_doPlugins(s) {
s.prop16=s.getTimeParting(h,-7); // Set hour
s.prop17=s.getTimeParting(d,-7); // Set day
e
s.eVar16=s.prop16;
o
s.eVar17=s.prop17;
s.eVar18=s.prop18;
Ad
}
s.doPlugins=s_doPlugins
s.getTimeParting=new Function(t,z,
+var s=this,cy;dc=new Date(1/1/2000);
y
Available}else{;
t e nl
+thish=tz.getHours();thismin=tz.getMinutes();thisd=tz.
getDay();
bu O
+var dow=days[thisd];var ap=AM;var dt=Weekday;var
mint=00;
+if(thismin>30){mint=30}if(thish>=12)
tri se
{ap=PM;thish=thish-12};
+if (thish==0){thish=12};if(thisd==6||thisd==0)
{dt=Weekend};
D lU
+var timestring=thish+:+mint+ap;if(t==h){return
timestring}
+if(t==d){return dow};if(t==w){return dt}}};);
ot na
Chapter 17
is
N ter
Assignment
Capture a Campaign Tracking code from Query String Parameter cid
e
y
If you have extremely long URLs, use the getQueryParam JavaScript
plug-in
t e nl
Exercise 17.2: Capture Newsletter Subscriptions
bu O
Estimated Time: 7 minutes
Assignment
tri se
As youve done by using JavaScript AppMeasurement and plug-ins in previous exer-
cises, use Processing Rules to:
D lU 1. Capture Newsletter Subscription names in Prop 11 (already enabled as a List
Prop)
2. Capture Query String Parameters of n1, n2, n3, n4, n5, n6, n7, n8 and n9 in
ot na
Prop 11
3. Use the Pipe (|) as the delimiter between values
is
N ter
Solution
e
ob
o
Ad
Assignment
s.contextData[page]=Men:Activewear:Corduroy Blazer
s.contextData[section]=Men
s.contextData[subsection]=Activewear
y
3. Ask your instructor to check your work
t e nl
Note: Remember that Context Data is only processed and recorded if Processing Rules
have been configured previously for such data. In this example, nothing will be recorded
bu O
since no Processing Rules have been set up yet for this Context Data.
tri se
Solution
D lU
ot na
is
N ter
D In
e
ob
o
Ad
Assignment
1. In the Processing Rules Manager, create Processing Rules to:
Push the value of s.contextData[page] into s.pageName
Solution
y
t e nl
bu O
tri se
D lU
ot na
is
N ter
D In
e
ob
o
Ad
Chapter 18
Page Views, Visits, Unique Visitors and Campaign instances and Conversion
metrics
Assignment
1. Hard code the image request for the Kitchen Essentials Campaign Landing
Page using the same variables that you would use on the regular site (access
y
from Mobile Home Page the partially completed image request is at the bot-
t e nl
tom of the page code)
2. Page Name is Kitchen Essentials Sale Landing Page
bu O
3. Site Section is Home and Garden
4. Subsection is Kitchen
tri se
5. Campaign is kitchen_sale
Solution D lU
Fill in the proper Request Domain, Mobile RSID, Image Type, Random Number and
Query String. Set the Image Beacon to 5x5. Place Web beacon inside the <body> tags.
ot na
Example
<img src=http://omnituretraining4.d1.sc.omtrdc.
net/b/ss/train04scit01/5/WAP/38713482753?ce=UTF-
is
8&cc=USD&gn=Kitchen%20Essentials%20Sale%20Landing%20
N ter
Page&ch=Home%20and%20Garden&c1=Kitchen&v0=kitchen_sale
width=5 height=5 alt= border=0 />
D In
Implementation
Understand Charge Card Application Conversion on our mobile Web site (find
out if applicants submit the application on our site and continue on to the
third-party credit card site)
Assignment
Solution
Use event10 for Form Completions and s.eVar7 for Form Name
y
Use a hard-coded image request with a redirect to the final destination URL to
t e nl
code the Application Completion event into the Proceed to Apply link
(subsequent page is third-party site)
bu O
Fill in appropriate Requesting Domain, RSID and Query String values
Example
tri se
<a class=button href=http://dcrookston.
d1.sc.omtrdc.net/b/ss/outrainjjscitsite01/4/
D lU REDIR/?url=https%3A%2F%2Fptop.only.wip.la%3A443%2Fhttp%2Fwww.ou-training.com%2F
jjsite%2Finclude%2Finclude%2Fcharge_card_site.
php&pe=lnk_e&pev1=D=url&pev2=Charge%20Card%20
Application%20Completion&ev=event10&v7=Charge%20Card%20
ot na
Application&ce=UTF-8&cc=USD>Proceed to Apply</a>
Implementation
is
N ter
Accurately track Conversion and Traffic site activity on the JJ Esquire Mobile
Site using the PHP AppMeasurement Library
Page Views, Visits, Visitors, Product Views, Page Name, Product Name, Site
Section, Subsection
Assignment
Populate Page Name, Site Section, Subsection, Product Name and any pertinent
events
y
$s->pageURL = getCurrentUrl();
t e nl
$s->server = Mobile Site;
$s->channel = Women;
bu O
$s->pageType = ;
$s->prop1 = Activewear;
$s->prop2 = ;
tri se
$s->campaign = $_GET[cid];
D lU
$s->state = ;
$s->zip = ;
$s->events = prodView;
ot na
$s->products = ;100240;
$s->purchaseID = ;
$s->transactionID = $s->purchaseID;
is
N ter
$s->eVar1 = $_GET[intcmp];
$s->eVar2 = ;
D In
$s->manageVisitorID();
$s->currencyCode = USD;
$s->cookieDomainPeriods = 2;
e
$s->mobile = true;
ob
$s->botDetection = true;
o
$s->debugTracking = false;
$s->sendFromServer = false;
Implementation
Assign variables and events in the Mobile Site SDR
Deploy code & Validate
Verify that the variables and events are being recorded correctly in
SiteCatalyst reports
y
Chapter 20
t e nl
Exercise 20.1: Working with Dynamic Variables
bu O
Assignment
Effeciently code for the following scenario using Dynamic Variables. Write the answer
tri se
in your workbook.
Solution
Dynamic Variables can occur before the original or source variable has been stated in
D In
the code (unlike JavaScript) as long as its in the same image request as the original or
source variable.
e
s.pageName=Womens:Accessories:Hand Bag;
ob
s.channel=Womens;
o
s.prop1=Accessories;
Ad
s.hier1=D=gn;
s.prop2=Hand bag;
s.eVar5=D=c2;
s.campaign=Spring Accessories;
s.prop20=D=v0+:+gn;
Chapter 21
Question 1
How would you upload descriptive information for your campaign tracking codes?
a. Data Sources
Answer
B. Group data to create new reports with SAINT.
Question 2
You cant get code onto the page until the next code review, but you want to start track-
ing a custom success event. What can you do?
y
b. Have Adobe create a VISTA rule to add the event in the mean time
t e nl
c. Create a classification for the event in the Admin tool
d. Beg and plead with your IT team to allow the change
bu O
Answer
B. If you cant make a change on your side, make the change server-side. Oh yeah!
tri se
Question 3
Which tool(s) provides a graphical overlay on your Web page to show you which links
D lU
are the most popular?
a. Adobe ClickMap
b. SearchCenter+
ot na
c. Adobe Discover
d. Adobe ReportBuilder
is
N ter
Answer
A. Its ClickMap!
D In
Question 4
Which export method(s) give the client raw data?
e
a. Data Warehouse
b. SAINT
ob
c. Adobe ReportBuilder
o
d. Data Feed
Ad
Answers
A and D. Raw and uncut! (Data Feed is unprocessed pre-VISTA data.)
Question 5
Which export method(s) provides an active link that allows you to download
SiteCatalyst data into a spreadsheet and refresh the metrics at the click of a button?
Answer
C.
a. Adobe Genesis
b. VISTA
c. Data Sources
d. SAINT
e. Adobe ReportBuilder
Answers
y
A and C.
t e nl
Question 7
Which tool(s) are used for data segmentation?
bu O
a. Adobe Discover
b. Data Warehouse Request
tri se
c. Adobe SiteCatalyst
d. All of the above
D lU Answer
D. Create and analyze segments with all three!
ot na
Chapter 25
Men:Fine Apparel:Tuxedo
Change to:
s.pageName=Men:Fine Apparel:Two-Button Suit
Change to:
s.prop13=s.prop12+:+s.pageName
y
Men:Fine Apparel:French Cuff Shirt
t e nl
1. Populate the correct Report Suite ID
2. Missing s.linkTrackVars (populate with eVar8 and events)
bu O
3. Change the e value (for Exit Link) to d (for File Download)
Was:
<a href=http://www.ou-training.com/jjsite/include/
tri se
downloads/mens_shirt_size_conversion.pdf
onClick=var s=s_gi(rsid);
s.linkTrackVars=eVar,events;
D lU
s.eVar8=Shirt Size Conversion Chart;
s.events=event7;
ot na
s.tl(this,e,Shirt Size Conversion Chart);
>Download the <br />Shirt Size Conversion Chart</a>
is
N ter
Change to:
<a href=http://www.ou-training.com/jjsite/include/
D In
downloads/mens_shirt_size_conversion.pdf
onClick=var s=s_gi(yourReportSuiteName);
s.linkTrackVars=eVar8,events;
e
s.linkTrackEvents=event7;
ob
Men:Fine Apparel:Tuxedo
1. JS file location is wrong
Was:
src=another/folder/s_code.js
Change to:
src=../../s_code.js
Change to:
s.prop1=Fine Apparel
y
t e nl
bu O
tri se
D lU
ot na
is
N ter
D In
e
ob
o
Ad