This guide will help you get started with using Vercel Web Analytics on your project, showing you how to enable it, add the package to your project, deploy your app to Vercel, and view your data in the dashboard.
Select your framework to view instructions on using the Vercel Web Analytics in your project.
pnpm i vercel
yarn i vercel
npm i vercel
bun i vercel
On the Vercel dashboard, select your Project and then click the Analytics tab and click Enable from the dialog.
/_vercel/insights/*) after your next deployment.
Using the package manager of your choice, add the @vercel/analytics package to your project:
pnpm i @vercel/analytics
yarn i @vercel/analytics
npm i @vercel/analytics
bun i @vercel/analytics
The Analytics component is a wrapper around the tracking script, offering more seamless integration with Next.js, including route support.
If you are using the pages directory, add the following code to your main app file:
import type { AppProps } from "next/app";
import { Analytics } from "@vercel/analytics/next";
function MyApp({ Component, pageProps }: AppProps) {
return (
<>
<Component {...pageProps} />
<Analytics />
</>
);
}
export default MyApp;
import { Analytics } from "@vercel/analytics/next";
function MyApp({ Component, pageProps }) {
return (
<>
<Component {...pageProps} />
<Analytics />
</>
);
}
export default MyApp;
The Analytics component is a wrapper around the tracking script, offering more seamless integration with Next.js, including route support.
Add the following code to the root layout:
import { Analytics } from "@vercel/analytics/next";
export default function RootLayout({
children,
}: {
children: React.ReactNode;
}) {
return (
<html lang="en">
<head>
<title>Next.js</title>
</head>
<body>
{children}
<Analytics />
</body>
</html>
);
}
import { Analytics } from "@vercel/analytics/next";
export default function RootLayout({ children }) {
return (
<html lang="en">
<head>
<title>Next.js</title>
</head>
<body>
{children}
<Analytics />
</body>
</html>
);
}
The Analytics component is a wrapper around the tracking script, offering a seamless integration with Remix, including route detection.
Add the following code to your root file:
import {
Links,
LiveReload,
Meta,
Outlet,
Scripts,
ScrollRestoration,
} from "@remix-run/react";
import { Analytics } from "@vercel/analytics/remix";
export default function App() {
return (
<html lang="en">
<head>
<meta charSet="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
<Meta />
<Links />
</head>
<body>
<Analytics />
<Outlet />
<ScrollRestoration />
<Scripts />
<LiveReload />
</body>
</html>
);
}
import {
Links,
LiveReload,
Meta,
Outlet,
Scripts,
ScrollRestoration,
} from "@remix-run/react";
import { Analytics } from "@vercel/analytics/remix";
export default function App() {
return (
<html lang="en">
<head>
<meta charSet="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
<Meta />
<Links />
</head>
<body>
<Analytics />
<Outlet />
<ScrollRestoration />
<Scripts />
<LiveReload />
</body>
</html>
);
}
The Analytics component is a wrapper around the tracking script, offering more seamless integration with Nuxt, including route support.
Add the following code to your main component:
<script setup lang="ts">
import { Analytics } from '@vercel/analytics/nuxt';
</script>
<template>
<Analytics />
<NuxtPage />
</template>
<script setup>
import { Analytics } from '@vercel/analytics/nuxt';
</script>
<template>
<Analytics />
<NuxtPage />
</template>
The injectAnalytics function is a wrapper around the tracking script, offering more seamless integration with SvelteKit, including route support.
Add the following code to the main layout:
import { dev } from "$app/environment";
import { injectAnalytics } from "@vercel/analytics/sveltekit";
injectAnalytics({ mode: dev ? "development" : "production" });
import { dev } from "$app/environment";
import { injectAnalytics } from "@vercel/analytics/sveltekit";
injectAnalytics({ mode: dev ? "development" : "production" });
The Analytics component is a wrapper around the tracking script, offering more seamless integration with Astro, including route support.
Add the following code to your base layout:
---
import Analytics from '@vercel/analytics/astro';
{/* ... */}
---
<html lang="en">
<head>
<meta charset="utf-8" />
<!-- ... -->
<Analytics />
</head>
<body>
<slot />
</body>
</html>
Analytics component is available in version @vercel/analytics@1.4.0 and later. If you are using an earlier version, you must configure the webAnalytics property of the Vercel adapter in your astro.config.mjs file as shown in the code below. For further information, see the Astro adapter documentation.
import { defineConfig } from "astro/config";
import vercel from "@astrojs/vercel/serverless";
export default defineConfig({
output: "server",
adapter: vercel({
webAnalytics: {
enabled: true, // set to false when using @vercel/analytics@1.4.0
},
}),
});
The Analytics component is a wrapper around the tracking script, offering more seamless integration with React.
Add the following code to the main app file:
import { Analytics } from "@vercel/analytics/react";
export default function App() {
return (
<div>
{/* ... */}
<Analytics />
</div>
);
}
import { Analytics } from "@vercel/analytics/react";
export default function App() {
return (
<div>
{/* ... */}
<Analytics />
</div>
);
}
The Analytics component is a wrapper around the tracking script, offering more seamless integration with Vue.
vue-router.
Add the following code to your main component:
<script setup lang="ts">
import { Analytics } from '@vercel/analytics/vue';
</script>
<template>
<Analytics />
<!-- your content -->
</template>
<script setup>
import { Analytics } from '@vercel/analytics/vue';
</script>
<template>
<Analytics />
<!-- your content -->
</template>
For plain HTML sites, you can add the following script to your .html files:
<script>
window.va = window.va || function () { (window.vaq = window.vaq || []).push(arguments); };
</script>
<script defer src="/_vercel/insights/script.js"></script>
@vercel/analytics package. However, there is no route support.
Import the inject function from the package, which will add the tracking script to your app. This should only be called once in your app, and must run in the client.
inject function.
Add the following code to your main app file:
import { inject } from "@vercel/analytics";
inject();
import { inject } from "@vercel/analytics";
inject();
Deploy your app using the following command:
vercel deploy
If you haven't already, we also recommend connecting your project's Git repository, which will enable Vercel to deploy your latest commits to main without terminal commands.
Once your app is deployed, it will start tracking visitors and page views.
/_vercel/insights/view when you visit any page.
Once your app is deployed, and users have visited your site, you can view your data in the dashboard.
To do so, go to your dashboard, select your project, and click the Analytics tab.
After a few days of visitors, you'll be able to start exploring your data by viewing and filtering the panels.
Users on Pro and Enterprise plans can also add custom events to their data to track user interactions such as button clicks, form submissions, or purchases.
Learn more about how Vercel supports privacy and data compliance standards with Vercel Web Analytics.