Ciphera Help
PulseAnalyticsDashboard

Dashboard

A tour of the Pulse analytics dashboard — KPI cards, real-time activity, charts, and all audience panels.

The Pulse dashboard is the main view for your site's analytics. Everything on it responds to the active time range and any filters you have applied.

The metric rail

Six metrics sit in a rail beside the chart. Selecting one plots it in the chart and re-points the panels below at the same metric, so the whole page answers one question at a time.

Each row shows a delta against the previous equivalent period. Green means improvement, red decline — bounce rate is inverted, because a lower bounce rate is the better outcome. A metric with nothing to report shows an em dash rather than a zero: an unmeasured value and a measured zero are different answers.

Unique visitors

People, not visits: a returning reader counts once. Identity is deduplicated within each calendar month in your site's timezone, so a range that spans months counts a returning reader once per month. Before 26 Aug 2026, deduplication was per day — days before that boundary can never be re-deduplicated, because the address the identity derives from is discarded on arrival and never stored.

The daily chart shows each day's unique visitors, so its values can sum to more than the range headline. That is correct, not a discrepancy: the difference is your returning readers.

Total pageviews

Every page load in the range that survived bot and exclusion filtering, including repeat loads of the same page by the same visitor.

Pages / visit

Pageviews divided by visits — how many pages someone reads before they stop. A returning reader adds a second visit rather than deepening the first.

Bounce rate

Share of visits that recorded exactly one pageview — a reload counts as a second pageview, so it ends the bounce. A visit ends after 30 minutes of inactivity, so one person can make several visits in a day and each is its own chance to bounce. Deltas are expressed in percentage points, not as a percentage of the previous value.

The panel shows the count behind the rate — "85% — 244 of 286 visits recorded exactly one pageview". That numerator is computed by the server in the same query as the rate, so the two always agree.

Visit duration

Average length of a visit, over visits that carried a duration signal. Unmeasured visits are excluded, not counted as zero.

A visit carries a duration signal when it sent a timing beacon, or when it had enough pageviews for the gap between them to be measurable. A single pageview with no beacon is unmeasured.

Warning

Counting unmeasured visits as zero-second ones would drag the average down and present the result as a measurement. On one production range it reported 63 seconds where the measured answer was 107.

Engagement

Each day is ranked against this site's prior 90 days on scroll depth, time on page, visit depth and bounce rate; those four percentiles are blended by weight (scroll 30%, time 25%, depth 25%, bounce 20%), and the score is the median of the period's daily blends. 50 means the day beat half of the prior 90.

It is deliberately self-relative: it compares your site to its own recent history, never to other sites or an invented industry benchmark. It needs seven days of history before it reports anything, and it ignores dashboard filters, because the 90-day baseline it ranks against has no dimensions.

Real-time indicator

A green pulsing dot in the top bar shows the number of visitors active on your site right now. The count refreshes every 15 seconds automatically. No action needed.

Time ranges

Use the date picker to choose from preset ranges or enter a custom start/end date:

  • Last 1 hour (minute-by-minute intervals)
  • Last 24 hours
  • Today / Yesterday
  • Last 7 days / Last 30 days
  • This week / This month / This year
  • Custom date range

Your selected range persists in localStorage and is restored on next visit.

Chart

The main area chart shows traffic over time. You can:

  • Toggle between Visitors and Pageviews
  • Switch intervals: minute, hour, or day (available intervals depend on the range)
  • Enable the previous-period overlay to compare the current range against the prior equivalent period

Panels

Below the chart, the dashboard is divided into panels. Each panel is a ranked list; click any row to filter the entire dashboard by that value.

Content

Top pages, entry pages, and exit pages — each with pageview and visitor counts.

Referrers

Referring domains displayed with favicons. Switch to the Traffic channels tab for an aggregated view (Organic Search, Direct, Social, Email, etc.).

Audience

Countries shown with a world map. Sub-tabs: cities, regions, languages, timezones.

Tech

Browsers, operating systems, device types (desktop / mobile / tablet), and screen resolutions.

Campaigns

UTM dimensions: source, medium, campaign. See the Campaigns page for tagging guidance.

Peak hours

A heatmap showing traffic intensity by hour of day (rows) and day of week (columns). Useful for scheduling posts or deployments.

Goals & Events

Custom event counts. Click a goal to open a property breakdown. See Goals for setup.

Search Performance

A summary of impressions, clicks, and average position pulled from Google Search Console — visible only if you have connected Search Console.

Panel reference

The tour above covers where to find each number. This is what each one actually measures, and where its edge cases are.

Pages

Every page path with at least one pageview in the range, ranked by pageviews. Pageviews count page-load events; visitors count distinct people (deduplicated within the site's calendar month since 26 Aug 2026), so one person reloading a page adds to pageviews but still counts once as a visitor — and the row's bounce rate and duration are computed over that visitor count, not the pageview count.

Entries

Each visit's first pageview inside the selected range, grouped by path and ranked by how many visits started there — the landing page, not just any page a visitor happened to view. The query is scoped to the range, so a visit that began before the range shows its first page inside the range as its entry, which may not be where it actually landed.

Exits

Each visit's last pageview inside the selected range, grouped by path and ranked by how many visits ended there. The same range boundary applies as Entries: for a visit still going when the range ends, this is the last page seen inside the window, not the visit's true final page.

Scroll depth

The share of visits that reached at least 25%, 50%, 75%, and 100% down a page. Depth is taken per visit as the deepest point reached across whatever pages it viewed, not per page, and the denominator is visits that produced a scroll reading at all — a visit where scroll was never measured is excluded rather than counted as 0%.

Note

The buckets are cumulative, not exclusive. A visit that reached 80% is counted in the 25, 50, and 75 rows too — read "50% of visits reached 50% depth" as reach, not as a histogram slice.

Referrers

One row per referring domain, ranked by pageviews from that source in the range. Rows sharing a display name are merged — several chatgpt.com URLs collapse into one ChatGPT row — and a merged row's bounce rate and duration are visitors-weighted means of the rows folded into it. A visit's entry referrer sticks for up to 30 minutes, so navigating around your own site afterward does not re-attribute later pageviews. Direct means no referrer was captured and the visitor landed on /; Shared Link means no referrer was captured on any other path — both usually mean a typed URL, a bookmark, or an app that strips the referrer header. Rows with an empty or "Unknown" referrer are dropped from this list.

Channels

The same pageviews sorted into fixed marketing buckets — Direct, Organic Search, Organic Social, Organic Video, AI, Paid Search, Paid Social, Display, Affiliate, Email, SMS, Referral — by a server-side classifier. It reads utm_medium first (cpc/ppc/paid → Paid Search, anything containing "email" → Email) and otherwise matches the referrer's domain against curated lists of search engines, social platforms, video sites, and AI assistants. A referrer that matches no list but isn't empty files as Referral; Direct and Shared Link both fold into Direct. A pageview with neither a recognised medium nor a matching domain shows as Unknown — the classifier does not guess.

Countries

The visitor's country, resolved from the request IP by a GeoIP lookup at ingestion; the IP itself is wiped from the request afterward and never stored on the event. Some rows aren't countries: T1 (Tor network), A1 (anonymous proxy), A2 (satellite provider), O1 (other), EU, and AP each mean the lookup could only place the visitor on an anonymising network or a broad region, not a specific country. Hidden entirely when geographic collection is off in site settings.

Map

The Countries rows plotted geographically — the identical query, including the non-country codes above, drawn rather than listed. It is not a second measurement, so it can never disagree with the Countries tab.

Cities

The finest geography Pulse resolves, from the same GeoIP lookup as Countries. Hidden by the same two gates as Regions: geographic collection off, or geo detail capped at country level.

Regions

The first-level administrative region (state or province) inside the resolved country, from the same GeoIP lookup as Countries. Hidden when geographic collection is off, and hidden separately when the site caps geo detail at country level — country rows keep collecting in that case, regions do not.

Languages

The language the visitor's browser declared in Accept-Language — self-reported by the browser, not derived from the IP, so it reflects a browser setting rather than a location. A country appears in parentheses only when the locale carries a region subtag ("English (United States)"). Gated by the site's audience-data setting, not by the geo-detail setting that hides Regions and Cities.

Timezones

The IANA timezone the visitor's device reported ("Europe/Brussels") — self-reported like Languages, not derived from the IP. The flag next to a row is a best-effort guess from a fixed list of well-known timezone prefixes; it is blank for anything outside that list even though the timezone itself is real. Gated by the same audience-data setting as Languages.

Browsers

Browser name parsed from the user agent at ingestion, one row per browser ranked by pageviews. Hidden when device-info collection is off; pageviews whose browser could not be recognised are dropped from the list rather than shown as "Unknown."

OS

Operating system parsed from the user agent at ingestion, one row per OS ranked by pageviews. Same collection gate and same dropping of unrecognised rows as Browsers.

Devices

Desktop, mobile, or tablet, decided at ingestion from the user agent (mobile/android/iphone → mobile; tablet/ipad → tablet). Same collection gate as Browsers and OS.

Warning

When the user agent says neither, screen width decides — under 768px mobile, under 1024px tablet, wider desktop — so a narrow desktop browser window can be counted as mobile. An iPadOS client hint forces tablet, which the width rule alone would call desktop.

Screens

Screen resolution as reported by the visitor's browser, one row per exact resolution string ranked by pageviews. It has its own site setting — turning off browser/OS/device collection does not turn this off, and the reverse.

Peak hours

A 7-day by 24-hour grid of the selected metric, bucketed by the site's own wall clock rather than the viewer's timezone, so two people in different countries see the same grid. Pageviews and visitors sum across the range; average duration and bounce rate are visitors-weighted, and an hour with no measured value contributes no weight instead of pulling the average toward zero. The "busiest time" line appears only once some bucket carries a real positive value — an unmeasured grid says nothing, rather than naming Monday 00:00 by default.

Events

Custom events sent with pulse.track('event_name'), one row per name, ranked by firings. The number is events, not people — one visitor firing the same event six times reads 6. The distinct-visitor count behind each event exists (it's the number a privacy floor can be applied to) but is not shown in the row, and no percentage is shown because the events total is not on the wire. Expanding a row loads that event's property keys and the distinct values recorded under each.

Note

Panels load independently. If a panel shows no data, check that the relevant dimension is being sent by your tracking script.

On this page

On this page