Engagement Tracking

Scroll depth, active time, and one score that says whether they actually engaged. On every page, source, and campaign.

Know which traffic is worth it

Every source, page, country, device, and campaign gets an engagement score, built from how far people scroll and how long they stay active. Put them in one list and the picture is instant: AI Search at 88%, Google at 49%, Paid Search at 14%.

Optimize for attention instead of volume.

  • One 0-100 score on every dimension, everywhere.
  • Green, amber, red: 50%+, 25-49%, under 25%.
  • Volume is not value: 4.3k visits at 49% vs 1.6k at 88%.

The table your ad budget should be reading.

How the score works
Segment
Visitors
Eng
AI SearchChannel
1.6k
88%
/blog/google-analytics-alternativePage
1.7k
86%
/pricingPage
2.2k
72%
🇺🇸United StatesCountry
4.2k
63%
ChatGPTSource
1.3k
61%
🇩🇪GermanyCountry
2.1k
57%
spring_saleCampaign
680
57%
DesktopDevice
6.8k
53%
GoogleSource
4.3k
49%
MobileDevice
4.9k
39%
/homepagePage
3.8k
37%
LinkedInSource
980
37%
Paid SocialCampaign
312
33%
Paid AdsCampaign
240
14%

Higher engagement, higher conversion

Put the engagement score next to the conversion rate and the pattern is hard to miss: the segments that read are the segments that buy. AI Search converts at 6.4%, Paid Search at 0.4%, and /pricing readers top everything, because attention comes first.

Engagement is the leading indicator conversion follows.

  • The same segments, scored by attention and by outcome.
  • Spot high-engagement segments that deserve more goals and budget.
  • Catch expensive traffic that neither reads nor converts.

Improve the reading and the buying follows.

Goal Conversions
Segment
Visitors
Eng
AI SearchChannel
1.6k
88%
/blog/google-analytics-alternativePage
1.7k
86%
/pricingPage
2.2k
72%
🇺🇸United StatesCountry
4.2k
63%
ChatGPTSource
1.3k
61%
🇩🇪GermanyCountry
2.1k
57%
spring_saleCampaign
680
57%
DesktopDevice
6.8k
53%
GoogleSource
4.3k
49%
MobileDevice
4.9k
39%
/homepagePage
3.8k
37%
LinkedInSource
980
37%
Paid SocialCampaign
312
33%
Paid AdsCampaign
240
14%

Every page scored by real attention

The Pages panel carries the engagement score next to visitors, so "popular" and "read" stop being the same claim. A blog post at 65% engagement is an asset; a landing page at 29% with your highest traffic is the page to fix first.

Traffic tells you what they clicked. Eng tells you what they read.

  • Engagement per page, sortable, next to visitor counts.
  • High traffic + low engagement = your clearest fix-first list.
  • Entry, exit, search, and 404 views share the same score.

Stop guessing which content works. It is a column now.

PagesSessionsGoalsJourneys
TopEntryExitSearch404
Page
Visitors
Eng
/
3.8k29%
29%
/pricing
2.2k17%
48%
/blog/google-analytics-alternative
1.7k13%
65%
/features
1.1k8%
46%
/docs/installation
8406%
55%
/blog/cookie-banner
6105%
59%
/blog/is-google-analytics-gdpr-compliant
5244%
69%
/login
4684%
13%
/about
4303%
34%
/docs/tracking-events
3723%
52%
/blog/web-analytics-without-cookies
3182%
62%
/integrations/wordpress
2712%
41%
/reset-password
2242%
16%
/contact
1861%
29%
/changelog
1421%
38%
/docs/api-reference
971%
26%

16 channels, ranked by what they read

Channel classification sorts your traffic into 16 channels, AI Search included, and every one of them carries the engagement score. Organic and AI channels tend to read; some paid channels only click. Now you can tell which is which before the invoice.

Attention per channel, not just arrivals.

  • AI Search as a first-class channel, scored like the rest.
  • Compare paid against organic on attention, not volume.
  • Click any channel to filter the whole dashboard to it.

Spend where they read.

Filtering & Segments
Channel
Visitors
Eng
Organic Search
5.1k38%
55%
Direct
3.1k23%
42%
AI Search
1.6k12%
61%
Organic Social
1.1k8%
31%
Referral
9407%
48%
Email
5404%
50%
Paid Search
3122%
28%
$Paid Social
2182%
21%
Affiliates
1561%
39%
Display
981%
13%
Organic Video
741%
24%
Organic Shopping
410%
34%

Two honest inputs, one number

The score combines scroll depth with active time: how far they got and how long they genuinely stayed with the page. No taps on a black box: you can see both ingredients on every session, and the thresholds are fixed and public.

Scroll depth + active time, 0 to 100.

  • Scroll says how far, active time says how long.
  • Green from 50%, amber from 25%, red below.
  • The same score on sessions, pages, sources, and countries.

Simple enough to trust, strict enough to mean something.

One visit to /blog/google-analytics-alternative
Scroll depth82%
How far down the page they actually got.
Active time2:48
reading 1:12tab hidden, timer pausedreading 1:36
Engagement score86%
50%+ engaged25-49%under 25%
Averages cap duration at 30 minutes, so one forgotten tab never skews a page.

Reading time, not tab-open time

The duration timer pauses the moment a tab goes hidden and resumes when the visitor returns. A tab parked in the background all afternoon contributes nothing. Averages also cap any single visit at 30 minutes, so one forgotten window cannot skew a page.

Idle tabs never inflate your numbers.

  • Pause on hidden tab, resume on return, per session.
  • A 30-minute cap keeps averages honest.
  • Compare reading time across channels and pages.

When Clickport says 3:42, someone actually read for 3:42.

Session Tracking
Segment
Visitors
Time ↓
Email / NewsletterChannel
486
4:18
ReferralChannel
947
3:42
AI SearchChannel
1,620
3:05
Organic SearchChannel
4,860
2:54
Organic SocialChannel
1,943
1:06
Direct / NoneChannel
2,110
0:42
Paid SearchChannel
238
0:24
Why these numbers are real reading time
The timer pauses while the tab is hidden and resumes on return. Idle tabs never count.

A bounce rate that makes sense

Someone reads your whole article for four minutes and leaves. Most tools call that a bounce. Clickport calls a visit a bounce only when all four criteria hold: a single pageview, no clicks, under 25% scroll, and under 15 seconds. Reading is not bouncing.

Four criteria, all required.

  • Single pageview alone never counts as a bounce.
  • Engaged single-page reads stay out of your bounce rate.
  • See which pages genuinely fail to hold anyone.

Your bounce rate finally measures failure, not format.

What counts as a bounce
Same visitor: reads a blog post for 4 minutes, scrolls 82%, leaves.
Traditional analytics
Bounced
Single page session = bounce. No exceptions, no matter how long they read.
Clickport
Engaged
1 pageview
Scrolled 82% (bounce needs under 25%)
Duration 4:02 (bounce needs under 15s)
No clicks
A visit only bounces when all four are true
Single pageviewNo clicksScroll under 25%Under 15 seconds
This visitor meets 2 of 4. Not a bounce: an engaged read.

Frequently asked questions

Having another question?

Reach out! We will be happy to help with any pre-sales questions.

What exactly goes into the engagement score?

Two measurements: how far the visitor scrolled and how long they stayed genuinely active on the page. They combine into a 0-100 score, colored green from 50%, amber from 25%, and red below. Details in the engagement docs.

Is time on page inflated by tabs left open?

No. The timer pauses when the tab is hidden and resumes when the visitor comes back, and averages cap any single visit at 30 minutes. A tab that sat open overnight adds nothing.

What counts as a bounce?

A visit bounces only when all four criteria are true: a single pageview, no clicks, less than 25% scroll, and under 15 seconds on the page. Reading a full article in one sitting is not a bounce. More in what counts as a bounce.

Can I sort and filter by engagement?

Yes. Every breakdown panel carries the Eng column, sortable, and clicking a row filters the whole dashboard to that segment, so "high-engagement Google visitors on mobile" is three clicks.

Does engagement tracking need extra setup or consent?

No. Scroll and activity tracking ship in the standard snippet with nothing to configure, and none of it uses cookies or personal data, so it runs without a consent banner.