Seatext library / BotRefund evidence
How to Associate Questionable Sessions with Campaign Attribution
To associate questionable sessions with campaign attribution, preserve click identifiers (GCLID, FBCLID, MSCLKID) at landing, capture browser-level behavioral signals, and link each session to its originating campaign, ad set, creative, and placement before any...
✓ Built for advertisers who need clear, refund-ready traffic evidence.
Direct Answer: Link Suspicious Sessions to Their Campaign Source
Associating questionable sessions with campaign attribution means preserving the paid-click identifiers that arrive with each visitor — Google's GCLID, Meta's FBCLID, Microsoft's MSCLKID — and binding them to a browser-side session record that includes behavioral evidence (mouse movement, scroll depth, timing, rendering anomalies). Do this before you filter, suppress, or pause anything. The result is a session-level ledger that shows exactly which campaign, ad set, creative, and placement delivered each suspicious visit, so you can quantify waste, protect conversion pixels, and file refund claims with platform-acceptable proof.
Why This Matters: Budget Waste, Pixel Poisoning, and Broken Optimization
When automated traffic clicks your ads, three things happen at once. First, you pay for clicks that cannot convert. Second, those non-human sessions fire conversion pixels, teaching the ad platform's bidding algorithm that bot-like behavior is a success signal — this is pixel poisoning. Third, your reported cost-per-lead looks acceptable while sales receives unreachable contacts, copied messages, or enquiries that never progress. If you cannot tie the bad sessions back to the specific campaign elements that bought them, you cannot stop the bleed, clean the pixel, or recover the spend.
How Campaign Attribution Works for Paid Traffic
Every paid click appends a click identifier to the landing-page URL. Google Ads adds gclid, Meta adds fbclid, Microsoft adds msclkid. These parameters survive redirects if your tracking setup preserves them. A proper attribution chain captures the identifier at first page load, stores it in a first-party cookie or local storage, and attaches it to every subsequent event — page views, form starts, form submits, CRM lead creation. When you later review a suspicious session, the stored click ID tells you exactly which campaign, ad set, creative, and placement paid for that visit.
Signals That Identify Questionable Sessions
Not every bad lead is a bot, and treating every unresponsive contact as fraud can make you exclude a valuable audience. Start with a structured audit that compares ad-platform data, website sessions, and CRM outcomes. The following patterns warrant investigation:
- Contactability: disconnected numbers, invalid email domains, repeated addresses, or an unusual concentration of one country code.
- Timing: several leads arriving in short bursts, forms submitted immediately after landing, or conversions concentrated at unusual hours.
- Session behavior: no scrolling, no field corrections, uniform click paths, and no meaningful time on the offer page.
- Campaign patterns: a sharp lead-quality difference by placement, creative, audience expansion, device, or landing page.
- CRM outcome: a high reported lead count paired with no calls connected, demos booked, qualified opportunities, or repeat engagement.
These signals come from the BotRefund investigation framework and align with what Meta and Google consider invalid activity.
Step-by-Step: Associate Each Session with Its Campaign
- Capture click IDs at landing. Read
gclid,fbclid,msclkid, and any custom UTM parameters from the URL on the first page view. Write them to a first-party cookie with a 90-day expiry (or your sales-cycle length). - Initialize a session record. Generate a session ID, timestamp, referrer, user agent, screen resolution, and the captured click IDs. Store this server-side or in a privacy-compliant client store.
- Collect behavioral evidence. Record pointer movement (linear vs. natural), scroll depth and velocity, click timing (superhuman <1ms clicks), form interaction patterns (instant fill vs. hesitation), rendering anomalies (scrollbar width leaks, iframe context mismatches), and navigation flow. BotRefund uses 106 independent checks across browser, network, device, and behavior layers.
- Bind evidence to the click ID. Every behavioral signal, anomaly score, and classification (human/bot/uncertain) must carry the original click ID. This is the attribution link.
- Preserve attribution before changing the campaign. Keep campaign, ad set, creative, placement, and click identifier data intact even if you pause the ad set or change targeting. Do not rely on ad-platform UI alone; export the raw click-ID-to-campaign mapping daily.
- Match to CRM outcomes. When a lead enters your CRM, attach the click ID from the cookie. Now you can report: "Campaign X, Ad Set Y, Creative Z delivered 1,200 clicks, 300 form submits, 45 CRM leads, 3 qualified opportunities, and 210 sessions classified as bot with 99% confidence."
- Export refund-ready reports. Format the evidence as Google and Meta expect: click IDs, timestamps, behavioral anomaly clusters, and a summary of invalid-activity classification. BotRefund prepares reports in a format both platforms can review.
Technical Implementation: Client-Side Tracking vs. Server-Side Logs
Server-side logs (IP, user agent, headers) catch basic scrapers but struggle with advanced botnets that rotate residential proxies and mimic headers. Client-side audits analyze the visitor's browser environment — canvas fingerprint, WebGL, audio context, pointer dynamics, scrollbar metrics, iframe sandbox behavior — and capture the click ID in the same execution context. This combination is what lets you say "this specific GCLID produced a session with 12 independent bot signals" rather than "this IP range looks suspicious." The client-side script must load early, before consent banners or tag managers delay it, and it must write the click ID to storage before any redirect or SPA navigation drops the query string.
Preserving Attribution When Campaigns Change
A common mistake is losing the click-ID-to-campaign map when you pause an ad set, rename a campaign, or restructure the account. The fix: export the mapping daily from the ad platform's API (Google Ads ClickView, Meta AdsInsights with click_id breakdown) and store it in your own warehouse. Then, even if the campaign is deleted in Ads Manager, you can still join a suspicious session's click ID to the human-readable campaign name, ad set, creative, and placement that bought it. BotRefund's workflow explicitly calls out "Preserve attribution before changing the campaign" as step one of the investigation.
Building Refund-Ready Evidence for Google and Meta
Both platforms issue invalid-activity credits, but the process is not automatic. Google's automated systems catch rapid clicking, duplicate click signatures, known bad IPs, and abnormal server-level patterns — but they miss sophisticated bots that behave like humans at the network layer. Meta divides traffic into valid and invalid but relies heavily on advertiser-submitted evidence for refunds beyond automatic filtering. A refund-ready report includes: click IDs, timestamps, placement breakdown, a cluster of independent behavioral anomalies (not a single rule), and a clear classification with confidence scoring. BotRefund's AI prediction weighs the complete pattern across 106 signals and reaches up to 99% accuracy when the session evidence supports it, producing reports that ad reps accept.
Limitations and When This Advice Does Not Apply
- No click ID, no attribution. Organic, direct, email, and referral traffic lack the persistent click identifiers that paid channels provide. You can still detect bots on those channels, but you cannot associate them with a paid campaign.
- Consent and privacy laws. Storing click IDs and behavioral data requires a lawful basis (consent or legitimate interest) under GDPR, ePrivacy, CCPA, and similar regimes. Implement a consent gate that allows the attribution cookie only when permitted.
- Cross-device journeys. A user may click on mobile and convert on desktop. Without a user-ID stitch (logged-in state or CRM match), the desktop session will not carry the original click ID. Plan for this gap in your reporting.
- Platform policy changes. Google and Meta update invalid-activity definitions and refund processes. What qualifies as evidence today may change; keep your evidence schema extensible.
- Low-volume campaigns. Statistical confidence requires volume. A campaign with 50 clicks/month cannot produce a reliable bot-rate estimate; aggregate across campaigns or time windows.
Key Facts
| Fact | Detail | Source |
|---|---|---|
| Click identifiers to preserve | GCLID (Google), FBCLID (Meta), MSCLKID (Microsoft), plus custom UTMs | S1 |
| Behavioral signals BotRefund captures | 106 independent checks across browser, network, device, and behavior layers | S4, S8 |
| Detection accuracy claim | Up to 99% when session evidence supports it, via AI prediction weighing complete pattern | S4, S8 |
| Refund success rate | 83% approval rate across client refund claims submitted to ad platforms | S2 |
| Setup time | Typical time to add BotRefund to a website and start free bot audit: about one minute | S2 |
| Historical refund reach | Can recover Google Ads spend dating back to 2017 | S2 |
| Primary investigation step | Preserve attribution before changing the campaign — keep campaign, ad set, creative, placement, click identifier | S1 |
| Pixel protection | Suppresses conversion events for automated browser signals so bidding algorithms train only on verified conversions | S7 |
Terminology Quick Reference
- Click ID (GCLID/FBCLID/MSCLKID): Unique parameter appended to landing URLs by ad platforms to identify the paid click.
- Pixel poisoning: Conversion pixels firing on bot traffic, teaching bidding algorithms that non-human behavior is a conversion signal.
- Invalid activity / invalid traffic: Clicks or impressions not resulting from genuine user interest (Google/Meta definition).
- Client-side audit: Behavioral analysis running in the visitor's browser (pointer, scroll, rendering, timing) rather than server logs alone.
- Refund-ready report: Evidence package formatted for Google/Meta review: click IDs, timestamps, anomaly clusters, confidence scores.
- Attribution preservation: Maintaining the click-ID-to-campaign mapping even after campaigns are paused, renamed, or deleted.
FAQ
What if my landing page strips query parameters?
Fix the redirect chain or configure your server/CDN to pass gclid, fbclid, msclkid through. If you use a headless CMS or SPA, capture the params in window.location.search before the router consumes them.
Can I use UTM parameters instead of click IDs?
UTMs are useful for channel-level reporting but they are not unique per click. Click IDs are the only reliable join key to ad-platform refund systems and placement-level breakdowns.
How long should I keep the click-ID cookie?
Match your sales cycle. B2B with 90-day cycles: 90 days. E-commerce with 7-day windows: 30 days is safe. Extend if you see assisted conversions beyond the window.
Does this work for Meta's Conversions API (CAPI)?
Yes. Send the click ID and session classification with your CAPI events. When you suppress a bot conversion, also send a custom_data flag so Meta's modeling sees the correction.
What if the ad platform's automatic filtering already caught some invalid clicks?
Automatic filtering is a baseline. It catches obvious patterns (rapid clicks, known bad IPs). Client-side behavioral evidence catches the rest — bots that look human at the network layer. Submit both for maximum recovery.
Can I build this myself without BotRefund?
You can capture click IDs and basic UTMs yourself. Building 106 behavioral checks, cross-checked AI classification, and platform-formatted refund reports is a significant engineering investment. Most teams start with a free bot audit to quantify the problem before deciding.
How do I know if my current attribution is broken?
Check: (1) Do CRM leads carry a click ID? (2) Can you join that click ID to a campaign/ad set/creative/placement in your warehouse? (3) Do you have behavioral anomaly data for each session? If any answer is no, attribution is incomplete.
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.