← All IntegrationsIntegration
Analytics for SvelteKit
SvelteKit compiles away the framework and ships minimal JavaScript. BetterMeter matches that efficiency — under 1KB, no cookies, no build plugin required. Add the tracker to app.html and analytics are live in seconds.
Option 1: app.html (recommended)
The simplest integration. SvelteKit's app.html is the shell template for every page. Add the script once and it covers your entire app.
src/app.html
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width" />
%sveltekit.head%
</head>
<body data-sveltekit-preload-data="hover">
<div style="display:contents">%sveltekit.body%</div>
<script
defer
data-site="your-domain.com"
src="https://bettermeter.com/api/script"
></script>
</body>
</html>Option 2: +layout.svelte
If you prefer component-level control, use Svelte's <svelte:head> in your root layout. This approach lets you conditionally load the tracker based on environment or user preference.
src/routes/+layout.svelte
<svelte:head>
<script
defer
data-site="your-domain.com"
src="https://bettermeter.com/api/script"
></script>
</svelte:head>
<!-- Svelte 5 -->
{@render children()}
<!-- Svelte 4: use <slot /> instead -->Works with every adapter
- 01 adapter-auto — Deploys to Vercel, Netlify, or Cloudflare. BetterMeter works on all of them.
- 02 adapter-node — Self-hosted Node.js server. Tracker loads from your domain.
- 03 adapter-static — Fully static output. The script tag is in every generated HTML file.
- 04 adapter-cloudflare — Edge deployment. Sub-millisecond page loads, tracked accurately.
File-Based Routes
Clean URL analytics
SPA Navigation
History API tracked
Any Adapter
Vercel, CF, Node, static
No Cookies
Privacy-first
AI Detection
See AI-driven visits
Bot Tracking
Crawlers separated