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.