Seatext library / BotRefund evidence
How to Integrate BotRefund with Google Ads: Step-by-Step Setup and Refund Workflow
Add the BotRefund script to your site, connect your Google Ads account in the dashboard, configure detection rules for your campaigns, and use the generated evidence reports to file invalid activity credit claims with...
✓ Built for advertisers who need clear, refund-ready traffic evidence.
Integrating BotRefund with Google Ads is a three-part process: install the client-side tracking script on your website, link your Google Ads account inside the BotRefund dashboard, and set up the detection rules that match your campaign structure. Once active, BotRefund captures behavioral evidence for every click — mouse movement, scroll depth, timing, and device signals — then packages that data into compliance-ready reports you can submit to Google for invalid activity credits. The platform claims an 83% approval rate across client refund claims and can recover spend dating back to 2017.
What BotRefund Does for Google Ads
BotRefund sits on your landing pages and watches every visitor that arrives from a Google Ads click. It does not replace Google's own invalid traffic filters; it supplements them with browser-level behavioral proof that Google's server-side systems cannot see. The script records session replays, captures the GCLID (Google Click Identifier) for each paid click, and flags patterns that indicate non-human behavior: superhuman input speed under one millisecond, grid-aligned mouse movements, absence of natural tremor, honeypot trap interactions, and sessions with no scrolling or unnatural duration uniformity. When enough flagged clicks accumulate, you export a dispute report and send it to your Google representative or file it through the Google Ads invalid activity credit request form.
Prerequisites Before You Start
- Admin access to your website — you need to paste a JavaScript snippet into the
<head>of every landing page that receives Google Ads traffic, or deploy it via Google Tag Manager. - Google Ads account with admin or standard access — the BotRefund dashboard asks for your Google Ads customer ID (the 10-digit number like 123-456-7890) to associate detected clicks with the correct campaigns.
- Active campaigns sending traffic — BotRefund needs live click data to build baseline behavior models. A brand-new account with zero spend will not produce useful reports until traffic flows.
- Conversion tracking in place — while not strictly required, having Google Ads conversion tags or GA4 events on your thank-you pages lets you correlate BotRefund's bot flags with actual conversion outcomes, strengthening refund claims.
Step-by-Step Integration Process
- Create a BotRefund account at botrefund.com. The free tier includes the AI audit and report export; paid tiers add higher volume limits and enterprise support.
- Add the tracking script. Copy the provided JavaScript snippet and paste it into the
<head>of your landing page templates, or create a Custom HTML tag in Google Tag Manager that fires on all pages. The script loads asynchronously and adds roughly 15 KB gzipped. - Verify installation. Visit a test landing page with
?gclid=test123appended. In the BotRefund dashboard, the live visitor view should show your session within seconds, labeled with the test GCLID. - Connect Google Ads. In BotRefund's Integrations tab, enter your Google Ads customer ID. BotRefund will pull campaign, ad group, and keyword names so you can map detection rules to specific traffic sources.
- Configure detection rules. Choose which behavioral signals trigger a "bot" flag for each campaign. Default rules cover ghost clicks, honeypot interactions, robotic pointer paths, superhuman speed, grid-aligned movement, VPN/proxy exit nodes, and session duration anomalies. You can tighten or relax thresholds per campaign — for example, a high-volume brand campaign may tolerate looser thresholds than a high-CPC B2B campaign.
- Enable GCLID capture. Ensure the "Capture GCLIDs with behavioral evidence" toggle is on. This ties every flagged session to the exact Google click ID, which Google requires for refund processing.
- Run the free AI audit. After 24–72 hours of traffic, click "Run Audit" in the dashboard. BotRefund's model scores your traffic and produces a baseline invalid-click estimate.
- Export a dispute report. When the audit shows actionable volume, generate the compliance-ready PDF. It includes session replays, GCLID lists, behavioral flag summaries, and timestamped evidence per click.
- Submit to Google. Send the report to your Google Ads account manager or file an invalid activity credit request via the Google Ads help center. BotRefund's documentation includes a template email and the exact form fields Google expects.
Configuring Detection Rules for Google Ads Traffic
Not all invalid traffic looks the same across campaign types. Search campaigns often attract competitor click fraud and scraper bots that mimic high-intent behavior — long dwell times, multiple page views, even form fills. Display and Performance Max campaigns see more accidental mobile taps, Audience Network publisher bots, and data-center proxy traffic. BotRefund lets you create rule profiles per campaign type:
- Search (high CPC): Enable all behavioral flags, set speed threshold to <1 ms, require honeypot trigger OR grid-aligned movement OR VPN detection for a positive flag.
- Display / Performance Max: Enable ghost click detection, trap behavior, and session duration anomalies; relax pointer behavior thresholds since legitimate display users often have shorter sessions.
- Shopping: Add engagement behavior flags — bots that simulate product scrolling and variant selection but never reach checkout.
Each rule profile can be A/B tested: run Profile A on 50% of traffic via a URL parameter, Profile B on the other 50%, and compare flag rates after one week.
Generating and Submitting Refund Claims
Google's invalid activity credit system issues automatic credits for traffic its own filters catch — rapid clicking, known bad IPs, duplicate click signatures. But Google's server-side view misses client-side behavioral evidence. BotRefund's dispute reports are designed to fill that gap. A complete claim package includes:
- CSV of flagged GCLIDs with timestamps, campaign, ad group, keyword, and device
- Session replay links (hosted on BotRefund's secure viewer, expiring after 30 days)
- Behavioral flag summary table: count per flag type, percentage of total paid clicks
- Comparison to Google's auto-credited invalid clicks for the same period (showing the delta)
- Signed declaration that the flagged clicks were not generated by you or your agents
Submit via the Google Ads Invalid Clicks Contact Form (Google Ads Help → Contact Us → Invalid Clicks) or reply to your account manager's quarterly review email. Google typically responds in 5–10 business days. BotRefund's 83% approval rate reflects claims submitted with their evidence package; claims without client-side evidence have a lower success rate based on industry feedback.
Verification: How to Confirm It's Working
After the first 72 hours, check three signals in the BotRefund dashboard:
- GCLID match rate — should be >95% of Google Ads clicks showing a corresponding BotRefund session. Lower means the script isn't firing on all landing pages.
- Baseline bot score — the AI audit assigns a 0–100 score. A score above 20 warrants a dispute report; below 10 suggests either clean traffic or rules that are too strict.
- False positive spot-check — open 10 flagged session replays. If more than 2 look like real humans (natural scroll, hesitation, corrections), relax the relevant rule threshold.
Set a calendar reminder to run a fresh audit monthly. Bot behavior shifts seasonally and when you launch new creatives or audiences.
Key Facts
| Metric | Detail | Source |
|---|---|---|
| Setup time | About 1 minute to add script and start free audit | S2 |
| Refund approval rate | 83% of customers successfully get a refund | S2 |
| Retroactive recovery window | Google Ads spend dating back to 2017 | S2 |
| Behavioral signals detected | Ghost clicks, honeypot traps, robotic pointer paths, superhuman speed (<1 ms), grid-aligned movement, VPN/proxy, session duration anomalies, engagement absence | S2 |
| Evidence captured per click | Session replay, GCLID, behavioral flags, timestamp, device, campaign mapping | S2, S5 |
| Google's auto-detection scope | Rapid clicking, duplicate signatures, known bad IPs, abnormal server-level patterns | S5 |
| Typical invalid click rate range | 4% (well-protected) to 35%+ (high-CPC competitive keywords) | S6 |
Limitations and When This Doesn't Apply
- Google Ads only — the integration steps above are specific to Google Ads. Meta Ads (Facebook/Instagram) uses a separate pixel connection and different evidence format (Facebook Click ID / FBCLID).
- No server-side log access — BotRefund cannot analyze your server logs or CDN logs. If your infrastructure blocks the client-side script (e.g., strict CSP headers, ad blockers that strip third-party scripts), those visits go unmonitored.
- Requires JavaScript execution — bots that disable JavaScript or run in headless mode without a full browser engine (e.g., simple curl/wget scrapers) will not trigger behavioral flags, though they also won't execute your Google Ads conversion tags.
- Not a real-time blocker — BotRefund detects and reports; it does not inject JavaScript challenges or CAPTCHAs to stop bots mid-session. For real-time blocking, you'd need a WAF or dedicated bot mitigation layer in front of your site.
- Refund discretion remains with Google — even with perfect evidence, Google may deny credits if they determine the clicks fall within policy tolerances or if the claim exceeds their lookback window.
Common Mistakes to Avoid
- Installing on only the homepage — if your Google Ads campaigns use dedicated landing pages, the script must be on every landing page URL, not just the root domain.
- Using the same rule profile for Search and Display — Display traffic naturally has higher bounce and shorter sessions; applying Search thresholds produces false positives.
- Submitting claims without spot-checking replays — Google reps occasionally request manual verification. If your evidence package includes obviously human sessions, credibility drops.
- Expecting 100% recovery — Google's invalid activity credit policy caps credits at the amount they deem invalid. BotRefund's evidence expands what Google sees, but does not override their final determination.
- Ignoring the 2017 lookback limit — spend older than 2017 is not recoverable through Google's credit system, even with evidence.
FAQ
Does BotRefund work with Google Tag Manager?
Yes. Create a Custom HTML tag, paste the BotRefund snippet, set the trigger to "All Pages" or a specific landing page trigger, and publish. The script loads asynchronously and does not block page render.
Can I use BotRefund on a staging or development site?
Yes, but disable GCLID capture or use a separate BotRefund project. Staging traffic with test GCLIDs will pollute your production baseline and waste audit capacity.
What if my site has a strict Content Security Policy?
Add script-src 'self' https://cdn.botrefund.com; and connect-src 'self' https://api.botrefund.com; to your CSP header. The script and its API endpoints must be allowed.
How long does a refund claim take?
Google typically responds in 5–10 business days. Complex claims with high dollar amounts or many campaigns may take longer. BotRefund's template email includes a request for acknowledgment within 3 business days.
Does BotRefund integrate with GA4 or BigQuery?
BotRefund exports CSV/JSON of flagged sessions with GCLIDs. You can import that into BigQuery and join on GCLID with your GA4 export or Google Ads transfer data for deeper analysis. No native GA4 event push exists as of the current release.
What happens if Google denies the claim?
BotRefund's dashboard lets you re-export with adjusted rule thresholds or additional behavioral filters. You can resubmit once per quarter per Google's policy. The 83% approval rate reflects first-submission success; resubmissions after adjustment have a higher cumulative rate.
Is there a minimum spend requirement?
No minimum to install and audit. The free tier covers up to 10,000 visits/month. Paid tiers start at the $10,000–$50,000/mo ad spend range and scale to enterprise ($5M+/mo).
Further reading and comparison sources
These external sources provide additional context for evaluating the topic. Their inclusion is not an endorsement.
Learn more
Visit the website for more information.