Skip to content
MintGuides

Go live

Analytics

Count visits to your website without cookies: where they came from, who each visitor is and every page they visited, clicks and your own events.

Open Analytics
On this page

What it is

Visits to your website, counted without cookies.

Page views, visitors and visits, where they came from (Google, an ad, Facebook, a newsletter…), where they are and on what network, what they use, how long they read each page, which links they click, and events you send yourself — for website projects, in Site → Analytics. Each visitor has their own page with every visit, page by page. One line of HTML on your site starts it.

Adding the tracker

Put this on every page of your site, in the head or before the end of the body.

<script src="https://mint-c5e1255519fc.herokuapp.com/public/track.js" data-key="<project key>" defer></script>
  • Replace <project> with your project’s public name — or copy the snippet, filled in, from the Public API page.
  • Single-page sites (React, Next.js, Vue…) are handled: a page view is counted on every route change, not only on load.
  • Events are sent in small batches in the background, so they don’t slow your pages.

Your domains

List your site’s domains on the project (Projects → ⋯ → Edit). Then only visits from them — and their subdomains — count, so nobody can fill your reports by copying the snippet elsewhere. example.com covers www.example.com and shop.example.com. With no domains listed, visits from any site count.

The Analytics page

Three tabs — Overview, Visitors and Live. Choose today, the last 7, 30 or 90 days, or 12 months.

  • Overview: six numbers, each against the same length of time just before — page views, visitors, visits, pages per visit, average visit and bounce rate — and page views per day.
  • Where visits come from: channels, sources, campaigns and referring sites.
  • Pages: top pages with the average time on each, landing pages (where visits start), clicks and events.
  • Where visitors are: countries, cities, internet providers and languages.
  • What they use: devices, device models, browsers, operating systems and screen sizes.
  • Visitors: everyone seen in the period — see below.
  • Live: who is on the site right now.

Seeing it needs Records: View in your role (owners and admins always can). It counts only this project’s site.

What the numbers mean

NumberIs
Page viewsEvery page shown — a visitor reading three pages is three.
VisitorsDifferent browsers. One person on a phone and a laptop counts twice.
VisitsBrowsing sessions; a visit ends when its tab is closed.
Pages per visitPage views ÷ visits.
Average visitHow long a visit lasts, from the time each page was on screen. Visits from before this was measured are left out.
Bounce rateVisits that saw one page and left.
Time on pageHow long the page was on screen (a tab in the background doesn’t count), and how far down it was scrolled.

Where visits come from

Each visit is sorted by its first page: the address it arrived at and the site it came from.

ChannelWhen
Paid searchA Google Ads or Microsoft Ads click (gclid, msclkid in the address), or utm_medium=cpc from a search engine.
Paid socialA TikTok, LinkedIn, X, Snapchat or Pinterest ad click, or a Facebook/Instagram link with a paid utm_medium.
Organic searchFrom Google, Bing, DuckDuckGo, Yahoo, Yandex, Baidu, Ecosia, Brave, Naver — or ChatGPT and Perplexity.
SocialFrom Facebook, Instagram, X, LinkedIn, YouTube, TikTok, WhatsApp, Telegram, Reddit…
Emailutm_medium=email, or a newsletter tool as utm_source.
ReferralAny other site that linked to yours.
DirectTyped, bookmarked, or from an app that doesn’t say where it came from.

Facebook adds fbclid to every link people click there, ads or not — so a Facebook visit only counts as Paid social when its link also says so, e.g. ?utm_medium=paid. Add utm_campaign (and utm_source, utm_medium) to the links in your ads and emails to see each campaign.

Visitors

Analytics → Visitors lists everyone seen in the period, newest first.

  • Who: their name and email when the site knows them (a signed-in customer, or named by your code — see “Knowing who a visitor is”); otherwise “Visitor” and a short id.
  • Location and timezone, internet provider and IP address, device and browser, and how they first arrived.
  • Search by name, email, IP, city or internet provider; filter by channel or to known people; sort by last seen, newest, most visits or most pages.

Click a row to open their journey.

The place comes from the IP address — about the city, not the street — and a VPN or company network shows its own. One person on a phone and a laptop is two visitors until they sign in on both.

A visitor’s journey

One visitor’s page: everything known about them, and every visit page by page.

  • Who — name, email, whether they’re signed in, first and last seen, visits and pages.
  • Where — IP address, internet provider and network, place (with a map), timezone.
  • On what — device and model, browser and system, screen size, language.
  • How they first arrived — channel and source, the page that sent them, the landing page, the campaign and any ad click.
  • Journey — every visit, newest first: its source, length and pages, then each step in order with its time — a page with how long it was read and how far down, a click, an event and its details.

Live

Analytics → Live shows anyone who did something on the site in the last five minutes, the page they’re on, where they are and where they came from. It updates every 15 seconds; click someone to open their journey.

Clicks and events

Links to other sites are counted as clicks automatically. To count a click on anything else, name it:

<button data-track="book-now">Book now</button>

For things that aren’t clicks — a form sent, a video finished — send an event from your code:

MintAnalytics.track('signup', { plan: 'pro', yearly: true });
// a page view by hand, for routers the tracker doesn’t see:
MintAnalytics.pageview();

Event properties are a flat object of up to 20 short text, number or yes/no values. Visits arriving with utm_source, utm_medium and utm_campaign in the address are recorded with them.

Knowing who a visitor is

Visitors show by name when your site knows them.

  • Customers who sign in through MINT’s site widgets (mint.js) are recognised on their own — the tracker sends their sign-in, which is checked on the server.
  • With your own sign-in, tell the tracker after someone signs in, and forget them when they sign out:
MintAnalytics.identify('user-123', { name: 'Nadia Rahman', email: 'nadia@example.com' });
// when they sign out:
MintAnalytics.reset();

Their earlier visits on that browser join up with the name, so you see what they did before signing in too.

Privacy

  • No cookies. A random visitor id is kept in the browser’s local storage, and a visit id that ends with the tab.
  • Each visitor’s IP address is kept and shown on Visitors. In Site setup → Tracking → Visitor IP addresses you can keep only its first part (203.0.113.0) or not keep it at all — the place and internet provider are still found either way.
  • Names and emails are only those your site gives: a signed-in customer, or MintAnalytics.identify.
  • Visitors with “Do Not Track” on aren’t counted, and search-engine bots are left out.
  • Add data-no-track to the script tag to switch it off — on a staging site, say.
An IP address and a signed-in person’s browsing are personal data in many places (the EU’s GDPR among them). Your site’s privacy policy should say you record visits and what you keep; whether you need a consent banner depends on where you and your visitors are.

Troubleshooting

SymptomWhy, and what to do
“No visits recorded yet”Check the snippet is on the pages and its data-key is the project key from API → Keys.
My own visits don’t showYour domain isn’t in the project’s list, or your browser sends Do Not Track.
There’s no Analytics in the sidebarThe project is an app (analytics is for websites), or your role can’t read records.
Testing on localhost doesn’t countlocalhost isn’t one of your domains. Test on the live site, or clear the domains while you test.
Numbers differ from another toolEach tool counts its own way (bots, Do Not Track, ad blockers). Compare trends, not totals.