Documentation menu

Install on Next.js

Add Open Analytics to a Next.js site: where the snippet goes and how to verify it.

The short way

From your project folder, let the CLI detect Next.js and place the snippet itself:

terminal
npx getopen init

It asks for your tracking key (dashboard, your site, Settings, Installation), writes the tag, and prints which file it changed. Prefer to do it by hand? The steps below are what it does.

Manual steps

1. App Router: add the script tag inside the <head> element of your root layout. If the layout has no <head> yet, add one; Next.js merges it with its own.

app/layout.tsx
export default function RootLayout({ children }) {
  return (
    <html lang="en">
      <head>
        <script
          async
          src="https://c.getopen.so/oa.js"
          data-key="YOUR_TRACKING_KEY"
          data-collector="https://c.getopen.so"
        ></script>
      </head>
      <body>{children}</body>
    </html>
  );
}

2. Pages Router: put the same tag inside <Head> in your custom document instead.

3. Client-side navigation is tracked automatically: the script patches the history API, so route changes count as pageviews with no extra code.

4. Deploy (or run your dev server) and open the site once. The realtime view in your dashboard shows the visit within seconds; historical charts fill moments later.

Next

Route changes in a single-page app are tracked automatically, and the snippet never needs editing for updates. From here: custom events for the actions you care about, or script options for test mode and the privacy attributes.