@crazyegg/analytics
v0.1.1
Published
CrazyEgg tracking script integration for React, Next.js, Vue, Nuxt, Svelte, and Astro.
Readme
@crazyegg/analytics
Official CrazyEgg tracking-script integration for every major web framework.
One package. Install once. Pick your framework's subpath. Never ship a
hand-rolled <script> snippet again.
pnpm add @crazyegg/analytics
# or npm i @crazyegg/analytics
# or yarn add @crazyegg/analyticsSupported frameworks
| Framework | Subpath | Guide |
| -------------- | ------------------------------- | ----------------------------- |
| React 16.8+ | @crazyegg/analytics/react | docs/react.md |
| Next.js 13+ | @crazyegg/analytics/next | docs/next.md |
| Vue 3 | @crazyegg/analytics/vue | docs/vue.md |
| Nuxt 3 | @crazyegg/analytics/nuxt | docs/nuxt.md |
| Svelte 3/4/5 | @crazyegg/analytics/svelte | docs/svelte.md |
| Astro 3+ | @crazyegg/analytics/astro | docs/astro.md |
Quick start (React)
import { CrazyEgg } from '@crazyegg/analytics/react';
export default function App() {
return (
<>
<CrazyEgg accountId="00409118" />
{/* rest of your app */}
</>
);
}If CRAZY_EGG_ACCOUNT_ID is set in process.env (Node / SSR) you can omit
the prop:
<CrazyEgg />For Vite-based apps (Vue, Svelte SPA, React+Vite), process.env does not exist
in the browser; pass accountId explicitly or expose it through your
framework's own env mechanism (see the per-framework guide).
Account ID format
accountId is a numeric string of 1–8 digits. It is left-padded with zeros
to 8 digits before being split into two 4-digit path segments:
| You pass | Padded | Loaded URL |
| ------------- | ---------- | -------------------------------------------------------- |
| "00409118" | 00409118 | https://script.crazyegg.com/pages/scripts/0040/9118.js |
| "409118" | 00409118 | https://script.crazyegg.com/pages/scripts/0040/9118.js |
| "9118" | 00009118 | https://script.crazyegg.com/pages/scripts/0000/9118.js |
Guarantees
- SSR safe — nothing happens on the server.
- Idempotent — mounted twice, HMR'd, or navigated to multiple times? One script tag, guaranteed.
- Never throws — invalid account IDs, missing env vars, or failed DOM calls degrade to a
console.warnin development and a silent no-op in production.
Contributing
See docs/contributing.md.
License
MIT © CrazyEgg
