Seatext library / BotRefund evidence

How to Preserve Original Dates and Attribution Data for Ad Refund Review

To preserve original dates for a Google or Meta refund review, export click IDs (GCLID, FBCLID), timestamps, campaign hierarchy, placement data, and session recordings before pausing or editing any campaign. Keep the raw attribution...

Built for advertisers who need clear, refund-ready traffic evidence.

Direct answer: what to preserve and when

Before you change targeting, pause a campaign, or swap creative, capture the complete attribution chain for every paid click you may later dispute. That means exporting the click identifier (GCLID for Google, FBCLID or fbclid for Meta), the exact timestamp of the click, the full campaign–ad set–ad–placement hierarchy, the landing-page URL with all query parameters, and any client-side session recording or behavioral log tied to that click. Store these in a read-only archive (CSV, JSON, or a dedicated evidence folder) that is separate from your live analytics. Do this before you make any campaign change, because pausing or editing a campaign can break the link between the platform’s internal click record and your exported data.

Platform refund teams (Google’s Invalid Activity team, Meta’s Traffic Quality team) review evidence against their own click logs. If your export misses the original click ID or timestamp, or if the campaign structure has shifted, the reviewer cannot match your claim to their data and the claim is denied. The preservation step is not optional — it is the prerequisite that makes a refund request reviewable.

Why original dates and attribution break when you don’t act early

Ad platforms attribute conversions and quality signals to the click that started the session. When you pause a campaign, rename an ad set, or move an ad to a new campaign, the platform’s UI often re-aggregates historical data under the new structure. The raw click-level logs still exist on the platform side, but your ability to join them to a human-readable campaign name, placement, or creative disappears from the standard reporting interface. If you wait until after a change to pull a report, you lose the exact mapping that a refund reviewer needs.

Meta campaigns can reach people across Facebook, Instagram, and eligible partner inventory at high volume. That reach is valuable, but it also means a lead campaign can receive accidental interactions, low-intent traffic, automated browsing, and deliberately fraudulent submissions. A structured audit that compares ad-platform data, website sessions, and CRM outcomes before changing targeting or making a refund request is the only way to keep the evidence chain intact.

Exact data points you must capture for each click

  • Click identifier: GCLID (Google Ads), FBCLID/fbclid (Meta), or the platform-specific click ID parameter.
  • Timestamp: ISO 8601 date-time of the click (including timezone), not just the date.
  • Campaign hierarchy: Campaign ID, campaign name, ad set ID, ad set name, ad ID, ad name — exactly as they exist at the moment of the click.
  • Placement: Platform-reported placement (e.g., Facebook Feed, Instagram Stories, Audience Network, Google Search Partners, YouTube In-Stream).
  • Device and network context: Device type, OS, browser, IP subnet (first three octets), and any VPN/proxy flag your detection layer provides.
  • Landing-page URL: Full URL with all UTM and click-ID parameters preserved.
  • Session evidence: Client-side behavioral log (mouse movement, scroll depth, form interaction timing, honeypot triggers, scrollbar-width leak, clean-context iframe result) tied to the same click ID.
  • Conversion outcome: Whether the session produced a lead, purchase, or other conversion event, and the CRM status (contacted, qualified, disqualified).

BotRefund turns each finding into a refund-ready report with click IDs, campaign details, timestamps, session recordings, and signal-by-signal reasoning. The evidence is structured in the format platform teams use to review invalid traffic claims.

Step-by-step preservation workflow

  1. Enable click-ID capture on every landing page. Ensure your tag manager or first-party script reads the GCLID/FBCLID from the URL and writes it to a first-party cookie or local storage before any redirect or form submit.
  2. Log the full campaign hierarchy at click time. Use the platform’s ValueTrack (Google) or URL parameters (Meta) to pass campaign, ad set, ad, and placement IDs into the landing page. Store them alongside the click ID.
  3. Record the client-side session. Deploy a behavioral detection script that captures pointer behavior, scroll behavior, speed behavior, and evasion checks (e.g., scrollbar-width leak, clean-context iframe) and attaches the click ID to the session record.
  4. Export daily (or per-batch) evidence packages. Automate a daily job that pulls: platform click-performance report (with click IDs), your first-party session log, and CRM lead status. Save as immutable files (e.g., write-once cloud storage with versioning).
  5. Freeze the campaign structure before changes. Before pausing, renaming, or restructuring, take a snapshot of the entire campaign tree (API export or UI CSV). Label it with the date and reason (e.g., “2024-01-15_pre-refund-audit_snapshot”).
  6. Match platform credits to your evidence. When Google issues an automatic invalid-activity credit or Meta shows a traffic-quality adjustment, join the platform’s credit line items to your click-ID archive. Only matched clicks become claim line items.
  7. Build the refund-ready report. For each disputed click, include: click ID, timestamp, campaign hierarchy, placement, session recording link, behavioral signal summary, and CRM outcome. Format as a single PDF or CSV per platform’s specification.

Organizing evidence for Google vs. Meta review teams

Google’s Invalid Activity team expects a CSV with columns: Click ID (GCLID), Click Timestamp, Campaign ID, Ad Group ID, Ad ID, Criterion ID (placement/keyword), Invalid Click Type (if known), and your evidence reference (session ID). They match this against their internal click logs. Meta’s Traffic Quality team requires a similar structure but uses FBCLID/fbclid and expects placement breakdown by Facebook Feed, Instagram, Audience Network, and Messenger. Both platforms reject claims where the click ID is missing, truncated, or cannot be joined to a live campaign structure.

Reports in the format Google and Meta accept — we turn each finding into a refund-ready report with click IDs, campaign details, timestamps, session recordings, and signal-by-signal reasoning. The evidence is structured in the format platform teams use to review invalid traffic claims.

Common mistakes that destroy refund evidence

MistakeWhat breaksResult
Pausing campaign before exporting click IDsPlatform UI stops showing click-level detail for paused entitiesReviewer cannot match your claim to platform logs
Renaming campaigns/ad sets mid-monthHistorical reports re-aggregate under new namesLoss of original placement/creative attribution
Relying only on GA4 or platform conversion reportsNo click ID, no session behavior, no placement granularityInsufficient evidence for manual review
Stripping query parameters on landing pageGCLID/FBCLID lost before first-party captureZero link between click and session
Deleting or overwriting daily exportsNo immutable audit trailCannot prove evidence wasn’t fabricated later
Submitting aggregate totals without line itemsPlatform requires per-click verificationAutomatic rejection

Verification step: confirm your archive is review-ready

Pick a random date from the last 30 days. Pull the platform’s click-performance report for that date (include click IDs). Join it to your first-party session log on click ID. Verify that every row has: a valid click ID, a timestamp matching the platform’s timestamp (within seconds), a complete campaign hierarchy, a placement value, and a session recording or behavioral summary. If any column is blank or mismatched, your preservation pipeline has a gap — fix it before you need to file a claim.

Limitations and when this advice does not apply

  • Automatic platform credits (Google’s nightly invalid-activity credit, Meta’s automatic traffic-quality adjustments) are issued without a claim. You cannot influence them, but you should still archive the data to audit whether the credit matches your observed invalid traffic.
  • If you have never captured click IDs on your landing pages, you cannot retroactively create them for past clicks. Start capture today; past periods are unrecoverable.
  • This process applies to paid-click refunds (Google Ads, Meta Ads). It does not cover tax refunds, chargebacks, or merchant refunds — the SERP results for “preserve original dates for refund review” often refer to IRS protective claims, which are a completely different domain.
  • Platforms impose claim windows (typically 60–90 days for manual claims). Preserved data older than the window cannot be claimed, though it remains useful for pattern analysis.

Key facts from BotRefund source pack

FactSource
Preserve attribution before changing the campaign: keep campaign, ad set, creative, placement, click identifierS1
Refund-ready reports include click IDs, campaign details, timestamps, session recordings, signal-by-signal reasoningS2
83% of clients recover funds from Google and Meta across 2,500+ auditsS2
99% bot-detection confidence from 110+ behavioral, browser, hardware, network, and attribution signalsS2
Google invalid activity credits are not automatic for all invalid clicks; manual claims require structured evidenceS4
Export detailed client-side behavioral proof logs to win Google invalid click disputesS9

Terminology quick reference

  • GCLID: Google Click Identifier — unique parameter appended to landing-page URLs for Google Ads clicks.
  • FBCLID / fbclid: Facebook Click Identifier — Meta’s equivalent click-tracking parameter.
  • Click ID: Generic term for the platform-specific unique identifier tied to a single paid click.
  • Attribution chain: The full hierarchy (campaign → ad set → ad → placement → click ID) that links a click to its source.
  • Invalid activity / invalid traffic: Clicks or impressions the platform determines are not genuine user interest (bots, click farms, accidental taps, competitor fraud).
  • Refund-ready report: Evidence package formatted to the platform’s review-team specification (CSV/PDF with required columns).
  • Client-side detection: Behavioral analysis running in the visitor’s browser (mouse, scroll, timing, browser API checks) as opposed to server-log analysis.

FAQ

How far back can I claim a refund if I have preserved data?

Google and Meta generally allow manual claims for 60–90 days from the click date. Automatic credits may cover a longer lookback but are not disputable. Preserved data beyond the claim window is still valuable for trend analysis and negotiating larger adjustments.

Do I need a third-party tool to capture click IDs?

You can capture GCLID/FBCLID with a simple GTM variable and first-party cookie. However, tying that click ID to behavioral evidence (mouse movement, scroll depth, evasion checks) and exporting a platform-formatted report is where a dedicated detection layer like BotRefund saves hours of engineering.

What if the platform already issued an automatic credit?

Download the credit line items (Google: Billing → Invalid Activity; Meta: Billing → Traffic Quality). Join them to your click-ID archive. If the credit covers fewer clicks than your evidence shows, file a manual claim for the delta with your per-click evidence.

Can I preserve dates after I’ve already restructured campaigns?

You can pull historical click-performance reports via API (Google Ads API, Meta Marketing API) which still contain click IDs and timestamps for past dates, even if the UI has re-aggregated. Do this immediately — API retention is not guaranteed forever.

What does a refund-ready report actually look like?

One row per disputed click. Columns: Click ID, Click Timestamp (ISO 8601), Campaign ID, Campaign Name, Ad Set ID, Ad Set Name, Ad ID, Ad Name, Placement, Device Type, IP Subnet, Session ID, Behavioral Signal Summary (e.g., “superhuman input speed <1ms, no scroll, honeypot triggered”), CRM Outcome (e.g., “disconnected number, invalid email”). Attach session recording links in a separate column or appendix.

Does preserving original dates guarantee a refund?

No. It makes your claim reviewable. The platform still decides whether the clicks meet their invalid-activity definition. BotRefund’s 83% recovery rate across 2,500+ audits comes from 99% detection confidence, platform-formatted reports, and negotiation experience — not from preservation alone.

Should I pause suspected bad placements before or after preserving data?

After. Export the click-ID archive and campaign snapshot first, then pause. Pausing first risks losing the placement-level attribution in the UI.

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.

Learn more