Generate a diagnostic report
When something looks wrong, open DevTools on the affected page and run:copy: true the report is written to your clipboard so you can paste it
straight into a support ticket. Without it, the object is returned to the
console. For a raw string, use report({ json: true }).
The report is deliberately small and non sensitive. It contains:
The report never includes the query string (only the path), so a preview token
is never captured. Detailed per event fields stay masked unless you are in
preview mode or have explicitly opted in to sensitive output, the same rule the
debugger uses.
Console error codes
These print in the browser console with the[abtestly] prefix, in the form
[abtestly] CODE: message.
Server side beacon drop reasons
A beacon can be sent by the browser and still not be accepted by the server. In the debugger you will see abeacon entry, because the snippet has no way to
know the server’s decision; a live beacon returns 204 with no body. So a
beacon in the debugger means attempted, not accepted. The
blocked IP page walks through this exact gap.
These drop reasons appear in ingest telemetry and support tooling, not in your
own console:
A bot heuristic flags suspect requests but never drops them. Only an
explicit
blocked_ip rule you configured discards data.Related pages
Snippet not firing
The ladder for an installed snippet that does nothing.
Own visits blocked
Why a sent beacon is not always an accepted one.
The debugger
The full debugger surface behind the report.
Consent and deferred mode
Where CONSENT_KEY_MISSING comes from.