Web reports

Use analytics.Web to build familiar website reports: traffic totals, trends, popular pages, acquisition sources, audience, and conversions.

Examples use an open analytics engine. Import ZoneTree.Analytics and ZoneTree.Analytics.Web.

Build a consistent report set

Create a request with the site, period, filters, and comparison you want, then use it for related reports:

var request = new WebReportRequest
{
    Range = DateRange.LastDays(30),
    Compare = ComparisonPeriod.PreviousPeriod,
    Filters = { Filter.Equal(StandardDimensions.Country, "DE") },
};

var summary = await analytics.Web.GetSummaryAsync(request);
var daily = await analytics.Web.GetTimeseriesAsync(request, TimeInterval.Day);
var pages = await analytics.Web.GetPagesAsync(request);
var sources = await analytics.Web.GetBreakdownAsync(
    request, StandardDimensions.Source);
var goals = await analytics.Web.GetGoalsAsync(request);

Using the same report context makes cards and charts comparable. Keep the request stable while reports execute.

Choose the report for the question

Question Method
How many people visit, and how engaged are they? GetSummaryAsync
How does traffic change over time? GetTimeseriesAsync
Which pages receive visits? GetPagesAsync
Where do sessions end? GetExitPagesAsync
Which sources, countries, or devices appear? GetBreakdownAsync
Which custom actions convert? GetGoalsAsync
Which bots visit? GetBotsAsync
Who has been active recently? GetCurrentVisitorsAsync

Every method also has a synchronous form. Prefer asynchronous report calls in request handlers.

Interpret traffic and engagement

Visitors count distinct identities with a page view. Page views count viewed pages. Sessions group activity into visits according to the configured inactivity timeout.

Bounce rate describes single-page-view sessions without an interactive custom action. Session duration spans observed activity, not time spent after the last recorded action.

A visitor can appear in multiple page or source rows. Use totals for distinct audience size rather than adding row counts.

Apply comparisons and filters

Use Compare to request a previous period or year. Breakdown and page rows can include matching previous values.

Filters select the report's audience. Session-level dimensions such as source, country, and device support session metrics. A null metric can mean it does not apply to that breakdown.

Match the requested metrics to the report

Set IncludeSessionMetrics=false when only visitors and page views are needed. Page reports can set IncludePageFlowMetrics=false when entrances and exits are unnecessary.

Disabled fields remain null, not zero. Exit-page reports require page-flow metrics. See the HTTP reference for equivalent request parameters.

Present the result

A summary exposes Summary; list and time-series reports expose Rows. Use TotalRows for pagination and choose a time interval appropriate to the chart.

Keep the selected range and filters visible to readers. Check plan warnings when a range extends beyond available history, and distinguish unavailable metrics from zero activity.