@analytiics/tracker
v0.3.0
Published
Analytiics browser tracker: pageviews, custom events, and identity. Under 2 KB.
Maintainers
Readme
@analytiics/tracker
The Analytiics browser tracker. Pageviews, SPA navigation, outbound clicks, custom events, and identity — under 2 KB gzipped, no cookies.
Script tag
The usual way. Nothing to install:
<script defer src="https://in.analytiics.co/script.js" data-site="your-project"></script>As a module
import { init } from "@analytiics/tracker";
const analytiics = init({ site: "your-project", api: "https://in.analytiics.co" });
analytiics.track("page_published", { template: "grid" });
analytiics.identify(user.id);What it does automatically
Initial pageview, SPA navigation (history API and back/forward), outbound link
clicks, and a flush on page hide. Localhost is ignored unless you pass
allowLocalhost, so dev traffic never pollutes production data.
An outbound click is a link to another site — www. and your own subdomains
count as the same site, so linking from your marketing page to your app doesn't
report you as your own top destination. It records the destination, which is
what the dashboard's Exit link list ranks.
identify()
analytiics.identify(user.id);Links the anonymous visitor to a user id you know. This is what lets a server-side revenue event — a Stripe webhook, which has no referrer and no session — resolve back to the visit that earned it. Call it at signup and login.
The id lives in sessionStorage, not a cookie or localStorage: it lasts as
long as the tab, which keeps it out of the persistent-identifier category that
makes tracking a consent question.
Revenue
The tracker deliberately has no revenue call. The collect endpoint is public
and unauthenticated — it has to be, since this script ships to every visitor —
so it ignores revenue outright. Otherwise anyone could post fake sales into
your dashboard. Send revenue from
@analytiics/sdk-node
instead.
Failure behaviour
Every call is wrapped: a network failure, a blocked request, or unavailable storage is a no-op. Analytics must never break the app it measures.
