Every paid click that reaches your site carries a click identifier – gclid from Google Ads, msclkid from Microsoft Advertising, fbclid from Meta. Those identifiers are meant to be used once, by one visitor. In practice they get shared in messages, pasted into forums, replayed by bots, indexed by scrapers, and clicked again days later by people who never saw your ad.
Every one of those replays looks to your analytics exactly like a fresh paid click. Your conversion data drifts. Your cost-per-lead looks wrong. And your sales team calls leads that came from an ad click nobody paid for.
Vetraclix records every ad click the first time it arrives, then refuses to let it count twice.
Genuine visitors are never affected. Organic and direct traffic carries no click identifier at all and is ignored completely.
<head> has already fired and already counted the visit. Vetraclix intercepts on template_redirect, before your theme is loaded at all, so a bad click never reaches a single tracking tag.Google Ads (gclid, gbraid, wbraid), Microsoft Advertising (msclkid), Meta Ads (fbclid), TikTok (ttclid), X/Twitter (twclid), LinkedIn (li_fat_id), Pinterest (epik), and Impact/affiliate (irclickid). Enable only the networks you actually advertise on.
Submissions made under an invalid click session are rejected and logged, with built-in integrations for Contact Form 7, Gravity Forms, WPForms, Fluent Forms, Elementor Forms, and Forminator. Each one can be switched on or off individually, and the rejection message is yours to write.
In PHP:
if ( function_exists( 'click_guardian_can_track' ) && click_guardian_can_track() ) {
// Print or enqueue your conversion tag here.
}
In JavaScript:
window.ClickGuardian.whenTrackable( function () {
// Fire your conversion event here.
} );
Both answer “yes” when the plugin is deactivated, so a gated tag can never be silently lost.
A dashboard with status counters and a 30-day activity chart; a searchable, filterable record of every click with its score and full visit history; a grouped event log; CSV export; and a diagnostics screen showing exactly what the plugin is configured to do and what it can see.
IP addresses and user agents are stored as a salted, one-way SHA-256 hash – enough to recognise the same visitor reusing a click, impossible to reverse. Storing readable IP addresses alongside the hash is a separate setting you can leave switched off; if you turn it on, disclose it in your privacy policy. The plugin’s own click-fraud detection makes no external requests and sends no data anywhere outside your own site.
This plugin’s own fraud-detection engine makes no external requests. It has one optional, off-by-default feature that does: Print Snippets For Me, under Settings Tracking IDs. It exists only for sites with no tag manager already installed; when enabled, it loads the tracking scripts for the ad network IDs you enter, gated behind the same click-validity check the rest of the plugin uses. No account is created and no data is sent to these services by the plugin itself beyond loading the script you asked for; whatever that script then does is between your site and the ad network, governed by that network’s own terms.
googletagmanager.com/gtm.js and/or googletagmanager.com/gtag/js when a GTM container ID, GA4 measurement ID, or Google Ads conversion ID is entered and this feature is enabled. Sent when: on every page load where tracking is allowed. Google Terms of Service, Google Privacy Policy.bat.bing.com/bat.js when a UET tag ID is entered and this feature is enabled. Sent when: on every page load where tracking is allowed. Microsoft Services Agreement, Microsoft Privacy Statement.connect.facebook.net/en_US/fbevents.js and sends a PageView event when a Pixel ID is entered and this feature is enabled. Sent when: on every page load where tracking is allowed. Meta Terms of Service, Meta Privacy Policy.If you already have any of these tags installed through a tag manager or another plugin, leave Print Snippets For Me off and gate your existing tags with click_guardian_can_track() instead – see “Gating your own tracking” above.