No data showing?
If your site was previously verified only by its installation tag, it now needs DNS or HTML meta proof. That old proof has been revoked; recorded data has not been deleted. Open domain verification, publish the displayed proof and choose Check now.
The short list, ordered from most to least common. The first item catches most cases.
It is usually your own browser
The tag honours Global Privacy Control and Do Not Track by
sending nothing at all, and many ad blockers block
analytics scripts wholesale. If you are testing on your own machine
with Brave, an ad blocker, or a privacy flag on, you are invisible by
design. Test in a plain browser profile with no extensions, or ask a
friend to open the site. And once things work, silence your own
browser on purpose with
localStorage.datastated_ignore = "true" in the console,
so your visits stop polluting your numbers.
Automated browsers are silent by design as well: Playwright, Puppeteer, Selenium and headless runs send nothing, so a test suite never shows up here.
Is the tag actually there?
View source on your live site (not your local build) and search for
ds.js. You should find exactly:
<script defer src="https://app.datastated.com/ds.js?v=2026-09-10-consent"
data-site="acme.com" data-site-id="dst_YOUR_SITE_ID"></script>
Common misses: the tag was added to a staging branch that never
deployed, or to one template while your traffic lands on another. Use
the exact snippet from your dashboard: its data-site-id
identifies your installation. Analytics access also needs the separate
DNS or homepage meta-tag ownership check.
Where consent is required, the tag should include data-require-consent. Check that your consent manager passes acceptance and withdrawal to the tag as shown in the consent guide. Waiting for a grant is expected, not an installation failure.
Content Security Policy
If your site sets a CSP, it must allow the script and its beacon:
script-src https://app.datastated.com;
connect-src https://app.datastated.com;
A blocked tag shows up in your browser console as a CSP violation
naming app.datastated.com.
Single-page app routes
Route changes are tracked automatically through the History API. If
pageviews seem stuck at one per session, confirm your router actually
uses pushState. A router that only changes the hash
(/#/pricing) needs data-hash-routing="true"
on the tag. Repeated renders of the same path are deliberately not
double-counted.
Stripe totals look different
revenueis gross. Refunds and lost disputes are their own rows and come offnetRevenue. A charge that was already refunded when DataStated first saw it never enters the books, and failed charges are skipped.- Subscription renewals are left out when Count subscription renewals as revenue is off on the Stripe card.
- Refunds and disputes reach the books instantly once the webhook is on, or on the schedule when the key has "Refunds: Read" and "Disputes: Read". The card says which is missing.
- Days are UTC, so a day's total can differ from a local-timezone report.
- Without the webhook, new charges arrive on the six-hour schedule; run a pass now with Sync now on the card or
POST /api/sites/acme.com/sync(see the API reference).
Visit time or bounce rate is blank
Both come from the engaged-time beacon the tag sends when a page is hidden or left. They stay blank until at least one session in the range carried a value, and sessions recorded before the beacon existed are left out rather than counted as zero seconds.
One buyer shows as two visitors
If checkout lives on another domain, the cookie does not follow. Put
data-allowed-hosts on the tag on both domains, each naming
the other, and the visitor id travels in the link; the
tag reference has the rules.
Subdomains need nothing: data-site already covers them.
A channel shows no claim
A blank claim (never a zero) means no connected platform reported numbers for that channel and period. It is deliberately not rendered as a zero: absence of testimony is not a count.
Still stuck?
Email hello@datastated.com with your domain and what you expected to see. A human reads it.
Questions? Email us at hello@datastated.com.