Website analytics that show which visit paid

One line in your site's head counts page views, sources, campaigns and countries, and carries the visitor into checkout, so each payment shows where its buyer came from.

MRR · all 5 projects
€3,562
from
+12.9% in 30 days
Last 30 days €4,146 net
In apps 21%On sites 79%
Just came in
  • TimeLoop App Store · in the app · via RevenueCat 🇪🇸 +€4.99
  • Humanize Stripe · on the site 🇯🇵 +€11.04
  • AstroChart Google Play · in the app 🇫🇷 +€9.99
  • AstroChart Stripe · on the site 🇸🇬 +€9.99

The live demo: our own apps, with example numbers.

Installed in three steps

One line of code, under 4 KB compressed. No account at a tag manager.

  1. 1

    In Sumly, open Visitors and copy your project's line. It carries the project's public key, data-site="sl_…".

  2. 2

    Paste it into the <head> of every page. Single-page apps need nothing more: a change of address counts as a page.

  3. 3

    In the EU and UK, call sumly.consent(true) from your cookie banner once the visitor agrees. Visits show on Visitors as they come.

In the <head> of every page. Your own key is on the Visitors page.

<script defer src="https://sumly.dev/s.js" data-site="sl_your_key"></script>

What you see after connecting

Website script next to every other project and provider, on the same pages.

Visitors

People, page views, sources, campaigns, pages and countries, by day.

Live

Who is on your sites right now, on a map.

Funnels, paths and sessions, from the first page to the payment.

With checkout carrying the visitor

Revenue by source, campaign and country, and ROI for each cost.

Which visit paid

Stripe Payment Links, pricing tables and buy buttons, Polar checkout links and Paddle buttons carry the visitor by themselves: the script adds it to them. For a checkout you create on your server, pass the sumly_vid cookie as metadata named sumly_visitor_id. In the EU and UK this works once the visitor has agreed.

How attribution works →

Counts toward your plan

Each page view Sumly keeps counts toward your plan's visits for the month. Clicks and other events do not. Plans →

What you don't get

No session recordings, heatmaps or A/B tests, and nothing about your visitors goes to an ad network.

The details

What the script sends
  • The address of the page and of the page before it, with any utm tags and ref
  • The screen's width, to tell phones, tablets and desktops apart
  • A random visitor id in a cookie of your own site, sumly_vid, where there is consent or none is asked
  • The events you name, with a few properties, and who signed in if you call identify
What happens to a visit
  • Each page view goes to Sumly as it happens and shows on Visitors, also on the live map.
  • The country and city are worked out from the request. The IP address itself is not kept.
  • Without consent, where it is asked, the visitor is told apart for that day only, from the request, and gets no cookie.
  • The cookie is set once and kept 13 months from the first visit. A later visit reads it and never extends it.
Good to know
  • Without consent in the EU, the EEA, the UK and Switzerland a visit is counted, but its later payment cannot be traced to it.
  • Browsers that send Global Privacy Control are counted without a cookie everywhere.
  • Automated browsers are not counted, and sumly.ignoreMe() in your browser's console leaves out your own visits.
  • Ad blockers can stop the script on sumly.dev. Served from your own domain, it gets past them.

Website script questions

Does it set a cookie?

One, sumly_vid, on your own site, so a payment can be traced to the first visit. In the EU, the EEA, the UK and Switzerland it waits until you call sumly.consent(true). Until then visits are counted without it.

Do I need a cookie banner for it?

Where a banner is asked for, the script sets no cookie until the visitor agrees, and counts them without one. Whether your site needs a banner for its other tools is for you to decide.

Does it work with single-page apps?

Yes. A change of address through the browser's history counts as a page view, in React, Vue, Next.js or any other.

Can it run from my own domain?

Yes, through two paths on your site, /sumly/s.js and /sumly/e, passed through to Sumly. The Visitors page has the code for Next.js, a Cloudflare Worker, Nginx and Laravel, and the proxy passes on the visitor's place so countries and cities stay right.

How do I leave out my own visits?

Open your site, then the browser's console, and run sumly.ignoreMe(). That browser is no longer counted; sumly.ignoreMe(false) undoes it.

Is my visitors' data sold or shared?

No. It is yours, kept for your projects only, and never sent to an ad network or used across customers.

Other integrations

Try it with your own projects

Sign in with Google or a code by e-mail and connect your first project. Free for one project, and 14 days of a paid plan with no card.

Start free

Or look around first: open the live demo.