Skip to content

Build Custom Reports

⏱ 20 minutes intermediate
📜CoreAnalytics

Standard dashboards answer general questions — traffic trends, top pages, experiment results. But your organization has specific questions that pre-built views cannot answer. You might need to know which content category drives the most revenue, how a specific audience segment behaves compared to the overall population, or whether engagement differs between mobile and desktop visitors on pages that were part of an experiment.

Custom reports let you ask these specific questions without exporting data to a spreadsheet or requesting help from an analyst.

  1. Open the report builder and select metrics
  2. Add dimensional breakdowns
  3. Apply filters to narrow the data
  4. Choose a visualization
  5. Save, share, and optionally schedule the report

Navigate to Analytics > Reports in the Optimizely One sidebar. Select New Report to open the report builder.

The builder has four sections:

  • Metrics (left panel) — What numbers to show
  • Dimensions (top bar) — How to break down those numbers
  • Filters (top bar) — Which subset of data to include
  • Canvas (center) — The visualization of your report

Metrics are the numbers your report measures. Select at least one metric to begin.

MetricWhat it measures
Page viewsTotal pages viewed across all sessions
Unique visitorsDistinct visitors (deduplicated by cookie)
SessionsGroups of interactions within a time window
Bounce ratePercentage of single-page sessions
Conversion ratePercentage of sessions with a goal completion
RevenueTotal purchase value (requires commerce tracking)
Average order valueRevenue divided by number of orders

If standard metrics do not cover your question, create a calculated metric:

  1. Select New Metric in the metrics panel
  2. Define the formula using existing metrics (e.g., Revenue / Sessions for revenue per session)
  3. Name the metric and save it

Custom metrics are available in all future reports once created. Common examples:

  • Revenue per visitorRevenue / Unique Visitors
  • Pages per sessionPage Views / Sessions
  • Engagement rate(Sessions with 2+ page views) / Sessions

Dimensions control how your metrics are sliced. Without dimensions, a report shows a single aggregate number. With dimensions, you see that number broken down by meaningful categories.

DimensionBreaks data down by
PageIndividual page URLs
Traffic sourceChannel (organic, paid, social, direct, referral)
DeviceDesktop, mobile, tablet
BrowserChrome, Safari, Firefox, Edge
GeographyCountry, region, or city
DateDay, week, or month
ExperimentExperiment name and variation
Content groupCustom content categories you define

If the built-in dimensions do not match your segmentation needs, your development team can pass custom dimension values with analytics events. Once configured, custom dimensions appear alongside standard ones.

Common custom dimensions:

  • Customer tier — Loyalty program level
  • Login status — Logged in vs anonymous
  • User role — Customer, prospect, partner, employee
  • Content type — Blog, product page, support article, landing page

You can add multiple dimensions to create cross-tabulations. For example:

  • Traffic source + Device — See whether mobile visitors from social media behave differently than desktop visitors from search
  • Experiment + Geography — Check whether an experiment winner holds across regions
  • Content group + Date — Track how content category performance trends over time

Limit cross-tabulations to two or three dimensions. More than that produces tables with too many cells to interpret meaningfully.

Filters narrow your report to a specific subset of data without removing dimensions.

FilterExample
Date rangeLast 30 days, this quarter, custom range
Page URLContains “/blog/” or equals a specific URL
Traffic sourceOnly organic search traffic
DeviceOnly mobile visitors
SegmentVisitors who completed a specific goal
ExperimentOnly visitors in a specific experiment

Filters use AND logic by default. If you filter by Device = Mobile AND Traffic Source = Organic Search, the report shows only mobile visitors who arrived via organic search.

For OR logic, create a segment that combines conditions and filter by that segment instead.

The report builder supports several visualization types. Choose based on what your data needs to communicate:

VisualizationBest for
TablePrecise numbers, comparisons across many items
Line chartTrends over time
Bar chartComparing values across categories
Stacked barShowing composition (e.g., traffic sources as parts of total)
Pie chartProportions of a whole (use sparingly — bar charts are usually clearer)
FunnelMulti-step conversion flows

Switch between visualizations without losing your metric and dimension selections. The data stays the same — only the presentation changes.

Select Save Report and give it a descriptive name. Saved reports appear in your Reports library and can be pinned to dashboards.

Name reports by the question they answer, not by the metrics they contain. “Blog conversion by traffic source” is more useful than “Report 47” when you return to it months later.

Share reports with team members by selecting Share and choosing recipients. Recipients need Optimizely Analytics access to view shared reports. Permissions on the report match the recipient’s analytics access level — they cannot see data their role does not permit.

For reports your team reviews regularly, set up scheduled delivery:

  1. Select Schedule on a saved report
  2. Choose frequency: daily, weekly, or monthly
  3. Select recipients (email addresses)
  4. Choose format: PDF summary or link to the live report
  5. Set the delivery time

Scheduled reports send automatically. Recipients get an email with either an attached PDF or a link that opens the current data in the report builder.

IssueCauseResolution
Report shows no dataFilter combination too restrictiveWiden filters, check date range
Metric values seem too lowCustom metric formula errorReview the formula in metric settings
Custom dimension not appearingDeveloper has not deployed the tracking codeConfirm custom dimension events are firing in the browser’s network tab
Scheduled report not arrivingRecipient email blocked by spam filterCheck spam folder, add Optimizely to allow list