Tracking script

Where to paste the script on each platform.

Every guide uses the same tag from your website's setup page. Replace the placeholders with the values shown there.

Plain HTML

Paste the tag inside <head> on every page.

Next.js

Add it to app/layout.tsx (App Router) or pages/_document.tsx (Pages Router):

import Script from 'next/script';

<head>
  <Script
    src="https://YOUR-DATABULL-URL/js/script.js"
    data-website-id="YOUR_WEBSITE_ID"
    data-domain="yoursite.com"
    strategy="afterInteractive"
  />
</head>

React (Vite), SvelteKit, Astro, Remix, Nuxt

Paste the tag in the <head> of index.html, src/app.html, your base layout, app/root.tsx or app.head in nuxt.config.

Framer

Site Settings → General → Custom Code → "End of <head> tag". Paste, save, publish.

Webflow

Site settings → Custom code → Head code. Save and publish (custom code only runs on the published site).

WordPress

Install the free WPCode plugin, then Code Snippets → Header & Footer → paste into Header. Clear your page cache.

Shopify

Online Store → Themes → ⋯ → Edit code → layout/theme.liquid, paste just before </head>.

Wix, Squarespace, Ghost, Carrd, Bubble

Use the site-wide header code setting: Wix → Settings → Custom code (Head, all pages). Squarespace → Developer tools → Code Injection → Header. Ghost → Code injection → Site header. Carrd → Embed element (Head). Bubble → SEO / metatags → header scripts.

Cloudflare Workers

If your site runs on Cloudflare, serve the script from your own domain. See Ad blockers & proxy.

Not counting your own visits

Under your website's Settings → Your own visits:

  • This browser: Stop counting this browser opens your site once and remembers there not to count this browser (it opens yoursite.com/?databull_ignore=1; =0 counts it again). Do it on each device and browser you use.
  • IP addresses: visits from the addresses you list (your home, office or team) aren't counted on any device. Ranges like 10.0.0.0/8 work too, and Add my current IP fills in yours.