Skip to content
Sealmetrics

Industry · Self-serve SaaS

The trial started.
Its channel
was not recorded.

A self-serve SaaS moves acquisition budget on sign-ups by channel. That count usually comes from analytics that does not record visitors who reject the consent banner, and from ad platforms that credit sign-ups to their own ads. Sealmetrics measures the marketing site and the sign-up flow without cookies and credits each sign-up to the last click of its session. It stops where the account begins.

Marketing site and app · microconversions per sign-up step · last click per session · no cookies · EU-hosted in Dublin

Quick answer

Analytics for SaaS has to show which channels and campaigns bring trials and paid sign-ups, on a count that does not depend on who accepted the consent banner. Self-serve teams usually read acquisition from GA4, which does not record visitors who reject the banner, and from ad platforms, which credit sign-ups to their own ads. Sealmetrics counts visits without cookies and credits each conversion to the last click of the session in which it fires. A sign-up is a conversion with amount 0; plan selection and each form step are microconversions, and a plan property shows which campaigns bring which plans. With the same tracker on the marketing site and the app subdomain, the session keeps its source across both. Nothing links visits across sessions, so a trial started today and a payment three weeks later are separate events: Sealmetrics does not measure trial-to-paid per account, activation cohorts or retention.

Why the sign-up report misleads

The sign-up is real.
Its source is a guess.

A self-serve team asks the same acquisition questions every week. Each one is answered today by a tool that either loses part of the traffic before the form or grades its own ads, and one of them belongs in a different tool altogether.

The weekly questionWhere it is answered todayWhat goes wrongWhat changes when it is measured
Which channel brings trials?GA4 acquisition reportsVisitors who reject the banner are not recorded, and not evenly by channel; sign-ups with no usable source land in Direct or UnassignedSign-ups by source, medium and campaign, counted without consent loss
Which campaign brings trials?Ad platform reportsEach platform credits sign-ups to its own ads, with its own attribution windowSign-ups by utm_campaign and utm_content, read from the landing page of the session
Where does the sign-up form lose people?Form tool or GA4 funnel explorationBuilt only on the sessions that were recordedOne microconversion per step, compared by source, medium and campaign
Which campaigns bring which plans?Billing systemKnows the plan, not the channel of the visitA plan property on the sign-up or subscription, broken down by campaign
Did the trial become a paying account?Billing system and product analyticsNothing: they know the account, which is what this question needsStill answered there. Sealmetrics does not link a later payment to the visit that started the trial

No SaaS parallel run is published yet, but the loss is measurable on other sites. When Incapto, an eCommerce brand on Shopify, ran GA4 and Sealmetrics side by side for 48 days, GA4 did not record 29% of visits, and the gap was uneven by channel. How GA4 fills part of it with estimates is covered under Consent Mode v2; the event model behind sign-up steps is explained in event tracking.

What the wrong base costs a SaaS team

Budget follows
the trials you can see.

Consent loss does not remove sign-ups evenly. It changes which channels look like they work, and each distortion lands on a decision the growth team makes.

01

Search and content under-credited

Channels that reach people who do not know the product yet can lose more than direct. On Incapto's store, Sealmetrics recorded 11% more direct traffic than GA4 but 62% more from organic search. Where a SaaS site shows the same pattern, the blog and search budget is judged on the smaller number.

02

Cost per sign-up on a partial denominator

Cost per sign-up divides each platform's spend by the sign-ups that were recorded. When the missing sign-ups are not spread evenly, the channel that looks cheapest in the report may not be the cheapest one.

03

Form changes tested on a filtered sample

A drop between sign-up steps that is read only on consented sessions describes the visitors who accepted the banner. Changes to the flow are then judged on a sample the banner chose.

Measuring the sign-up flow

Tag the flow.
Then read the channels.

Each step follows the SaaS implementation guide in the Sealmetrics documentation. The attribution rules behind the channel numbers are set out in revenue attribution.

  1. Install the same tracker on the marketing site and the app

    Add the Sealmetrics tracker with the same account ID to the marketing site and the app. Moving from www to app on the same root domain is internal navigation, so the session keeps its source. Single-page apps built on the History API are tracked on route changes with no extra code.

  2. Group pricing, blog, docs and app pages

    Add the group parameter to the tracker, such as group=pricing, group=blog, group=docs or group=app, so acquisition pages and in-app pages can be read separately in the Pages report.

  3. Fire a microconversion for each sign-up step

    Call sealmetrics.micro() for plan selection, the start-trial click and each step of the sign-up form, with properties such as plan or billing. Never put an email, a name or an account ID in a property.

  4. Record sign-ups and payments as conversions

    Fire a signup conversion with amount 0 on the page shown after the account is created, and a subscription or upgrade conversion with its amount when a payment is completed on your site. Each is credited to the last click of the session in which it fires, so a payment weeks after the trial is credited to that later visit.

  5. Register external login and payment domains

    If sign-up passes through an SSO provider, an accounts domain or a hosted payment page on another domain, register that domain as a passthrough referrer through the API, so the return keeps the original source instead of opening a referral visit. Major payment gateways are already on a built-in list.

  6. Read sign-ups by campaign and plan

    Compare conversions by source, medium and campaign. The Funnel by UTM table lists one column per microconversion and conversion type for each campaign, and the Properties report breaks the plan property down by campaign. Trial-to-paid per account stays in the billing system or product analytics.

The calls

Three events
from the docs.

Copied from the SaaS implementation guide. The first is a microconversion with no value; the other two are conversions. Properties describe the plan, never the person.

A sign-up form step

One microconversion per step, fired when the field is completed.

sealmetrics.micro('signup_step_1', {
  step: 'email_entered'
});

Account created

The sign-up conversion, amount 0, with the plan as a property.

function onSignupSuccess(user) {
  sealmetrics.conv('signup', 0, {
    plan: user.plan,
    trial_days: '14'
  });
}

Trial to paid

The subscription conversion with the plan price, fired when payment succeeds.

sealmetrics.conv('subscription', monthlyPrice, {
  plan: 'pro',
  billing_cycle: 'monthly',
  currency: 'USD',
  trial_days_used: trialDaysUsed.toString()
});

Who uses it in a SaaS team

One sign-up count,
four desks.

Each team keeps its tools. What changes is the acquisition count its weekly decisions are built on.

Head of growth

Know which channels and campaigns bring trials and paid sign-ups.

Sign-ups and subscriptions by source, medium and campaign, counted without consent loss.

Revenue attribution

Performance marketing

Judge paid campaigns outside each platform's own report.

Sign-ups by campaign and creative from the landing page's UTMs, joined with spend in a spreadsheet or BigQuery.

Google Ads tracking

Product and CRO

Find the sign-up step that loses the most people, by source.

One microconversion per form step, compared by campaign. Activation inside the product stays in product analytics.

Event tracking

Data and BI

Put acquisition next to billing without copying personal data.

The BigQuery connector, on every plan, writes conversions with their properties by source, medium and campaign; the comparison with billing is made on aggregates such as date and plan.

BigQuery connector

Evidence so far

No SaaS customer case is published, so this page quotes none. The figures below come from Incapto, a specialty coffee eCommerce brand on Shopify, measured in parallel with GA4. They show how uneven consent loss is by channel on a real site; they are context for the method, not a SaaS result.

29%

of visits GA4 did not record over 48 days on a Shopify store

Incapto · eCommerceRead the case
+62%

more organic search traffic recorded than GA4, against +11% for direct

Incapto · eCommerceRead the case
96%

of real online-store orders recorded, reconciled before any channel was compared

Incapto · eCommerceRead the case

What it does not do

It measures acquisition.
Not the account.

These limits come from measuring without identifying anyone. Attribution is last click within each session, by design, and what happens after login belongs to tools that know the user.

No trial-to-paid per account

A trial and a payment weeks later are separate events in separate sessions. The payment is credited to the visit in which it happens, not to the campaign that started the trial.

No cohorts, activation or retention

There is no user ID, so there are no sign-up cohorts, day-7 activation or churn curves. Those stay in product analytics and the billing system.

No custom funnel chart

The Funnel report draws a fixed eCommerce sequence. Sign-up steps are microconversions, read by type and by campaign rather than as a drawn SaaS funnel.

No account or company data

No emails, account IDs or company matching, and properties must not carry personal data. It cannot tell you which companies visited the pricing page.

Renewals have no visit

A renewal charged automatically by the billing system has no session behind it, so there is nothing to credit it to.

It does not feed ad platforms

Sealmetrics sends no conversions to ad platforms and imports no spend. Keep their tags for bidding.

Questions SaaS teams ask

Before you change
how sign-ups are counted.

How do I attribute SaaS trial sign-ups to channels without cookies?

Fire a signup conversion with amount 0 on the page shown after the account is created. Sealmetrics reads the channel from the landing page of the session, with its UTMs, click IDs or referrer, and credits the sign-up to the last click of that session. Visitors who reject the consent banner are still counted, because no cookie or stored identifier is involved.

Can Sealmetrics measure trial-to-paid conversion?

Not per account. It does not identify visitors across sessions, so it cannot link a payment to the trial that preceded it. A ratio of subscriptions to sign-ups over a period can be read, but it is not a cohort: payments in one month come partly from trials started earlier, and each payment is credited to the session in which it happens. Account-level trial-to-paid belongs in the billing system or product analytics.

Does it keep the source when sign-up happens in the app?

Yes, when the marketing site and the app use the same tracker account and share a root domain: moving from www to app is internal navigation, so the session keeps its source. If the flow passes through a login or payment page on another domain, register that domain as a passthrough referrer through the Sealmetrics API.

Can I see which campaigns bring which plans?

Yes. Add a property such as plan or billing cycle to the sign-up or subscription conversion. The Properties report breaks each property value down by source, medium and campaign, and the BigQuery connector exports conversions with their properties. Do not put emails, names or account IDs in properties.

Does Sealmetrics replace product analytics tools?

No. Product analytics tools identify users after login to measure activation, feature adoption and retention; Sealmetrics identifies no one. It covers the marketing site and the sign-up flow, where visitors are anonymous and the consent banner removes part of the count, and it can sit next to a product analytics tool without overlap.

Which Sealmetrics plans include the API, the MCP server and BigQuery?

All of them. The REST API, the MCP server and the BigQuery connector are included on every plan, from the free Agentic tier, which covers 1 million events over the life of the account with no card, to Growth, Scale and Enterprise.

Does a SaaS marketing site still need a consent banner?

Sealmetrics sets no cookies and stores nothing on the visitor's device. Ad tags, chat widgets, session replay and product analytics that identify users usually do, and still need consent. Whether your analytics setup is exempt from consent depends on its configuration and on your national authority's criteria.

Sign-up measurement review

Bring your sign-up flow.
See which channels change.

Thirty minutes: we look at how your sign-up flow is tagged today and what your analytics reports by channel, and show how steps, sign-ups and plan properties would be set up.