Skip to content
Sealmetrics

Role · CTO and engineering

Analytics your stack
barely notices.
~1.1 KB on the wire.

GA4's script weighs around 149 KB, needs consent wiring through a banner and a tag manager, and marketing still asks engineering why the numbers do not match. Sealmetrics is one deferred script of about 1.1 KB that sets no cookies and writes nothing to the device, tracks single-page app routes out of the box, and exposes the same data through a REST API, an MCP server and a BigQuery connector on every plan.

One script tag · no device storage · SPA routes automatic · API, MCP and BigQuery on every plan · Dublin

Quick answer

Web analytics from an engineering point of view is a script on every page, a data flow to govern and an API the rest of the company will ask for. GA4 ships around 149 KB of JavaScript on the wire, sets cookies that a consent banner and tag manager must gate, and exports to BigQuery with daily limits on standard properties. Sealmetrics loads one deferred script of about 1.1 KB, 132 times lighter in the measurement of 27 August 2026. It writes no cookie or other device storage and keeps no IP address; a session marker lives in memory for about two hours. History API routers in React, Vue, Angular or Next.js are tracked without configuration. The data is available through a REST API with read-only tokens, a hosted MCP server and a BigQuery connector, all on every plan. It is a managed service in Dublin: there is no self-hosted version.

What engineering ends up owning

Analytics is a dependency.
Treat it like one.

The questions below are the ones an engineering lead answers for any analytics vendor. The difference is how much of the answer lands on your team.

What you ownWith GA4, a tag manager and Consent ModeWith SealmetricsWhere to verify
Script weightAbout 149 KB of gtag.js on the wire, before the tag manager containerAbout 1.1 KB, deferredTracker measurement, 27 Aug 2026
Consent plumbingTags gated by the banner; Consent Mode states to configure and keep in stepNo cookie or device storage to gate for the analytics tag itselfDocs: what we track
Single-page appsPage changes configured in GA4 or the tag managerHistory API navigation tracked by default; manual mode with auto=0 and spa=0Docs: SPA support
Ad-blocker exposureLoaded from Google's domains, which block lists includeDefault t.sealmetrics.com, or a subdomain of your own domainDocs: first-party tracker
Data accessBigQuery export with a daily event limit on standard propertiesREST API, MCP server and BigQuery connector on every planIntegrations pages
RetentionSetting per propertyFixed TTLs: event rows 1 day, hourly 90 days, daily and conversions 24 monthsDocs: data location and retention

The weight comparison is a dated measurement, re-run on 27 August 2026 and published with its method in we measured every analytics script. What the architecture stores, and why no identifier survives the session, is covered in security and the first-party data collection glossary entry.

What a heavy analytics stack costs

The cost is not the licence.
It is the upkeep.

Engineering rarely chooses the analytics tool, but it carries it. Three costs show up in every team.

01

Weight on every page view

The analytics script loads on every page of the site. At about 149 KB against about 1.1 KB, the difference is paid by every visitor on every navigation.

02

Consent wiring that never ends

Each new tag reopens the banner configuration, the tag manager triggers and the Consent Mode states. Keeping them in step is engineering work that ships no feature.

03

Debugging numbers that do not match

When marketing asks why analytics disagrees with the store, the answer often is visitors the tag never recorded. On a Shopify store measured side by side for 48 days, GA4 did not record 29% of visits — the case set out on complete data.

The implementation

One tag,
then decide the details.

The steps below cover a custom stack. Stores on Shopify, WooCommerce or Magento use the native integrations listed on platforms; install takes 5 to 30 minutes depending on the platform.

  1. Add the script tag

    Place the tracker once in the head of every page, with defer. It fires the first pageview on load and writes no cookie, localStorage or sessionStorage entry.

  2. Decide on first-party loading

    To reduce ad-blocker loss, create the subdomain shown in the dashboard with an A record, email the team, and switch to the snippet served from your subdomain once they confirm. Do not run both snippets, or pageviews are counted twice.

  3. Handle single-page app routes

    Routers built on the History API are tracked automatically. Hash-based routers are not. For a content group per route, load the script with auto=0 and spa=0 and fire each pageview yourself.

  4. Send conversions and microconversions

    Call sealmetrics.conv for purchases or leads with their value, and sealmetrics.micro for steps such as add to cart. Keep names, emails and other personal data out of properties.

  5. Connect the data

    Give analysts a read-only API token, connect AI assistants to the hosted MCP endpoint, and set up the BigQuery connector for the warehouse. Webhooks and audit logs are available from the Scale plan.

Code, as documented

Four snippets
cover most stacks.

Copied from docs.sealmetrics.com. Replace YOUR_ACCOUNT_ID with the site ID from the dashboard; the full reference is in the MCP reference and the tracker documentation.

Standard install

Once, in the head of every page.

<script src="https://t.sealmetrics.com/t.js?id=YOUR_ACCOUNT_ID" defer></script>

Manual pageviews for a single-page app

Both flags are needed to fire every pageview yourself with its content group.

<script src="https://t.sealmetrics.com/t.js?id=YOUR_ACCOUNT_ID&auto=0&spa=0" defer></script>

<script>
  // fire each pageview yourself, with its content group
  sealmetrics({ group: 'home' });
</script>

Microconversion and purchase

Items are optional on the purchase and feed product reports by channel.

sealmetrics.micro('add_to_cart', {
  product_id: 'SKU-123',
  price: '89.99',
  quantity: '1'
});

sealmetrics.conv('purchase', 149.99, {
  currency: 'EUR',
  items: [
    { product_name: 'Blue Running Shoes', price: 89.99, quantity: 1, category: 'footwear' }
  ]
});

Connect Claude Code to the MCP server

Hosted endpoint; the assistant authorises with the user's own Sealmetrics account.

claude mcp add --transport http sealmetrics https://mcp.sealmetrics.com/mcp

Who touches it

One dataset,
four engineering jobs.

Each role reaches the same data through the interface it already works with.

CTO / engineering lead

A vendor that adds little weight and little upkeep.

One deferred script, no device storage to govern, fixed retention and a managed service in Dublin.

Security overview

Frontend developer

Correct pageviews in a single-page app without router code.

History API tracking by default, manual mode with auto=0 and spa=0, content groups at load.

Platforms and stacks

Data engineer

Analytics data in the warehouse without a sampled export.

A BigQuery connector with a star schema, hourly or daily sync, included on every plan.

BigQuery connector

AI and internal tools

Assistants that answer from real data, not from a guess.

A hosted MCP endpoint with more than 40 read-only tools, authorised per user.

MCP reference

Measured, with the method published

Two measurements engineering can check: a dated weight comparison of analytics scripts, re-run on 27 August 2026, and a 48-day side-by-side run on a Shopify store reconciled with its real orders.

132×

heavier: GA4's gtag.js against Sealmetrics' t.js, gzip on the wire

Tracker measurementOpen
29%

of visits GA4 did not record over 48 days on the same store

IncaptoOpen
96%

of the store's real orders recorded over the same 48 days

IncaptoOpen

What it does not do

A light tag
with clear boundaries.

These limits are architectural. Attribution is last click within each session.

No self-hosted version

Sealmetrics is a managed service. Analytics data is processed and stored in Dublin, Ireland; isolated processing is available on Enterprise.

No user-level data to export

Event-level rows are purged after 1 day. What you query and export are aggregates and conversions, kept for 24 months.

Hash routers need manual pageviews

Routers based on /#/ paths are not detected automatically. Fire the pageviews yourself in manual mode.

First-party loading needs a team step

After the DNS record, the Sealmetrics team completes the server side before you switch snippets.

API tokens read only

Configuration changes happen in the dashboard, not through API tokens or the hosted MCP endpoint.

Webhooks and audit logs from Scale

The REST API, MCP server and BigQuery connector are on every plan; webhooks and audit logs start on Scale.

Questions engineering asks

Before you add
another script tag.

How much does the Sealmetrics tracker weigh?

About 1.1 KB gzip on the wire and 1,991 bytes uncompressed for the full t.js, in the measurement of 27 August 2026. GA4's gtag.js measured about 149 KB on the wire the same day, 132 times heavier. The script loads with defer.

Does Sealmetrics work with React, Vue, Angular or Next.js single-page apps?

Yes. Any router built on the History API is tracked automatically: pushState, replaceState and back or forward navigation each fire a pageview, and duplicates of the same URL are skipped. Hash-based routers are not detected automatically; use manual mode with auto=0 and spa=0.

Can we serve the tracker from our own domain?

Yes. Create the subdomain shown in the dashboard with an A record, email the team to complete the server side, then replace the default snippet with the one served from your subdomain. Requests from your own domain are far less likely to be blocked by ad blockers than those to t.sealmetrics.com.

Does Sealmetrics use cookies, local storage or fingerprinting?

No. The tracker writes nothing to the device and does not fingerprint. A short-lived session marker, derived per site and kept in memory for about two hours, groups the hits of one visit; it is not stored in the browser and cannot recognise a returning visitor.

Which APIs are available, and on which plans?

The REST API with read-only tokens, the hosted MCP server and the BigQuery connector are included on every plan, the free Agentic tier among them. Webhooks and audit logs are available from Scale, and isolated processing on Enterprise. Rate limits depend on the plan.

Can we self-host Sealmetrics?

No. Sealmetrics runs as a managed service, with analytics data processed and stored in Dublin, Ireland. Enterprise plans add isolated processing.

Can it run alongside GA4 and our tag manager?

Yes. The tracker can be added directly in the HTML or through Google Tag Manager, and it runs next to GA4 without changing its setup. Most teams run both over a full commercial cycle before deciding which one reports to the business.

Technical walkthrough

Bring your stack.
We walk through the implementation.

Thirty minutes on your own architecture: the script, single-page app routing, first-party loading, the API and the BigQuery schema.