Web analytics for SaaS, from first visit to paid

See which channels send signups that turn into revenue, where the trial funnel leaks, and what your marketing site contributes. No cookie banner, no tag manager.

clickport.io
t taskrail.io
21 online
Rev€21,460
Eng62%
Last 28 Days
Visitors
9.8k↗12%
Pageviews
31k↗9%
Views/Visit
3.16↗2%
Bounce
38%↘3%
Conversions
486↗15%
Conv. Rate
4.9%↗6%
Duration
2:41↗5%
Scroll
57%↗3%
6005004003002001000
Jonas Brandt
v2 launch on Product Hunt
Front page most of the day. Trials ran 38% over baseline, and the first upgrades are already landing.
Wed, 18 Feb
Visitors 388 ↗18%
avg last 4 weeks 329
Revenue €820 ↗22%
avg last 4 weeks €672
13.0214.0215.0216.0217.0218.0219.0220.0221.0222.0223.0224.0225.0226.0227.0228.0201.0302.0303.0304.0305.0306.0307.0308.0309.0310.0311.0312.03
1.5k€1.25k1k7505002500
SourcesLocationsTechnologiesCampaigns
ChannelsSourcesURLs
Channel
Visitors ↓%Eng
Organic Search
3,72038%54%
Direct
2,18022%46%
Referral
1,23013%58%
AI Search
94010%63%
Organic Social
6206%37%
Email
4204%68%
Paid Search
3303%28%
Organic Video
1802%44%
Paid Social
901%24%
PagesSessionsGoalsJourneys
AllClicksPagesFormsEvents
Goal
ConvRevenue ↓Avg
EUpgraded to paid
92€18,760€204
EAdd-on purchase
54€2,700€50
PViewed pricing
2,340
EStarted trial
486
FNewsletter signup
168

Why SaaS teams are leaving Google Analytics

Google Analytics was built to optimize ad spend, and it shows. To answer "which channel sends trials that upgrade" you wire up events, mark them as conversions, build an exploration, and wait for processing. Most SaaS teams need that answer weekly and never quite get it.

The audience makes it worse. Developers and technical buyers run content blockers at higher rates than any other market, and Google's script is the first thing those blockers remove. The more technical your audience, the bigger the hole in your funnel data.

A consent banner costs you twice on top of that: visitors who reject it vanish from your numbers entirely, and the banner itself is friction on the exact pages that should convert. Clickport stores no personal data, so there is no banner and every visitor is counted.

From first visit to paid, on one screen

The dashboard above is a SaaS acquisition story on one screen: 9.8k visitors, 486 trials started, 92 upgrades, and €21,460 in tracked upgrade revenue, every number traceable to a channel, campaign, and page.

Marketing-site goals need no code: turn the pricing page or the register route into a goal from the dashboard in two clicks. In-app moments like a started trial or an upgrade are a single custom event, one line a developer adds once, with the plan and amount attached.

Fired from your billing webhook, the revenue lands on the dashboard credited to the channel that brought the visitor. No tag manager, no event taxonomy workshop.

PagesSessionsGoalsJourneys
AllClicksPagesFormsEventsOutboundConfigure
Goal
Visitors
Events
CR
P
Viewed pricing
2.3k
-
23.8%
F
Started trial
486
512
4.9%
P
Viewed changelog
342
-
3.5%
P
Read docs
289
-
2.9%
C
Clicked GitHub link
214
236
2.2%
F
Newsletter signup
168
177
1.7%
F
Invited a teammate
121
134
1.2%
C
Upgraded to paid
92
94
0.9%
C
Downloaded guide
71
78
0.7%
E
Add-on purchase
54
58
0.5%
F
contact_submitted
46
51
0.5%
E
api_key_created
38
42
0.4%
E
report_generated
29
33
0.3%

Every goal shows its conversion rate by source, campaign, and page. "Started trial" is not one number, it is a column you can sort any channel by.

The signup funnel, with the leak visible

Chain those goals into a funnel and the leak stops being a feeling. 4,850 homepage visitors, 2,340 reach pricing, 486 start a trial, 92 upgrade. Each step shows the drop against the previous one, and the worst step is obvious at a glance.

100%
(4,850 Visitors)
48.25%
(2,340 Visitors)
10.02%
(486 Visitors)
1.90%
(92 Visitors)
Visited homepage
Visited pricing
-52% vs previous step
Started trial
-79% vs previous step
Upgraded to paid
-81% vs previous step
//pricing/signup3 steps178 · 6.1%
//features/docs/installation3 steps121 · 4.9%
/blog/google-analytics-alternative/features/pricing3 steps84 · 3.2%
Top 3 paths out of 7,900 multi-step sessions

Flows is the same picture from the other side: the routes people actually take before signing up, discovered automatically from your traffic. When a path you never designed converts at 6.1%, that is a landing page waiting to be built. Save any flow as a funnel in one click.

Channels that send signups, not just visits

A launch can send five thousand visitors who never return. The Sources panel shows engagement next to every channel and source, so the 940 AI Search visitors engaging at 63% look different from a paid channel that bounces at 28%.

Channel
Visitors
Eng
Organic Search
3.7k38%
54%
Direct
2.2k22%
46%
Referral
1.2k13%
58%
AI Search
94010%
63%
Organic Social
6206%
37%
Email
4204%
68%
Paid Search
3303%
28%
$Organic Video
1802%
44%
Paid Social
901%
24%
Affiliates
741%
39%
Display
380%
13%
Organic Shopping
180%
34%

Click any channel and the whole dashboard cross-filters to it, goals included. That is conversion rate per channel in one click, and the spend conversation gets short: Referral sends 1,230 visitors at 58% engagement, Paid Search sends 330 at 28%. Numbers like that move budgets.

Which plan actually signs up

Signups are not equal, and one custom property separates them: pass the chosen plan on your signup event and the plan mix becomes a live breakdown. Filter the dashboard to plan is pro and every panel answers for your highest-value signups only: the channel that brings them, the pages they read first, how long they stayed.

planHide
planVisitors%Events
pro18245%198
starter12030%131
enterprise6416%64
free369%40

Properties appear on their own the moment the first one arrives, need no configuration, and work as filters everywhere, saved segments and the API included.

Launch weeks, marked on the chart

Annotations pin what you shipped to the day you shipped it: launches, pricing changes, releases. The chart in the dashboard above carries one: a v2 launch on Product Hunt, with the spike, the trial lift, and the upgrade bump trailing it.

Engagement62%Last 28 Days
Conversions
48615%
Conv. Rate
4.9%6%
Duration
2:415%
Scroll
57%3%
12%10%8%6%4%2%028.0201.0302.0303.0304.0305.0306.0307.0308.0309.0310.0311.0312.0313.0314.03
Redesigned pricing page
Based on scroll data: only 38% reached the CTA. Moved pricing table above fold.

Annotations are shared with the whole team, so next quarter nobody scrolls Slack asking what caused the spike in March. The annotated chart drops straight into an investor or team update.

Developers ask AI assistants for tool recommendations now, and some of those conversations end on your signup page. Clickport tracks the whole chain: which engines crawl your site, which ones cite it in answers, how many visits those citations send, and whether any of them start a trial.

SourcesLocationsTechnologiesCampaigns
ChannelsSourcesURLsAI
2140 citations · 8.4k crawls · 940 AI visits · 46 conversions
Engine
Ingested
Cited ↓
Visited
Converted
OpenAI354094042021
Perplexity223062025012
Anthropic12902801207
Google780190904
Microsoft42080402
Mistral16030200
Cross filters don't apply to agent traffic.

Crawlers are verified against the engines' published signatures, so a scraper pretending to be GPTBot does not pollute the numbers. AI agent analytics comes with every dashboard, and AI Search is one of the 16 channels, so it shows up in every panel like any other source.

AI referral volume is still small for most SaaS sites, and the dashboard will say so honestly. But the 940 AI Search visitors above engage at 63%, the highest of any channel on the board. When someone arrives pre-recommended, they arrive warm.

Upgrade revenue, per channel and campaign

Connect Stripe or Paddle, or pass a revenue value on any event, and money becomes a first-class metric: a Revenue stat in the dashboard header, Revenue and Avg columns on goals, and a revenue figure behind every channel, campaign, and country.

In the dashboard above that is €18,760 from 92 upgrades at a €204 average, plus €2,700 in add-on purchases. Attribution to the source that brought the visitor happens per visit, so "Paid Search costs more than it returns" is a sentence you can now check rather than suspect.

Watch a single trial happen

Aggregates tell you the conversion rate. Sessions tell you why. Open any visit and follow it page by page: where they landed, what they read, how far they scrolled, and where they signed up or gave up.

PagesSessionsGoalsJourneys
AllLiveConvertedBouncedSignals
Jun 3 11:02 - 11:08Google · United States · Desktop · Windows · Chrome
/pricingP1:34 80%
/signupF1:28 93%
Jun 3 10:55 - 10:59LinkedIn · Germany · Mobile · Android · Chrome
/features1:00 72%
/pricingC1:50 85%
Jun 3 10:48 - 10:53ChatGPT · France · Desktop · macOS · Safari
/0:36 55%
/signupF1:42 90%
Jun 3 10:40 - 10:45Direct · United Kingdom · Desktop · Windows · Edge
/pricing1:24 78%
/contactF1:36 88%
Jun 3 10:32 - 10:38Perplexity · Canada · Desktop · macOS · Chrome
/features1:12 76%
/pricingC1:30 87%
Jun 3 10:24 - 10:28Bing · Netherlands · Desktop · Windows · Chrome
/features1:08 70%
/dashboardE2:04 86%
Jun 3 10:14 - 10:21Google · Australia · Mobile · iOS · Safari
/0:44 60%
/pricingP1:38 82%
/signupF1:52 94%

Filter to converters and read what your best signups did differently. Filter to bounces and see which page lost them. There is no video replay and no recording script, so there is no consent problem and nothing heavy on the page.

Next to your product analytics, not instead of it

Clickport is visit-first. It owns the marketing site and the acquisition funnel: traffic source to signup, campaign to upgrade, with no SDKs and no event taxonomy to design. Your product analytics keeps owning in-app behavior, feature adoption, and retention cohorts.

The honest limit: Clickport is cookie-free, so it does not follow a person across sessions. There are no user-level LTV curves here, by design. What you get in exchange is numbers you can show anyone, collected without tracking anyone.

The whole team can look

Add teammates by email with a role: growth edits goals and campaigns, engineers and investors stay read-only. Contractors join as guests on a single site. There is no per-seat pricing, so "can I get access" is never a budget question. Read how teams work.

For people who should see numbers without logging in, send a read-only share link, or schedule an email report that lands in the inbox every Monday morning.

Launch-day numbers without the bots

Launch days bring crawler floods, and a funnel that counts them lies to you. Clickport screens every hit at ingestion through eleven bot-detection layers: datacenter and cloud IPs, headless and scripted browsers, and known bot signatures never reach your numbers.

01 · Protection
Protection active· 11 detection layers · blocklists refreshed today
19
Blocked today
2,300↗22%
Last 30 days
47.9%
Of all traffic

The Bot Center shows exactly what was blocked and why, and AI crawlers are surfaced separately, visible without inflating your traffic. When the launch chart says 4,850 visitors, that is 4,850 people.

No cookie banner on your signup flow

Clickport uses no cookies and retains no personal data, so it is designed to run without a consent banner: nothing in front of your pricing page, no reject button subtracting visitors from your funnel, and no GDPR review blocking the rollout. It is built for compliance and hosted in the EU.

Every visitor is counted exactly once per visit. Your conversion rate stops being "conversion rate among the fraction who clicked accept."

2 KB against your Core Web Vitals

The tracker is a single deferred script of about 2 KB, loading after your page, off the critical render path. Your marketing site's Core Web Vitals, and the rankings that ride on them, will not notice it exists.

Every screen above is the same dashboard, live minutes after the snippet. And Clickport works the same way for agencies, ecommerce, and publishers and creators.

Try Clickport

Start a free 30-day trial. No credit card required. Run it alongside your current analytics and compare signup numbers directly; the comparison usually settles it.

Clickport charges a subscription instead of monetizing your data. That is the model that keeps our incentives aligned with yours: you pay for analytics, you get analytics, and your visitors are not the product.

Bigger operation? If you need SSO, an SLA, or invoice billing, see Clickport for enterprise or contact sales.

Coming from Google Analytics? The migration guide walks through the switch in six steps, your GA4 history included.

Traffic tells you the launch worked. Signups tell you it mattered.

Frequently asked questions

Can I track trial signups and upgrades without code?

Mostly. Turn your signup and upgrade pages or buttons into goals in the dashboard with no code, and track in-app activation with a single custom event. No tag manager either way.

Can I see which source brings signups, not just visits?

Yes. Clickport shows the conversion rate and engagement behind every channel, source, and UTM campaign, AI Search included, so you can tell a 3,000-visitor launch that converts from one that bounces.

Which pages actually drive signups?

Every page gets a 0-100 engagement score from real scroll and active time, so you can see whether visitors reach your pricing CTA, and which posts and pages send people to sign up.

Will bots inflate my launch numbers?

No. Every hit is screened at ingestion through multiple bot-detection layers, and a bot center shows what was blocked, so a launch-day flood of crawlers never lands as signups in your funnel.

Will the tracker slow my site down?

No. The tracker is a single deferred script of about 2 KB that loads after your page, off the critical render path, so it never holds up your marketing site or your Core Web Vitals.

I already have product analytics. Where does Clickport fit?

Alongside it. Clickport is visit-first: it owns the marketing site and the acquisition funnel, from traffic source to signup, with no SDKs to wire and no event taxonomy to design. Your product analytics keeps doing in-app behavior; Clickport answers where the signups came from and which traffic was worth it.

Can I run it alongside my current analytics?

Yes, and that is the easiest way to evaluate it: the snippet coexists with any other tag, the two never interact, and nothing about your setup changes. Compare the numbers for a month, then keep the one that earns it. Removing either is a one-line change.

Can my team and contractors get access?

Yes. On any paid plan you add teammates by email with a role: growth edits goals and campaigns, engineers and investors stay read-only. Contractors and agencies join as guests on a single site, optionally limited to one segment of its data. There is no per-seat pricing, removing someone works on their next click, and a team activity trail records who changed what. Read how teams work.

Put signups on your dashboard

30-day free trial. No credit card, no cookie banner, one snippet.

Start free trial