DD DevDome Track. Protect. Grow.
Install guide

One tag, any site

DevDome is WordPress-first, but the tracker is a plain script tag that works on any platform. On WordPress use the Analytics plugin instead; it adds the tag for you and captures outbound clicks server-side.

01

Add the site, paste the tag, verify

Add the domain in your dashboard (or with POST /api/v1/sites), then put this tag in the head of every page, with your own domain in data-site:

<script defer src="https://a.devdome.com/v.js" data-site="yourdomain.com"></script>
  • Keep defer, never async. The tracker reads data-site from its own script tag, which async breaks. Also exclude v.js from any optimizer that rewrites script attributes. Tags that still load analytics.devdome.com/track.js keep working; the new address is simply blocked by fewer ad-block lists.
  • Content-Security-Policy: if your site sends one, allow a.devdome.com in both script-src (load the tracker) and connect-src (send events).
  • Leave yourself out: open any page of your site with #dd-ignore at the end of the address once and that browser is never counted again (stored on that device only; #dd-unignore turns it back on). Do it in every browser and device you use to work on the site.
  • Consent managers: the tracker is cookieless by default and stores nothing on the visitor's device unless you turn on returning-visitor tracking. If a consent tool blocks scripts before consent, put the tag in its analytics category or it will not fire until the visitor agrees.
  • Verification passes once the live homepage carries the tag, or when a DNS TXT record devdome-verify=DD... with your Account ID exists. Until then the site shows as pending and no data is read back.
  • Redirects: same-origin redirects are captured through the browser's navigation timing, nothing to set up. To record the exact intermediate URL of a server or edge redirect, append ?_dd=301:/old-path to the redirect destination where your platform lets you set a custom target.
02

Where to paste it, per platform

The same tag everywhere. Only the menu path differs.

Plain HTML, static sites, Next.js, Astro, Nuxt

Put the tag in the shared <head> of your layout or template so every page carries it. Single-page apps are fine: the tracker follows in-app navigation on its own.

Free, you control the HTML.

Shopify

Online Store, Themes, Edit code, Layout, theme.liquid: paste just above </head> and save. Duplicate the theme first as a backup.

All paid plans. Do not use a Customer events custom pixel: it runs sandboxed and the tag cannot read data-site there.

Wix

Dashboard, Settings, Custom Code, Add Custom Code: paste, apply to all pages, place in Head.

Paid Premium plan with a connected custom domain. After installing, confirm in your browser DevTools that the POST to analytics.devdome.com/api/event succeeds; Wix can block cross-origin requests.

Squarespace

Settings, Advanced, Code Injection: paste into the Header box and save.

Core plan or higher. If Ajax loading is on (7.0 templates), only the first page is counted; turn it off.

Webflow

Site settings, Custom code, Head code: paste, save, then Publish. Code only goes live after Publish.

A paid Site plan with your custom domain connected.

Ghost

Ghost Admin, Settings, Code injection, Site Header: paste and save.

Free on every Ghost(Pro) tier and self-hosted. Use the site-wide injection, not the per-post one.

Joomla 4, 5 and 6

System, Site Templates, your active template, index.php: paste before </head>. Or a Custom HTML module on all pages with the editor set to None.

Free, self-hosted. Do not paste through the TinyMCE editor, it strips script tags.

Drupal 8 to 11

Install the Header and Footer Scripts module, then Configuration, Development, Header and Footer Scripts, Header: paste, save, clear caches.

Free, self-hosted.

BigCommerce

Storefront, Script Manager, Create a Script: location Footer, all pages, type Script, paste the code.

Free on all plans. Set the script category to Essential or the consent banner holds it until consent.

Magento and Adobe Commerce 2.x

Content, Design, Configuration, your scope, HTML Head, Scripts and Style Sheets: paste, save, flush cache.

Free. On 2.4.7 and newer add analytics.devdome.com to script-src and connect-src in csp_whitelist.xml or the tag is blocked on checkout pages.

Check that it works

Open the live site, then look at the Network tab of your browser's developer tools: you should see track.js load from analytics.devdome.com and a POST to /api/event answer 200. The first pageview appears in your dashboard within seconds, and the realtime endpoint shows visitors active in the last five minutes.

Need the WordPress route instead?

The plugin installs the tag, verifies the site from wp-admin and adds server-side click capture.