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.
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, neverasync. The tracker readsdata-sitefrom its own script tag, whichasyncbreaks. Also excludev.jsfrom any optimizer that rewrites script attributes. Tags that still loadanalytics.devdome.com/track.jskeep working; the new address is simply blocked by fewer ad-block lists. - Content-Security-Policy: if your site sends one, allow
a.devdome.comin bothscript-src(load the tracker) andconnect-src(send events). - Leave yourself out: open any page of your site with
#dd-ignoreat the end of the address once and that browser is never counted again (stored on that device only;#dd-unignoreturns 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-pathto the redirect destination where your platform lets you set a custom target.
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.