Use case · SaaS

Analytics for SaaS: from first visit to paying customer

The best analytics for SaaS answers one question: which channels, campaigns and pages bring in customers who actually pay? That means tracking the whole path — first visit, trial signup, paid conversion — and tying each payment back to the source that earned it, which pageview counters and most free tools don't do.

Updated

A SaaS marketing site is a funnel with a long middle. Someone reads a comparison post in March, comes back from a newsletter in April, starts a trial in May and pays in June. A tool that only counts sessions sees four unrelated visits; a tool built for SaaS sees one customer and credits the channel that found them.

VisitTrack is built around that path. One script tag records visits and signups, a webhook from your billing provider (Stripe, Polar, Lemon Squeezy, Paddle or Razorpay) records payments, and the Revenue tab shows which referrer, campaign and landing page each dollar came from. There's no tag manager and no data warehouse to set up.

The SaaS metrics that matter on your marketing site

  1. 1.Visitor-to-signup conversion rate by channel

    The share of visitors from each source who create an account. Search traffic that converts at 3% and social traffic at 0.4% are different businesses, and the blended average hides it. See the conversion rate definition.

  2. 2.Revenue per visitor by source

    Attributed revenue divided by visitors, per referrer or campaign. It's the single number that lets you compare a Hacker News spike with a slow-burning SEO page on equal terms. Try the revenue per visitor calculator.

  3. 3.Days and visits to convert

    VisitTrack records how many days and how many visits each paying customer took. If the median is 9 days and 4 visits, last-click reports are systematically crediting the wrong channel.

  4. 4.Pricing-page reach and pricing-to-signup rate

    How many visitors ever see /pricing, and how many of those sign up. A low reach means the site doesn't make the case; a low pricing-to-signup rate means the price or the plan layout does the damage.

  5. 5.Signups and revenue by landing page

    Which blog posts, docs pages and comparison pages start journeys that end in a payment. This is how content teams prove ROI instead of reporting traffic.

  6. 6.Trial-to-paid by acquisition channel

    Combine the signup event with payment_completed in a funnel to see whether, say, Product Hunt trials pay at the same rate as organic ones. They rarely do.

Questions SaaS teams ask their analytics

Which channel brought our last 20 paying customers?
The Revenue tab lists each payment with the referrer, UTM campaign and landing page of the visitor's first touch, plus a breakdown by source.
Is the blog worth the money?
Filter revenue by landing page. Posts that start paying journeys show up with real dollar amounts next to them, not just pageviews.
Where do trials drop off before they pay?
Build a funnel from the homepage to /pricing to the signup event to payment_completed. Each step shows its conversion and drop-off.
Did last week's launch bring customers or just tourists?
Filter the dashboard by the launch's referrer or UTM campaign and compare signups and revenue against the same window for organic search.
Which AI assistants send us traffic?
Referrals from ChatGPT, Perplexity, Claude, Gemini and Copilot are grouped into their own AI channel, separate from search and social.

How to set up SaaS analytics with VisitTrack

Plan on about 15 minutes, most of it in your billing provider's dashboard.

  1. Add the script to your marketing site and app

    Put the tag in the shared layout of both the marketing site and the app. If they're on subdomains (example.com and app.example.com) they share visitors automatically; for separate domains use data-cross-domain. Use data-exclude="/app/*" if you don't want in-app pageviews counted. Framework guides: Next.js, React.

    <head> of every page
    <script defer data-site="SITE_ID" src="https://visitrack.app/tracker.js"></script>
  2. Record signups where the account is created

    Signups aren't detected automatically — call the event after your signup request succeeds, and identify the user so the People tab can show their plan. For OAuth flows, send it from the server instead (custom events docs).

    // after your signup request succeeds
    window.visitrack?.("signup", { plan: "free" });
    window.visitrack?.identify?.(user.id, { plan: "free" });
  3. Connect your billing provider

    In Settings → Revenue, connect Stripe (or Polar, Lemon Squeezy, Paddle, Razorpay), then pass the visitor id into checkout. Refunds are subtracted automatically if you subscribe to the refund event. Full guide: Stripe revenue attribution.

    // server: create the Checkout Session with the visitor id
    const session = await stripe.checkout.sessions.create({
      mode: "subscription",
      line_items: [{ price: PRICE_ID, quantity: 1 }],
      client_reference_id: visitorId, // window.visitrack.visitorId() from the browser
      success_url: "https://example.com/welcome",
    });
  4. Create a primary goal and a trial funnel

    Make the signup event your primary goal so it shows on the Overview, then add a funnel: / → /pricing → signup → payment_completed, with a 14-day window to match your trial.

  5. Tag your campaigns

    Add utm_source, utm_medium and utm_campaign to every link you control — newsletters, ads, partner posts. Google, Meta, Microsoft, TikTok and LinkedIn ad click ids are recognized and labeled as paid automatically. Build links with the UTM builder.

Example: what a SaaS dashboard tells you after 30 days

A B2B tool with a 14-day trial, about 12,000 monthly visitors and Stripe connected.

Example: what a SaaS dashboard tells you after 30 days
MetricValueWhat it tells you
Visitors12,140Up 8% on the previous 30 days
Trial signups2862.4% of visitors
Paid conversions4114% of trials, $3,690 attributed revenue
Top source by visitorsGoogle (organic), 4,98041% of traffic, 52% of revenue
Top source by revenue per visitorNewsletter sponsorship, $0.94Only 610 visitors, but $575 in payments
Median time to convert6 days, 3 visitsLast-click reports undercount first-touch channels

Illustrative numbers for a typical site of this kind, not real customer data.

Read that way, the newsletter sponsorship is the best channel per visitor even though it sits sixth by traffic, and organic search earns more than its share. Switching the Revenue tab from first-touch to last-touch moves about $400 from search to direct — returning visitors typing the URL — which tells you search is where these customers were found, not where they closed.

VisitTrack vs GA4, Plausible and PostHog for SaaS

All four can count visitors. They differ on how much work it takes to see revenue by channel, and on cookies. Third-party details are as of October 2026.

VisitTrack vs GA4, Plausible and PostHog for SaaS
VisitTrackGoogle Analytics 4PlausiblePostHog
Revenue by sourceBuilt in, from Stripe/Polar/Lemon Squeezy/Paddle/Razorpay webhooksRequires sending purchase events yourself; no native Stripe linkRevenue goals on the Business plan, sent as custom eventsPossible via events or its data warehouse; you build the reports
Cookies / consent bannerCookieless or hybrid mode availableUses cookies; EU consent expectedCookielessStores an identifier by default
Attribution modelsFirst, last, linear, time-decay, position, side by sideData-driven and last-clickNot offered as a model comparisonBuild your own
Setup effortScript + one webhookTag + event design + consent modeScript + goalsSDK + event design
Starting price$5/mo, all featuresFree$9/mo (funnels and revenue from the $19 Business plan)Free tier, 1M events/mo

If you need product analytics inside the app — feature flags, experiments, per-feature retention — PostHog or Mixpanel go deeper than VisitTrack, and many SaaS teams run one of them alongside a marketing-site tool. If the question is which channel pays, VisitTrack answers it on one screen. See VisitTrack vs Google Analytics, vs Plausible and vs PostHog.

What VisitTrack costs for a SaaS site

Estimate events as monthly visitors × pages per visit, plus signups and payments. Typical SaaS marketing sites see 2.5–3.5 pages per visit.

VisitTrack pricing by traffic profile
ProfileEvents / monthPlanPriceNotes
Pre-launch / early beta~8,000Up to 10k events/mo$5/mo or $50/yrA few thousand visitors, landing page plus docs
Early traction~40,000Up to 50k events/mo$14/mo or $140/yr~12k visitors, blog and pricing page
Growing B2B SaaS~220,000Up to 250k events/mo$29/mo or $290/yr~60k visitors, marketing site + app tracked
Scale-up~900,000Up to 1M events/mo$59/mo or $590/yrSeveral sites and a busy docs portal

Every feature is on every plan; the price only follows monthly events (pageviews, custom events and payments, counted across all your sites). Bot and AI-crawler hits and session replays are never billed. Yearly billing is ten months' price for twelve, every plan starts with a 14-day free trial with no card, and there's a one-time lifetime deal from $59.

Frequently asked questions

What is the best analytics tool for a SaaS website?

The best one is the tool that connects visits to payments. For most early and mid-stage SaaS companies that means a privacy-friendly web analytics tool with built-in revenue attribution, such as VisitTrack, optionally paired with a product analytics tool like PostHog for in-app behavior.

How do I see revenue by marketing channel?

Connect your billing provider's webhook and pass the visitor id into checkout. VisitTrack then credits each checkout payment to the first referrer, campaign and landing page of that customer. Subscription renewals billed outside Checkout aren't attributed automatically — the first payment is the one the channel earned; send later ones through the server events API if you want them counted. See revenue attribution.

Do I still need Google Analytics for a SaaS site?

Only if you rely on Google Ads conversion imports or GA4-specific reporting. Most SaaS teams get what they need — sources, conversions, revenue by channel, Search Console keywords — without it, and avoid the consent banner GA4 typically requires in the EU.

Should I track the app as well as the marketing site?

Track both with the same script so the visitor id carries from the first blog visit into the app. Exclude private app routes with data-exclude if you only want marketing pages counted, or keep them to see activation paths in Journeys.

Does VisitTrack work with Stripe Payment Links and subscriptions?

Yes. Stripe Checkout Sessions and Payment Links are attributed through client_reference_id, and refunds are subtracted when you subscribe to charge.refunded. PaymentIntents created outside Checkout aren't attributed automatically. Details in the Stripe guide.

How is SaaS attribution affected by cookieless mode?

In cookieless mode the visitor id rotates every 24 hours, so a signup days after the first visit would be credited to that day's source. Your app can store visitrack.attribution() at signup and send it back as the first touch to keep cross-day attribution. See cookieless mode.

Related

See which channels actually bring paying customers

VisitTrack is cookie-free analytics with revenue attribution built in. One script tag, no consent banner, live in two minutes. 14 days free, no card required.