Upload
others
View
17
Download
0
Embed Size (px)
Citation preview
Campaign Optimizer
Version 10.1.2
User Guide
Oracle ATG
One Main Street
Cambridge, MA 02142
USA
ATG Campaign Optimizer User Guide
Product version: 10.1.2
Release date: 12-17-12
Document identifier: CampaignOptimizerUserGuide1404301402
Copyright © 1997, 2012 Oracle and/or its affiliates. All rights reserved.
Oracle and Java are registered trademarks of Oracle and/or its affiliates. Other names may be trademarks of their respective owners.
Intel and Intel Xeon are trademarks or registered trademarks of Intel Corporation. All SPARC trademarks are used under license and are
trademarks or registered trademarks of SPARC International, Inc. AMD, Opteron, the AMD logo, and the AMD Opteron logo are trademarks or
registered trademarks of Advanced Micro Devices. UNIX is a registered trademark of The Open Group.
This software and related documentation are provided under a license agreement containing restrictions on use and disclosure and are
protected by intellectual property laws. Except as expressly permitted in your license agreement or allowed by law, you may not use, copy,
reproduce, translate, broadcast, modify, license, transmit, distribute, exhibit, perform, publish, or display any part, in any form, or by any
means. Reverse engineering, disassembly, or decompilation of this software, unless required by law for interoperability, is prohibited.
The information contained herein is subject to change without notice and is not warranted to be error-free. If you find any errors, please
report them to us in writing.
If this software or related documentation is delivered to the U.S. Government or anyone licensing it on behalf of the U.S. Government, the
following notice is applicable:
U.S. GOVERNMENT END USERS:
Oracle programs, including any operating system, integrated software, any programs installed on the hardware, and/or documentation,
delivered to U.S. Government end users are "commercial computer software" pursuant to the applicable Federal Acquisition Regulation and
agency-specific supplemental regulations. As such, use, duplication, disclosure, modification, and adaptation of the programs, including any
operating system, integrated software, any programs installed on the hardware, and/or documentation, shall be subject to license terms and
license restrictions applicable to the programs. No other rights are granted to the U.S. Government.
This software or hardware is developed for general use in a variety of information management applications. It is not developed or intended
for use in any inherently dangerous applications, including applications that may create a risk of personal injury. If you use this software or
hardware in dangerous applications, then you shall be responsible to take all appropriate fail-safe, backup, redundancy, and other measures
to ensure its safe use. Oracle Corporation and its affiliates disclaim any liability for any damages caused by use of this software or hardware in
dangerous applications.
This software or hardware and documentation may provide access to or information on content, products, and services from third parties.
Oracle Corporation and its affiliates are not responsible for and expressly disclaim all warranties of any kind with respect to third-party
content, products, and services. Oracle Corporation and its affiliates will not be responsible for any loss, costs, or damages incurred due to
your access to or use of third-party content, products, or services.
The software is based in part on the work of the Independent JPEG Group.
ATG Campaign Optimizer User Guide iii
Table of Contents
I. Installation and Administration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
1. Getting Started . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
What is ATG Campaign Optimizer? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
ATG Campaign Optimizer and ATG Commerce . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
ATG Campaign Optimizer in a Multisite Environment . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
Installing ATG Campaign Optimizer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
Post-Installation Configuration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
Configuring ATG Campaign Optimizer with CIM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
Performing Post-Installation Setup Manually . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
Starting ATG Campaign Optimizer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
Starting ATG Campaign Optimizer on your Application Server . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
ATG Campaign Optimizer Modules . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
Connecting to the ATG Business Control Center . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
Accessing the ATG Business Control Center with Microsoft Internet Explorer . . . . . . . . . . . 10
Connecting to the Dynamo Admin UI and ACC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
Setting up User Accounts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
2. Configuring ATG Campaign Optimizer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
Configuring the Test Manager . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
Working with Registries . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
Registry Configuration Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
Creating Custom Registries Using SQL Commands . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
Creating Custom Registries Using the Registry Administration UI . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
Viewing Log Data . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
Configuring Data Logging . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
Turning off Logging . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
Configuring Preview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
Changing the Countdown Time . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
Adding Preview Users . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
Running the Report Generator Service . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
Running the Profile Cleanup Service . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
Improving Application Performance . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
Substitution Caching . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
Substitution Mime Type Filtering . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
Test Subject Registries . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
Changing Logging Cache Sizes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
Using the Cache Servlet Bean with Tests . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
Implementing Template Substitution in Modified Catalogs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
Implementing Page Fragment Substitution . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30
Troubleshooting Slot Testing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30
Configuring Deployment . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30
Defining the Deployment Topology . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30
Adding Deployment Targets to Workflows . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
Managing Workflows . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
Staging and Production Workflow . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33
Production-Only Workflow . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36
Default Workflow Permissions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36
A. ATG Campaign Optimizer Scenario Elements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37
ATG Campaign Optimizer Core Elements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37
ATG Campaign Optimizer Commerce Elements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38
B. ATG Campaign Optimizer Database Tables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41
ATG Campaign Optimizer Core Tables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45
iv ATG Campaign Optimizer User Guide
CAF Tables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46
Markers Table . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48
Metrics Tables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49
Preview Table . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53
Reporting Tables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53
Tracking Table . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55
Test Definition Tables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55
ATG Campaign Optimizer for Commerce Database Tables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61
Metrics Tables (Commerce) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61
Reporting Tables (Commerce) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65
Test Definition Tables (Commerce) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66
II. Business User Guide . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71
3. ATG Campaign Optimizer Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75
ATG Campaign Optimizer Terms . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75
A/B Test . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75
Checked-in Tests . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75
Multivariate Test . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75
Test Group . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75
ATG Content Administration Terms . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76
Projects and Workflows . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76
Assets . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76
Deployment . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76
Segments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76
Versioning . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77
ATG Campaign Optimizer Use Cases . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77
Slot Testing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77
Promotions Testing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77
Location Testing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 78
Web Site Functionality Testing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 78
4. Creating a Test . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79
Creating a New Test . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79
Adding a New Test to the Project . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80
Defining Basic Information . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80
Adding Participants . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80
Configuring the Test Groups Tab . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81
Defining Test Groups . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82
Configuring Test Elements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 83
Testing Repository Content . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 83
Testing Pages . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 84
Testing Page Fragments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85
Testing Category Templates . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 86
Testing Product Templates . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 87
Testing Promotions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 88
Copying Test Elements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 89
Previewing Tests . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 89
Previewing a Test . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 89
Editing Tests . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 90
Copying Tests . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 90
Deleting Tests . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91
Completing and Deploying Tests . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91
Ending Tests . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 94
Viewing Test Results . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 94
5. Using ATG Campaign Optimizer Projects . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 99
ATG Campaign Optimizer User Guide v
Displaying the Project Tabs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 99
Tasks Tab . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 100
Assets Tab . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 101
History Tab . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 102
Lock Conflicts Tab . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 102
6. Customizing Metrics for ATG Campaign Optimizer Tests . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 105
How ATG Campaign Optimizer Creates Reports . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 106
Designing Metrics . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 106
Metrics Checklist . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 107
Updating Your Repositories and Database . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 108
Adding New Logging Content to a Repository and Database . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 108
Adding New Reporting Content to a Repository and Database . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 110
Creating Additional Resources . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 111
Defining Resource Bundles . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 111
Creating Recording Devices . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 111
Defining Your Metric . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 112
Creating a Metric Handler . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 112
Extending the Report Property Mapper . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 118
Configuring a Metric Info Component . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 119
Directing Components to Use Your Logging and Reporting Resources . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 120
Index . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 121
vi ATG Campaign Optimizer User Guide
Part I. Installation and AdministrationThis section includes overview material about Oracle ATG Web Commerce Campaign Optimizer and instructions for the
installation process, including planning considerations, installing the products, performing initial configuration, and
integration issues.
Getting Started (page 3)
This chapter includes an overview of ATG Campaign Optimizer, and instructions for installation, database
configuration, product requirements, and start up.
Configuring ATG Campaign Optimizer (page 13)
This chapter includes detailed instructions for system administrators. It describes how to configure and
customize the ATG Campaign Optimizer.
Customizing Metrics for ATG Campaign Optimizer Tests (page 105)
This chapter includes instructions for programmers. It describes how to create custom metrics for your
tests.
Appendix A, ATG Campaign Optimizer Scenario Elements (page 37)
This appendix describes the scenario elements provided by ATG Campaign Optimizer.
Appendix B, ATG Campaign Optimizer Database Tables (page 41)
This appendix provides reference information about the ATG Campaign Optimizer database schema.
1 Getting Started 3
1 Getting Started
This chapter explains how to install and configure ATG Campaign Optimizer. This chapter contains the following
sections:
What is ATG Campaign Optimizer? (page 3)
Installing ATG Campaign Optimizer (page 4)
Post-Installation Configuration (page 4)
Starting ATG Campaign Optimizer (page 7)
After you complete the basic installation steps, you need to perform some additional configuration tasks to
prepare your system for use. You can perform these configuration steps manually or you can use the ATG
Configuration and Installation Manager (CIM).
Note: <ATG10dir> is used throughout this document to represent the directory where ATG 10.1.2 is installed
(C:\ATG\ATG10.1.2 or /home/ATG/ATG10.1.2, for example).
What is ATG Campaign Optimizer?
ATG Campaign Optimizer lets you present different web site content to different customers simultaneously and
measure the resulting purchasing behavior. The tool can help increase revenue by allowing you to make better
decisions about site content and provide the most compelling customer experience.
Use ATG Campaign Optimizer to test promotions, products, pages, and page layout. Because you can compare
different site designs at the same time, the influence of fluctuating elements such as the season, traffic changes,
and current events on test results is eliminated. In addition, you can test the new content without having to
make changes to the pages that already exist on the web site.
ATG Campaign Optimizer and ATG Commerce
If your ATG product environment includes ATG Commerce, you can test Commerce events and actions with
ATG Campaign Optimizer. For example, you can test multiple promotions to see which will deliver the best
click-through to conversion, or test the best location on a Web page for pricing, promotions, products, creative,
content, and features such as search.
ATG Campaign Optimizer in a Multisite Environment
In a multisite environment, you can preview and run tests on all registered sites or only on the site you specify.
4 1 Getting Started
The term multisite refers to running multiple web sites from a single ATG instance, with the sites sharing certain
resources. For example, consider a clothing manufacturer that has two brands, a bargain brand and a luxury
brand, and wants to run separate sites for the two brands.
For more information, see ATG Multisite Administration Guide.
Installing ATG Campaign Optimizer
The following software must be installed on your system before you install ATG Campaign Optimizer:
• One of the following application servers: JBoss Application Server, Oracle WebLogic Server, or IBM WebSphere
Application Server. For installation and configuration instructions, see the ATG Installation and Configuration
Guide.
• The appropriate ATG products, as described in the ATG Multiple Application Integration Guide: including an
asset management server or cluster and a customer-facing server or cluster.
• If you are using ATG Campaign Optimizer with ATG Commerce, you will also need to install the Consumer
Commerce Package or ATG Business Commerce Package.
For more information on (supported thing), refer to the Oracle ATG Commerce Supported Environments Matrix
document in the My Oracle Support knowledge base.
Follow these steps to install ATG Campaign Optimizer.
1. Run the ATG-CampaignOptimizerCommerce10.1.2.{bin|exe} file to start the setup program.
2. When the setup program prompts you to choose an installation folder, enter the path to the directory where
you installed ATG 10.1.2 (C:\ATG\ATG10.1.2 or /home/ATG/ATG10.1.2, for example). The setup program
then guides you through the process for installing ATG Campaign Optimizer or ATG Campaign Optimizer for
Commerce. When you install ATG Campaign Optimizer for Commerce, you need to install both ATG Campaign
Optimizer and ATG Campaign Optimizer for Commerce.
The setup program also installs the required Common Application Framework (CAF) in the ATG10dir/
CAF<version> directory. CAF is a shared framework used by several ATG applications. If you choose to uninstall
ATG Campaign Optimizer, CAF is not uninstalled.
Post-Installation Configuration
After you perform the installation tasks described previously in this chapter, you must complete some additional
setup steps before you can start the ATG Campaign Optimizer server, including creating the database schemas
for the ATG Campaign Optimizer server, importing initial data into the ATG Campaign Optimizer server schema,
and assembling and deploying the EAR files.
ATG recommends that you use the ATG Configuration and Installation Manager (CIM) to perform these steps,
though you can also perform them manually.
1 Getting Started 5
Configuring ATG Campaign Optimizer with CIM
The ATG Configuration and Installation Manager (CIM) is a wizard-based tool that helps to simplify ATG product
configuration by walking you through the required steps. This ensures that all necessary steps are completed
and are done in the correct order. You can use CIM to get a working installation running quickly and easily, but
keep in mind that you will most likely end up doing further configuration on your installation as your project
evolves.
Note: Do not use CIM to install ATG Campaign Optimizer if you are adding a new ATG Campaign Optimizer
installation to an existing ATG product. The CIM configuration process will overwrite your existing ATG product
configurations. Use CIM if you are installing all ATG products for the first time.
CIM handles the following configuration steps:
• Creates data sources according to the database connection information you supply.
• Creates database schemas and imports initial data.
• Creates and configures ATG servers, including a lock manager server.
• Assembles and deploys the application EAR files for each server.
See the ATG Installation and Configuration Guide for additional information on CIM.
To configure ATG Campaign Optimizer using CIM:
1. Install the Oracle ATG Web Commerce platform, ATG Campaign Optimizer, and all required licenses as
described at the beginning of this chapter. Also install Oracle ATG Web Commerce if your environment uses it.
2. Start CIM. To do so, switch to <ATG10dir>\home\bin at a command line prompt and type:
cim.bat|sh
3. Follow the prompts. Type h at any prompt for more information. See also the tips in the next section, CIM
Selections for ATG Campaign Optimizer.
CIM Selections for ATG Campaign Optimizer
At the CIM Main Menu, type p and press Enter to go to the Production Selection screen. Then make one of the
following choices:
• To install ATG Campaign Optimizer without ATG Commerce add-on features, select ATG Campaign Optimizer
(ABTest).
• To install ATG Campaign Optimizer so that ATG Commerce add-on features are enabled, select ATG Campaign
Optimizer with Commerce (DCS-ABTest).
At the next screen, Choose Add-Ons, select the ATG Campaign Optimizer options that are applicable to the
environment you are setting up. Some of the add-ons shown for ATG Campaign Optimizer (for example,
Dedicated Lock Servers) are part of the platform configuration. There are two add-on choices specific to ATG
Campaign Optimizer:
• To install the Preview feature on a separate server or on the management server.
• To install ATG Campaign Optimizer reporting on a separate server or on the management server.
Note that you need to complete all the steps in the Main Menu (including Select Application Server and
Database Configuration) except Custom CIM Plugin Launcher.
6 1 Getting Started
For detailed information on CIM prompts, refer to the CIM online help.
Performing Post-Installation Setup Manually
This section describes how to perform ATG Campaign Optimizer setup tasks if you used CIM to set up ATG
Campaign Optimizer, the database schemas have already been created and the data sources configured, so you
do not need to follow the procedures in this section.
Creating the Database Schema for the ATG Campaign Optimizer Server
Follow these steps to create the database tables required by the ATG Campaign Optimizer server.
1. If you haven’t done so already, create the database tables for the ATG Adaptive Scenario Engine. For
instructions, see the Configuring Databases and Database Access chapter in the ATG Installation and
Configuration Guide.
2. Run the following SQL scripts in your production database:
<ATG10dir>/CampaignOptimizer10.1.2/ABTest/sql/database/
abtest_tracking_ddl.sql
abtest_markers_ddl.sql
abtest_metrics_ddl.sql
abtest_reporting_ddl.sql
If you installed ATG Campaign Optimizer with Commerce Extensions, run the following SQL scripts in your
production database:
<ATG10dir>/DCSCampaignOptimizer10.1.2/ABTest/sql/database/
abtest_dcs_reporting_ddl.sql
abtest_dcs_metrics_ddl.sql
3. Run the following SQL Scripts in your publishing database:
<ATG10dir>/CampaignOptimizer10.1.2/ABTest/sql/database/
versioned_abtest_ddl.sql
abtest_preview_ddl.sql
abtest_markers_ddl.sql
abtest_metrics_ddl.sql
If you installed ATG Campaign Optimizer for Commerce, run the following SQL script in your publishing
database:
<ATG10dir>/DCSCampaignOptimizer10.1.2/ABTest/sql/database/
versioned_dcs_abtest_ddl.sql
Configuring the ATG Campaign Optimizer Server Data Source
The ATG Campaign Optimizer server relies on the database instance configured for the underlying ATG
Content Administration system. (This database stores the versioned test assets checked in to the ATG Content
Administration system. It also stores the profiles of ATG Content Administration and ATG Campaign Optimizer
users.) Initially, the ATG Content Administration system uses the default ATG data source. If you haven’t already
done so, you need to reconfigure this data source so it points to a production-quality database.
1 Getting Started 7
Configuring the External Profile Repository Data Source
If you have not done so already, configure the data source used by the external profile repository on the asset
management (ATG Content Administration) server so that it points to the database on the production server.
• Configure the /atg/dynamo/service/jdbc/JTDataSource_production component on the asset
management server to point to the production database.
• Configure the /atg/dynamo/service/jdbc/JTDataSource component on the asset management server
to point to the versioned database.
• Configure the /atg/dynamo/service/jdbc/JTDataSource component on the production server to point
to the production database
For detailed information, see Configuring Profile Repository Data Sources in the ATG Business Control Center
Administration and Development Guide for detailed information.
Importing the Initial ATG Campaign Optimizer Data
To import the initial ATG Campaign Optimizer data into your database:
1. Make sure your DYNAMO_HOME and JAVA_HOME environment variables are set. DYNAMO_HOME should point
to <ATG10dir>\home and JAVA_HOME should point to the JDK root directory (C:\Program Files\Java
\jdk1.6.0_18, for example).
2. If you haven’t done so already, import the initial ATG Content Administration data. See the ATG Content
Administration Programming Guide for instructions.
3. Run the following ATG Campaign Optimizer script:
<ATG10dir>/CampaignOptimizer10.1.2/ABTest/management/install/importABTestManagement.{bat|sh}
Starting ATG Campaign Optimizer
After you have installed ATG Campaign Optimizer and completed the basic configuration tasks outlined in the
previous sections, you can start up and connect to the ATG Campaign Optimizer server via the ATG Business
Control Center.
Starting ATG Campaign Optimizer on your Application Server
To start ATG Campaign Optimizer on IBM WebSphere, Oracle WebLogic, or JBoss Application Server, use
the <ATG10dir>/home/bin/runAssembler script to create an EAR file for each ATG Campaign Optimizer
module. You can then deploy the resulting EAR files to your application server and start them according
to the instructions in your application server documentation. You can find detailed information about the
runAssembler script in the ATG Platform Programming Guide.
Note: If you used CIM to set up ATG Campaign Optimizer, the EAR files have already been assembled and
deployed, so you do not need to follow the procedures in this section. The ATG Campaign Optimizer modules
8 1 Getting Started
start up automatically when you start the application server. Refer to your application server documentation for
more information.
Note that your SQL database and the DistributorServer must be running before you start your ATG
applications. To start the DistributorServer on your HTTP server machine(s), run the startNucleus -m
Distributor command under <ATGWebServerExtensions_dir>\home\bin.
To assemble a J2EE application that includes ATG Campaign Optimizer, you execute a command in this format:
runAssembler [options] output-file-name–m module-list
Be sure to specify all ATG Campaign Optimizer modules or submodules that you want to work with, plus the
application module that includes the Web application you are testing, plus any other ATG modules required. For
example, you could use the following command to assemble an application in development mode that includes
ATG Campaign Optimizer without ATG Commerce extensions:
runAssembler –standalone COServer.ear -m ABTest.runtime ABTest.management.Versioned ABTest.reporting DafEar.Admin <additional modules>
If your installation includes ATG Commerce, include additional modules that allow business users to include ATG
Commerce elements in tests. For example:
runAssembler –standalone COServer.ear -m DCS-ABTest.runtime DCS-ABTest.management.Versioned DafEar.Admin <additional modules>
You can include the following optional –layer commands when you start the ATG Campaign Optimizer server:
Option Notes
-layer staging Include this option if you want to deploy ATG Campaign Optimizer tests to a staging
server as well as a production server. Among other changes, this option enables the
appropriate staging and production workflow. See Managing Workflows (page 32)
for more information.
-layer preview Include this option if you installed the preview feature. See Previewing Tests (page
89) for more information.
For example:
runAssembler –standalone COServer.ear –layer preview –layer staging-m ABTest.runtime ABTest.management.Versioned ABTest.reporting DafEar.Admin <additional modules>
If you are running the ATG Campaign Optimizer Reporting module on a separate server, omit
ABTest.reporting from the EAR file for the Production/Staging module and create a separate EAR file for the
reporting module:
1 Getting Started 9
runAssembler –standalone COReporting.ear–m ABTest.reporting DafEar.Admin
Notes:
• The –standalone flag is required in all cases.
• The DafEar.Admin module shown in the list starts the ATG Dynamo Server Admin. This module is optional.
The DafEar.Admin module must precede any custom modules that are included in the module list.
For detailed instructions on assembling ATG applications, see the ATG Platform Programming Guide.
ATG Campaign Optimizer Modules
The following table describes the ATG Campaign Optimizer modules.
Module Description
ABTest Starts the management, runtime, and reporting
submodules of ATG Campaign Optimizer. It also starts the
CAF and DSS modules.
This module makes all ATG Campaign Optimizer features
available in a single ATG instance. This module can be used
during development or demonstration. It is not intended
for production use.
DCS-ABTest Starts the ABTest and DCS modules as well as submodules
that represent commerce versions of management,
runtime and reporting.
This module makes all ATG Campaign Optimizer and ATG
Campaign Optimizer for Commerce features available in
a single ATG instance. This module can be used during
development or demonstration. It is not intended for
production use.
ABTest.management.Versioned Starts ATG Campaign Optimizer for business user support
(test definition and report viewing).
DCS-ABTest.management.Versioned Starts the DCS and ABTest.management modules as well
as a commerce version of the management module that
allows business users to create tests and view reports that
have commerce elements.
ABTest.reporting Starts ATG Campaign Optimizer with the functionality and
configuration necessary to compute reports.
DCS-ABTest.reporting Starts the DCS and ABTest.reporting modules as well
as a commerce version of the reporting module that
computes commerce metrics for reports.
10 1 Getting Started
Module Description
ABTest.runtime Starts ATG Campaign Optimizer with the functionality and
configuration necessary to execute tests.
This module also starts the ABTest.ExternalUsers
module, which contains the profile marker properties that
ATG Campaign Optimizer adds to the standard external
user profile repository. For more information on this
module, refer to the ATG Multiple Application Integration
Guide.
DCS-ABTest.runtime Starts the DCS and ABTest.runtime modules as well
as a commerce version of the runtime module used to
execute commerce test elements.
Connecting to the ATG Business Control Center
Once the ATG Campaign Optimizer server is running, you can log into the ATG Business Control Center as
described in the section Accessing the ATG Campaign Optimizer User Interface (page 71).
For information about creating internal user profiles for business users who will work with ATG Campaign
Optimizer, see the section Setting up User Accounts (page 11).
Accessing the ATG Business Control Center with Microsoft Internet Explorer
Internet Explorer may format form posts incorrectly, resulting in a “This page cannot be displayed” error. You can
work around this problem by making a change to your Windows registry. For detailed instructions, point your
browser to the following URL:
http://<hostname>:<port>/dyn/dyn/iefix/
where <port> is as follows:
• WebSphere: 9080
• WebLogic: 7001
• JBoss: 8080
In addition, new projects may not appear in the To Do list on the Home page after you create them. The problem
is caused by Internet Explorer’s automatic page caching behavior. To resolve it, in Internet Explorer, select Tools
> Internet Options > General > Settings. Change the Check for Newer Versions of Stored Pages option from
Automatically to Every Visit to the Page.
1 Getting Started 11
Connecting to the Dynamo Admin UI and ACC
The ATG Control Center (ACC) gives you an easy way to configure ATG Campaign Optimizer components and
manage workflows. The Dynamo Administration UI also provides quick access to a number of helpful developer
and admin tools. For instructions on connecting to the Admin UI and the ACC, see the ATG Installation and
Configuration Guide.
Setting up User Accounts
In order to control access to test creation and management in the ATG Business Control Center, you need
to create an ATG profile for each internal ATG Campaign Optimizer user and make the appropriate role
assignments. ATG Campaign Optimizer comes with one built-in role, abtestUser. For more information about
setting up internal user profiles, see the section “Managing User Profiles” in the ATG Business Control Center
Administration and Development Guide.
12 1 Getting Started
2 Configuring ATG Campaign Optimizer 13
2 Configuring ATG Campaign
Optimizer
This chapter contains technical information on configuring ATG Campaign Optimizer. This chapter is written for
a system administrator or any other person configuring ATG Campaign Optimizer.
It includes the following sections:
Configuring the Test Manager (page 13)
Working with Registries (page 14)
Viewing Log Data (page 19)
Configuring Data Logging (page 20)
Running the Report Generator Service (page 22)
Running the Profile Cleanup Service (page 23)
Improving Application Performance (page 23)
Configuring Preview (page 21)
Implementing Template Substitution in Modified Catalogs (page 26)
Implementing Page Fragment Substitution (page 30)
Troubleshooting Slot Testing (page 30)
Managing Workflows (page 32)
Configuring the Test Manager
The TestManager component is used to configure ATG Campaign Optimizer options that are used for testing
the management module. It is located in the atg/abtest/management directory. Refer to the following table
for information on the important properties in the TestManager component.
Property Description
scenarioRoot The root directory that stores all generated scenarios.
14 2 Configuring ATG Campaign Optimizer
Property Description
previewScenarioRoot The root directory that stores the generated preview scenarios.
defaultPreviewURL If configured, this URL appears as a Default System Preview URL in the ATG
Campaign Optimizer UI. The Default System Preview URL is used to start all
previews if another preview URL is not entered and the Test Specific URL is
not set.
Working with Registries
Registries provide a mechanism for allowing an administrator to customize a user’s view of certain system assets.
This customization can be performed for a number of reasons, including:
• to provide a simpler user interface for business users
• to prevent business users from accessing irrelevant or restricted areas of the system
The ATG Campaign Optimizer UI uses registries when allowing users to select items of the following types:
• profile groups (for specifying test participants)
• Web pages and page fragments
• repository slots
ATG Campaign Optimizer for Commerce customers can also use registries for the following item types:
• product templates
• category templates
• promotions
In each of these cases, business users select items using a tree browser control, which allows them to browse the
contents of a registry.
Each tree browser in the ATG Campaign Optimizer UI is configured to use a default registry that provides a view
of all the assets of a particular type. For example, the tree browser for Web pages lets users see all of the pages
for all of the Web applications that are running on the server. It is not recommended that business users receive
access to all the pages of a Web application.
This section contains the following information related to ATG Campaign Optimizer registries:
Registry Configuration Overview (page 14)
Creating Custom Registries Using SQL Commands (page 17)
Creating Custom Registries Using the Registry Administration UI (page 17)
Registry Configuration Overview
You can create your own custom registries and configure any of the individual tree browsers in the ATG
Campaign Optimizer UI to use a custom registry instead of the default registries. The /atg/abtest/web/
2 Configuring ATG Campaign Optimizer 15
registry/AssetRegistryManager Nucleus component allows you to configure registries for ATG Campaign
Optimizer. This component has a registries Map property, which contains one entry for each individual
tree browser. It also has an assetRepository property, which is the Nucleus path of a repository (/atg/
assetregistry/AssetRegistry by default) that contains the custom registry definitions.
You create custom registries by adding items to the AssetRegistry repository. There are two ways to do this:
• Execute SQL commands to populate the database tables that are associated with the repository.
• Use the Registry Administration UI to manually create custom registries and add assets to them.
For creating a large custom registry, using SQL commands is generally preferable because it allows you to
populate the database tables more quickly. For modifying an existing registry, or for creating a small custom
registry, the Registry Administration UI provides an easy-to-use, structured environment that simplifies the task.
After you create your custom registries, you can then modify entries in the registries Map property of the
AssetRegistryManager to point to them.
AssetRegistry Repository Structure
Each custom registry is defined using a repository item of type registry. Folders within a registry are defined
using items of type folder. Assets are defined using items of type repositoryAsset or pathBasedAsset,
depending on whether the assets refer to repository items such as promotions, or path-based entities such as
Web pages or slots.
A registry should have a single root folder. Each folder can contain any number of assets and subfolders. All of
the assets in a registry should be defined using the same item type.
To see the mapping between items in the AssetRegistry repository and tables in the database, refer to the
GSA template definition for the repository using the ATG Dynamo Administration interface.
AssetRegistryManager Configuration
The following two tables show the mapping between each entry in the registries property of the
AssetRegistryManager component and the tree browser the entry controls in the ATG Campaign Optimizer
UI. All ATG Campaign Optimizer sites use the entries shown in the first table.
Registry Entry Key ATG Campaign Optimizer Page using Tree Browser
profileGroups The Participants tab on the main page for editing a test.
slots The Select Slot step of the wizard for creating Repository Item test elements.
oldPages The Replace Page step of the wizard for creating Page test elements.
newPages The Select New Page step of the wizard for creating Page test elements.
oldFragments The Replace Page Fragment step of the wizard for creating Page Fragment
test elements.
newFragments The Select New Page Fragment step of the wizard for creating Page Fragment
test elements.
oldFragmentLocations The Select Substitution Location step of the wizard for creating Page
Fragment test elements.
16 2 Configuring ATG Campaign Optimizer
In addition to the entries in the table above, ATG Campaign Optimizer for Commerce sites also use the entries
shown in the table below.
Registry Entry Key ATG Campaign Optimizer Page using Tree Browser
oldCategoryTemplates The Replace Template step of the wizard for creating Category Template
test elements.
newCategoryTemplates The Select New Category Template step of the wizard for creating Category
Template test elements.
oldProductTemplates The Replace Template step of the wizard for creating Product Template test
elements.
newProductTemplates The Select New Product Template step of the wizard for creating Product
Template test elements.
catalogs The Select Catalog step of the wizards for creating Category and Product
Template test elements.
promotions The Select Promotion step of the wizard for creating Promotion test
elements.
promotionTriggerPages The Select Promotion Trigger step of the wizard for creating Promotion test
elements.
Specifying a Custom Registry
To use a custom registry for any of the tree browsers listed above, change the value of the entry for that browser
in the registries Map property of the /atg/abtest/web/registry/AssetRegistryManager component.
Set the entry to a string of the form repository:<registry name>. The <registry name> corresponds to
the name property of the repository item that represents the custom registry.
For example, if you have created a registry repository item whose name property is My Promotions, and you
want to display its folders and assets on the Select Promotion wizard page, change the promotions entry in the
registries property in the AssetRegistryManager component from:
promotions=productcatalog:promotion
to:
promotions=repository:My Promotions
The following table lists the custom registry types you can create, and the registry entries you can set to each
type of registry.
2 Configuring ATG Campaign Optimizer 17
Custom Registry Type Registry Entry Keys Example Value
profileGroups profileGroups repository:My Profile Groups
slots slots repository:My Slots
pages newPages
oldPages
newFragments
oldFragments
oldFragmentLocations
repository:My Pages
In addition, ATG Campaign Optimizer for Commerce customers can use the custom registry types and registry
entries listed in the following table.
Custom Registry Type Registry Entry Keys Example Value
categoryTemplates newCategoryTemplates
oldCategoryTemplates
repository:My Category Templates
productTemplates newProductTemplates
oldProductTemplates
repository:My Product Templates
Catalogs catalogs repository:My Catalogs
Promotions promotions repository:My Promotions
Pages promotionTriggerPages repository:My Promotion Triggers
Creating Custom Registries Using SQL Commands
You can create custom registries by populating your database using SQL commands. The SQL commands
that create the AssetRepository database tables are located in the file assetregistry_ddl.sql, in the
<ATG10dir>/CAF10.1.2/CAF/sql/db_components/<db_type> directory, where <db_type> is the type of
database you are using.
Creating Custom Registries Using the Registry Administration UI
You can use the Registry Administration UI in the ATG Business Control Center to create, view, and add assets to
the various types of custom registries that can be stored in the AssetRegistry repository.
To access the Registry Administration UI, you must be logged in to the ATG Business Control Center. See the
section Accessing the ATG Campaign Optimizer User Interface (page 71) for more information. The Registry
Administration UI displays a list of the custom registries in the AssetRegistry repository, including their asset
types and asset sources.
18 2 Configuring ATG Campaign Optimizer
To edit a registry, click its name. Or place your cursor over the name, and then click the arrow that then appears
to the right of the name. This brings up a menu with options for editing, renaming, or deleting the registry.
To create a new custom registry:
1. Access the Registry Administration UI. See the section Accessing the ATG Campaign Optimizer User
Interface (page 71) for more information.
2. Click the New Registry button. This brings you to the Create New Registry page.
3. Enter a name for the new registry.
4. From the drop-down menu, select the type of asset the registry will hold.
5. Click OK to create the registry. This opens the registry editor, where you can add assets to the registry.
To create a new folder within a registry:
1. In the left panel of the editor, select the folder that you want the new folder to be a subfolder of.
2. Click the New Folder button.
3. Enter a name for the new folder.
4. Click OK to create the folder.
To open a folder, click its name in the right panel of the editor. Or place your cursor over the name, and then click
the arrow that then appears to the right of the name. This brings up a menu with options for opening, renaming,
or deleting the folder.
If the registry already contains assets (that is., if you’re editing an existing registry rather than a new one) you
can modify an asset by clicking its name in the right panel of the editor. Or place your cursor over the name, and
then click the arrow that then appears to the right of the name. This brings up a menu with options for editing
or deleting the asset.
Adding Assets to a Custom Registry
To add an asset to a registry, select the folder that you want to create the asset in, and click the New Asset
button. This brings up a page that is tailored to the specific type of asset. For all asset types, the page has fields
for asset name and description. The name is required, and can be any value you like. The description is optional.
The other fields in the page differ depending on the type of asset. However, in all cases, the bottom field is a
selection box that you can use to select an item to add to the registry. The contents of the selection box depend
on which ATG modules are currently running and the type of item being selected. For example, for page assets,
the selection box is a tree browser, with a separate node for each Web application currently running, plus a node
for the JHTML document root. For promotions, the selection box shows an alphabetically ordered list of available
promotions.
When you select an item in the selection box, the field above the selection box is filled in with either the
repository ID (for repositoryAsset items) or path (for pathBasedAsset items). This field is editable, and is the
actual field used to specify the item when you click OK. This means that if you know the repository ID or path of
2 Configuring ATG Campaign Optimizer 19
the item, you can fill it in directly without using the selection box. (Note that the selection box does not update
automatically to reflect the value you enter.) You can also fill in the repository ID or path for an item that cannot
currently be selected in the selection box (e.g., because the associated ATG module is not currently running).
Keep in mind, however, that if you make any erroneous entries this way, the registry may not work properly; the
Registry Administration UI does not prevent you from entering invalid values.
Viewing Log Data
The log data is the raw data from the ATG Campaign Optimizer test results. Log data includes one record for
each session, page visit, item added to order, etc. Logging is designed to be as efficient as possible on the
runtime servers. Reports requiring computation are produced on a separate ATG instance to prevent an impact
on site performance.
Test results that are viewed in ATG Campaign Optimizer are generated by ReportGeneratorService, which
processes log data and computes the totals for each test group. Log data is generated as test participants use
the web sites being tested.
There is no reason to look at log data, except for debugging purposes. If necessary, you can view raw log data
through the ACC.
1. Build an ATG Campaign Optimizer that includes the reporting module. For more information, see Starting ATG
Campaign Optimizer (page 7).
2. Start the ATG Control Center.
3. Click Content > ABTestLogging in the navigation menu.
4. Search for the following types of log data:
Log Data Type Description
Test Start Log Data The records logged when ATG Campaign Optimizer tests start.
Test Ended Log Data The records logged when ATG Campaign Optimizer tests end.
User Log Data The records logged when users become members of ATG Campaign
Optimizer test groups.
Session Log Data The records logged for all sessions for ATG Campaign Optimizer test
participants.
Content Viewed Log Data The records logged whenever an ATG Campaign Optimizer test makes a
substitution such as an alternate page or product template.
Page Visit Log Data The records logged for all page visits by ATG Campaign Optimizer test
participants.
Items Added To Order The records logged for all items added to carts by ATG Campaign
Optimizer test participants. This data type is visible only to users who are
running ATG Campaign Optimizer for Commerce.
20 2 Configuring ATG Campaign Optimizer
Log Data Type Description
Submitted Orders The records logged for all orders submitted by ATG Campaign Optimizer
test participants. This data type is visible only to users who are running
ATG Campaign Optimizer for Commerce.
Configuring Data Logging
When you create tests, the logging options are configured automatically for your test’s events in an instance of
the MetricHandler component located in /atg/abtest/metrics:
Component Name Description
ContentViewedMetricHander Manages the Content Viewed log data.
PageVisitMetricHandler Manages the Page Visit log data.
ParticipantAssignedToTestGroupMetricHandler Manages the User log data.
SessionMetricHandler Manages the Session log data.
TestStartedMetricHandler Manages the Test Started log data.
ItemAddedToOrderMetricHandler Manages the Item Added to Order log
data. This component is visible only to
ATG Campaign Optimizer for Commerce
customers.
OrderAbandonedMetricHandler Manages the Order Abandoned log data.
This component is visible only to ATG
Campaign Optimizer for Commerce users.
OrderSubmittedMetricHandler Manages the Submitted Order log data. This
component is visible only to ATG Campaign
Optimizer for Commerce users.
TransientAbandonedMetricHandler Manages the Transient Abandoned log
data. This component is visible only to ATG
Campaign Optimizer for Commerce users.
If you define custom metrics, you may have additional Metric Handler components. See Customizing Metrics for
ATG Campaign Optimizer Tests (page 105) chapter for more information.
2 Configuring ATG Campaign Optimizer 21
Turning off Logging
You can turn off the logging for a specific data log type. Edit the metric handler component that corresponds
with the data logging you want to turn off and change the renderLoggingAction property to false. For
example, if you want to stop logging PageVisits, edit the PageVisitMetricHandler component and set
renderLoggingAction to false.
Changing this property will prevent logging on new tests. All currently running tests will continue logging
PageVisits.
PageVisits and ContentViewed are the most likely data types to disable. PageVisits generates the most
log data and may not be useful for many tests.
Note: If you’ve already created the test, you can disable a logging action by setting renderLoggingEnabled
to false for the metric handler component. Then, access the test in ATG Campaign Optimizer. Edit and save the
test. This creates a new scenario that does not have the logging action. Tests that have already been deployed
need to be deployed again once all of these steps are complete.
Configuring Preview
The preview feature allows test creators to see the site as it will look to a sample user from a specific test group
during a test. For information about using the preview feature, see the Previewing Tests (page 89) section of
this guide.
ATG Campaign Optimizer uses the ATG Content Administration preview feature. This section describes how to
configure aspects of the preview feature that are specific to ATG Campaign Optimizer. For more information
about configuring ATG Content Administration preview, see the section Setting up Preview in the ATG Business
Control Center Administration and Development Guide.
Changing the Countdown Time
When a preview is started, there is a delay before the preview is ready to be viewed. When a user clicks Start
Preview, a page displays that counts down the time before it will redirect to the preview URL. If you viewed the
preview URL page immediately, you would see non-test data (the regular site). The countdown page provides a
transition while test data is being loaded.
By default, the preview countdown page displays for 60 seconds. You can change this time by editing the
Configuration component in the /atg/abtest/web/ directory. Change the numberPreviewTimerSeconds
property to the number of seconds you want the page to count down.
Adding Preview Users
The source for the profiles used by the preview feature is the preview profile repository, which is an instance of
a ProfileAdapterRepository on the ATG Campaign Optimizer server. You can add profiles to this repository
through the Personalization > Preview Users option in the ATG Business Control Center or by copying them from
the external user profile repository. The profiles then appear in the Preview Users list when the test creator clicks
the Preview button.
22 2 Configuring ATG Campaign Optimizer
For more information on configuring and populating the preview profile repository, see the ATG Business Control
Center Administration and Development Guide.
Running the Report Generator Service
The Report Generator Service processes the log data created while a test is running and computes the totals
for each test group. The reports are displayed in the Results tab of a project that contains a completed test. For
more information on viewing the reports, see the Viewing Test Results (page 94) section of this guide.
Note: While any number of ATG instances can run this service, it is recommended that a single ATG instance
generate the reports.
Every time the service is run, log data written since the previous run is incorporated into the reports for all
running tests. There are two ways to run the Report Generator Service:
• Run the service on a schedule by editing the /atg/abtest/reporting/ReportGeneratorService
component in the ACC and set the schedule property to the schedule you want to run on. By default, the
schedule is set to run once an hour.
• Run the service manually by invoking the generateReports() method of the /atg/abtest/reporting/
ReportGeneratorService component.
To disable the scheduled execution of the Report Generator Service, edit the /atg/abtest/reporting/
ReportGeneratorService component in the ACC and set the enabled property to false. The property is set
to true by default.
Important: By default, when the Report Generator Service is run, it processes all outstanding log records in a
single transaction. For optimal performance, you can configure it to process the records in batches. To do so, set
the logQueryInterval property of the /atg/abtest/reporting/ReportGeneratorService component
to a positive integer. The value represents a number of minutes. When the service is run (at startup, on schedule,
or manually), it processes log records for the specified number of minutes, creating a single batch, and then
repeats the activity, creating more batches until all outstanding records have been processed.
2 Configuring ATG Campaign Optimizer 23
Running the Profile Cleanup Service
When a customer is a test participant, ATG Campaign Optimizer inserts a marker in his or her profile to indicate
participation. These markers allow ATG Campaign Optimizer to present a consistent version of the web sites
to each participant for the duration of a test. The Profile Cleanup Service removes these markers from user
profiles. It removes markers only for completed tests, not those for currently running tests. This cleanup should
be performed regularly to minimize the impact of ATG Campaign Optimizer to site performance.
Note: The Profile Cleanup Service runs on one or more instances of ATG Campaign Optimizer runtime servers.
Only one instance of the service runs at a time.
There are two ways to run the Profile Cleanup Service:
• Run the service on a schedule by editing the /atg/abtest/tracking/ProfileCleanupService
component in the ACC and changing the schedule property. By default, the Profile Cleanup Service is
scheduled to run once a day.
• Run the service manually by invoking the deleteTestMarkers() method of the /atg/abtest/tracking/
ProfileCleanupService component.
Improving Application Performance
ATG Campaign Optimizer is designed to produce the most efficient scenarios possible to support heavy traffic.
To minimize the performance impact of running tests, certain features exist in ATG Campaign Optimizer to limit
the number of events generated in a system, thereby improving the overall performance of the system. Testing
shows that the drop of performance for a system running ATG Campaign Optimizer is between10-20% for up to
10 concurrent running tests with 2 groups each and four elements each. The expectation is that most sites will
likely have no more than 4-6 concurrent tests.
One way to improve application performance is to reduce the number of events that are fired. ATG Campaign
Optimizer provides three mechanisms for doing so:
• MIME type filtering prevents events from being fired for non-page requests, such as requests for images. See
Substitution Mime Type Filtering (page 24).
• Each request for a template, page, page fragment, or slot fires an event in an attempt to determine whether
there’s a substitute for the requested item and, if so, to locate that substitute item. This operation produces an
item (either the original or the substitute), which is cached for use by subsequent requests. See Substitution
Caching (page 23).
• A test subject registry keeps track of the items affected by active tests and prevents events from being fired
when users request items that aren’t used in tests. See Test Subject Registries (page 25).
By default, ATG Campaign Optimizer is configured to use these three performance-enhancing mechanisms. It’s
unlikely that you should need to modify or disable any of them. ATG Campaign Optimizer also provides a cache
for log entries that improves the performance of the reporting module. You may need to adjust the size of the
cache; see Changing Logging Cache Sizes (page 25) for details.
Substitution Caching
ATG Campaign Optimizer uses substitution caching for all page, page fragment, and slot substitutions. ATG
Campaign Optimizer for Commerce also uses substitution caching for product and category templates. The
24 2 Configuring ATG Campaign Optimizer
cache is configured on a per-session basis and will get re-initialized as users get added to tests or log in. The
cache is configured in /atg/abtest/substituter/SubstitutionCache.
$class=atg.service.cache.Cache$scope=sessioncacheAdapter=/atg/abtest/substituter/SubstitutionCacheAdapter
The ABTestSubstituterUtils class manages the caches used during substitution. It is possible to configure
different caches for each kind of substitution. By default only one cache is used for all substitutions. Each cache
is given a name in the utils class /atg/abtest/substituter/ABTestSubstituterUtils.
caches=\ default=/atg/abtest/substituter/SubstitutionCache
Each substituter uses the default name:
/atg/abtest/substituter/PageSubstituter.substituterCacheKey=default/atg/abtest/substituter/SlotSubstituter.substituterCacheKey=default/atg/abtest/substituter/commerce/TemplateSubstituter. substituterCacheKey=default
The cache itself is a standard ATG cache. For more information, see the SQL Repository Caching chapter of the
ATG Repository Guide.
You can configure slot substitution caching separately from page substitution caching by following these steps:
1. Create a new instance of atg.service.cache.Cache.
2. Assign the new instance the same cache adapter: /atg/abtest/substituter/
SubstitutionCacheAdapter
3. Add the new instance to the caches property of /atg/abtest/substituter/ABTestSubstituterUtils.
4. Change the setting of the substituterCacheKey property in /atg/abtest/substituter/
SlotSubstituter.
As is the case with page and page fragments, the cache is automatically flushed on login or whenever a new
marker is added to a profile by the AddABTestMarkerToProfile scenario action.
Substitution Mime Type Filtering
For performance reasons, ATG Campaign Optimizer checks for page substitutions only on certain requests.
The pages checked for requests are controlled by the substituterMimeTypes property in /atg/abtest/
substituter/PageSubstituter. The default setting is:
substituterMimeTypes=dynamo-internal/html,text/html
If you have other mime types that you want to alter with ATG Campaign Optimizer tests, modify this setting to
include the additional mime types.
2 Configuring ATG Campaign Optimizer 25
Test Subject Registries
A test subject registry is a component that maintains a list of specific pages, page fragments, or templates
(items) used in active tests. When a user requests a page, page fragment, or template, a test subject registry then
checks the requested item against the registry list and fires an event only if the item is used in an active test.
ATG Campaign Optimizer includes the PageTestSubjectRegistry component located in the atg/abtest/
substituter/registry directory to keep track of pages and page fragments used in running tests. Customers
who use ATG Campaign Optimizer for Commerce have additional components in atg/abtest/substituter/
registry/commerce to keep track of page templates (PageTemplateTestSubjectRegistry) and category
templates (CategoryTemplateTestSubjectRegistry).
If you need to disable a test subject registry temporarily, set its lookupEnabled property to false. Disabling
the test subject registry in this way permits it to continue updating the list of affected items, without using this
information to prevent the firing of events. You can disable a test subject registry completely by setting the
updateEnabled property to false. Note that doing so puts the registry out of sync with your active tests.
In order to re-enable your test subject registry, you will need to re-assemble, redeploy, and restart your ATG
application.
Changing Logging Cache Sizes
The ReportGeneratorService issues one query for each log record type for each active test. For performance
reasons, the retrieved log records are stored in the ABTestLogRepository's item cache while they are
being processed. It is important that a particular query does not return more log records than can be stored
in the cache. The number of records retrieved together is a function of the number of entries stored for any
given test. A test will automatically log such things as page views, items added to cart, items purchased,
and total price. If the number of entries for a test in a report generation window exceeds the cache size, the
ReportGeneratorService will have to access the database to retrieve information for each log record not
stored in cache, which will result in a significant loss of performance. The default cache size for all log record
types is 500K. If it is likely that more than 500K of records will be logged for any of the log data types between
runs of the ReportGeneratorService, it is recommended that the item-cache-size of that particular log record
type be increased so that all the items can be stored in the cache.
The most common log record type that will experience this problem is the pageVisitLogData item-descriptor.
This log record type logs every page visit for all test participants. If it is likely that there will be more than 500K
page visits for members of a given test between runs of the ReportGeneratorService, it is recommended
that you increase the item-cache-size of the pageVisitLogData item descriptor to a number that will assure
that all the log records can be stored in cache. Another option is to turn off the logging for page visits. For more
information, see the Turning off Logging (page 21) section.
You must also be sure to allocate enough memory to handle the cache size. The default setting of a 500K cache
size requires 1.5GB of heap space. Memory usage is linear, so increasing the cache size to 1M records will require
3GB of heap space.
Note: The log records are queried on a per-test basis. Therefore, even if 1M page visit records are logged
between runs of the ReportGeneratorService, the cache size would not have to be increased if the records
were divided evenly among, say, 4 tests. Since there would be only 250K records per test, the cache size of 500K
would be sufficient.
Using the Cache Servlet Bean with Tests
Important: If your site uses the Cache servlet bean (/atg/dynamo/droplet/Cache), make sure that any pages
or other items included in ATG Campaign Optimizer tests are not cached by this servlet bean. For example,
26 2 Configuring ATG Campaign Optimizer
product templates, category templates, and any other test-related items, such as repository slot references,
should not be cached in this way. The Cache servlet bean is globally scoped, and if it is used to cache test items,
the following problems may occur:
• all test participants may see the same items when they visit the site;
• users who should participate in a test may not see test content;
• if the first user to visit a page is a test participant, non-participants who visit later will see test content.
Implementing Template Substitution in Modified Catalogs
This section is intended for users who are running ATG Campaign Optimizer for Commerce, want to create tests
that involve templates, and have modified the product or category template definitions. It describes the
changes that were made to the default product catalog in ATG Campaign Optimizer for Commerce to enable
template tests.
ATG Campaign Optimizer for Commerce modifies the definition of product.template and
category.template. If you modified the default definitions of either of these properties in the product catalog
repository definition, you will not necessarily see the ATG Campaign Optimizer configuration changes. You
must update your catalog definition to include the changes that ATG Campaign Optimizer relies on to perform
category and product template tests.
To allow template substitution, ATG Campaign Optimizer for Commerce modifies the definition of the
template property in both the category and product item descriptors to use the user defined property
atg.abtest.substituter.commerce.TemplateSubstituterPropertyDescriptor.
Template substitution with ATG Campaign Optimizer for Commerce will not work in the following cases:
• Your application does not use the template property of products or categories.
• You don’t use item descriptors named product and category for your catalogs. Template substitution will
work with subtypes of the product and category item descriptors.
This is the definition of the product.template property before installing ATG Campaign Optimizer for
Commerce:
<item-descriptor name="product"> <table name="dcs_prd_media" type="auxiliary" id-column-name="product_id"> <property category-resource="categoryPresentation" name="template" item-type="media" column-name="template_id" queryable="false" display-name-resource="template"> <attribute name="resourceBundle" value="atg.commerce.ProductCatalogTemplateResources"/> <attribute name="propertySortPriority" value="-2"/> </property> </table></item-descriptor>
The following code sample is the XML-combine input that produces the new template property definition
when combined with normal productCatalog.xml. It enables product template substitution by ATG
Campaign Optimizer.
2 Configuring ATG Campaign Optimizer 27
<item-descriptor name="product"> <table name="dcs_prd_media" type="auxiliary" id-column-name="product_id"> <property name="template" xml-combine="remove"/> <property category-resource="categoryPresentation" name="defaultTemplate" item-type="media" column-name="template_id" queryable="false" display-name-resource="defaultTemplate"> <attribute name="resourceBundle" value= "atg.abtest.substituter.commerce.ProductCatalogTemplateResources"/> <attribute name="propertySortPriority" value="-2"/> </property> </table> <property category-resource="categoryPresentation" name="template" item-type="media" queryable="false" display-name-resource="template" property-type="atg.abtest.substituter.commerce. TemplateSubstituterPropertyDescriptor"> <attribute name="resourceBundle" value="atg.commerce.ProductCatalogTemplateResources"/> <attribute name="propertySortPriority" value="-2"/> <attribute name="basePropertyName" value="defaultTemplate"/> </property></item-descriptor>
If you already modified the definitions of the template property for product
or category, then modify them further to use the user-defined property
atg.abtest.substituter.commerce.TemplateSubstituterPropertyDescriptor. For example, the
Motorprise reference application defines product as follows to enable internationalization:
<item-descriptor name="product"> <table name="dcs_prd_media" type="auxiliary" id-column-name="product_id"> <property name="template" xml-combine="remove"/> <property name="template_en" item-type="media" column-name="template_id" queryable="true" category-resource="categoryPresentation" display-name-resource="template"> <attribute name="propertySortPriority" value="-5"/> <attribute name="locale" value="en"/> </property> </table> <table name="dbc_product_de" type="auxiliary" id-column-name="product_id"> <property name="template_de" item-type="media" column-name="template_id" queryable="true" category-resource="categoryPresentation" display-name-resource="template"> <attribute name="propertySortPriority" value="-5"/> <attribute name="locale" value="de"/> </property> </table> <table name="dbc_product_ja" type="auxiliary" id-column-name="product_id"> <property name="template_ja" item-type="media" column-name="template_id" queryable="true" category-resource="categoryPresentation" display-name-resource="template"> <attribute name="propertySortPriority" value="-5"/> <attribute name="locale" value="ja"/> </property>
28 2 Configuring ATG Campaign Optimizer
</table> <property name="template" item-type="media" category-resource="categoryPresentationDerived" writable="false" display-name-resource="template" queryable="true"> <derivation method="firstWithLocale"> <expression>template_en</expression> <expression>template_de</expression> <expression>template_ja</expression> </derivation> <attribute name="resourceBundle" value="atg.projects.b2bstore.CustomCatalogTemplateResources"/> <attribute name="propertySortPriority" value="-5"/> <attribute name="keyService" value="/atg/userprofiling/LocaleService"/> <attribute name="defaultKey" value="en_US"/> </property>
ATG Campaign Optimizer for Commerce further modifies this as follows to enable template substitution. (See
DCS-ABTest/MotorpriseJSP/config/atg/commerce/catalog/custom/customCatalog.xml)
<item-descriptor name="product"><table name="dcs_prd_media" type="auxiliary" id-column-name="product_id"> <property name="defaultTemplate" xml-combine="remove"/></table> <property name="defaultTemplate" item-type="media" category-resource="categoryPresentationDerived" writable="false" display-name-resource="defaultTemplate" queryable="true"> <derivation method="firstWithLocale"> <expression>template_en</expression> <expression>template_de</expression> <expression>template_ja</expression> </derivation> <attribute name="resourceBundle" value= "atg.abtest.substituter.commerce.ProductCatalogTemplateResources"/> <attribute name="propertySortPriority" value="-5"/> <attribute name="keyService" value="/atg/userprofiling/LocaleService"/> <attribute name="defaultKey" value="en_US"/> </property> <property category-resource="categoryPresentationDerived" name="template" item-type="media" queryable="false" property-type="atg.abtest.substituter.commerce. TemplateSubstituterPropertyDescriptor" display-name-resource="template" xml-combine="replace"> <attribute name="basePropertyName" value="defaultTemplate"/> <attribute name="propertySortPriority" value="-1"/> <attribute name="resourceBundle" value="atg.projects.b2bstore.CustomCatalogTemplateResources"/> </property></item-descriptor>
You may need to make similar modifications if you have changed product.template or category.template.
You can verify the results of the XML combination in the product catalog in the ATG Component Browser by
looking at the definitionFiles property of the /atg/commerce/catalog/ProductCatalog component.
The following sample shows the xml-combine result for the configuration example above for the product
repository item.
2 Configuring ATG Campaign Optimizer 29
<item-descriptor name="product" > <property queryable="false" category-resource="categoryPresentationDerived" display-name-resource="template" name="template" item-type="media" property-type="atg.abtest.substituter.commerce. TemplateSubstituterPropertyDescriptor"> <attribute name="basePropertyName" value="defaultTemplate"/> <attribute name="propertySortPriority" value="-1"/> <attribute name="resourceBundle" value="atg.projects.b2bstore.CustomCatalogTemplateResources"/> </property> <property queryable="true" category-resource="categoryPresentationDerived" display-name-resource="defaultTemplate" name="defaultTemplate" writable="false" item-type="media"> <derivation method="firstWithLocale"> <expression>template_en</expression> <expression>template_de</expression> <expression>template_ja</expression> </derivation> <attribute name="resourceBundle" value="atg.abtest.substituter.commerce. ProductCatalogTemplateResources"/> <attribute name="propertySortPriority" value="-5"/> <attribute name="keyService" value="/atg/userprofiling/LocaleService"/> <attribute name="defaultKey" value="en_US"/> </property> <property category-resource="categoryPresentation" queryable="true" display-name-resource="template" name="template_en" column-name="template_id" item-type="media"> <attribute name="propertySortPriority" value="-5"/> <attribute name="locale" value="en"/> </property> <property category-resource="categoryPresentation" queryable="true" display-name-resource="template" name="template_de" column-name="template_id" item-type="media"> <attribute name="propertySortPriority" value="-5"/> <attribute name="locale" value="de"/> </property> <property category-resource="categoryPresentation" queryable="true" display-name-resource="template" name="template_ja" column-name="template_id" item-type="media"> <attribute name="propertySortPriority" value="-5"/> <attribute name="locale" value="ja"/> </property>
30 2 Configuring ATG Campaign Optimizer
</item-descriptor>
Implementing Page Fragment Substitution
Page fragment substitution is based on the <dsp:include page="xxx"/> tags in JSP pages and the
<droplet src="xxx"> tags in JHTML pages. Page fragments that are invoked in some other way cannot be
used in page fragment testing.
Page fragments included by <jsp:include> tags or @include directives should not be used in page fragment
test because the substitution will not occur.
Troubleshooting Slot Testing
You can use ATG Campaign Optimizer to test content in both active slots (slots that can issue their own requests
for content items) and passive slots (slots that do not issue requests for content items).
ATG Campaign Optimizer uses the FillSlot action to fill a slot with test content. If a slot is not registered as a
Nucleus component and filled with the FillSlot action – for example, if the slot is created as a property of a
JMS message – then the test content won’t be visible during the test. The slot continues to display its original
content.
For more information about slots and targeters, see the ATG Page Developer's Guide. For details about the FillSlot
action, see the ATG Personalization Programming Guide.
Configuring Deployment
ATG Campaign Optimizer uses the underlying ATG Content Administration system to deploy test assets to
the ATG Content Administration Production/Staging module. The ATG Content Administration system itself
uses DAF Deployment, the deployment mechanism in the ATG platform, to move assets from a development
environment to a staging or production environment. There are some configuration steps you must complete
to set up both DAF Deployment and the deployment features in ATG Content Administration for ATG Campaign
Optimizer.
Defining the Deployment Topology
For ATG Content Administration to be able to deploy test assets from the ATG Campaign Optimizer server to the
ATG Campaign Optimizer Production/Staging modules, you must perform two configuration steps:
• Define each ATG Campaign Optimizer Production/Staging instance as a target site within the Content
Administration system’s deployment topology.
2 Configuring ATG Campaign Optimizer 31
Important: Optionally, you can use the default values “staging” and “production” as the names you give your
ATG Campaign Optimizer deployment targets when you define them in ATG Content Administration. Doing so
is recommended, because it means you do not then have to make any changes to the deployment elements
in the ATG Campaign Optimizer workflows (see Adding Deployment Targets to Workflows (page 31)). You
only have to edit the workflows if you use names other than “staging” and “production.” If you choose to use
the default names, however, you must set the queryWorkflowTargetByID property of the /atg/epub/
Configuration component to false (false is the default setting) on the ATG Campaign Optimizer server so
that the default name feature is enabled.
• Map the versioned repository to the destination repository or repositories you created in the previous
sections.
You perform both tasks through the Admin Console option in the ATG Business Control Center. For complete
instructions, see Setting Up Deployment in the ATG Content Administration Programming Guide.
See also the Managing Workflows (page 32) section in this guide.
Adding Deployment Targets to Workflows
Tests are deployed to the target servers specified in the ABTestWorkflow project workflow. After you have
configured your ATG Campaign Optimizer Production/Staging modules as deployment targets in ATG Content
Administration, you must add the targets to the deployment-related elements in the workflow definitions for
tests.
Note: As mentioned earlier in Defining the Deployment Topology (page 30), you can omit this step if you
used the default values “staging” and “production” as the names you gave your ATG Campaign Optimizer
deployment targets in ATG Content Administration.
ATG Campaign Optimizer includes two workflows, a single-target workflow that is typically used to deploy
tests to a production site, and a dual-target workflow that can be used to deploy to both a staging site and a
production site.
Before you begin the steps that follow, make sure you started the ATG Campaign Optimizer server with the
appropriate commands. The startup commands determine the workflow (staging and production, or production
only) that appears in the ACC and the corresponding tasks that appear in the ATG Business Control Center. See
Starting ATG Campaign Optimizer (page 7) for more information. (You can identify the workflow that is being
used either by looking at the workflow itself in the ACC, as described below, or by looking at the tasks that
appear for the workflow in the project area of the ATG Business Control Center. See Managing Workflows (page
32) for more information.)
1. Start the ACC.
2. Select Workflow > Publishing > CampaignOptimizer.
3. Select ABTestWorkflow to open the workflow.
4. Edit the deployment-related elements so they include the ATG Campaign Optimizer Production/Staging
deployment targets. Unless you used the default names for your deployment targets, all these elements
appear in red to indicate they are incomplete.
Partial view of workflow: incomplete deployment element
32 2 Configuring ATG Campaign Optimizer
Partial view of workflow: editing the deployment element
Partial view of workflow: deployment element complete
For information on which server (staging or production) to add to each deployment element, refer to the
table at the end of this procedure.
For more information on editing workflow elements, refer to the ATG Personalization Guide for Business Users.
5. Save the workflow.
The table below shows which target to add to each part of the workflow.
Workflow elements Add this target
All deployment elements in Staging Approval task Staging server
All deployment elements in first Wait for Deployment to Complete task Staging server
Deployment elements in Reject branch of Production Approval task Staging server
All other (non Reject) deployment elements in Production Approval task Production server
All deployment elements in second Wait for Deployment to Complete task Production server
Managing Workflows
ATG Campaign Optimizer uses the workflows that are installed with ATG Content Administration to define the
test development tasks that appear in the ATG Business Control Center and control how test assets are deployed
to your target sites.
You can find the ATG Campaign Optimizer workflow definitions in the ACC under
Workflow > Publishing > CampaignOptimizer.
/CampaignOptimizer/ABTestWorkflow
The ABTestWorkflow is the default workflow for creating and deploying tests. Two versions of this workflow are
available:
2 Configuring ATG Campaign Optimizer 33
• Production-only (default) supports deployment to a single target.
• Staging/production supports deployment to two targets: first a staging target, then a production target.
Only one of these versions is available at a time, depending on how you assemble and deploy the ATG Campaign
Optimizer application. In order to use the staging/production workflow, the EAR file that you deploy on the
asset management server must be assembled with the -layer staging option. For more information, refer to
Starting ATG Campaign Optimizer (page 7).
Important: You should not edit the ATG Campaign Optimizer workflows, except in cases where you need to
change the access rights for particular tasks or specify deployment targets.
To learn more about using workflows and the ACC’s workflow editor, see the ATG Personalization Guide for
Business Users. For information about workflow configuration, see the ATG Personalization Programming Guide. To
learn more about the various workflow elements used by the ATG Content Administration system, see the Using
Workflows chapter in the ATG Content Administration Programming Guide.
Staging and Production Workflow
The version of the /CampaignOptimizer/ABTestWorkflow workflow that deploys to both a staging and a
production server includes the following tasks:
• Author
• Content Review
• Approve for Staging Deployment
• Wait for Staging Deployment Completion
• Production Approval
• Wait for Revert Deployment Completion
• Wait for Production Deployment Completion
Author Task
The Author task is active while a test is in development, and it has two possible outcomes, Review (which
displays as Ready for Review in the ATG Business Control Center) and Delete (which displays as Delete Project).
When a user selects the Delete task outcome, the workflow deletes the project. When a user selects the Ready
For Review task outcome, the workflow does the following:
1. Prevents further edits to the test.
2. Compares the working version of the assets in the test with their checked-in (base) version. If the checked-in
version has changed, an error message is displayed in the ATG Business Control Center, and the owner of the
author task is asked to resolve the conflict.
3. Advances to the Content Review task.
Note: ATG Campaign Administrator tasks can be assigned to specific users through the ATG Business Control
Center. For a task to be “assignable,” it must be configured as such in the task detail editor. To the see the
configuration details for a workflow task, double-click on the task name in the ACC workflow editor.
34 2 Configuring ATG Campaign Optimizer
Configuration details for the Author task
Content Review Task
The Content Review task is the second stage in the workflow.
This workflow task includes three outcome elements, Approve, Reject, and Delete , which appear as Approve
Content, Reject, and Delete in the ATG Business Control Center.
If the user selects the Delete task action, the workflow deletes the project. If the user selects the Reject action,
the workflow reopens the project and then reactivates the Author task so the test can be changed.
If the user selects the Approve task action, the workflow generates the scenario that will carry out the test and
advances to the next task, where the project can be approved for deployment.
Approve for Staging Deployment
This task has three possible outcomes:
• Approve and Deploy (display name: Approve and Deploy to Staging). If the user selects this outcome, the
workflow engine does the following:
• Creates the internal scenario that will be used to manage the test.
• Locks the project so that it cannot be edited in the ATG Business Control Center.
• Initiates test deployment to the specified target.
• Approve (display name: Approve for Staging Deployment). If the user selects this outcome, the workflow
engine performs the same actions as for the Approve and Deploy task, except that deployment is not
initiated. Progress through the workflow is interrupted until the user deploys the campaign manually
through the Admin Console in ATG Content Administration. For more information, refer to the ATG Content
Administration Programming Guide.
• Reject (display name: Reject Staging Deployment). With this outcome, the workflow reverts to the Author
stage so the test can be edited again.
If the deployment elements in this part of the workflow are displayed in red, you need to configure them so they
include the deployment target you defined for your ATG Campaign Optimizer staging server in ATG Content
Administration. See Adding Deployment Targets to Workflows (page 31) for more information.
Wait for Deployment To Complete
(Display name: Wait for Staging Deployment Completion.) No ATG Business Control Center user actions are
required for this task.
2 Configuring ATG Campaign Optimizer 35
The system waits for one of two events to occur: if it receives a deployment event message indicating
deployment has occurred successfully, it moves to the next stage. If it receives a message indicating deployment
has failed, for example because the target server became unavailable during deployment, it unlocks the test’s
assets and reverts the project to the Content Approval task. Unlocking the assets is necessary so the project can
be returned to a pre-deployment state.
Approve for Production Deployment
This stage has similar possible outcomes to the Approve for Staging Deployment task:
• Approve and Deploy (display name: Approve and Deploy to Production). If the user selects this outcome, the
workflow engine does the following:
• Creates the internal scenario that will be used to manage the test.
• Locks the project so that it cannot be edited in the ATG Business Control Center.
• Initiates deployment to the specified target.
• Approve (display name: Approve for Production Deployment). If the user selects this outcome, the workflow
engine performs the same actions as for the Approve and Deploy task, except that project deployment is not
initiated. Progress through the workflow is interrupted until the user deploys the test manually through the
Admin Console in ATG Content Administration. For more information, refer to the ATG Content Administration
Programming Guide.
• Reject (display name: Reject Production Deployment). The workflow reverts the deployment from the staging
target and returns the project to the Author stage so the test can be edited again.
If the deployment elements in this part of the workflow are displayed in red, you need to configure them so they
include the deployment targets you defined for ATG Campaign Optimizer in ATG Content Administration. See
Adding Deployment Targets to Workflows (page 31) for more information.
Wait for Revert to Complete
This stage in the workflow is invoked if the user selects the Reject outcome in the Production Approval stage.
The workflow engine attempts to remove the deployed assets from the production server. If it receives a
deployment event message indicating removal of the assets has failed, it reverts to the Production Approval
task, requiring the user to attempt to reject the deployment again. If it receives a message indicating the
removal has occurred successfully, it unlocks the test’s assets and reverts the project to the Author task so the
test can be edited again.
Wait for Production Deployment to Complete
This stage does not require any user action in the ATG Business Control Center. The system does the following:
1. Waits for a deployment event message with the status Success, which indicates that the test’s assets were
moved to the deployment target.
2. Performs a second validation by checking that the Project object contains a reference to the target, which
indicates the deployment completed successfully.
3. Checks the test’s assets into the ATG Content Administration versioning system.
4. Changes the project’s status to Complete. Control of the project is returned to the parent process workflow.
If the deployment cannot be completed (for example because the target server is not running), the system
reverts the workflow to the Production Approval stage.
36 2 Configuring ATG Campaign Optimizer
Production-Only Workflow
The version of the workflow that deploys only to a production server includes the following tasks, as shown
below with their display names in the ATG Business Control Center:
The workflow operates the same way as the Staging and Production workflow described in the previous section,
except it does not contain elements that manage interactions with the staging target.
Default Workflow Permissions
This section lists the default permissions for tasks that require user action in the /CampaignOptimizer/
ABTestWorkflow workflow.
To see the current permissions for a workflow task, double-click on the task name in the ACC workflow editor
and click the Set Access Rights button.
The table below shows the default permissions for the workflow that is used to create and deploy tests.
Task ATG Campaign Optimizer User Roles Permissions
Author ABTest-User
Campaign-Manager
Campaign-Admin
write, execute
Content Review Campaign-Manager
Campaign-Admin
write, execute
Staging Approval Campaign-Admin write, execute
Wait for Deployment to Complete (staging) Campaign-Admin write, execute
Production Approval Campaign-Admin write, execute
Wait for Deployment to Complete
(production)
Campaign-Admin write, execute
Appendix A. ATG Campaign Optimizer Scenario Elements 37
Appendix A. ATG Campaign Optimizer
Scenario Elements
This appendix describes the scenario elements provided by ATG Campaign Optimizer. In the ACC Scenario
task area, you can see ATG Campaign Optimizer scenarios in view only mode that use the following scenario
elements. These elements are divided into two sections:
ATG Campaign Optimizer Core Elements (page 37)
ATG Campaign Optimizer Commerce Elements (page 38)
ATG Campaign Optimizer Core Elements
The following elements are the core scenario elements provided by ATG Campaign Optimizer.
Event Elements
Element Description
A/B Test Ended This event occurs when the test ends, either on its
end date or when manually stopped.
A/B Test Participant Unassigned This event occurs when a user who was
participating in a test without logging in then
logs in as a user who is already part of the test.
This event is used to avoid counting the user
twice in the test results.
A/B Test is ready for deployment This event occurs when a user clicks on Deploy in
the ATG Campaign Optimizer UI.
An A/B Test that was previously considered ready for
deployment is now not ready for deployment
This event occurs when you modify a test that you
previously deployed.
Test Slot Item request This event occurs whenever a scenario executes
an Add Items to Slot action.
38 Appendix A. ATG Campaign Optimizer Scenario Elements
Element Description
Page fragment request This event occurs whenever a page or page
fragment is requested.
A/B Test session ended This event occurs whenever a test participant’s
session ends.
Action Element
Element Description
Record A/B Test Participant assigned to test group Records the participant being tested to the log
data.
Record A/B Test event Records an event to the log data.
Track start of A/B test execution Records that a particular A/B Test has started
running on the server.
Add user to test group Adds a profile marker that indicates the user is a
member of a test group.
Add test items to slot Adds items to a slot within a test.
Set event handled state to true This action allows test scenarios to communicate
with other parts of the system.
Kill preview Stops the current preview and cleans up preview
data.
ATG Campaign Optimizer Commerce Elements
The following additional scenario elements are provided by ATG Campaign Optimizer for Commerce.
Event Elements
Element Description
Product template request This event occurs whenever a reference is made to the product.template
property in the product catalog.
Category template request This event occurs whenever a reference is made to the
category.template property in the product catalog.
Appendix A. ATG Campaign Optimizer Scenario Elements 39
Action Element
Element Description
Give promotion in preview Grants a promotion during test preview.
40 Appendix A. ATG Campaign Optimizer Scenario Elements
Appendix B. ATG Campaign Optimizer Database Tables 41
Appendix B. ATG Campaign Optimizer
Database Tables
The ATG Campaign Optimizer database schema includes several types of tables. These tables are divided into
two sections:
ATG Campaign Optimizer Core Tables (page 45)
ATG Campaign Optimizer for Commerce Database Tables (page 61)
ATG Campaign Optimizer tables include the following:
Type of Table Description Table Names
CAF Tables (page 46) Holds data used to describe asset registries. ???TITLE??????
TITLE??????TITLE???
caf_registry (page
46)
???TITLE??????
TITLE??????TITLE???
caf_reg_folder (page
46)
???TITLE??????
TITLE??????TITLE???
caf_reg_rootfolder (page
47)
???TITLE??????
TITLE??????TITLE???
caf_reg_asset (page
47)
???TITLE??????
TITLE??????TITLE???
caf_reg_repasset (page
48)
???TITLE??????
TITLE??????TITLE???
caf_reg_pathasset (page
48)
42 Appendix B. ATG Campaign Optimizer Database Tables
Type of Table Description Table Names
Markers Table (page
48)
Holds marker data that ties users to tests. ???TITLE??????
TITLE??????TITLE???
abt_markers (page
48)
Metrics Tables (page
49)
Holds event data (also called log data) produced from
tests.
???TITLE??????
TITLE??????TITLE???
abl_page_visit (page
49)
???TITLE??????
TITLE??????TITLE???
abl_started (page 50)
???TITLE??????
TITLE??????TITLE???
abl_ended (page 50)
???TITLE??????
TITLE??????TITLE???
abl_user_group (page
51)
???TITLE??????
TITLE??????TITLE???
abl_content_viewed (page
51)
???TITLE??????
TITLE??????TITLE???
abl_session (page
52)
Preview Table (page
53)
Holds data that describes test previews. ???TITLE??????
TITLE??????TITLE???
abt_preview (page
53)
Reporting Tables (page
53)
Holds data used to generate reports. ???TITLE??????
TITLE??????TITLE???
abr_control (page
53)
???TITLE??????
TITLE??????TITLE???
abr_report (page 54)
???TITLE??????
TITLE??????TITLE???
abr_report_group (page
54)
Appendix B. ATG Campaign Optimizer Database Tables 43
Type of Table Description Table Names
Test Definition
Tables (page 55)
Holds data that describes tests. ???TITLE??????
TITLE??????TITLE???
abt_test (page 56)
???TITLE??????
TITLE??????TITLE???
abt_group (page 57)
???TITLE??????
TITLE??????TITLE???
abt_element (page
58)
???TITLE??????
TITLE??????TITLE???
abt_test_group (page
58)
???TITLE??????
TITLE??????TITLE???
abt_group_elem (page
59)
???TITLE??????
TITLE??????TITLE???
abt_elem_page (page
59)
???TITLE??????
TITLE??????TITLE???
abt_elem_pg_frag (page
60)
???TITLE??????
TITLE??????TITLE???
abt_elem_rep_slot (page
60)
???TITLE??????
TITLE??????TITLE???
abt_elrs_item (page
60)
Tracking Table (page
55)
Holds data that describes the progress of tests. ???TITLE??????
TITLE??????TITLE???
abt_track (page 55)
ATG Campaign Optimizer for Commerce adds have the following additional tables:
44 Appendix B. ATG Campaign Optimizer Database Tables
Type of Table Description Table Names
Metrics Tables (Commerce) (page
61)
Holds event data (also called log data)
produced from tests.
???TITLE??????
TITLE??????
TITLE??????TITLE???
abl_item_added (page
61)
???TITLE??????
TITLE??????
TITLE??????TITLE???
abl_order_submit (page
62)
???TITLE??????
TITLE??????
TITLE??????TITLE???
abl_order_abandon (page
63)
???TITLE??????
TITLE??????
TITLE??????TITLE???
abl_trnsnt_abandon (page
64)
Reporting Tables (Commerce) (page
65)
Holds data used to generate reports. ???TITLE??????
TITLE??????
TITLE??????TITLE???
abr_dcs_rpt_group (page
65)
Appendix B. ATG Campaign Optimizer Database Tables 45
Type of Table Description Table Names
Test Definition Tables
(Commerce) (page 66)
Holds data that describes tests. ???TITLE??????
TITLE??????
TITLE??????TITLE???
abt_elem_ctgy_tmp (page
67)
???TITLE??????
TITLE??????
TITLE??????TITLE???
abt_elct_ctgs (page
67)
???TITLE??????
TITLE??????
TITLE??????TITLE???
abt_elem_prod_tmp (page
68)
???TITLE??????
TITLE??????
TITLE??????TITLE???
abt_elpt_prds (page
68)
???TITLE??????
TITLE??????
TITLE??????TITLE???
abt_elpt_ctgs (page
69)
???TITLE??????
TITLE??????
TITLE??????TITLE???
abt_elem_promo (page
69)
ATG Campaign Optimizer Core Tables
The ATG Campaign Optimizer database schema includes the following types of tables:
CAF Tables (page 46)
Markers Table (page 48)
Metrics Tables (page 49)
Preview Table (page 53)
Reporting Tables (page 53)
Test Definition Tables (page 55)
Tracking Table (page 55)
46 Appendix B. ATG Campaign Optimizer Database Tables
CAF Tables
The following section describes the tables used in support of asset registries.
???TITLE??????TITLE??????TITLE???caf_registry (page 46)
???TITLE??????TITLE??????TITLE???caf_reg_folder (page 46)
???TITLE??????TITLE??????TITLE???caf_reg_rootfolder (page 47)
???TITLE??????TITLE??????TITLE???caf_reg_asset (page 47)
???TITLE??????TITLE??????TITLE???caf_reg_repasset (page 48)
???TITLE??????TITLE??????TITLE???caf_reg_pathasset (page 48)
caf_registry
This table contains information about a registry.
Column Data Type Constraint
registry_id VARCHAR(40) not null
(primary key) The ID for the registry
name VARCHAR(100) not null
The name for the registry
description VARCHAR(1000) Null
The description for the registry
asset_type VARCHAR(100) Null
The type of the asset RepositoryItem
caf_reg_folder
This table contains information on folders in a registry
Column Data Type Constraint
folder_id VARCHAR(40) not null
(primary key) The ID for the folder
Name VARCHAR(100) null
The name for the folder
Appendix B. ATG Campaign Optimizer Database Tables 47
Column Data Type Constraint
parent_folder_id VARCHAR(40) null
The ID for the parent folder
caf_reg_rootfolder
This table associates the root folder with a registry.
Column Data Type Constraint
registry_id VARCHAR(40) not null
(primary key) The ID for the registry
folder_id VARCHAR(40) null
(primary key) The ID for a root folder
caf_reg_asset
This table specifies the folder that holds an asset.
Column Data Type Constraint
asset_id VARCHAR(40) not null
(primary key) The ID for the asset
name VARCHAR(100) null
The name for the asset
description VARCHAR(1000) null
The description for the asset
parent_folder_id VARCHAR(40) null
The ID for the parent folder
Type INTEGER null
They type of asset
parent_registry_id VARCHAR(40) null
The ID for the registry of which the asset is a part
48 Appendix B. ATG Campaign Optimizer Database Tables
caf_reg_repasset
This table contains information about assets of subtype repositoryAsset.
Column Data Type Constraint
asset_id VARCHAR(40) not null
(primary key) The ID for the asset in the registry
repository VARCHAR(100) not null
The repository to which the asset belongs
item_type VARCHAR(100) not null
The repository item descriptor name for this item
repository_id VARCHAR(100) not null
The ID for the item in the repository
caf_reg_pathasset
This table holds information about assets of subtype pathBasedAsset.
Column Data Type Constraint
asset_id VARCHAR(40) not null
(primary key) The ID for the asset
asset_path VARCHAR(1000) not null
The path for the asset
Markers Table
The following section describes the database table used for the ATG Campaign Optimizer marker functionality.
abt_markers
This table contains information about user participants in tests.
Column Data Type Constraint
marker_id VARCHAR(40) not null
Appendix B. ATG Campaign Optimizer Database Tables 49
Column Data Type Constraint
(primary key) The ID of the marker
profile_id VARCHAR(40) not null
The ID of the user containing the marker
marker_key VARCHAR(100) not null
The marker key (atg.abtests)
marker_value VARCHAR(100) null
The value of the marker (the test ID)
marker_data VARCHAR(100) null
The data stored in the marker (the group ID)
creation_date TIMESTAMP null
The date this marker was added to the profile
Version INTEGER not null
The repository version used to prevent conflicting changes
marker_type INTEGER null
For future use
Metrics Tables
The following section describes the database tables used for the ATG Campaign Optimizer metrics functionality.
???TITLE??????TITLE??????TITLE???abl_page_visit (page 49)
???TITLE??????TITLE??????TITLE???abl_started (page 50)
???TITLE??????TITLE??????TITLE???abl_ended (page 50)
???TITLE??????TITLE??????TITLE???abl_user_group (page 51)
???TITLE??????TITLE??????TITLE???abl_content_viewed (page 51)
???TITLE??????TITLE??????TITLE???abl_session (page 52)
abl_page_visit
This table contains information about page visit data collected during a test.
50 Appendix B. ATG Campaign Optimizer Database Tables
Column Data Type Constraint
Dataset VARCHAR(40) not null
The dataset used to record page visit information
profile_id VARCHAR(40) null
The ID of the user making the page visit
Session_id VARCHAR(100) null
The session in which the page visit occurred
date_time TIMESTAMP null
The time of the page visit
url VARCHAR(254) null
The URL that was visited
test_id VARCHAR(40) not null
The ID of the test
group_id VARCHAR(40) null
The ID of the test group
abl_started
This table contains information about test starts.
Column Data Type Constraint
dataset VARCHAR(40) not null
The dataset used to record test start information
date_time Timestamp Null
The date and time the test started
test_id VARCHAR(40) not null
The ID of the test
abl_ended
This table contains information about test ends.
Appendix B. ATG Campaign Optimizer Database Tables 51
Column Data Type Constraint
Dataset VARCHAR(40) not null
The dataset used to record test end information
date_time TIMESTAMP null
The date and time the test ended
test_id VARCHAR(40) not null
The ID of the test
abl_user_group
This table contains information about user’s membership in test groups.
Column Data Type Constraint
Dataset VARCHAR(40) not null
The dataset used to record when a user is assigned to or unassigned from a
test group
profile_id VARCHAR(40) not null
The ID of the user joining or being removed from a test group
session_id VARCHAR(100) null
The session in which the user joined or was removed from the test group
date_time TIMESTAMP null
The time at which the user joined or was removed from the test group
test_id VARCHAR(40) not null
The ID of the test
group_id VARCHAR(40) null
The ID of the group
abl_content_viewed
This table contains data on content viewed during a test.
52 Appendix B. ATG Campaign Optimizer Database Tables
Column Data Type Constraint
Dataset VARCHAR(40) not null
The dataset used to record content viewed events
profile_id VARCHAR(40) null
The ID of the user viewing the content
session_id VARCHAR(100) null
The session in which the content was viewed
date_time TIMESTAMP null
The time at which the content was viewed
test_id VARCHAR(40) not null
The ID of the test
group_id VARCHAR(40) null
The ID of the group being tested
abl_session
This table contains information about sessions for test participants.
Column Data Type Constraint
Dataset VARCHAR(40) not null
The dataset used to record session information
profile_id VARCHAR(40) Null
The ID of the user of the session
session_id VARCHAR(100) not null
The ID of the session
date_time TIMESTAMP Null
The time the session ended
test_id VARCHAR(40) not null
The ID of the test
Appendix B. ATG Campaign Optimizer Database Tables 53
Column Data Type Constraint
group_id VARCHAR(40) Null
The ID of the test group
Preview Table
The following section describes the database table used for the ATG Campaign Optimizer preview functionality.
abt_preview
This table contains information related to previewing test groups.
Column Data Type Constraint
id VARCHAR(40) not null
(primary key) The ID of the preview record
profile_id VARCHAR(40) not null
The user performing the test preview
test_id VARCHAR(40) not null
The ID of the test being previewed, modified for the preview
preview_id VARCHAR(40) not null
The ID of the preview operation
scenario_name WVARCHAR(255) not null
The name of the preview scenario
Reporting Tables
The following section describes the database tables used for the ATG Campaign Optimizer reporting
functionality.
???TITLE??????TITLE??????TITLE???abr_control (page 53)
???TITLE??????TITLE??????TITLE???abr_report (page 54)
???TITLE??????TITLE??????TITLE???abr_report_group (page 54)
abr_control
This table contains information about the last time the ReportGeneratorService was run. There is one record
in this table.
54 Appendix B. ATG Campaign Optimizer Database Tables
Column Data Type Constraint
Id VARCHAR(40) not null
(primary key) The ID of the control record
last_report TIMESTAMP Null
The last time the ReportGeneratorService updated test reports
abr_report
This table contains information about reports for individual tests.
Column Data Type Constraint
test_id VARCHAR(40) not null
(primary key) The ID of the test
last_modified_date TIMESTAMP Null
The last time the test report was updated
test_state VARCHAR(40) Null
The test’s state the last time the report was updated
abr_report_group
This table contains information about measurements (or metrics) for individual test groups.
Column Data Type Constraint
group_id VARCHAR(40) not null
(primary key) The ID of the test groups
test_id VARCHAR(40) Null
The ID of the test
Users INTEGER Null
The number of participants in the group
Sessions INTEGER Null
The number of sessions by participants in the group
Appendix B. ATG Campaign Optimizer Database Tables 55
Column Data Type Constraint
content_views INTEGER Null
The number of times test content was viewed by participants in the
group
page_views INTEGER Null
The number of pages viewed by participants in the group
Tracking Table
The following section describes the database table used for the ATG Campaign Optimizer tracking functionality.
abt_track
This table contains information about running and completing a test.
Column Data Type Constraint
test_id VARCHAR(40) not null
(primary key) The ID of the test
scenario_name WVARCHAR(255) not null
The name of the test scenario
modification_time NUMERIC(19) not null
The last time the scenario was modified
test_state VARCHAR(40) Null
The test state
start_date TIMESTAMP Null
The time the test started running
end_date TIMESTAMP Null
The date the test ended
Test Definition Tables
The following section describes the database tables used for the ATG Campaign Optimizer core functionality.
???TITLE??????TITLE??????TITLE???abt_test (page 56)
56 Appendix B. ATG Campaign Optimizer Database Tables
???TITLE??????TITLE??????TITLE???abt_group (page 57)
???TITLE??????TITLE??????TITLE???abt_element (page 58)
???TITLE??????TITLE??????TITLE???abt_test_group (page 58)
???TITLE??????TITLE??????TITLE???abt_group_elem (page 59)
???TITLE??????TITLE??????TITLE???abt_elem_page (page 59)
???TITLE??????TITLE??????TITLE???abt_elem_pg_frag (page 60)
???TITLE??????TITLE??????TITLE???abt_elem_rep_slot (page 60)
???TITLE??????TITLE??????TITLE???abt_elrs_item (page 60)
abt_test
This table contains information about an ATG Campaign Optimizer test.
Column Data Type Constraint
test_id VARCHAR(40) not null
(primary key) The ID of the test
version INTEGER NOT NULL
Manages the optimistic locking feature of the SQL Repository. This value is
automatically incremented by the SQL Repository when any value of the item
is modified. If you change rows directly outside of the ATG framework, you
should also increment the version number.
creation_date DATE NULL
The date this test was created.
name WVARCHAR(100) Null
The name of the test
test_state VARCHAR(40) Null
For future use
enabled TINYINT Null
Indicates whether the test has been enabled
start_date TIMESTAMP Null
The date the test is set to start running
end_date TIMESTAMP Null
Appendix B. ATG Campaign Optimizer Database Tables 57
Column Data Type Constraint
The date the test is set to complete
participants WVARCHAR(2000) Null
The set of users to be tested
scenario_root WVARCHAR(254) Null
Copied from TestManager.scenarioRoot
scenario_path WVARCHAR(254) Null
For future use
preview_url WVARCHAR(255) Null
The URL to use when previewing a test group
web_app WVARCHAR(254) Null
For future use
report_only TINYINT Null
For future use
creation_date TIMESTAMP Null
The date the test was created
modification_date TIMESTAMP Null
The last date the test was modified
description WVARCHAR(254) Null
A description of the test
owner_id VARCHAR(40) Null
The ID of the user who created the test
modifier_id VARCHAR(40) Null
The ID of the last user to modify the test
site_id VARCHAR(80) Null
In a multisite environment, the site ID of the site where the test will run
abt_group
This table contains information about a test group.
58 Appendix B. ATG Campaign Optimizer Database Tables
Column Data Type Constraint
group_id VARCHAR(40) not null
(primary key) The ID of the group
name WVARCHAR(100) Null
The name of the test group
Percentage NUMERIC(197) not null
The percentage of test participants to assign to the group
fixed_percentage TINYINT Null
Indicates whether the group percentage can be edited in the ATG
Campaign Optimizer UI or if it should be computed automatically
control TINYINT null
Indicates whether the test is a control group
description WVARCHAR(254) null
A description of the group
abt_element
This table contains information about a test element.
Column Data Type Constraint
Element_id VARCHAR(40) not null
(primary key) The ID of the test element
Type INTEGER Null
Indicates which element type this is
abt_test_group
This table contains information about linking tests to the groups they contain.
Column Data Type Constraint
test_id VARCHAR(40) not null
Appendix B. ATG Campaign Optimizer Database Tables 59
Column Data Type Constraint
(primary key) The ID of the test
group_id VARCHAR(40) not null
The ID of a group in this test
sequence_num INTEGER not null
(primary key) The position of this group in the list of groups
abt_group_elem
This table contains information linking groups to the elements they contain.
Column Data Type Constraint
group_id VARCHAR(40) not null
(primary key) The ID of the test group
element_id VARCHAR(40) not null
The ID of a test element in this group
sequence_num INTEGER not null
(primary key) The position of this element in the list of elements
abt_elem_page
This table contains information about an element that tests pages.
Column Data Type Constraint
element_id VARCHAR(40) not null
(primary key) The ID of the page element
old_url WVARCHAR(254) not null
The location of the page to be replaced
new_url WVARCHAR(254) Not null
The location of the page to be used during the test
60 Appendix B. ATG Campaign Optimizer Database Tables
abt_elem_pg_frag
This table contains information about an element that tests page fragments.
Column Data Type Constraint
element_id VARCHAR(40) Not null
(primary key) The ID of the page fragment element
old_url WVARCHAR(254) Not null
The location of the page fragment to be replaced
new_url WVARCHAR(254) Not null
The location of the page fragment to be used during the test
request_url WVARCHAR(254) Null
The page in which to substitute the page fragment
abt_elem_rep_slot
This table contains information about an element that tests repository content.
Column Data Type Constraint
element_id VARCHAR(40) not null
(primary key) The ID of the repository content test element
Slot WVARCHAR(254) not null
The slot whose contents will be substituted
Targeter WVARCHAR(254) null
For future use
abt_elrs_item
This table contains information about the repository items to be substituted by repository content test
elements.
Appendix B. ATG Campaign Optimizer Database Tables 61
Column Data Type Constraint
element_id VARCHAR(40) not null
(primary key) The ID of the repository content element associated with these items
item_id VARCHAR(254) null
The item ID to use as slot content
sequence_num INTEGER Not null
(primary key) The position of this item in the list of items
ATG Campaign Optimizer for Commerce Database Tables
ATG Campaign Optimizer for Commerce users are provided with additional types of tables that hold commerce
information:
Metrics Tables (Commerce) (page 61)
Reporting Tables (Commerce) (page 65)
Test Definition Tables (Commerce) (page 66)
Metrics Tables (Commerce)
The following section describes the database tables used for the ATG Campaign Optimizer for Commerce
metrics functionality.
???TITLE??????TITLE??????TITLE??????TITLE???abl_item_added (page 61)
???TITLE??????TITLE??????TITLE??????TITLE???abl_order_submit (page 62)
???TITLE??????TITLE??????TITLE??????TITLE???abl_order_abandon (page 63)
???TITLE??????TITLE??????TITLE??????TITLE???abl_trnsnt_abandon (page 64)
abl_item_added
This table contains information about items added to orders during a test.
Column Data Type Constraint
Dataset VARCHAR(40) not null
The dataset used to record when an item is added to an order
Profile_id VARCHAR(40) null
62 Appendix B. ATG Campaign Optimizer Database Tables
Column Data Type Constraint
The ID for the user who added an item to an order
Session_id VARCHAR(100) null
The session in which the item was added to the order
date_time TIMESTAMP null
The time the item was added to the order
orderid VARCHAR(40) null
The ID for the order
itemid VARCHAR(40) null
The ID for the item added to the order
quantity INTEGER null
The quantity of the item added to the order
amount NUMERIC(19,7) null
The cost of the item added to the order
currency VARCHAR(40) null
The currency associated with the amount for the order
test_id VARCHAR(40) not null
The ID of the test
group_id VARCHAR(40) null
The ID of the test group
abl_order_submit
This table contains information about orders submitted during a test.
Column Data Type Constraint
dataset VARCHAR(40) not null
The dataset used to record when an order is submitted
profile_id VARCHAR(40) null
Appendix B. ATG Campaign Optimizer Database Tables 63
Column Data Type Constraint
The ID for the user who submitted the order
session_id VARCHAR(100) null
The ID for the session during which the order was submitted
date_time TIMESTAMP null
The time the order was submitted
orderid VARCHAR(40) not null
The ID for the order
amount NUMERIC(19,7) null
The cost of the order
item_qty INTEGER null
The number of items in the order
currency VARCHAR(40) null
The currency used for the order
test_id VARCHAR(40) not null
The ID of the test
group_id VARCHAR(40) null
The ID of the test group
abl_order_abandon
This table contains information about incomplete orders that appear to have been abandoned by registered
users who participated in a test.
Column Data Type Constraint
dataset VARCHAR(40) not null
The dataset used to record information about abandoned persistent
orders
profile_id VARCHAR(40) Null
The ID for the user who abandoned the order
64 Appendix B. ATG Campaign Optimizer Database Tables
Column Data Type Constraint
date_time TIMESTAMP Null
The time when it was determined that the order had been abandoned
orderid VARCHAR(40) not null
The ID for the order
amount NUMERIC(19,7) Null
The total cost of the order, including the cost of the items in it, shipping
and tax
currency VARCHAR(40) Null
The currency used for the order
test_id VARCHAR(40) not null
The ID of the test
group_id VARCHAR(40) Null
The ID of the test group
abl_trnsnt_abandon
This table contains information about orders that are abandoned by transient (non-logged in) users during a
test.
Column Data Type Constraint
dataset VARCHAR(40) not null
The dataset used to record when a transient user abandons an order
profile_id VARCHAR(40) Null
The ID for the transient user
session_id VARCHAR(100) Null
The session in which the transient user created the order
date_time TIMESTAMP Null
The time the order was abandoned
orderid VARCHAR(40) not null
Appendix B. ATG Campaign Optimizer Database Tables 65
Column Data Type Constraint
The ID for the order
amount NUMERIC(19,7) Null
The total cost of the items in the order
currency VARCHAR(40) Null
The currency used for the order
test_id VARCHAR(40) not null
The ID of the test
group_id VARCHAR(40) Null
The ID of the test group
Reporting Tables (Commerce)
The following section describes the database tables used for the ATG Campaign Optimizer for Commerce
reporting functionality:
???TITLE??????TITLE??????TITLE??????TITLE???abr_dcs_rpt_group (page 65)
???TITLE??????TITLE??????TITLE??????TITLE???abr_dcsabd_rpt_gr (page 66)
abr_dcs_rpt_group
This table contains information about measurements (or metrics) for individual test groups.
Column Data Type Constraint
group_id VARCHAR(40) not null
(primary key) The ID of the test group
units_added INTEGER Null
The total quantity of items added to orders
Orders INTEGER Null
The number of submitted orders
units_ordered INTEGER Null
The total quantity of items in submitted orders
revenue_ordered NUMERIC(197) Null
66 Appendix B. ATG Campaign Optimizer Database Tables
Column Data Type Constraint
The monetary amount submitted
Currency VARCHAR(40) Null
The currency associated with contents of the revenue-ordered
column
converted_sessions INTEGER Null
The number of sessions during which orders were submitted
abr_dcsabd_rpt_gr
This table contains information about abandoned order metrics for individual test groups.
Column Data Type Constraint
group_id VARCHAR(40) not null
(primary key) The ID of the test group
orders_abandon INTEGER Null
The total number of orders that have been abandoned by registered
users
revenue_abandon NUMERIC(19, 7) Null
The total monetary value of orders abandoned by registered users
transient_abandon INTEGER Null
The number of orders abandoned by transient users
tran_rev_abandon NUMERIC(197) Null
The total monetary value of orders abandoned by transient users
Test Definition Tables (Commerce)
The following section describes the database tables used for the ATG Campaign Optimizer for Commerce test
description functionality.
???TITLE??????TITLE??????TITLE??????TITLE???abt_elem_ctgy_tmp (page 67)
???TITLE??????TITLE??????TITLE??????TITLE???abt_elct_ctgs (page 67)
???TITLE??????TITLE??????TITLE??????TITLE???abt_elem_prod_tmp (page 68)
Appendix B. ATG Campaign Optimizer Database Tables 67
???TITLE??????TITLE??????TITLE??????TITLE???abt_elpt_prds (page 68)
???TITLE??????TITLE??????TITLE??????TITLE???abt_elpt_ctgs (page 69)
???TITLE??????TITLE??????TITLE??????TITLE???abt_elem_promo (page 69)
abt_elem_ctgy_tmp
This table contains information about a test element that substitutes one category template for another.
Column Data Type Constraint
element_id VARCHAR(40) not null
(primary key) The ID for the test element.
new_template VARCHAR(40) not null
The ID of the category template you want to test
old_template VARCHAR(40) Null
The ID of the category template to be replaced
catalog_id VARCHAR(40) Null
The ID for the catalog containing the affected categories
exclude TINYINT Null
The flag that indicates whether to include (false) or exclude (true) a
set of categories in your test. The excluded/included categories are
described in the abt_elct_ctgs table.
abt_elct_ctgs
This table lists categories that are either explicitly included or excluded from a category template element.
Column Data Type Constraint
element_id VARCHAR(40) not null
(primary key) The ID for the test element
category_id VARCHAR(40) not null
The ID of a category to include or exclude in the test as based on the
value of the exclude flag in the abt_elem_ctgy_tmp table.
sequence_num INTEGER not null
68 Appendix B. ATG Campaign Optimizer Database Tables
Column Data Type Constraint
(primary key) The position of this category in the list of categories
abt_elem_prod_tmp
This table contains information about an element that substitutes one product template for another.
Column Data Type Constraint
element_id VARCHAR(40) not null
(primary key) The ID for the test element
new_template VARCHAR(40) not null
The ID of the product template you want to test
old_template VARCHAR(40) Null
The ID of the product template to be replaced
catalog_id VARCHAR(40) Null
The ID for the catalog containing the affected products
exclude TINYINT Null
The flag that indicates whether to include (false) or exclude (true) a set
of items in your test. When the items are products, the list of included/
excluded products is described in the abt_elpt_prds table. When
the items are categories, the list of included/excluded categories is
described in the abt_elpt_ctgs table.
abt_elpt_prds
This table lists products that are either explicitly included in or excluded from a product template element.
Column Data Type Constraint
element_id VARCHAR(40) not null
(primary key) The ID for the test element.
product_id VARCHAR(40) not null
The ID of a product to include or exclude in the test as based on the
value of the exclude flag in the abt_elem_prod_tmp table.
Appendix B. ATG Campaign Optimizer Database Tables 69
Column Data Type Constraint
sequence_num INTEGER not null
(primary key) The position for a product in the list of products
abt_elpt_ctgs
This table lists categories that are either explicitly included in or excluded from a product template element.
Column Data Type Constraint
element_id VARCHAR(40) not null
(primary key) The ID for the test element
category_id VARCHAR(40) not null
The ID of a category to include or exclude in the test as based on the
value of the exclude flag in the abt_elem_prod_tmp table.
sequence_num INTEGER not null
(primary key) The position of the category in the list of categories
abt_elem_promo
This table contains information about an element that tests a promotion.
Column Data Type Constraint
element_id VARCHAR(40) not null
(primary key) The ID for the test element
promotion_id VARCHAR(40) not null
The ID for the promotion
trigger_type INTEGER not null
The number that identifies the type of activity that triggers a promotion to be granted
trigger_param WVARCHAR(254) null
The name of the page that triggers a page viewing event
70 Appendix B. ATG Campaign Optimizer Database Tables
Part II. Business User GuideThis section gives business users a comprehensive understanding of ATG Campaign Optimizer. It provides information on
how to use ATG Campaign Optimizer to evaluate and improve your e-commerce initiatives by performing multivariate testing
on Web-based promotions, online products, and overall web site design and functionality.
This chapter includes the following sections:
Installing and Configuring ATG Campaign Optimizer (page 71)
Accessing the ATG Campaign Optimizer User Interface (page 71)
Installing and Configuring ATG Campaign Optimizer
For information about installing and configuring ATG Campaign Optimizer, refer to Part I, “Installation and
Administration” (page 1).
Accessing the ATG Campaign Optimizer User Interface
You access the ATG Campaign Optimizer user interface through the Operations menu in the ATG Business Control Center,
which is installed with ATG Content Administration. The instructions below assume that the ATG Campaign Optimizer Server
and the database it uses have both been started. For more information, refer to Part I, “Installation and Administration” (page
1).
1. Point your Web browser to the URL that represents the ATG Business Control Center. The URL you enter depends on the
application server on which ATG Campaign Optimizer is running. The default URLs are as follows:
• JBoss Application Server: http://hostname:8080/atg/bcc
• IBM WebSphere: http://hostname:9080/atg/bcc
• Oracle WebLogic: http://hostname:7001/atg/bcc
For example, if you are pointing to the ATG Business Control Center on JBoss on your local machine, which is common for
product evaluation, enter http://localhost:8080/atg/bcc.
2. When the ATG Business Control Center login dialog box appears, enter the login name and password defined in your
ATG user profile. Note that the fields are case sensitive. If you are denied access, check that you have the appropriate
permissions.
Using the Operations Menu
The Operations menu in the left pane contains the options you use to access ATG Campaign Optimizer features:
• Campaign Optimizer Project: Select this option to create a new ATG Campaign Optimizer test.
• Browse: Click this link to display the View Tests page. For more information, refer to Using the View Tests Page (page 72).
• Registry Admin: Allows you to create, view, and add assets to the various types of custom registries that can be stored in
the AssetRegistry repository. For more information, refer to Part I, “Installation and Administration” (page 1).
For details on using the ATG Content Administration menu item shown in the image, see the ATG Content Administration
Guide for Business Users. For information on the Personalization menu item, see the ATG Business Control Center User's
Guide. Additional options appear in the Operations menu for other ATG application. Refer to the documentation for those
applications.
Note: If no items appear under the Campaign Optimizer option, your ATG session may have expired. Log out of the ATG
Business Control Center, close and restart your browser, and log in again.
Using the To Do List
The To Do List in the right pane of the Business Control Center Home page allows you to view and edit projects that you have
created or that contain tasks assigned to you. In ATG Campaign Optimizer, projects are tests. If you create a test through the
Operations menu, but you do not complete it, you can use the To Do List to access it later for editing. For more information,
see Using ATG Campaign Optimizer Projects (page 99).
Only tests that can currently be edited appear in the To Do List. Items that can be edited have the status Edit or Edit Running.
Items that are not in an editing stage do not appear in the To Do List.
Using the View Tests Page
The View Tests page lists all tests and their statuses. When you display the View Tests page by clicking the Browse link in the
Campaign Optimizer option in the Operations menu, you see a list of completed tests. When you display the View Tests page
from within a project, a third tab lists the tests in the current project.
The My Tests tab of ATG Campaign Optimizer lists all the tests you created. This tab opens automatically when you access the
ATG Campaign Optimizer UI. You can also access it by clicking the View Tests button at any time. To view an individual test
summary, click the test name.
Note: Click the All Tests tab to view all the tests available on the system.
Both the My Tests tab and the All Tests tab display the following information:
Name The name of the test.
Start The setting that determines how the test will start. Tests can start on a specified date
or as soon as they are deployed.
End The setting that determines how the test will end. Tests can end on a specified date
or can be stopped manually.
Created By The name of the user who created the test.
Status Indicates if the test is currently running, has finished running, or has not started
yet. If your Campaign Optimizer environment includes a staging server, you will see
both Staging Status and Production Status columns. Otherwise, you will see only a
Production Status column.
Site(s) In a multisite environment, specifies which sites the test runs on.
Enabled Indicates whether the test is enabled. An enabled test runs at the time specified by
the Start setting.
Viewing a Test Summary
The Summary tab allows you to view a summary of a test’s components or the results of a test that has finished funning. You
can view test details by clicking the test name in the My Tests or All Tests tabs. The Summary tab opens.
The Summary tab contains the following information:
Basic Info
Start Date The setting that determines how the test will start. This can either be a date or Start
When Deployed.
End Criteria The setting that determines how the test will end. This can be either a date when
the test will end or Manual Stop, which means the test continues until you stop it as
described in Ending Tests (page 94).
Participants The profile group that contains the users to be tested. For more information on
profile groups, see the ATG Personalization Guide for Business Users.
Basic Info
Number of Test Groups The number of test groups into which the users are divided.
Applies to Site In a multisite environment, specifies which sites the test runs on.
Name The name of the test.
Description A description of the test.
Default System Preview URL The default URL that is used for previewing all tests in the system. This URL can be
overridden by the Test-Specific URL.
Test-Specific Preview URL The preview URL that is associated with this test.
Test Groups
Name The name of the test group.
% Participants The percentage of users that will be part of a given test group.
Description A brief description of the test group.
Test Elements The actual items that will be switched during the test.
Using the Browser’s Back Button
Avoid using your browser’s Back button to navigate the ATG Business Control Center. Depending on the operation you are
performing, using the Back button to redisplay a page may occasionally cause data conflict, resulting in errors. Wherever
possible, use the links and other navigation controls in the ATG Business Control Center to move from one page to another. If
you do use the Back button and then see an error, close the browser and restart the Business Control Center.
3 ATG Campaign Optimizer Overview 75
3 ATG Campaign Optimizer Overview
This chapter introduces important terms used in ATG Campaign Optimizer and ATG Content Administration and
includes examples of tests.
ATG Campaign Optimizer Terms (page 75)
ATG Content Administration Terms (page 76)
ATG Campaign Optimizer Use Cases (page 77)
ATG Campaign Optimizer Terms
This section defines principal ATG Campaign Optimizer terms:
A/B Test
A/B tests are useful for deciding between two competing versions of a single factor.
Checked-in Tests
ATG Campaign Optimizer projects will be deployed with a standard Content Administration (CA) late stage
workflow. A late stage workflow checks in assets once the project has been deployed to staging or production
and approved.
Multivariate Test
Multivariate testing allows you to test a number of changes to your site at the same time.
Test Group
Participants in a test are broken up into groups. Each group sees different test elements. By default, the Test
Group tab contains two groups. One group should see the test elements, in other words the elements that are
different from the existing site. The Control group typically sees no test elements.
76 3 ATG Campaign Optimizer Overview
ATG Content Administration Terms
ATG Campaign Optimizer uses the content management features of ATG Content Administration to manage and
deploy content that you want to test. You create and manage your content for tests on an internal server. The
content is then published, or deployed, to your customer-facing web sites by ATG Content Administration.
The following definitions are provided to help you understand how tests are managed and deployed. For more
information, see the ATG Content Administration Programming Guide and the ATG Content Administration Guide for
Business Users.
Projects and Workflows
Projects represent business activities that involve several tasks that can be completed over a period of time
by one or more people. Each project is associated with an underlying workflow, which controls the lifecycle
of the project, determining the number of tasks it has and the order in which they should be completed. ATG
Campaign Optimizer has one project type: a test, which contains one or more tests.
Projects allow you to share the work of creating and analyzing tests with other people in your organization; for
example one person can be assigned the task of creating a test, and a second person can be assigned the task
of approving the test and deploying it to the production server. For more information, see Using ATG Campaign
Optimizer Projects (page 99).
Assets
A test is made up of various editable objects, referred to as “assets,” that must be available on the production
server for the test to work correctly. Examples of test assets are segments, page fragments, slots, and image files.
Deployment
Deployment is the process of copying tests and their associated assets to a staging or production server.
You create tests on an internal server and deploy them to your customer-facing server(s). Tests start running
automatically after they have been deployed (or after any future start date specified for them has been reached).
You can edit certain parts of a running test and redeploy the changes to your live site.
The default ATG Campaign Optimizer workflow is designed to deploy to your ATG Campaign Optimizer
Production/Staging server(s) after the test is approved. You must perform some configuration steps in ATG
Content Administration before you can deploy any tests. Refer to Part I, “Installation and Administration” (page
1) for more information.
Segments
Tests are targeted to specific groups of people called “segments,” which are analogous to the profile groups in
earlier versions of ATG Campaign Optimizer. A segment is defined as a set of profile properties. Any user whose
profile includes the specified properties is included in the segment.
For example, you could create a segment called “Nevada Women” to specify a group whose gender is female,
age is 18 and over, and home address state is Nevada.
3 ATG Campaign Optimizer Overview 77
Versioning
Versioning is the mechanism that allows users to view the change history of assets, resolve conflicts between
different versions of assets, and revert changes. All assets have an associated version number. Every time a test
is edited and deployed, the assets in the test are assigned a new version number. This behavior ensures that
anyone who edits a test is working on the most recent version of its assets.
ATG Campaign Optimizer Use Cases
This section describes several examples of tests you can perform with ATG Campaign Optimizer. Each example
includes a link to the appropriate section of this guide that describes how to set up the test.
• Slot Testing (page 77)
• Promotions Testing (page 77)
• Location Testing (page 78)
• Web Site Functionality Testing (page 78)
Slot Testing
You can rotate products, promotions, advertisements, or creative into a specific location (slot) on your Web page.
For example, a web producer wants to run a three-day test to determine whether the image of a female model
or a male model works best on the home page. She sets up a three-day test where 40% of the site’s visitors see
the female model image, 40% of the site’s visitors see the male model image, and 20% of the site’s visitors see
the image that is live on the site today. She selects the slot that she wants to test from a list of slots that are
live on the site. While setting up the test, she is able to preview the two test images as they will appear to test
participants.
See Testing Repository Content (page 83) for details on setting up this type of test.
Promotions Testing
You can test multiple promotions to see which will deliver the best click-through to conversion.
For example, a marketing manager is planning a large promotion for the Back-to-School season. She has to
choose between a “$10 off any order over $100” and a “$20 off any order over $200” offer. She decides to run a
one week test on the web sites to see which offer is more profitable.
She wants to measure four test groups: The first is a group that will receive the Purple Ad and the $10 off
promotion, the second will receive the Blue Ad and the $10 off promotion, the third will see the Purple Ad and
the $20 off promotion, and the fourth will see the Blue Ad and the $20 off promotion. The control group will
receive no ad and no promotion.
She sets up a seven-day test during which each group receives 20% of the traffic and the control group receives
the remaining 20%. She picks her promotions and images from a list of promotions and a list of content pieces.
See Testing Promotions (page 88) and Testing Repository Content (page 83) for details on setting up this
type of test.
78 3 ATG Campaign Optimizer Overview
Location Testing
You can test the best location on a Web page for pricing, promotions, products, creative, content, and features
such as search.
For example, a merchandiser wants to know whether the conversion rate will increase for high price point items
if the Price Block is moved below the Product Description. He asks the page designers to create a new version of
the Product Detail Page template in which the price block appears below the description.
The merchandiser sets up a test to determine which template performs better. The new template is used for
all Armoires and Couches, but the old template is used for all other types of product. The user sets up the test
so that 50% of the site’s visitors will see the new template in those two categories and 50% will see the old
template. He sets the test to run for seven days.
SeeTesting Product Templates (page 87) for details on setting up this type of test.
Web Site Functionality Testing
You can test web site functionality, such as search or merchandising capabilities, to see how they perform.
Testing these technologies before incorporating them into your web sites can save investment costs and IT
resources.
For example, a programmer has created a product affinity engine that can make product recommendations
based on other people’s purchase habits. She wants to prove that the content that is served by her engine will
generate more sales than the current process of fixed content (related products). The programmer decides to
create a new product template that incorporates her recommendations in the ‘related product’ slots. She creates
a two-day test that displays the new template to 50% of the site’s visitors and the old template to 50% of the
site’s visitors.
See Testing Product Templates (page 87) for details on setting up this type of test.
4 Creating a Test 79
4 Creating a Test
This chapter describes how to create a test. It includes sections that describe how to conduct the tests described
in ATG Campaign Optimizer Use Cases (page 77) in the previous chapter.
Creating a new test requires the following steps:
1. Create a new project in the ATG Business Control Center and add a test to the project.
2. Enter Basic Info about the test, such as the start and end dates.
3. Choose the users who will participate in the test.
4. Define test groups to which the participants will belong.
5. Specify the elements to test, such as slots, graphics, or pages.
6. Preview the test as it will appear to the test groups you defined in step 5.
7. Start the test.
8. End the test.
9. Review the test results.
Creating a New Test
You can create a new test in a new project, or you can add a new test to an existing project. The following
procedure creates a new project. To open an existing project, see Using the To Do List (page 72).
To create a test in a new project:
1. In the ATG Business Control Center Home page, select Operations > Campaign Optimizer Project.
2. Type a name and an optional description for this project. The name can include spaces and does not have to
be unique. It is used by ATG Campaign Optimizer only and is not visible to the test’s target audience. It can be
useful to append the word “test” to the name to make ATG Campaign Optimizer projects easily identifiable in
the To Do List on the ATG Business Control Center Home page.
3. Click Continue. The ATG Business Control Center creates a new project and displays ATG Campaign Optimizer.
80 4 Creating a Test
Adding a New Test to the Project
You can add one or more tests to a project. In this section, you’ll add a test to the project you created in the
previous section.
To add a test to the newly-created project:
1. Click the New Test button at the upper right in the project page to display the Create New Test screen.
2. Enter a name for the new test and click OK to display the Basic Info tab for the new test.
The Basic Info tab is displayed. See the next section, Defining Basic Information (page 80), for information
on how to use this tab.
Defining Basic Information
The Basic Info tab contains general information for the test, such as the start and end dates.
1. Enter the following information into the Basic Info tab.
• Name: A name for the test.
• Description: A description of the test. (optional)
• Start Date: The setting that determines how the test will start. You can enter a date or select Start When
Test Is Deployed. (optional)
• End Criteria: The setting that determines how the test will end. You can enter a date or select Run Until
Manually Stopped. (optional)
• Default Preview URL: The URL that will be used to preview this test before running. When you initiate a
preview, you are given the opportunity to override this value with another URL. (optional)
• Applies to Site: In a multisite environment, the sites that the test will run on. If you select the option All
Sites, the test runs on all registered sites. If you select a site from the list, the test runs only on that site.
2. Click Save.
3. Go to the next section, Adding Participants (page 80), to add participants to the test.
Note: See Editing Tests (page 90) to learn how to change the test details later.
Adding Participants
Test Participants are users who are eligible for the test. Eligible participants are divided into different test groups
when they view the site.
1. Click the Participants tab.
4 Creating a Test 81
2. Select the users who will participate in the test:
• All users
• Available segments: a segment to participate in the test, or select all users. A profile group represents
a segment of your site’s target audience. You must choose an existing segment; you can’t create new
segments here. Segments are created in the ATG ACC. For more information, see Creating Segments in the
ATG Personalization Guide for Business Users.
• Clicking the Reset button deletes all currently selected users.
3. Click Save.
Configuring the Test Groups Tab
Use the Test Groups tab to define the groups of test participants and to configure the elements to test.
1. Click the Test Groups tab to open it.
2. Create groups for your test. For details, see Defining Test Groups (page 82). (optional)
3. Configure test elements for each group. For details, see Configuring Test Elements (page 83).
4. Click Save or save the test automatically by moving to another page. For information on running tests, see
Completing and Deploying Tests (page 91).
82 4 Creating a Test
Defining Test Groups
Participants in a test are broken up into groups. Each group sees different test elements. By default, the Test
Group tab contains two groups. One group should see the test elements, in other words the elements that are
different from the existing site. The Control group typically sees no test elements.
Follow these steps to set up the test groups.
1. Open a test and click the Test Groups tab.
2. By default, the Groups tab displays panes for two groups. If you need to add more groups, click the New Test
Group button at the bottom of the page.
Tip: You can hide a group by clicking the minimize button in the right hand corner of each group. This will
minimize the group so you can see only the name and percentage value. Maximize the group by clicking the
maximize button.
3. Use the % column to change the percentages associated with each group. The numbers must add up to
100%. By default, all groups are set to the same percentage. To change the percentages, click the lock icon
next to the number and enter a new number. Do not click the lock icon again or the numbers will reset to the
defaults.
4 Creating a Test 83
Note: If you unlock all test group percentages, the system no longer verifies that the total adds up to 100%.
You must verify the total manually.
4. Change the Name for each group in the Name field. (optional)
5. Enter a short description of each group in the Group Description field. (optional)
6. Configure test elements for each group. For more information, see Configuring Test Elements (page 83).
7. Click Save to save the group information.
Clicking the Reset button resets each field to its last saved value.
Configuring Test Elements
You can create the following types of test elements in any ATG Campaign Optimizer test:
Testing Repository Content (page 83)
Testing Pages (page 84)
Testing Page Fragments (page 85)
You can create three additional types of test elements if you are using the ATG Commerce suite:
Testing Category Templates (page 86)
Testing Product Templates (page 87)
Testing Promotions (page 88)
Testing Repository Content
You can test new repository content in a slot on a site page. You can test one or more items from a content
repository. Repository content is any item stored in any content repository used by your application. This could
include images or text.
When you test repository content, your test intercepts a scenario that fills a slot and adds test-related content to
that slot instead. Therefore, if you want to test repository content, you must use slots that are populated only by
scenarios. Slots that are filled in other ways, for example, by calling the Java API for slot management directly, are
not affected by ATG Campaign Optimizer tests. For more information on using slots with repository content, see
the ATG Personalization Guide for Business Users.
Follow these steps to set up a test element for repository content in a slot.
1. Create a new test or edit an existing test. See Creating a New Test (page 79) or Editing Tests (page 90)
for more information.
2. Select the Test Groups tab and set up the test groups for the test. See Defining Test Groups (page 82) for
more information.
84 4 Creating a Test
3. Click the New Element button in the test group that you want to test.
4. Select Repository Content and click Next.
5. Select the Slot in which you want to display the test repository content and click Next. The Select Repository
Item(s) window opens.
6. Search for repository items that you want to test in the selected slot. Add items to the Select Items box using
the > icon. If you select more than one item then all the selected items will be placed in the slot. You can
control the order of the selected items using the up and down arrows. Click Finish.
After finishing the test element, you can add another element to the test group, preview the test group or
start the test. See Previewing Tests (page 89) and Completing and Deploying Tests (page 91) for more
information.
Testing Pages
You can test new site pages by replacing existing pages with new versions of the page. For example, you could
test a new home page by setting up a test that replaces your current home page with the test home page. Test
group members visiting your site would see the test home page.
Follow these steps to set up a test element for page testing.
1. Create a new test or edit an existing test. See Creating a New Test (page 79) or Editing Tests (page 90)
for more information.
2. Select the Test Groups tab and set up the test groups for the test. See Defining Test Groups (page 82) for
more information.
4 Creating a Test 85
3. Click the New Element button in the test group that you want to test.
4. Select Page and click Next. The Replace Page window opens.
5. Select the page you want to replace with a new page and click Next. The Select New Page window opens.
6. Select the new page you want to use as part of the test and click Finish.
After finishing the test element, you can add another element to the test group, preview the test group or
start the test. See Previewing Tests (page 89) and Completing and Deploying Tests (page 91) for more
information.
Testing Page Fragments
The Page Fragment test element allows you to substitute a page fragment on your site with an alternate page
fragment. There are two types of page fragment substitution:
• Substitute a page fragment everywhere it appears on your entire site
• Substitute a page fragment only on a specific page.
For example, if you wanted to test a new navigation bar, you’d want to replace all navigation bars throughout
the site with the test one so that test group sees a consistent navigation bar regardless of what page they view.
In that case, replacing a page fragment everywhere it appears would be appropriate. In other circumstances, if
you want to test a search box on the home page, for example, you might only want to test a particular use of a
page fragment.
Follow these steps to set up a test element for testing page fragments.
1. Create a new test or edit an existing test. See Creating a New Test (page 79) or Editing Tests (page 90)
for more information.
2. Select the Test Groups tab and set up the test groups for the test. See Defining Test Groups (page 82) for
more information.
3. Click the New Element button in the test group that you want to test.
4. Select Page Fragment and click Next. The Replace Page Fragment window opens.
5. Select the page fragment that you want to replace from the list of files or enter a file name. Click Next. The
Select New Page Fragment window opens.
6. Select the page fragment you want to use in the test or enter a file name. Click Next to select the locations
where you want the replacement to occur. Click Finish if you want to the replacement to occur everywhere
the original page fragment is used. If you click Next, the Select Substitute Location window opens.
7. Choose one of the following and click Finish.
• Select Everywhere it occurs to replace the page fragment with the test fragment every time the fragment is
used on the site.
• Select Only at the following location if you want the page fragment replaced only when it is used on a
specific page. Select the page or enter a file name.
After finishing the test element, you can add another element to the test group, preview the test group or
start the test. See Previewing Tests (page 89) and Completing and Deploying Tests (page 91) for more
information.
86 4 Creating a Test
Testing Category Templates
Testing category templates substitutes an alternate template for one or more categories. There are three types
of category template substitution. Test templates can replace existing templates in the following situations:
• Replace the category template in all categories. For example, if your site had a Chairs category and a Desks
category that used the same template, group members could see the new template for both the Chairs and
Desks categories.
• Replace the category template only in selected categories. For example, if your site had a Chairs category
and a Desks category, group members could see the new template for only the Chairs category. The Desks
category would use the normal category template.
• Replace a category template in all or some categories that use a specific template. For example, a site that has
a Chairs category and a Desks category may have category templates that represent decorating style. One
template may be used for all Chairs and Desks that are Modern, while a different template would be used for
all Country Chairs and Desks. Substitution can occur for all categories that use the Modern template (Chairs
and Tables) or for one category that uses it (Modern Chairs).
Follow these steps to set up a test element to test an alternate category template.
1. Create a new test or edit an existing test. See Creating a New Test (page 79) or Editing Tests (page 90)
for more information.
2. Select the Test Groups tab and set up the test groups for the test. See Defining Test Groups (page 82) for
more information.
3. Click the New Element button in the test group that you want to test.
4. Select Category Template and click Next. The New Category Template window opens
5. Select the template and catalog that you want to use in the test and click Next. The New Template Usage
window opens.
6. Select one of the following:
• Test new template with all categories: Select this option and click Finish to replace all category templates
with the specified test template.
• Test new template in specific categories: Select this option and click Next to view the Select Categories
window:
The Select Categories window allows you to select specific categories in which to test the new template
or to exclude specific categories. Search for the categories and use the > icon to add the categories to the
Selected Categories box. Click Finish when complete.
Note: If you are using an Oracle or DB2 database, no categories that meet your criteria may appear when
you click Search. To resolve this issue, override the useFullTextSearch property in the /atg/abtest/
web/commerce/element/template/
CategorySearchFormHandler.properties component. Set the property to false.
• Use new template to replace existing template in all or some categories: Select this option and click Next to
view the Replace Template window.
The Replace Template window allows you to select a specific template to replace with the selected test
template. You can set the template to replace across all categories, you can set specific categories, or you can
exclude certain categories.
4 Creating a Test 87
After finishing the test element, you can add another element to the test group, preview the test group or
start the test. See Previewing Tests (page 89) and Completing and Deploying Tests (page 91) for more
information.
Testing Product Templates
Product-Template testing substitutes an alternate template for one or more products. There are four types of
product template substitutions. Test templates can replace normal templates in the following situations:
• Replace the product template for all products. For example, if your site had a Beanbag Chair product and a
Recliner product, group members could see the new template for both the Beanbag Chair and the Recliner.
• Replace the product template for all products in selected categories. For example, if your site had a Casual
Furniture category and a Kids Furniture category, group members could see the test template when they
viewed any product in the Casual Furniture category. Products in the Kids Furniture category would use the
normal product template.
• Replace the product template only for specific products. For example, if your site had a Beanbag Chair
product and a Recliner product that both used the same product template, group members could see the
new template when they viewed the Beanbag chair. The Recliner would use the normal product template.
• Replace the product template whenever it is used for all products or for products in specific categories. For
example, if your site had a Chairs category that included some products that use the Blue template and some
products that use the Green template, group members could see the test template when viewing products
in the Chairs category using the Blue template. Substitution would not occur for the products in the Chairs
category that use the Green template or for products not in the Chairs category, even if they use the Blue
template.
Follow these steps to set up a test element to test alternate product template.
1. Create a new test or edit an existing test. See Creating a New Test (page 79) or Editing Tests (page 90)
for more information.
2. Select the Test Groups tab and set up the test groups for the test. See Defining Test Groups (page 82) for
more information.
3. Click the New Element button in the test group that you want to test.
4. Select Product Template and click Next. The New Product Template window opens
5. Select the template and catalog that you want to use in the test and click Next. The New Template Usage
window opens.
6. Select one of the following:
• Test new template with all products: Select this option and click Finish to replace all product templates with
the specified test template.
• Test new template with all products in specific categories: Select this option and click Next to view the Select
Categories window.
The Select Categories window allows you to select specific categories in which to replace the product
template or to exclude selected categories from the test. Search for the categories and use the > icon to
add the categories to the Selected Categories box. Click Finish when complete.
Note: If you are using an Oracle or DB2 database, no categories that meet your criteria may appear when
you click Search. To resolve this issue, override the useFullTextSearch property in the /atg/abtest/
web/commerce/element/template/
88 4 Creating a Test
ProductSearchFormHandler.properties component. Set the property to false.
• Test new template with individual products: Select this option and click Next to view the Select Product
window:
The Select Products window allows you to select specific products in which to replace the new product
template. You can also select products to exclude from the test. Search for the products and use the > icon
to add the products to the Selected Products box. Click Finish when complete.
• Use new template to replace existing template in all or some categories: Select this option and click Next to
view the Replace Template window.
The Replace Template window allows you to select a specific product template to replace only in specific
categories. You can set the template to replace across all categories, you can set specific categories, or you can
exclude certain categories. Search for the categories and use the > icon to add the categories to the Selected
Categories box. Click Finish when complete.
After finishing the test element, you can add another element to the test group, preview the test group or
start the test. See Previewing Tests (page 89) and Completing and Deploying Tests (page 91) for more
information.
Testing Promotions
You can test new promotions by creating a test that grants promotions to users when set conditions are met. For
example, test participants could receive a promotion when they visit a specific page.
Note: If a customer is a member of a test group that is set to receive a promotion, the customer will not receive
the promotion if it is a single use promotion that has already been used by the customer. For more information
on promotions, see the ATG Commerce Guide to Setting Up a Store.
Follow these steps to set up a test element for promotion testing.
1. Create a new test or edit an existing test. See Creating a New Test (page 79) or Editing Tests (page 90)
for more information.
2. Select the Test Groups tab and set up the test groups for the test. See Defining Test Groups (page 82) for
more information.
3. Click the New Element button in the test group that you want to test.
4. Select Promotion and click Next. The Select Promotion window opens.
5. Select the promotion that you want to test and click Next. The Select Promotion Trigger window opens.
6. Select one of the following and click Finish:
• Grant promotion when user registers: Select this option to grant the specified promotion when a new user
registers.
• Grant promotion when user logs in: Select this option to grant the specified promotion every time a user
logs in.
• Grant promotion when user views the following page: Select this option to grant the specified promotion
when the selected page is viewed.
After finishing the test element, you can add another element to the test group, preview the test group or
start the test. See Previewing Tests (page 89) and Completing and Deploying Tests (page 91) for more
information.
4 Creating a Test 89
Copying Test Elements
Copying test elements is an easy way to configure several test groups that test the same element with different
substitution choices. You can copy a test element into different test groups and then edit the substitution
selection. Follow these steps to copy test elements between test groups.
1. Create a new test or edit an existing test. See Creating a New Test (page 79) or Editing Tests (page 90)
for more information.
2. Open the Test Groups tab.
3. Click the Copy Elements From… button at the bottom of the test group into which you want to copy
elements. The Copy Test Elements box opens.
4. Select the name of the test group that contains the test elements you want to copy and click OK.
All the test elements from the selected group are copied into the current group.
Note: If you do not want to use all the test elements, you can delete unwanted elements by clicking the X icon
next to the test element name.
Previewing Tests
ATG Campaign Optimizer provides a Preview feature that you can use before you deploy the test to see how the
web sites will look to a visitor with a specified user profile. The Preview feature allows you to see the effect of
changes to a test that you are editing in an active project.
Notes:
• Preview functionality must be set up by your administrator. If the Preview button is inactive, talk to your
administrator about enabling preview.
• Using Preview is not the same as walking through a test. It is recommended that you perform a full test of
your ATG Campaign Optimizer test in a development or staging environment before using it in a production
site.
• Preview does not perform logging, so reports will not be generated as a result of any actions performed in the
preview.
• You cannot preview all types of promotional elements. This restriction exists because you must be logged in
to access preview, so you cannot preview promotions that are granted at login or registration.
• Preview does not demonstrate how the test will affect site performance.
Previewing a Test
Follow these steps to preview a test.
1. Edit the test and open the Test Groups tab.
2. Click the Preview button for the test group whose test elements you want to preview.
90 4 Creating a Test
3. Select a Preview User, whose profile you will use to view the page.
4. In a multisite environment, if you specified that the test should run on all sites, select a Site on which to
preview the test.
If you specified that the test should run on only one site, the test is automatically previewed on that site.
5. Select the desired preview URL (if more than one is available).
Note: If a System Default Preview URL or a Test Default URL is set, these URLs will be listed as choices on this
screen.
6. Click OK.
A countdown screen displays while the preview loads. It can take up to a minute for the preview to load.
When the countdown is complete, a new browser window opens and displays the specified URL, with the test
elements running.
7. End the Preview by returning to the ATG Campaign Optimizer UI and clicking End Preview.
Editing Tests
If you have the appropriate permissions, you can edit any aspect of a test whose Author task is active.
To access a test for editing:
1. Display the Business Control Center Home page.
2. Locate the test in the To Do list, expand the entry, and click Author or Review (depending on which task is
active). The Basic Info tab for the selected test is displayed.
Alternatively, click the View Tests button and then select the name of the test to edit. Click the Edit button to
open the test for editing.
Note: If the test status is completed, the Edit button will not be active.
Copying Tests
Copying a test is a convenient way to create a new test based on an existing test.
Follow these steps to copy a test.
1. Click View Tests to view a list of all tests.
2. Select the test that you want to copy.
3. Click Copy.
4. Enter a new test name for the copy of the test and click OK.
A new test is created with all the values of the existing test.
4 Creating a Test 91
If the new test has a start date that is in the past, remember to edit the date before deploying.
Deleting Tests
To delete a test, you delete the project that contains the test. You can delete only active projects—that is,
projects whose deployment task is still pending. When you delete an active project, the system deletes from
the database the project and all objects associated with it, including the Results report. All working versions of
project assets are discarded.
To delete a test, you must be the owner of its project’s current task, or the task must be unassigned.
To delete a test in an active project:
1. Navigate to the project’s Tasks tab.
2. From the Select Action drop-down list, choose Delete Project.
3. Click Go.
4. A confirmation dialog appears.
Note: The deletion is irreversible, and all working versions of the project assets are also removed from the
system.
5. Click OK.
Completing and Deploying Tests
When you have finished creating a test, you must typically submit it for review before it can be deployed to your
staging or production server. The test starts running as soon as the deployment is complete (unless the test
includes a start date, in which case the test starts after it has been deployed and when the start date has been
reached).
Notes:
• The tasks and outcomes described in the following sections are included in the default ATG Campaign
Optimizer workflow. The actions may vary if the workflow has been customized for your installation. For
example, your environment may include multiple reviews or no Content Review task.
• A task is accessible to any user who belongs to its owner pool. Depending on how your ATG Campaign
Optimizer environment has been configured, the people who can create a test may not have permission
to approve or deploy it. For details about task ownership, see Using ATG Campaign Optimizer Projects (page
99).
To indicate that the test is ready for review, complete the following steps:
1. Select Ready for Review from the Task Actions list at the top of the test page.
2. Click Go.
92 4 Creating a Test
3. (Optional) In the Confirmation dialog box, enter a note about the test. This note appears on the History page
for this test.
Note: After you submit this note, you cannot delete it or edit its contents.
4. Click OK.
The steps you complete to deploy the test depend on whether your environment includes a staging server.
Deploying to Staging and Production Servers
The image below shows the tasks that make up the deployment stages for a test if your ATG Campaign
Optimizer environment includes both a staging server and a production server.
After you have completed the Author and Content Review tasks, complete the following steps to deploy the test.
1. From the To Do list in the ATG Business Control Center Home page, click the Go to Project link for this test. The
test’s Tasks tab is displayed.
2. Complete the Approve for Staging Deployment task by selecting one of the following options:
• Approve and Deploy to Staging: Generates the internal elements that represent the test, and initiates
deployment to the staging server.
• Approve for Staging Deployment: Generates the test but does not initiate deployment. Progress through
the workflow is interrupted, and the test must be deployed manually through the Admin Console in ATG
Content Administration. For more information, refer to the ATG Content Administration Programming Guide.
• Reject Staging Deployment. The workflow returns the project to the Author stage so the test can be edited
again.
3. The next task, Wait for Staging Deployment Completion, requires no user action unless it fails. If a failure does
occur, the workflow reverts to the beginning of the Approve for Staging Deployment task, and you must
attempt to approve the test for deployment again.
Otherwise, when ATG Campaign Optimizer determines that deployment to the staging server is complete,
the next task, Approve for Production Deployment, becomes active in the Tasks tab. Note that you may have
to refresh the page to see that the next task is active.
4 Creating a Test 93
4. Complete the Approve for Production Deployment task by selecting one of the following options:
• Approve and Deploy to Production: Initiates deployment to the production server.
• Approve for Production Deployment: Does not initiate deployment. Progress through the workflow
is interrupted, and the test must be deployed manually through the Admin Console in ATG Content
Administration. For more information, refer to the ATG Content Administration Programming Guide.
• Reject Production Deployment. The workflow engine removes the deployment from the staging server and
returns the project to the Author stage so the test can be edited again.
5. If you selected Reject Production Deployment, the Wait for Revert to Complete task becomes active. Again,
this task requires no user action unless it fails. If a failure does occur, the workflow reverts to the beginning of
the Approve for Production Deployment task, and you must reject the deployment again.
6. The final task, Wait for Production Deployment Completion, also requires no user action unless it fails. If
a failure does occur, the Approve for Production Deployment task becomes active again, and you must
approve the test for deployment again. Otherwise, the system checks the test’s assets into the ATG Content
Administration versioning system and changes the project’s status to Complete.
Deploying to a Production Server
The image below shows the tasks that make up the deployment stages for a test if your ATG Campaign
Optimizer environment includes just a production server.
After you have completed the Author and Content Review tasks, complete the following steps to deploy the test.
1. From the To Do list in the Business Control Center Home page, click the Go to Project link for this test. The
test’s Tasks tab is displayed.
2. Complete the Approve for Production Deployment task by selecting one of the following options:
• Approve and Deploy to Production: Generates the internal elements that represent the test and initiates
deployment to the production server.
• Approve for Production Deployment: Generates the test but does not initiate deployment. Progress
through the workflow is interrupted, and the test must be deployed manually through the Admin Console
in ATG Content Administration. For more information, refer to the ATG Content Administration Programming
Guide.
• Reject Production Deployment. The workflow returns the project to the Author stage so the test can be
edited again.
3. The final task, Wait for Production Deployment Completion, requires no user action unless it fails. If a failure
does occur, the Approve for Production Deployment task becomes active again, and you must approve the
94 4 Creating a Test
test for deployment again. Otherwise, the system checks the test’s assets into the ATG Content Administration
versioning system and changes the project’s status to Complete.
Ending Tests
You can stop a test in the following ways:
• Manually stop the test
• Specify an end date and time when the test automatically stops
Follow these steps to end the test manually.
1. From the To Do list in the ATG Business Control Center Home page, click the Go to Project link for this test. The
test’s Tasks tab is displayed.
2. Select Revert Assets on Production Immediately from the Verify Staging Deployment task.
3. Select the test from the View Tests window to open it.
4. Click Edit.
5. Select Disable to disable the test.
Follow these steps to end a test at a set date and time. You can set an end date and time while the project is in
the Author stage. To change the existing end date and time, you must first revert the assets as specified in the
previous procedure.
1. Select the test from the View Tests window to open it.
2. Click Edit.
3. Click the Date option in the End section of the Basic Info tab.
4. Enter a date and time to end the test.
5. Click View Summary.
Viewing Test Results
Test results can be viewed while a test is running and after the test is complete. By default, test results are
generated once a day. For information on how system administrators can change these settings and others
related to reports, see the Running the Report Generator Service (page 22) section.
Follow these steps to view test results:
1. Select the name of the test from the View Tests window. The test opens.
2. Click the Results tab. The Results tab displays the latest test results.
4 Creating a Test 95
The data in the Results tab is listed by group. Each group listing contains the following columns:
• The Results column displays the raw results of the test for the group.
• The % Results column displays the percentage that the Results column for this group represents of the total
results for all groups.
• The % Change column displays the difference between the Control group results and a non-Control group’s
results.
The following table describes the data returned in the rows of the Results tab.
Result Description
Participants The number of users that were part of a test group while the test was running. If
your sample group is small, this number might differ slightly from the percentages
assigned to each group.
Sessions The number of separate sessions started by group members
Test Content Viewed The number of times group members viewed content that was part of the test.
96 4 Creating a Test
Result Description
Total Pages Viewed The total number of pages viewed by group members during the test.
ATG Campaign Optimizer for Commerce customers see the following rows as well:
Result Description
Items Added to Cart The number of items added to shopping carts by group members during the test.
Total Orders The total number of orders placed by group members during the test.
Items Ordered The total number of items ordered by group members during the test.
Avg Items per Order The average number of items in each order placed by group members during the
test. This number is calculated by dividing Items Ordered by Total orders.
Total Value The total value of all orders placed by group members during the test.
Avg Value per Order The average value of each order placed during the test by group members. This
number is calculated by dividing Total Value by Total Orders.
Avg Value per Item The average value of each item placed during the test by group members. This
number is calculated by dividing Total Value by Items Ordered.
Conversion The conversion rate for group members. This number is calculated by dividing the
number of sessions in which an order was placed by group members by the total
number of group member sessions.
Total Persistent Orders
Abandoned
The total number of orders that were abandoned by registered users. An order is
considered abandoned if it is not placed within a specified time.
Total Persistent Value
Abandoned
The total monetary value of all orders that were abandoned by registered users. An
order is considered abandoned if it is not placed within a specified time.
Avg Value per
Abandoned Persistent
Order
The average monetary value of the items in abandoned, persistent orders. An
abandoned persistent order is an order created by a registered user that isn’t
placed within a specified time period.
Total Transient Orders
Abandoned
The total number of orders that were abandoned by transient users. These orders
were created by anonymous users (not logged in) and never placed.
Total Transient Value
Abandoned
The total monetary value of all orders that were abandoned by transient users.
These orders were created by anonymous users (not logged in) and never placed.
Avg Value per
Abandoned Transient
Order
The average monetary value of the items in abandoned, transient orders. An
abandoned transient order is an order created by an anonymous user (not logged
in) that is never placed.
4 Creating a Test 97
For more information about abandoned orders, see the Using Abandoned Order Services chapter of the ATG
Commerce Programming Guide.
98 4 Creating a Test
5 Using ATG Campaign Optimizer Projects 99
5 Using ATG Campaign Optimizer
Projects
Projects are an ATG Business Control Center mechanism for managing the tasks and assets involved in creating
and deploying Web content for a variety of ATG applications. Each project is associated with an underlying
workflow that defines the tasks necessary to complete the project. Typically, a project starts with an authoring
task, progresses to an approval phase where the content is reviewed, and ends with deployment to the
customer-facing web sites. The tasks involved in a project can be carried out by different people over a period of
time.
ATG Campaign Optimizer tests are instances of projects. When you create a new test, you use the project
interface, although you do so transparently – the Basic Info, Participants, and Groups tab for tests, for example,
work on top of the underlying project. However, you do have to access the project interface directly if you want
to do any of the following:
• Edit a deployed or running test
• Stop or delete a test
• View all the tasks associated with an ATG Campaign Optimizer project
• View a list of the project’s assets
• View the notes associated with a project (its history)
This chapter explains how to work with these items in the context of a project. For more general information
about projects and the ATG Business Control Center, refer to the ATG Content Administration Guide for Business
Users.
Displaying the Project Tabs
To display the project tabs for a test:
1. Display the Business Control Center Home page and locate the item in the To Do list. For details, see
Accessing the ATG Campaign Optimizer User Interface (page 71)
2. Click Go to Project.
The four project tabs are described in the sections that follow:
100 5 Using ATG Campaign Optimizer Projects
• Tasks Tab (page 100)
• Assets Tab (page 101)
• History Tab (page 102)
• Lock Conflicts Tab (page 102)
Tasks Tab
The Tasks tab for an ATG Campaign Optimizer project is shown in the image below.
The Tasks tab shows you all the tasks associated with the project.
You can assign tasks to yourself or to other users depending on the permissions you have been granted. You can
complete any task that is assigned to you or that is marked as unassigned.
The Modify/Delete tasks at the top of the display become active only when the test has been deployed. For
information on using them to edit or delete a test, see Editing Tests (page 90).
The set of tasks in the bottom half of the display represents the tasks that make up the creation phase of the
project; the default tasks for a test are as follows:
• Author
• Content Review
• Wait for Production Deployment Completion
• Revert Failed Deployment
5 Using ATG Campaign Optimizer Projects 101
• Wait for Production Revert Deployment Completion
For the current task, the Actions column contains options that represent the possible outcomes of the task. The
following image shows the Actions options for the Author task:
Selecting an action typically moves the project to the next task in the workflow. For example, selecting Ready for
Review for the Author task activates the Content Review task.
Note that the Wait for… tasks and the Revert Failed Deployment tasks represent stages in the workflow
where you wait for the system to complete the specified activity. You cannot take any action until the stage is
complete, so no dropdown menu appears for these tasks in the Actions column. For more information on these
tasks, refer to the ATG Content Administration Guide for Business Users.
Assets Tab
The Assets Tab displays all the assets that are included in your test, such as groups, page fragments, images,
segments, and folders. Although you do not add folders to a test explicitly, any folder associated with other test
assets is automatically added to the project so it can be deployed.
The following image shows the Assets tab with some sample data:
The base and current version numbers show which version of the asset has been added to the project. ATG
Content Administration uses the version numbers to track an asset’s editing history and to ensure that the latest
version of any asset is always available for editing. For detailed information on assets and version numbering,
see the section Creating and Managing Assets in the ATG Content Administration Guide for Business Users.
102 5 Using ATG Campaign Optimizer Projects
History Tab
The History tab displays information showing when the project was created and when each task was completed,
with any user- or system-defined notes associated with task completion. Notes cannot be edited or removed
from a project once they are added.
For each entry, the following information appears:
• The name of the person who performed the action
• The date and time that the action occurred
• The name of the action. The text is the display name of the workflow element associated with this action.
To create a new entry, click Add Note, and then enter the note text.
Lock Conflicts Tab
When a project is in the deployment stage of a workflow, its assets are locked, and they remain locked until
the project is checked in by the system, which occurs when deployment is complete. During that time, other
projects cannot deploy those assets. If you attempt to deploy an ATG Campaign Optimizer project and receive
asset lock errors, you can use the Lock Conflicts tab to view a list of all the projects that are holding assets locks
for any of the assets in the current project. For more information, refer to the ATG Content Administration Guide
for Business Users.
Not all asset conflicts can be detected by ATG Campaign Optimizer. In cases where an asset is edited or deleted
by another ATG application’s project, and that asset is referenced by ATG Campaign Optimizer, it may be
possible to advance the test through all deployment stages without having the conflict be detected.
5 Using ATG Campaign Optimizer Projects 103
You can determine which assets are locked in two ways:
• Download an Excel file of all blocking assets.
• Click View Locked Assets. This displays the Locked Assets tab of the deploying project, which lists the assets
that are locked against other projects
104 5 Using ATG Campaign Optimizer Projects
6 Customizing Metrics for ATG Campaign Optimizer Tests 105
6 Customizing Metrics for ATG
Campaign Optimizer Tests
ATG Campaign Optimizer allows you to set up tests that capture information about the following activities:
• Pages viewed by a user
• Particular items on a page viewed by a user
• Products added to a shopping cart by a user
• Purchases made by a user
These tests gather information into reporting statistics used to judge the efficacy of your site design as
compared to alternative designs. For a complete listing of the kinds of tests you can create with ATG Campaign
Optimizer, see ATG Campaign Optimizer Use Cases (page 77).
You may want to create tests that evaluate other parts of your site or different user experiences. For example,
you might want to determine the number of transient users who view an advertisement and register for the site
as compared to transient users who don’t view the advertisement. Any part of your site can be incorporated into
a ATG Campaign Optimizer test as long as you design resources to collect metrics about it. A metric is a statistic
produced by a test that appears in the ATG Campaign Optimizer reporting Results tab.
This chapter describes to site administrators how to create custom metrics for new or existing tests. Business
users should decide the metrics that they want to see in reports and site administrators should use this chapter
to learn how to implement them.
When you are adding metrics, you need to do the following in this order:
1. Create or modify your metric as described in this chapter. See Metrics Checklist (page 107) for a specific
outline of the tasks you need to complete.
2. Re-assemble an application that includes the reporting, management, and runtime modules in order to
make your custom metric available. Deploy the application, then start it.
3. As you would with any test, create a test, preview it and deploy it. See Creating a New Test (page 79) and
Previewing Tests (page 89).
106 6 Customizing Metrics for ATG Campaign Optimizer Tests
How ATG Campaign Optimizer Creates Reports
When you create a test, you identify alternate versions of a site content, each of which is displayed to a different
group of users. When users interact with the site, information about their activity is logged to the database.
Logged data is later computed into reports and displayed as metrics in the ATG Campaign Optimizer Results tab.
ATG Campaign Optimizer creates a scenario that implements your test. The scenario incorporates information
from metric handler components to decide what activities to log. Periodically, the Report Generator Service
detects which tests are active and compiles logged data from them into reports. The Report Generator Service
refers to metric handler components to determine, for a given log, the data to compute and the database tables
in which to store the resultant values.
The Report Generator Service runs independently from the ATG Campaign Optimizer runtime module, which
allows it to reside on a separate server. The Report Generator Service compiles reporting data at intervals in
order to distribute the performance impact. When the Report Generator Service calculates reporting data,
it computes values based on logged data. Subsequent Report Generator Service invocations compute new
reporting values using new logged data and combine the new values with the computed values from earlier
invocations.
When users want to view reports about a test, they navigate to the test in ATG Campaign Optimizer and display
the Results tab. The Results tab JSP consults a list of metric info components to determine what metrics to
display. The metric info components also identify resource bundles that provide display names for those metrics.
Most values for metrics are supplied by the Report Generator Service. Other values are computed on the fly by a
report property mapper.
Designing Metrics
When you want to gather data about a site activity, you design a metric. You can think of a metric as the statistic
you want produced from a test that’s used in a report. A test can produce one metric or several metrics. For
example, consider a test that provides two different Refer a Friend forms to users. Users are divided into two
groups based on the Refer a friend page they are shown. The goal of this test is to see if one form entices users
to refer more friends as judged by the number of form submissions. This test would produce two metrics:
• The total number of users who refer a friend organized by group.
• The average number of friends referred by a person organized by group.
Each metric needs three pieces of information defined for it: an event, logging data, and reporting data.
When you are creating a metric, consider what event you want ATG Campaign Optimizer to watch and extract
information from. For example, tracking user registrations would involve a Registration event. A custom
metric can involve any event, such as an event you need to create yourself or have created previously for use in
ATG Scenarios. It may also involve existing events that are not currently used for metrics. Using any such events
requires you to create custom metrics.
Logging resources describe what information generated from the test should be saved and later, evaluated into
metrics. Some of this data can describe the users in your test, such as their profile and participation group IDs.
Other information can be generated from an event itself, such as the amount of a user’s order. The log holds raw
data about every user involved in a test.
The reporting mechanism manipulates the log data, which usually involves adding up some number of rows
in a table or adding the values in certain columns in the logging database table, and displaying the results in
6 Customizing Metrics for ATG Campaign Optimizer Tests 107
the Results tab of the ATG Campaign Optimizer user interface. One metric reports how many users participated
in the test, broken down by group. Another more complicated metric might describe how many users in each
group registered for the site. Although these examples use some of the same data, such as the group ID and
profile IDs, the way they are tallied by the ReportGeneratorService produce different results, each one its
own metric.
Metrics Checklist
This chapter is written for users who want to create new metrics or want to add additional reporting
functionality to existing events. Here’s a check list of tasks that you need to complete when you are working
with custom metrics and cross references to procedures that walk you through these tasks.
To create a new metric:
1. If your metric requires a new event, create it now by following instructions provided in the Adding Custom
Events section of the ATG Personalization Programming Guide for instructions. Otherwise, skip this step.
2. Create a new item descriptor and database table for logging data. See Adding New Logging Content to a
Repository and Database (page 108).
3. Add new properties to an existing reporting item descriptor for your metric . Also add new columns to the
existing reporting table or a new reporting table. See Adding New Reporting Content to a Repository and
Database (page 110).
4. Add a report display label to your resource bundle. Create a new resource bundle, if necessary. See Defining
Resource Bundles (page 111).
5. Create a data collection object, mapper, dataset, and queue. See Creating Recording Devices (page 111).
6. Configure a metric handler component to define logging and evaluate log data for your metric. If you are
using an event that already has a metric handler component, configure that one. Otherwise, create a new
metric handler component and configure it to create your metric. See Creating a Metric Handler (page 112).
7. If your metric requires computations that involve data from more than one metric handler component to
compile the report, extend the report property mapper. See Extending the Report Property Mapper (page
118).
8. Configure a Metric info component. If you created a new resource bundle, create a new Metric info
component. See Configuring a Metric Info Component (page 119).
9. Configure other components to use your metric handler and Metric info components. See Directing
Components to Use Your Logging and Reporting Resources (page 120).
To add metrics for an event that is already used in tests:
1. Add new properties to an existing logging item descriptor for your metric and add new columns to the
existing logging database table. See Adding New Logging Content to a Repository and Database (page
108).
2. Add new properties to an existing reporting item descriptor for your metric . Also add new columns to the
existing reporting table or a new reporting table. See Adding New Reporting Content to a Repository and
Database (page 110).
108 6 Customizing Metrics for ATG Campaign Optimizer Tests
3. Create a new resource bundle and add a report display label to it. See Defining Resource Bundles (page
111).
4. Copy the existing mapper file used by the event from the /atg/registry/data/mapper directory and
add data-listener tags to support the new metric. Add the mapper file to your configuration layer so that it
overrides the existing mapper file. If you don’t have one, add it to the <ATG10dir>/home/localconfig/
atg/registry/data/mapper directory . For information on mappers, see the Mapper XML Definition
Language of the ATG Personalization Programming Guide.
5. Update the properties in the metric handler component that are relevant for your metric. For a list of metric
handler components, see Configuring Data Logging (page 20). You can find a description for the metric
handler properties in About MetricHandler (page 113).
6. If your metric requires computations that involve data from more than one metric handler component to
compile the report, extend the report property mapper. See Extending the Report Property Mapper (page
118).
7. Create a new metric info component and update it with information about your metric. See Configuring a
Metric Info Component (page 119).
8. Configure the Report Manager to use your metric info component. See Directing Components to Use Your
Logging and Reporting Resources (page 120).
Updating Your Repositories and Database
In order to use a metric in a test, you need to define where data gathered by the test will be stored. There are
two kinds of data generated by tests: raw log data produced by the recorders in the tests and report data that
result when log data is evaluated. To support your metric, you need to add or modify the item descriptors for the
logging and reporting repositories so that they map to new tables and columns in the database that you create
to hold test data.
You need to make adjustments to two repository definitions:
• /atg/abtest/reporting/ABTestLogRepository.xml (logging) and
• /atg/abtest/reporting/ABTestReportRepository.xml (reporting)
When you add properties to a repository, either by adding properties to an existing item descriptor or creating
a new item descriptor, you save your additions in an XML file. This file specifies the XML-combine tag and is
added to the CONFIGPATH so that it is appended to the parent repository definition file. For information about
repositories, see the ATG Repository Guide. To learn about XML-combine, see the XML File Combination section of
the ATG Platform Programming Guide.
You can find a list of all ATG Campaign Optimizer database tables in Appendix B, ATG Campaign Optimizer
Database Tables (page 41). For instructions on modifying your database configuration, see the documentation
provided from your database vendor.
Adding New Logging Content to a Repository and Database
To log additional data, you need to decide what kind of data you want to capture and how that data will be
stored.
6 Customizing Metrics for ATG Campaign Optimizer Tests 109
Determining What Data to Log
You also need to decide what kind of data about the event you want to log. In a sense, you are defining the
building blocks for your metric by determining which data points to capture. Those data points will be used to
generate your metric. In order to track a data point, you need to add it to the appropriate item descriptor as a
property and define a column for it in the relevant database table.
There are some data that are common to most metrics, while other data is only applicable for certain ones.
Here’s a list of data that you should log:
• Time stamp: Capturing a time stamp identifies when a logged activity occurs. The Report Generator
Service requires you to log a time stamp for your test data. You may choose to have a primary key that’s a
combination of profile ID and timestamp, if this does not cause a delay in performance for your ATG instance.
The data type for time stamp should be timestamp in the item descriptor and database.
• Dataset: Every event needs a dataset in order to map the event that generates the data to the data in
the database. In rare cases, a log holds information about two datasets, each from a different event. The
Participant Assigned to a Test Group event uses two datasets to track each group it defines. The data type for
dataset should be string in the item descriptor and varchar(40) in the database.
• Group ID: All tests organize users into at least two groups: one that views the site as is (control group) and
one or more other groups, each of which represents a unique site experience. Creating groups allows you
to derive reliable statistics you can use to judge the efficacy of the parts of your site. You are required to log
a group ID. The data type for group ID should be string in the item descriptor and varchar(40) in the
database.
• Test ID: Providing a test ID is required by ATG Campaign Optimizer in order to derive meaningful statistic
about test results. The data type for test ID should be string in the item descriptor and varchar(40) in the
database.
• Profile ID: One way to identify the number of times a user passes through a test is to track each user’s ID. Other
benefits to gathering profile IDs is that it gives you access to the user’s profile so tests that log profile IDs can
provide a richer context about the test participants. You may choose to use a profile ID as part of a primary
key, if you are creating a new table for your metric. The data type for profile ID should be string in the item
descriptor and varchar(40) in the database.
• Currency code: Sites that support multiple locales need to record the currency used for monetary data.
Currency code captures the ISO 4127 currency code used for any currency values recorded for an event. The
data type for currency code should be string in the item descriptor and varchar(40) in the database.
Keep in mind that each column holding data that’s a number needing to be tallied in a report, such as
revenueOrdered, should be identified as such in the metric handler component. The metric handler
component includes the currencySumProperties, doubleSumProperties, and integerSumProperties
properties to identify each property used for a metric of the specified type. See About MetricHandler (page
113) for more information on these properties.
Where to Store Metric Data
Will you need a new item descriptor or can you add properties to an existing one? Do you need to create a new
table or can you add columns to an existing table? It depends on the metric you are working with.
When adding new metrics for existing events, you should add new properties to the existing log item descriptor
and add new columns to the existing log database for that table. For example, you may currently monitor user
page visits, but would like to also know the state of residence for those users. You can create a new property
for the pageVisitLogData item descriptor in ABTestLogRepository that defines state as a property,
information for which is stored in a new state column in the abl_page_visit database table. The resultant
110 6 Customizing Metrics for ATG Campaign Optimizer Tests
report might calculate the number of page visits per user organized by state: 18 for Mississippi, 806 for Texas,
and so on.
For new metrics added to events that aren’t currently used by ATG Campaign Optimizer tests, you should create
a new log item descriptor and database table. A custom metric could track information about users who register
for a site. Information such as profile ID, group ID, test ID, and time stamp could be logged in a database table
called abl_registration with columns for holding profile, group, test, and time values. This database table,
like all tables that store logging data for ATG Campaign Optimizer tests, must be accessible by the runtime and
reporting modules and should define an index for the test_id column. The corresponding item descriptor,
called RegistrationLogData, would define the four pieces of information as properties. In such cases, you
would also need to create a dataset, data collection object, queue, and mapper for your metric. See Creating
Recording Devices (page 111) for instructions.
Ensuring Optimal Performance
Every item descriptor defined in ABTestLogRepository.xml should use the following attribute in order to
avoid performance degradation in the ReportGeneratorService:
<attribute name="defaultUncachedItemQueries" value="true"/>
Adding New Reporting Content to a Repository and Database
Metric are values created by computing values in the log database tables and storing those values in the
reporting database tables. You need to define reporting resources that hold these computed values.
Once you have determined the metrics you want to display in the ATG Campaign Optimizer Results tab, you can
define properties/database columns that hold the relevant data. There are three pieces of data that must exist as
reporting properties/columns:
1. The group ID associates the logging and reporting data together so it must be represented in both the
logging and reporting data structures. The group ID is already defined in the reporting schema, so you only
need to add this column if you are creating a new reporting table.
2. The ABTestReportRepository has an item descriptor called testReportGroup that holds properties that
require some simple mathematical computation, such as addition or subtraction. For example, number of
users is represented as a property here. Be sure to add a property for your metric in the testReportGroup
item descriptor and provide a corresponding database column.
3. Each custom metric should append a property or several properties to an item descriptor in
ABTestReportRepository. It’s a good idea to hold all data for a test group in one auxiliary database
table for optimal ReportGeneratorService performance, but you can use multiple tables if that’s more
convenient. The reporting database table must be accessible by the management and reporting modules.
You may find that your metric requires computations that use data from multiple metric handlers. Use the report
property mapper to handle these computations and for others, such as those that calculate averages, that are
quick to compute. The report property mapper calculates its values when a user requests to view the Results tab
and discards these values afterwards. Although log data for such metrics is kept in the ABTestLogRepository,
the reporting data is not persistent and so it is not held in ABTestReportRepository.See Extending the
Report Property Mapper (page 118) for information.
For example, if you want to see a total number of times test users view a Member Benefits page, you would
define a property called MemeberBenefitsPageVisits in ABTestReportRepository testReportGroup
item descriptor and provide a similar column name to a database table that holds page visit information.
Similarly, MemeberBenefitsLog is added as a table to the logging database table and an item descriptor to
6 Customizing Metrics for ATG Campaign Optimizer Tests 111
ABTestLogRepository. Each time a report is generated, a total count is calculated based on information in the
log database.
MemberBenefitsPageVisits holds a singular value, but you want to know how many times in total
a page is viewed. You need to indicate that some value needs to be tallied. To do this, you set the
metric handler generatedCountProperty property to the property the property you added to the
MemeberBenefitsPageVisits property in the testReportGroup item descriptor. The metric handler
component also provides properties for adding property values together. See About MetricHandler (page 113)
for more information.
Creating Additional Resources
You need to create resources that define how your metric is named in the ATG Campaign Optimizer user
interface. You also need to create recording devices that determine how your metric’s data is logged in the
database.
Defining Resource Bundles
You need to make your resource bundle reflect the appropriate naming for your metric. If your application does
not already have a resource bundle, create one now. You can use as many resource bundles as you like. If you
decide to use more than one resource bundle, it’s a good idea to keep all information for a given metric in the
same resource bundle and direct the metric handler and metric info components to use it.
1. In a resource bundle, set the segmentNameResourceKey key to a unique name that identifies your metric.
You will need to save this key to the metric handler segmentNameResourceKey property. Set the resource
value to the name that will represent the segment in scenarios that uses your metric.
2. In a resource bundle, add a testResults.rows.propertyName key where propertyName represents the
metric as it is defined in the ABTestReportRepository testReportGroup item descriptor. Add a key and
set this value to the label that will be displayed for the metric in the Results tab.
3. Add the resource bundle to the ATG CLASSPATH. For instructions, see the Application Module Manifest File
section of the ATG Platform Programming Guide.
Creating Recording Devices
To save data for your metric to the database, you need to create and configure components that collect the
data for logging (data collection object), minimize the performance impediment caused by committing data to
the database (queue), bundle data for an event (dataset), and map properties to database columns (mapper).
Every metric requires a unique instance of the four components. Although this section describes how to create
recording devices, you need not create the recorder itself because ATG Campaign Optimizer has already created
it for you. Follow these steps:
1. Create a data collection object by following the instructions in the Creating a New Data Collection Object
section of the ATG Personalization Programming Guide.
To view a data collection object (also called a logger) defined for an existing metric, navigate to /atg/
abtest/logging/ContentViewedSQLLogger in the ACC Pages and Components > Components by Path
task area.
112 6 Customizing Metrics for ATG Campaign Optimizer Tests
2. Create a queue by following the instructions in the Queues section of the ATG Platform Programming Guide. Be
sure to set the datasetLogger property to your data collection object.
To view a queue defined for an existing metric, navigate to /atg/abtest/logging/
ContentViewedLoggerQueue in the ACC Pages and Components > Components by Path task area.
3. Create a dataset in <ATG10dir>\home\localconfig\atg\registry\data\datasets by following
the instructions in the Creating a New Dataset for a Custom Recorder section of the ATG Personalization
Programming Guide. When deciding how many events to store, consider that a larger portion ensures a more
representative sampling, but a smaller portion decreases the performance impact. In general, log all events
for metrics that are summed values and a smaller amount for metrics that are average values. Factors that
affect your decision include the frequency of logging, necessity of comprehensive data, and the length of
time your test runs (fewer overall test participants increases the significance of each participant’s results).
Note: The majority of metrics involve one dataset, but it may be necessary to create two if the table for a
metric holds two groups of data as is the case in the ParticipantAssignedToTestGroup metric. The goal
of this metric is to assign users into groups. Each dataset represents one group.
To view the raw XML for a dataset that is defined for an existing metric, unjar <ATG10dir>
\CampaignOptimizer10.1.2\ABTest\runtime\
config\config.jar and navigate to atg\registry\data\datasets\contentviewed.xml.
4. Create a mapper in <ATG10dir>\home\localconfig\atg\registry\data\mappers by following the
instructions in the Creating the New Mapper section of the ATG Personalization Programming Guide. Also, see
the Mapper XML Definition Language section in the same book for more information. Be sure to enclose the
path to the queue in the <data-listener> tags.
To view a mapper defined for an existing metric, unjar <ATG10dir>\CampaignOptimizer10.1.2\ABTest
\runtime\config\
config.jar and navigate to atg\registry\data\mappers\contentviewed.xml.
Defining Your Metric
Every metric involves an event representing some user activity, for which data is logged and later generated into
reports. ATG Campaign Optimizer relies on a metric handler component to describe the data logged for an event
and reporting logic used to evaluate it. For example, a metric handler listens for an event and designates the
dataset used to log information about it. The metric handler also identifies the log properties that hold integer,
double or monetary numbers, the sum of which need to be reflected in the Results tab.
Metrics that require values from more than one metric handler component are handled by the report property
mapper component, which produces temporary reporting values when the Results tab displays. The properties
defined in metric handler and report property mapper for calculating report data are represented in metric info,
the component responsible for specifying the items to display in the Results tab reports.
Creating a Metric Handler
Each event used in a test relies on a metric handler component to describe how the information generated
by the event is logged and compiled into reports. Because each event is unique, it has unique reporting and
logging requirements so there’s one metric handler component per event. Keep in mind that one metric handler
can represent multiple metrics, in fact all metrics that derive values from a given event should use the same
metric handler.
6 Customizing Metrics for ATG Campaign Optimizer Tests 113
ATG Campaign Optimizer comes with several metric handler components by default. For a listing, see
Configuring Data Logging (page 20). If your metric uses an event that already has a metric handler, configure
that metric handler for your metric. Otherwise, create a new metric handler component and configure it
accordingly:
1. Create a metric handler component from one of the following classes:
• Use atg.abtest.metrics.MetricHandler for events when you want to limit those events limited by
conditions. A Register event is a good example of an event that doesn’t use conditions.
• Use atg.abtest.metrics.EventConditionMetricHandler for events (except Form Submission and
Page Visit) that use a condition. For example, a custom event that tracks how many people upgrade from a
free site membership to a paid site membership would use a Register event with an upgrade condition.
• Use atg.abtest.metrics.ConditionalFormSubmissionMetricHandler for Form Submission events
when you want to track the submissions of a specific form.
• Use atg.abtest.metrics.ConditionalPageVisitMetricHandler for Page Visit events when you
want to monitor visits to a specific page.
2. Configure the properties in your metric handler component provided by the MetricHandler class. See
About MetricHandler (page 113) for a list of properties.
3. For components that don’t implement the MetricHandler class directly, you need to configure class-specific
properties as well. See the section for your component’s class below.
About MetricHandler
The base class, atg.abtest.metrics.MetricHandler, determines the data that should be logged for a given
event. By default, it supports the tracking of data that is common to all tests, such as when a test starts and ends
as well as when new or transient users are assigned to a group.
ATG Campaign Optimizer comes with MetricHandler components, each of which facilitates reporting for a
different event type. When you create tests that use events supported by default, ATG Campaign Optimizer
automatically uses the appropriate metric handler component and configures it accordingly. For more
information about MetricHandler components, see Configuring Data Logging (page 20).
Use MetricHandler when your metric when the event it uses isn’t limited by a condition. Configure an instance
of MetricHandler with information that’s tailored to your event. Here’s a quick summary of properties by
subject matter:
• These properties are required: datasetPath, eventJMSType, logDataItemDescriptorName,
segmentNameResourceBundle, and segmentNameResourceKey.
• If you want to combine information about two datasets in the same log table, see datasetPropertyName
and subtractionDatasetPath.
• If you record monetary values for your event, see currencySumProperties,
logCurrencyCodePropertyName, reportCurrencyCodePropertyName, and targetCurrency.
• For other number values that require calculation, see doublesumProperties and integerSumProperties.
• If you want to count the number of times an event occurs, see generatedCountProperty,
uniqueCountGeneratedProperty, and uniqueCountLogProperty.
Note that this isn’t a complete list of properties supplied by MetricHandler, but rather a listing of properties
for which you are encouraged to supply values:
114 6 Customizing Metrics for ATG Campaign Optimizer Tests
Property Description
currencySumProperties A map made up of the following:
- A key set to a currency property that needs to be
added up. This property you specify here is defined in the
logDataItemDescriptorName item descriptor of the
ABTestLogRepository.
- A value set to the ABTestReportRepository property that
holds, for the property specified in the key, the total amount
gathered for all users in a test group.
When you specify a value for this property, you need to
provide values to logCurrencyCodePropertyName,
reportCurrencyCodePropertyName, and targetCurrency.
datasetPath The path to the dataset used to log the particular event.
(Required)
datasetPropertyName The property in ABTestLogRepository that
identifies the datasets used by the item descriptor
in the logDataItemDescriptorName property.
You need to provide a value to this property only
if you specify generatedCountProperty or
uniqueCountGeneratedProperty.
doubleSumProperties A map made up of the following:
- A key set to a property of type double that needs to be
added up. This property you specify here is defined in the
logDataItemDescriptorName item descriptor of the
ABTestLogRepository.
- A value set to the ABTestReportRepository property that
holds, for the property specified in the key, the total for all
users in a test group.
eventJMSType The type of JMS event to be logged. (Required)
generatedCountProperty The property defined in the testReportGroup item
descriptor that will hold the total number of events of this type
logged for one test group.
When you provide a value to this property, you need to supply
a value to datasetPropertyName as well. If you use two
datasets and you want to subtract the results from one dataset,
add the name of the dataset you want to subtract to the
subtractionDatasetPath property.
6 Customizing Metrics for ATG Campaign Optimizer Tests 115
Property Description
integerSumProperties A map made up of the following:
- A key set to a property of type integer that needs to
be added up. This property you specify here is defined in
the logDataItemDescriptorName item descriptor of the
ABTestLogRepository.
- A value set to the ABTestReportRepository property that
holds, for the property specified in the key, the total for all
users in a test group.
logCurrencyCodePropertyName The property in the ABTestLogRepository that holds the
ISO 4217 currency code for all currency values in this logged
entry.
logDataItemDescriptorName The item descriptor for the log that holds data about this
event. (Required)
recordEventAction The scenario action to use to record the event.
Omitting a value to this property causes the default,
recordABTestEvent, to be used.
renderLoggingAction A Boolean property that determines if a logging action
will be included in test scenarios. Omitting a value to this
property causes the default, true, to be used. See Turning off
Logging (page 21) for more details.
reportCurrencyCodePropertyName The property in the ABTestReportRepository that holds
the ISO 4217 currency code used for all currency values in the
report. The reportCurrencyCodePropertyName has the
same value as MetricHandler.targetCurrency.
segmentNameResourceBundle The resource bundle that specifies a segment name used in
scenarios that record this event. (Required)
segmentNameResourceKey The resource bundle segmentNameResourceKey key that
identifies the segment name that acts as a label for scenario
segments that record this event. (Required)
subtractionDatasetPath The property in the ABTestLogRepository that identifies a
dataset with log entries that should be subtracted from the
total set (identified in the datasetPath property). Set this
property only when you set generatedCountProperty.
targetCurrency The ISO 4217 currency code used for all report monetary values
computed by this metric handler.
116 6 Customizing Metrics for ATG Campaign Optimizer Tests
Property Description
uniqueCountGeneratedProperty The property in the ABTestReportRepository that holds the
tally generated for the uniqueCountLogProperty value.
When you provide a value to this property, you need
to supply values to datasetPropertyName and
uniqueCountLogProperty.
uniqueCountLogProperty A property in the ABTestLogRepository for which ATG
Campaign Optimizer will tally the total number of unique
values. Use this property when you want a total count that
doesn’t involve all rows in the database. For example, to
determine how many times a user visited a page per session,
you’d set this property to session ID.
About EventConditionMetricHandler
The atg.abtest.metrics.EventConditionMetricHandler class extends the MetricHandler class to
allow you to define scenario conditions for your event. For example, rather than tracking the total number of
purchased orders with MetricHander, you can use EventConditionMetricHandler to monitor how often
users register for a certain kind of membership, such as free or paid. The EventConditionMetricHandler class
generates test scenarios that log data only when an event satisfies a condition you define.
To collect data for the event using EventConditionMetricHandler, create a component of this
class in the ACC and provide values to the base MetricHandler properties as well as to the following
EventConditionMetricHandler-specific properties:
Property Description
eventPropertyName A property for the event. Although an event may have several properties
available, EventConditionMetricHandler can handle one condition per
event. For example, the ProfileUpdate event contains old profile values and
new profile values, among other properties. This means you could define your
metric handler to log an event if a profile contains a certain value or is changed to
include a specific new one. (Required)
To locate the property name for standard ATG events, see the section for
your event in the Using Scenario Events chapter of the ATG Personalization
Programming Guide.
For commerce events, see Appendix C: ATG Commerce Messages of the ATG
Commerce Programming Guide.
constantType Data type for the value in constantValue. When no value is provided to this
property, the default, java.lang.String, is used.
constantValue The value that is compared to the property indicated in the eventPropetyName.
(Required if the operator specified in filterOperator is binary.)
6 Customizing Metrics for ATG Campaign Optimizer Tests 117
Property Description
filterOperator The operator used to evaluate the event property value. (Required)
Options include the following: isNull, isNotNull, isTrue, isFalse,
eq (equals), ne (not equals), lt (less than), le (less than or equal
to), gt (greater than), ge (greater than or equal to), contains,
notContains, containsIgnoreCase, startsWith, notStartsWith,
startsWithIgnoreCase, notStartsWithIgnoreCase, endsWith,
notEndsWith, endsWithIgnoreCase, notEndsWithIgnoreCase, includes,
and notIncludes.
The operator is considered to be unary if it appears in the list defined in
unaryOperators. If you specify a unary operator, you shouldn’t specify a
constantValue or constantType.
unaryOperators An array of single operand operator strings used to evaluate the
constantValue. Options include: isNull, isNotNull, isTrue, and isFalse.
Set this property unless the condition you want to use is a custom, unary
condition. In this case, override the default values in this property by setting it to
your custom condition. This means that filterOperator and unaryOperators
will have the same value.
About ConditionalFormSubmissionMetricHandler
The atg.abtest.metrics.ConditionalFormSubmissionMetricHandler class extends
EventConditionMetricHandler to provide a preconfigured class for FormSubmission events. You should
use this class to configure logging and reporting when you want a test to record when a specific form page is
submitted.
Note: Pages that include the form need to be configured to generate events. See the Form Submission Event
section of the ATG Personalization Programming Guide for instructions.
When you use this class, create a component and define values for the relevant properties as described in About
MetricHandler (page 113). The only property provided by ContidionalFormSubmissionMetricHandler
that you need to set is constantValue. Set constantValue to the form name for which information will be
logged when it is submitted.
The following properties are provided with these default values:
Property Default Value
eventJMSType atg.das.FormSubmission
eventPropertyName formName
filterConstruct event-property-filter
filterOperator eq
118 6 Customizing Metrics for ATG Campaign Optimizer Tests
About ConditionalPageVisitMetricHandler
The atg.abtest.metrics.ConditionalPageVisitMetricHandler class extends
EventConditionMetricHandler to support PageVisit events that use a condition. You should use this class
when you want visits to a particular page to be tracked (the particular page being the condition). ATG Campaign
Optimizer includes a MetricHandler component called PageVisitMetricHandler that supports PageVisit
events without conditions: it tracks the total number of pages viewed by test participants.
When you use this class, create a component and define values for the relevant properties as described in About
MetricHandler (page 113). The only property provided by ContidionalPageVisitMetricHandler that you
need to set is constantValue. Set constantValue to the form name for which information will be logged
when it is submitted.
The following properties are provided with these default values:
Property Default Value
eventJMSType Atg.dps.PageVisit
eventPropertyName scenarioPathInfo
filterOperator Eq
Extending the Report Property Mapper
Most computations are handled by a metric handler, the remainder are calculated by the report property
mapper. The report property mapper is able to compute values that involve more than one metric handler.
For example, to determine the average number of orders submitted per session, you rely on a metric handler
components to add up the total number of submitted orders (OrderSubmittedMetricHandler) and sessions
(SessionMetricHandler), and configure the report property mapper to divide the submitted order total by
the session total.
Unlike a metric handler, the report property mapper executes when a user requests the Results tab in the ATG
Campaign Optimizer UI. Be aware that complex computations may delay the Results tab display so design your
report property mapper to evaluate simple calculations in order to ensure optimal performance. The metrics
calculated by the report property mapper are not saved to the database and, therefore, are discarded after they
are generated.
Averages are a good example of computations that should be handled by a report property mapper, even when
averages involve values managed by one metric handler. It is more efficient to calculate averages when they
are needed because they are quick to compute so saving them to the database would consume more resources
than is worthwhile.
To modify the report property mapper to perform a calculation for your metric, complete the following tasks:
1. Extend the existing Property Mapper class by creating a subclass of
atg.abtest.web.reporting.PropertyMapper. If you are running ATG Commerce, subclass
atg.abtest.web.commerce.reporting.CommercePropertyMapper instead. Add your class to the
CLASSPATH.
2. Code your subclass to perform the necessary calculation. See Average Order Price Sample Code (page 119)
below.
3. Create a new properties file for the report property mapper component and include your new class as such:
6 Customizing Metrics for ATG Campaign Optimizer Tests 119
$class=packageName.classNameUpdate
where packageName is the package and classNameUpdate is the class name.
4. Save your new properties file as <ATG10dir>/home/localconfig/atg/
abtest/web/reporting/PropertyMapper.properties.
Note: Be sure to add your property to the metric info component metricIds property so that it appears in the
report. See Configuring a Metric Info Component (page 119) for details.
Average Order Price Sample Code
Here’s the code used by ATG Campaign Optimizer for Commerce to implement the average order price metric.
This code accesses the price total (revenue) for all orders and the total number of orders. Then, it divides the
order total by the price total to produce the average revenue.
public Object getPropertyValue(RepositoryItem pItem, String pPropertyName) {
if (pPropertyName.equals("avgRevenuePerOrder")) {
// Average revenue per order = revenue ordered / orders
Double revenueOrdered = (Double) pItem.getPropertyValue("revenueOrdered"); Integer orders = (Integer) pItem.getPropertyValue("orders"); if (revenueOrdered == null || orders == null || orders.intValue() == 0) return null; return new Double(revenueOrdered.doubleValue() / orders.doubleValue());}else { return super.getPropertyValue(pItem, pPropertyName); } }}
Configuring a Metric Info Component
The atg.abtest.web.reporting.MetricInfo class determines how your metrics are displayed in the
Results tab. Create an instance of Metric info for each resource bundle you’ve created. There should be one
Metric info component for each resource bundle you use. Provide a value to the following metric info properties:
Property Description
resourceBundle The name of the resource bundle that holds resources associated with properties
listed in metricIds. Each item in the metricIds property uses a resource
bundle to provide a label that identifies the metric as a report in the Results tab.
See Defining Resource Bundles (page 111) for instructions.
metricIds The names of the properties defined in the ABTestReportRepository that
hold values you’d like displayed in the report. Also include property names
defined in the report property mapper for calculated values that should appear
in the report. The order in which items are included in this property indicates the
order they appear in the report.
120 6 Customizing Metrics for ATG Campaign Optimizer Tests
Property Description
currencyMetricIds The subset of properties listed in the metricIds property that hold monetary
values. This property causes the appropriate currency symbol to appear in the
Results tab for values of the listed properties. The currency code specified in the
ABTestReportRepository determines the currency code symbol used here.
Directing Components to Use Your Logging and Reporting
Resources
To implement your custom metric, you need to register it with the following ATG Components:
1. To permit event logging for your metric in test scenarios, add the name of your metric handler component to
/atg/abtest/management/TestManager.metricHandlers.
2. To enable reporting for your metric, add the name of your metric handler component to /atg/abtest/
reporting/ReportGeneratorService.metricHandlers.
3. To define the reporting display in the Results tab of ATG Campaign Optimizer , add the name of your Metric
info component to /atg/abtest/web/reporting/ReportManager.metricInfos.
Index 121
Index
Symbols% Change, 95
% Participants, 74
% Results, 95
AA/B Test Ended, 37
A/B Test is ready for deployment, 37
A/B Test Participant Unassigned, 37
A/B Test session ended, 38
A/B Test that was previously considered ready for
deployment is now not ready for deployment, 37
A/B Test, definition, 75
abl_content_viewed, 51
Dataset, 52
date_time, 52
group_id, 52
profile_id, 52
session_id, 52
test_id, 52
abl_ended, 50
Dataset , 51
date_time, 51
test_id, 51
abl_item_added, 61
amount, 62
currency, 62
Dataset, 61
date_time, 62
group_id, 62
itemid, 62
ordered, 62
profile_id, 61
quantity, 62
Session_id, 62
test_id, 62
abl_order_abandon, 63
amount, 64
currency, 64
dataset, 63
date_time, 64
group_id, 64
orderid, 64
profile_id, 63
test_id, 64
abl_order_submit, 62
amount, 63
currency, 63
dataset, 62
date_time, 63
group_id, 63
item_qty, 63
orderid, 63
profile_id, 62
session_id, 63
test_id, 63
abl_page_visit , 49, 50
dataset, 50
date_time, 50
profile_id, 50
Session_id, 50
test_id, 50
url, 50
abl_session, 52
Dataset, 52
date_time, 52
group_id, 53
profile_id, 52
session_id, 52
test_id, 52
abl_started , 50
dataset , 50
date_time, 50
test_id, 50
abl_trnsnt_abandon, 64
amount, 65
currency, 65
dataset, 64
date_time, 64
group_id, 65
orderid, 64
profile_id, 64
session_id, 64
test_id, 65
abl_user_group, 51
Dataset, 51
date_time, 51
group_id, 51
profile_id, 51
session_id, 51
test_id, 51
abr_control, 53
Id, 54
122 Index
last_report, 54
abr_dcs_rpt_group, 65
converted_sessions, 66
Currency, 66
group_id, 65
Order, 65
revenue_ordered, 65
units_added, 65
units_ordered, 65
abr_dcsabd_rpt_gr, 66
group_id, 66
orders_abandon, 66
revenue_abandon, 66
trainsient_abandon, 66
tran_rev_abandon, 66
abr_report, 54
last_modified_date, 54
test_id, 54
test_state, 54
abr_report_group, 54
content_views, 55
group_id, 54
page_views, 55
Sessions, 54
test_id, 54
Users, 54
abt_elct_ctgs, 67
category_id, 67
element_id, 67
sequence_num, 67
abt_elem_ctgy_tmp, 67
catalog_id, 67
element_id, 67
exclude, 67
new_template, 67
old_template, 67
abt_elem_page, 59
element_id, 59
new_url, 59
old_url, 59
abt_elem_pg_frag, 60
element_id, 60
new_url, 60
old_url, 60
request_url, 60
abt_elem_prod_tmp, 68
catalog_id, 68
element_id, 68
exclude, 68
new_template, 68
old_template, 68
abt_elem_promo, 69
element_id, 69
promotion_id, 69
trigger_param, 69
trigger_type, 69
abt_elem_rep_slot, 60
element_id, 60
slot, 60
Targeter, 60
abt_element, 58
Element_id, 58
Type, 58
abt_elpt_ctgs, 69
category_id, 69
element_id, 69
sequence_num, 69
abt_elpt_prds, 68
element_id, 68
product_id, 68
sequence_num, 69
abt_elrs_item, 60
element_id, 61
item_id, 61
sequence_num, 61
abt_group, 57
control, 58
description, 58
fixed_percentage, 58
group_id, 58
name, 58
Percentage, 58
abt_group_elem, 59
element_id, 59
group_id, 59
sequence_num, 59
abt_markers , 48
creation_date, 49
marker_data, 49
marker_id, 48
marker_key, 49
marker_type, 49
marker_value, 49
profile_id, 49
Version, 49
abt_preview, 53
id, 53, 53
preview_id, 53
scenario_name, 53
test_id, 53
abt_test, 56
creation_date, 57
description, 57
enabled, 56
end_date, 56
modification_date, 57
Index 123
modifier_id, 57, 57
name, 56
owner_id, 57
participants, 57
preview_url, 57
report_only, 57
scenario_path, 57
scenario_root, 57
start_date, 56
test_id, 56
test_state, 56
web_app, 57
abt_test_group, 58
group_id, 59
sequence_num, 59
test_id, 58
abt_track, 55
end_date, 55
modification_time, 55
scenario_name, 55
start_date, 55
test_id, 55
test_state, 55
ABTestReportRepository, 110
Add test items to slot, 38
Add user to test group, 38
amount, 62, 63, 64, 65
asset registries, 15
asset_id, 47, 48, 48
asset_type, 46
assets
adding to custom registries, 18
Assets tab, 101
assets, definition, 76
ATG Business Control Center
logging in, 10
ATG Campaign Optimizer
modules, 9
server configuration, 6
Avg Items per Order, 96
Avg Value per Abandoned Persistent Order, 96
Avg Value per Abandoned Transient Order, 96
Avg Value per Item, 96
Avg Value per Order, 96
BBasic Info tab, 80
Business Control Center
user roles, 11
Ccache
/atg/dynamo/droplet/Cache, 25
changing size of, 25
heap space requirements, 25
caching
substitution caching, 23
CAF tables, 41, 46
caf_reg_asset, 47
caf_reg_folder, 46
caf_reg_pathasset, 48
caf_reg_repasset, 48
caf_reg_rootfolder, 47
caf_registry, 46
caf_reg_asset, 47
asset_id, 47
description, 47
name, 47
parent_folder_id, 47
parent_registry_id, 47
Type, 47
caf_reg_folder, 46
folder_id, 46
Name, 46
parent_folder_id, 47
caf_reg_pathasset, 48, 48, 48
asset_id, 48
caf_reg_repasset, 48
asset_id, 48
item_type, 48
repository, 48
repository_id, 48
caf_reg_rootfolder, 47
folder_id, 47
registry_id, 47
caf_registry, 46
asset_type, 46
description, 46
name, 46
registry_id, 46
campaign workflows, 32
catalog_id, 67, 68
catalogs, 16, 17
Category template request, 38
category template testing, 86
category.template, 26
category_id, 67, 69
categoryTemplates, 17
changes to commerce, 26
checked-in tests, definition, 75
CIM
Configuring ATG Campaign Optimizer, 5
CLASSPATH, 111
commerce changes, 26
commerce tables, 61
abl_item_added, 61
124 Index
abl_order_abandon, 63
abl_order_submit, 62
abl_trnsnt_abandon, 64
abr_dcs_rpt_group, 65
abr_dcsabd_rpt_gr, 66
abt_elct_ctgs, 67
abt_elem_ctgy_tmp, 67
abt_elem_prod_tmp, 68
abt_elem_promo, 69
abt_elpt_ctgs, 69
abt_elpt_prds, 68
metrics, 44, 61
reporting, 44, 65
test definition, 45, 66
committing data, 111
ConditionalFormSubmissionMetricHandler, 117
eventJMSType, 117
eventPropertyName, 117
filterConstruct, 117
filterOperator, 117
ConditionalPageVisitMetricHandler, 118
EventJMSType, 118
eventPropertyName, 118
filterOperator, 118
configuration
logging, 20
metrics, 111
preview, 21
configuring registries, 14
constantType, 116
constantValue, 116
Content Viewed Log Data, 19
content_views, 55
ContentViewedMetricHandler, 20
control, 58
Conversion, 96
converted_sessions, 66
copying test elements, 89
copying tests, 90
core tables, 41, 45
creating
handlers, 113
metrics, 107
registries, 18
reports, 106
creation_date, 49, 57
currency, 62, 63, 64, 65
Currency, 66
currency code, 109
currencyMetricIds, 120
currencySumProperties, 114
custom metrics, 20, 105
implementation, 120
custom registries, 15, 16
Registry Administration UI, 17
SQL creation, 17
custom registry
adding assets, 18
Ddata collection objects, 111
data storage
metrics, 108, 109
database configuration
creating the ATG Campaign Optimizer schemas, 6
data sources, 6
importing the initial data, 7
Dataset, 50, 51, 51, 52, 52, 61
dataset, 50, 62, 63, 64, 109, 111
datasetPath, 114
datasetPropertyName , 114
date_time, 50, 50, 51, 51, 52, 52, 62, 63, 64, 64
debugging, 19
Default Preview URL, 80
Default System Preview URL, 74
defaultPreviewURL, 14
deploying
tests, 91
deployment
configuring, 30
definition, 76
deployment topology, defining, 30
description, 46, 47, 57, 58
Description, 74, 74, 80
designing metrics, 106
disabling logging, 21
doubleSumProperties, 114
Ee-mails
previewing, 89
editing
registries, 18
Element_id, 58
element_id, 59, 59, 60, 60, 61, 67, 67, 68, 68, 69, 69
enabled, 56
End Criteria, 73, 80
end_date, 55, 56
ending tests, 94
EventConditionMetricHandler, 116
constantType, 116
constantValue, 116
eventPropertyName, 116
filterOperator, 117
unaryOperators, 117
eventJMSType, 114, 117, 118
Index 125
eventPropertyName, 116, 117, 118
exclude, 67, 68
FfilterConstruct, 117
filterOperator, 117, 117, 118
fixed_percentage, 58
folder_id, 46, 47
GgeneratedCountProperty, 114
Give promotion in preview, 39
group ID, 109
group_id, 50, 51, 52, 53, 54, 58, 59, 59, 62, 63, 64, 65, 65, 66
Hhandlers, 112
ConditionalFormSubmissionMetricHandler, 117
ConditionalPagwVisitMetricHandler, 118
creating, 113
EventConditionMetricHandler, 116
MetricHandler, 113
heap space requirements, 25
History tab, 102
Iid, 53
Id, 54
installation
procedure, 4
integerSumProperties, 115
Internet Explorer, configuration tips, 10
item_id, 61
item_qty, 63
item_type, 48
ItemAddedToOrderMetricHandler, 20
itemid, 62
Items Added to Cart, 96
Items Added To Order, 19
Items Ordered, 96
Llast_modified_date, 54
last_report, 54
listing tests, 72
Lock Conflicts tab, 102
logCurrencyCodePropertyName, 115
logDataItemDescriptorName, 115
logging, 19
cache sizes, 25
configuration, 20
Content Viewed Log Data, 19
ContentViewedMetricHandler, 20
disabling, 21
ItemAddedToOrderMetricHandler, 20
Items Added to Order, 19
OrderAbandonedMetricHandler, 20
OrderSubmittedMetricHandler, 20
Page Visit Log Data, 19
PageVisitMetricHandler, 20
ParticipantAssignedToTestGroupMetricHandler, 20
Profile Cleanup Service, 23
Report Generator Service, 19, 22
Session Log Data, 19
SessionMetricHandler, 20
Submitted Orders, 20
Test Ended Log Data, 19
Test Start Log Data, 19
TestStartedMetricHandler, 20
TransientAbandonedMetricHandler, 20
UserLog Data, 19
view logs, 19
Mmapper, 111
marker_data, 49
marker_id , 48
marker_key, 49
marker_type, 49
marker_value , 49
markers table, 42
markers tables, 48
abt_markers , 48
MetricHandler, 113
metricHandler
calculations, 113
counting occurences, 113
currency, 113
currencySumProperties, 114
datasetPath, 114
datasetPropertyName, 114
doubleSumProperties, 114
eventJMSType, 114
generatedCountProperty, 114
integerSumProperties, 115
logCurrencyCodePropertyName, 115
logDataItemDescriptorName, 115
recordEventAction, 115
renderLoggingAction, 115
reportCurrencyCodePropertyName, 115
required properties, 113
segmentNameResourceBundle, 115
segmentNameResourceKey, 115
subtractionDatasetPath, 115
targetCurrency, 115
126 Index
uniqueCountGeneratedProperty, 116
uniqueCountLogProperty, 116
metricIds, 119
MetricInfo, 119
currencyMetricIds, 120
metricIds, 119
resourceBundle, 119
metrics, 105
calculations, 118
checklist, 107
complex computations, 110
ConditionalFormSubmissionMetricHandler, 117
ConditionalPageVisitMetricHandler, 118
configuration, 111
creating, 107
creating handlers, 113
currency code, 109
custom, 20, 120
data, 109
data storage, 108, 109
dataset, 109
designing, 106
EventConditionMetricHandler, 116
group ID, 109
handlers, 112
MetricHandler, 113
MetricInfo, 119
performance tuning, 110
profile ID, 109
propertyName, 111
report property mapper, 118
reporting, 110
resource bundles, 111
segmentNameResourceKey, 111
tables, 49
test ID, 109
timestamp, 109
metrics tables, 42, 44, 61
abl_content_viewed, 51
abl_ended, 50
abl_item_added, 61
abl_order_abandon, 63
abl_order_submit, 62
abl_page_visit , 49
abl_session, 52
abl_started, 50
abl_trnsnt_abandon, 64
abl_user_group, 51
mime type filtering, 24
modification_date, 57
modification_time, 55
modifier_id, 57, 57
modules, 9
multisite, 3
multivariat test, definition, 75
Nname, 46, 47, 56, 58
Name, 46, 74, 74
new_template, 67, 68
new_url, 59, 60
newCategoryTemplates, 16, 17
newFragments, 15, 17
newPages, 15, 17
newProductTemplates, 16, 17
notes, adding, to tests, 102
Number of Test Groups, 74
Oold_template, 67, 68
old_url, 59, 60
oldCategoryTemplates, 16, 17
oldFragmentLocations, 15, 17
oldFragments, 15, 17
oldPages, 15, 17
oldProductTemplates, 16, 17
Operations menu, 71
Order, 65
OrderAbandonedMetricHandler, 20
orderid, 62, 63, 64, 64
orders_abandon, 66
OrderSubmittedMetricHandler, 20
owner_id, 57
PPage fragment request, 38
page fragment substitution, 30
conflicts, 30
page fragment tests, 85
page tests, 84
Page Visit Log Data, 19
page_views, 55
pages, 17, 17
PageVisitMetricHandler, 20
parent_folder_id, 47, 47
parent_registry_id, 47
ParticipantAssignedToTestGroupMetricHandler, 20
participants, 57
Participants, 73, 95
participants, adding, 80
Percentage, 58
performance tuning, 23
metrics, 110
mime type filtering, 24
page fragment substitution, 30
reducing events, 23
Index 127
slot substitution caching, 24
substitution caching, 23
test subject registry, 25
personalization, 14
preview, 21
Preview config layer
enabling, 8
preview profile repository, 21
preview table, 42, 53
abt_preview, 53
Preview tool
running, 89
preview_id, 53
preview_url, 57
previewScenarioRoot, 14
price location testing, 78
product recommendation strategy testing, 78
Product template request, 38
product template testing, 87
product.template, 26
product_id, 68
productTemplates, 17
Profile Cleanup Service, 23
profile ID, 109
profile_id, 49, 50, 51, 52, 52, 53, 61, 62, 63, 64
profileGroups, 15, 17
project
delete, 91
projects
definition, 76
displaying UI for, 99
using, with ATG Campaign Optimizer, 99
promotion testing, 77, 88
promotion_id, 69
promotions, 16, 17
promotionTriggerPages, 16, 17
propertyName, 111
Qquantity, 62
queue, 111
RRecord A/B Test event, 38
Record A/B Test Participant assigned to test group, 38
recordEventAction, 115
reducing events, 23
registries, 14
adding assets, 18
catalogs, 16, 17
categoryTemplates, 17
commerce, 16
configuration, 14
creating, 18
custom, 15, 16
editing, 18
newCategoryTemplates, 16, 17
newFragments, 15, 17
newPages, 15, 17
newProductTemplates, 16, 17
old pages, 15
oldCategoryTemplates, 16, 17
oldFragmentLocations, 15, 17
oldFragments, 15, 17
oldPages, 17
oldProductTemplates, 16, 17
pages, 17, 17
productTemplates, 17
profileGroups, 15, 17
promotions, 16, 17
promotionTriggerPages, 16, 17
Registry Administration UI, 17
slots, 15, 17
SQL creation, 17
structure, 15
Registry Administration UI, 17
registry_id, 46, 47
renderLoggingAction, 21, 115
renderLoggingEnabled, 21
Report Generator Service, 19, 22, 106
report property mapper, 110, 118
report_only, 57
reportCurrencyCodePropertyName, 115
reporting, 42
ABTestReportRepository, 110
reporting in metrics, 110
reporting tables, 44, 53, 65
abr_control, 53
abr_dcs_rpt_group, 65
abr_dcsabd_rpt_gr, 66
abr_report, 54
abr_report_group, 54
reports
creating, 106
repository, 48
repository content, 83
repository_id, 48
request_url, 60
resource bundles, 111
propertyName, 111
segmentNameResourceKey, 111
resourceBundle, 119
Results, 95
Avg Items per Order, 96
Avg Value per Abandoned Order, 96
Avg Value per Abandoned Transient Order, 96
128 Index
Avg Value per Item, 96
Avg Value per Order, 96
commerce, 96
Conversion, 96
Items Added to Cart, 96
Items Ordered, 96
Participants, 95
Sessions, 95
Test Content Viewed, 95
Total Orders, 96
Total Pages Viewed, 96
Total Persistent Orders Abandoned, 96
Total Persistent Value Abandoned, 96
Total Transient Orders Abandoned, 96
Total Transient Value Abandoned, 96
Total Value, 96
revenue_abandon, 66
revenue_ordered, 65
runAssembler script, 7
Sscenario elements, 37
A/B Test Ended, 37
A/B Test is ready for deployment, 37
A/B Test Participant Unassigned, 37
A/B Test session ended, 38
A/B Test that was previously considered ready for
deployment is now not ready for deployment , 37
Add test items to slot, 38
Add user to test group, 38
Category template request, 38
commerce, 38
core elements, 37
Give promotion in preview, 39
Page fragment request, 38
Product template request, 38
Record A/B Test event, 38
Record A/B Test Participant assigned to test group, 38
Set even handled state to true, 38
Test Slot Item request, 37
track start of A/B test execution, 38
scenario_name, 53, 55
scenario_path, 57
scenario_root, 57
scenarioRoot, 13
segmentNameResourceBundle, 115
segmentNameResourceKey, 111, 115
segments
definition, 76
sequence_num, 59, 59, 61, 67, 69, 69
Session Log Data, 19
Session_id, 50, 62
session_id, 51, 52, 52, 63, 64
SessionMetricHandler, 20
Sessions, 54, 95
Set event handled state to true, 38
slot, 60
slot image testing, 77
slot substitution caching, 24
slots, 15, 17
SQL commands to create custom registries, 17
Staging config layer
enabling, 8
Start Date, 73, 80
start_date, 55, 56
starting ATG Campaign Optimizer, 7
stopping tests, 94
deployment time, 94
scheduled, 94
Submitted Orders, 20
substitution caching, 23
subtractionDatasetPath, 115
Summary, 73
% Participants, 74
Default System Preview URL, 74
Description, 74, 74
End Criteria, 73
Name, 74, 74
Number of Test Groups, 74
Participants, 73
Start Date, 73
Test Elements, 74
Test-Specific Preview URL, 74
Ttables, 41, 61
abl_content_viewed, 51
abl_ended, 50
abl_item_added, 61
abl_order_abandon, 63
abl_order_submit, 62
abl_page_visit , 49
abl_session, 52
abl_started, 50
abl_trnsnt_abandon, 64
abl_user_group, 51
abr_control, 53
abr_dcs_rpt_group, 65
abr_dcsabd_rpt_gr, 66
abr_report, 54
abr_report_group, 54
abt_elct_ctgs, 67
abt_elem_ctgy_tmp, 67
abt_elem_page, 59
abt_elem_pg_frag, 60
abt_elem_prod_tmp , 68
Index 129
abt_elem_promo , 69
abt_elem_rep_slot, 60
abt_element, 58
abt_elpt_ctgs , 69
abt_elpt_prds , 68
abt_elrs_item, 60
abt_group, 57
abt_group_elem, 59
abt_markers , 48
abt_preview, 53
abt_test, 56
abt_test_group, 58
abt_track, 55
CAF tables, 41, 46
caf_reg_asset, 47
caf_reg_folder, 46
caf_reg_pathasset, 48
caf_reg_repasset, 48
caf_reg_rootfolder, 47
caf_registry, 46
core tables, 41, 45
markers table, 42
markers tables, 48
metrics, 44
metrics tables, 42, 49, 61
preview, 42
preview table, 53
reporting, 42, 44
reporting tables, 53, 65
test definition, 43, 45
test definition tables, 55, 66
tracking, 43
tracking table, 55
targetCurrency, 115
Targeter, 60
Tasks tab, 100
template substitution, 26
conflicts, 26
mechanism, 26
TemplateSubstituterPropertyDescriptor, 26
Test Content Viewed, 95
test definition tables, 43, 45, 55, 66
abt_elct_ctgs, 67
abt_elem_ctgy_tmp, 67
abt_elem_page, 59
abt_elem_pg_frag, 60
abt_elem_prod_tmp, 68
abt_elem_promo, 69
abt_elem_rep_slot, 60
abt_element, 58
abt_elpt_ctgs, 69
abt_elpt_prds, 68
abt_elrs_item, 60
abt_group, 57
abt_group_elem, 59
abt_test, 56
abt_test_group, 58
Test Elements, 74
Test Ended Log Data, 19
test groups, defining, 82
test ID, 109
Test Slot Item request, 37
Test Start Log Data, 19
test subject registry, 25
Test-Specific Preview URL, 74
test_id, 50, 50, 51, 51, 52, 52, 53, 54, 54, 55, 56, 58, 62, 63, 64,
65
test_state, 54, 55, 56
TestManager, 13
defaultPreviewURL, 14
previewScenarioRoot, 14
scenarioRoot, 13
tests, 72
adding internal notes to, 102
approving, 91
category templates, 86
commerce, 86
copying, 90
copying test elements, 89
creating new, 79
Default Preview URL, 80
deploying, 91
Description, 80
editing , 90
End Criteria, 80
page fragments, 85
pages, 84
participants, 82
product templates, 87
promotions, 88
repository content, 83
running, 91
Start Date, 80
stopping, 94
summary, 73
test groups, 82
viewing results, 94
TestStartedMetricHandler, 20
timestamp, 109
To Do List, 72
Total Orders, 96
Total Pages Viewed, 96
Total Persistent Orders Abandoned, 96
Total Persistent Value Abandoned, 96
Total Transient Orders Abandoned, 96
Total Transient Value Abandoned, 96
130 Index
Total Value, 96
Track start of A/B test execution , 38
tracking table, 43, 55
abt_track, 55
tran_rev_abandon, 66
transient_abandon, 66
TransientAbandonedMetricHandler, 20
trigger_param, 69
trigger_type, 69
Type , 47, 58
UunaryOperators, 117
uniqueCountGeneratedProperty, 116
uniqueCountLogProperty, 116
units_added, 65
units_ordered, 65
url, 50
use cases
price location testing, 78
product recommendation strategy testing, 78
promotion testing, 77
slot image testing, 77
user accounts, creating, 11
User Log Data, 19
Users, 54
VVersion, 49
versioning, definition, 77
viewing test results, 94
viewing tests, 72
Wweb_app, 57
workflows, 32
default permissions, 36
for campaigns, 32
workflows, definition, 76