Track bot vs. real traffic in your own analytics
When Click Fraud Detection is enabled on a form or funnel, LeadCapture checks every visitor for bot and invalid traffic the moment the page loads.
You can now read that result in your own tracking (Google Tag Manager, GA4, a pixel, or any custom tool), so you can tell bots from real people on every visitor, even the ones who never submit the form.
What you need
- Click Fraud Detection turned on for the funnel (Funnel Settings).
That is the only requirement. No extra toggle is needed for tracking.
How it works
As soon as the traffic check resolves (right after page load, before anyone fills out the form), LeadCapture fires a single event called anura_verdict in two ways so it works with any tool:
- It pushes to
window.dataLayer(for Google Tag Manager and other dataLayer tools). - It dispatches a browser CustomEvent named
anura_verdict(for custom scripts that do not use a dataLayer).
It fires once per visitor, automatically. There is nothing to add to the funnel beyond enabling Click Fraud Detection.
What's in the event
| Field | Example | Meaning |
|---|---|---|
anura_result |
good , warn , or bad |
The verdict. good = likely real, warn = suspicious, bad = likely bot / fraudulent |
anura_rule_sets |
["IP","DC"] |
Which detection categories were triggered |
anura_invalid_traffic_type |
SIVT , GIVT , or null |
Type of invalid traffic, if any (Sophisticated or General) |
anura_mobile |
0 or 1 |
Whether the visitor is on a mobile device |
anura_ad_blocker |
0 or 1 |
Whether an ad blocker was detected |
anura_response_id |
"a1b2c3..." |
Unique ID for this check, for cross-referencing |
anura_blocked |
true / false |
Whether this verdict triggered a form block (only if you use blocking) |
lc_funnel_id |
"..." |
The ID of the funnel |
No personal information (name, email, phone, etc.) is ever included. Only traffic-quality signals.
Set it up in Google Tag Manager
- Create a trigger: Triggers → New → Custom Event. Set Event name to
anura_verdict. - Create variables: Variables → New → Data Layer Variable for each field you want to use (for example, a variable named
anura_resultwith Data Layer Variable Nameanura_result). - Attach a tag: add or edit the tag you want to fire (for example a GA4 event), set its trigger to the
anura_verdicttrigger from step 1, and pass the variables as parameters.
Example
Send a GA4 event called traffic_quality with a parameter result set to {{anura_result}} . You can then break down your reports and audiences by good / warn / bad traffic.
Use it with a custom tool (no GTM)
Add a listener anywhere on the page:
<script>
window.addEventListener('anura_verdict', function (e) {
var data = e.detail;
// data.anura_result is 'good', 'warn', or 'bad'
// Send data to your analytics, pixel, or backend here.
});
</script>
If your tool reads window.dataLayer instead, the same information is available there as an entry like:
{ event: 'anura_verdict', anura_result: 'good', ... }
Tip: the verdict resolves a moment after the page loads. If your listener might load after the event has already fired, also scan the existing
window.dataLayerarray for an earlieranura_verdictentry on startup.
What you can do with it
- Keep bot and suspicious traffic out of your remarketing and lookalike audiences.
- Measure how much of your paid traffic is invalid, even when those visitors never convert.
- Compare conversion rate and lead quality by traffic grade (good vs. warn vs. bad).
- Trigger your own pixels or server events only for real (good) visitors.
FAQ
Does the visitor have to submit the form?
No. The event fires on page load, so you get a verdict for every visitor.
Do I have to use Google Tag Manager?
No. It works with GTM, GA4, any dataLayer tool, or a plain JavaScript listener.
How often does it fire?
Once per visitor, per page load.
Does it slow down the page?
No. It only reports a result that is already being calculated for Click Fraud Detection.