Astro makes it easy to add analytics scripts to your site. Here are the recommended approaches for integrating Visitors.
YOUR_TOKEN with your project token.Add the script to your base layout component that wraps all pages.
---
export interface Props {
title: string;
}
const { title } = Astro.props;
---
<script
src="https://cdn.visitors.now/v.js"
data-token="YOUR_TOKEN">
</script>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>{title}</title>
</head>
<body>
<slot />
</body>
</html>Astro provides a <script> component for adding external scripts:
---
export interface Props {
title: string;
}
const { title } = Astro.props;
---
<script
is:inline
src="https://cdn.visitors.now/v.js"
data-token="YOUR_TOKEN">
</script>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>{title}</title>
</head>
<body>
<slot />
</body>
</html>For dynamic loading after the page has loaded:
---
export interface Props {
title: string;
}
const { title } = Astro.props;
---
<script>
// This runs on the client
const script = document.createElement('script');
script.src = 'https://cdn.visitors.now/v.js';
script.setAttribute('data-token', 'YOUR_TOKEN');
script.async = true;
document.head.appendChild(script);
</script>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>{title}</title>
</head>
<body>
<slot />
</body>
</html>