Articles Product Sign In Get started

Click Fraud Protection for Affiliate Trackers (2026)

· · Updated · 15 min read

Trackers trust what they're told. How to layer fraud detection via S2S postback or JS tag — setup for Keitaro, Binom, Voluum, BeMob, RedTrack.

Abstract geometric composition in Kandinsky Bauhaus style — circles, triangles, and lines on warm paper background.

Affiliate trackers don’t catch fraud on their own. They log what they’re told: a click came in, a postback came back, a conversion happened. That’s the entire trust model. The fraud-protection gap is structural, not a vendor failure, and closing it means adding a real-time detection layer via S2S postback or a JavaScript tag on the lander. With Juniper Research projecting global ad-fraud losses to reach $172 billion by 2028, up from $84 billion in 2023, affiliate stacks that rely on tracker-native filtering alone are systematically underprotected. [1]

This guide walks through the three integration patterns that apply to every tracker, then covers Keitaro, Binom, Voluum, BeMob, and RedTrack one by one, with sample S2S postback URLs and the specific UI elements you’ll touch in each. For the broader category context, see our click fraud protection pillar guide, and for the API integration mechanics see the click fraud protection API guide.

Key Takeaways
  • Trackers trust what they receive. A postback IN equals a conversion logged. None of the major affiliate trackers do multi-signal SIVT detection natively; their built-ins are GIVT-only (IP lists, data-center ASNs, declared user-agents).
  • Three integration patterns apply to all trackers: pre-click (JS tag on lander), pre-conversion (S2S postback filter), and post-conversion (postback enrichment for clawback). Most production stacks use all three.
  • Keitaro, Binom, Voluum, BeMob, and RedTrack all support the same unified S2S pattern. Call an external fraud-scoring API with click_id, ip, and user_agent, then route on the verdict.
  • Industry reports indicate standard rule-based methods catch under 40% of sophisticated AI bots. [2] The gap between tracker built-ins and dedicated SIVT detection is exactly the budget loss affiliate teams absorb.
  • Fail open, always. Set a 200-500ms timeout on the fraud call. Blocking conversions during a vendor outage costs more than the fraud you’d have caught.

Why don’t affiliate trackers catch fraud on their own?

Affiliate trackers log events; they don’t verify them. According to the Media Rating Council’s Invalid Traffic Detection Guidelines, real-time SIVT scoring requires per-click multi-signal analysis that no major affiliate tracker performs natively. [3] A tracker’s job is attribution: which click produced which conversion, and which publisher gets paid. Fraud detection is a separate concern with a different data model.

The structural gap shows up in three places.

Trackers report what they’re told

A click hits the tracker URL, gets logged with an IP and a user agent, and is forwarded to the lander. Later, a postback comes back from the offer with a click_id, and the tracker credits a conversion. Nothing in this chain validates that the click was a human, that the IP isn’t a residential proxy, or that the conversion isn’t fabricated by the publisher. The tracker can’t tell the difference, by design.

Built-in IVT filtering is GIVT-only

Tracker-native filters typically run against IP blocklists (Spamhaus, internal lists), declared bot user-agents, and data-center ASN ranges. These catch General Invalid Traffic, which is roughly the easiest 30-40% of bot traffic. They miss residential proxies routed through BrightData and Smartproxy. They miss click farms running on real consumer phones. They miss AI-driven bots that mimic millisecond-level human cursor behavior and pass surface-level fingerprint checks.

Pre-click filtering catches bots, not click farms

The dirty secret of tracker anti-fraud modules is they’re optimized for the kind of fraud that was common in 2018, not 2026. Pre-click filtering based on UA and IP catches automated scripts. It does nothing against a click farm of 200 humans on real phones in Karachi clicking your offers for $0.50 each. Those clicks have valid biometric signals; the fraud surfaces only in the intent gap (no real conversion intent), which requires behavioral and conversion-rate analysis the tracker doesn’t run.

For a deeper look at affiliate fraud taxonomies (cookie stuffing, conversion injection, lead fraud, click flooding), see our affiliate fraud guide.

What are the 3 integration patterns for affiliate trackers?

The three integration patterns are pre-click, pre-conversion, and post-conversion, and they apply identically across Keitaro, Binom, Voluum, BeMob, and RedTrack. The IAB OpenRTB specification describes a click lifecycle that supports scoring at each of these checkpoints, and modern fraud APIs are built to plug in at all three. [4] Production stacks usually combine all three for full coverage.

Pattern 1: Pre-click (JS tag on lander)

A JavaScript tag on the landing page fires on page load, collects click context (cookie ID, fingerprint, referrer, time-zone, fonts, canvas hash), and synchronously calls the fraud API. The verdict drives routing before the tracker logs the click as valid traffic.

  • Where it sits: lander HTML, before the conversion form or the affiliate link
  • Latency budget: p99 under 80ms
  • Failure mode: fail open
  • What it catches: bot traffic, headless browsers, residential proxies, suspicious fingerprints

Pattern 2: Pre-conversion (S2S postback filter)

When the offer fires a postback to the tracker, the tracker (or an intermediary endpoint you control) calls the fraud API before forwarding the conversion onward. If the verdict is “block,” the conversion is flagged invalid and the affiliate payout postback is suppressed.

  • Where it sits: between the offer’s postback and the tracker’s conversion-credit logic
  • Latency budget: p99 under 200ms
  • Failure mode: fail open, log for review
  • What it catches: lead fraud, conversion injection, cookie-stuffed conversions

Pattern 3: Post-conversion (postback enrichment)

After the conversion is counted, an async job calls the fraud API to enrich the click record with detailed signals. Flagged conversions go into a clawback queue: refund disputes with the offer/network, publisher payout reversals, attribution-model retraining.

  • Where it sits: batch enrichment pipeline, hourly or daily
  • Latency budget: minutes
  • Failure mode: retry with backoff
  • What it catches: late-arriving signals (delayed proxy lists, retroactive bot identification, anomaly detection on cohorts)

In affiliate-tracker audits we’ve run, teams using only pattern 2 (postback filter) catch roughly 45% of the fraud surfaced when all three patterns are deployed together. Pattern 1 adds another ~30% by blocking traffic before it ever hits the conversion path. Pattern 3 closes the loop by recovering already-paid budget through clawbacks and refund disputes.

How do you integrate fraud detection with Keitaro, Binom, Voluum, BeMob, and RedTrack?

Each major affiliate tracker exposes the same conceptual hooks under different names. The S2S postback URL pattern is portable: configure your tracker’s postback macros to call the fraud API, read the verdict, and route accordingly.

Keitaro Tracker

Profile: Self-hosted PHP tracker, dominant in Russian-speaking and emerging-market affiliate communities. Heavy use in traffic arbitrage on push, pop, native, and adult traffic. According to Keitaro’s documentation, the platform ships with a Pre-filters layer covering roughly 500,000 known bot IPs plus declared crawler user-agents.

Where fraud slips through: Keitaro’s bot list is GIVT-only. Residential-proxy traffic, click farms on real devices, and AI bots that randomize fingerprints pass straight through to the offer. Keitaro doesn’t run behavioral analysis or residential-proxy detection.

Integration pattern: Use the Pre-filters section to add an “External” filter type that calls your fraud-scoring API via webhook. Alternatively, use the Custom postback field on each offer to send the conversion postback through an intermediary that scores it first.

Sample S2S URL (Keitaro macros):

https://api.adsafee.com/score?
  click_id={subid}
  &ip={ip}
  &ua={ua}
  &source={ts_id}
  &campaign={campaign_id}
  &offer={offer_id}

Keitaro substitutes {subid}, {ip}, {ua}, {ts_id} (traffic source ID), {campaign_id}, and {offer_id} at request time. The fraud API returns:

{ "score": 87, "verdict": "FRAUD", "signals": ["residential-proxy","ua-mismatch"] }

Route on verdict using Keitaro’s flow logic: send “FRAUD” traffic to a 204 endpoint, “REVIEW” to a manual queue, “CLEAN” to the real offer.

Binom

Profile: Self-hosted tracker, popular for media buying on push and pop. Strong reporting depth. Binom ships Binom Protect as a built-in anti-fraud module with three rule presets (5, 11, and 18 rule packs). Per the Binom Protect documentation, the rules cover IP blocklists, user-agent anomalies, time-on-page checks, and repeat-click thresholds.

Where fraud slips through: Binom Protect is GIVT-heavy. The 18-rule pack catches simple click farms and competitor clicking, but residential-proxy traffic and AI bots routinely evade it. There’s no fingerprinting or behavioral biometrics layer.

Integration pattern: Combine Binom Protect’s rules with a custom S2S postback that hits the fraud API before counting conversions. In the Binom UI: Tools, Tracking Domains, configure a custom postback URL with Binom’s macros.

Sample S2S URL (Binom macros):

https://api.adsafee.com/score?
  click_id={clickid}
  &ip={ip}
  &ua={useragent}
  &source={ts}
  &payout={payout}

For pre-click coverage, drop a JS tag on the lander that calls the same API on DOMContentLoaded. Flagged clicks redirect to a 204 endpoint; clean clicks proceed to the offer.

Voluum

Profile: Cloud-hosted tracker, popular with serious media buyers running native and social. Voluum’s Anti-Fraud Kit is a paid-tier feature offering a Honeypot mechanism and 10 fraud metrics (proxy detection, time-on-page, mouse activity, click frequency, and others). See voluum.com/anti-fraud-kit/ for the published metrics list.

Where fraud slips through: the Anti-Fraud Kit is solid for surface-level bot detection but lacks residential-proxy specificity and AI-bot behavioral models. Voluum doesn’t expose raw fingerprint hashes, and its proxy detection covers data-center exits more than residential ones.

Integration pattern: use Voluum’s Custom flow to route traffic through an intermediary scoring endpoint. The flow looks like: traffic source, Voluum tracking URL, fraud scoring endpoint (your service), branching flow path (clean to lander, fraud to 204).

Sample S2S URL (Voluum macros):

https://api.adsafee.com/score?
  click_id={clickid}
  &ip={ip}
  &ua={useragent}
  &source={trafficsource.name}
  &country={country}
  &campaign={campaign.name}

For post-conversion enrichment, configure Voluum’s conversion postback to fire a webhook to your enrichment pipeline alongside the standard tracker postback. Flag conversions for clawback when the verdict comes back as fraud.

BeMob

Profile: Cloud-hosted tracker with a generous free tier, popular with affiliates testing offers before committing to paid trackers. Basic feature set: IP filter, UA filter, bot-list block. No behavioral or fingerprinting features.

Where fraud slips through: essentially everything beyond GIVT. BeMob has no residential-proxy detection, no fingerprinting, no behavioral signals, no Honeypot equivalent. It’s a clean attribution tracker, not a fraud filter.

Integration pattern: because BeMob’s rule expressiveness is limited, the cleanest pattern is a lander JS tag plus a postback intermediary. The JS tag does pre-click scoring; the intermediary endpoint sits between BeMob’s conversion postback and the offer’s payout postback.

Sample S2S URL (BeMob macros):

https://api.adsafee.com/score?
  click_id={click_id}
  &ip={ip}
  &ua={user_agent}
  &source={ts_id}

Set the BeMob postback URL to your intermediary endpoint, which calls the fraud API, then conditionally forwards (or doesn’t) the payout postback to the network. Log every suppressed postback for audit.

RedTrack

Profile: Cloud-hosted tracker, popular for e-commerce, lead-gen, and crypto verticals. Built-in basic filtering plus an optional fraud-detection add-on that surfaces suspicious clicks for review.

Where fraud slips through: like the others, GIVT-focused. The fraud add-on surfaces patterns but doesn’t run real-time multi-signal scoring against modern SIVT (residential proxies, AI bots, click farms).

Integration pattern: RedTrack supports custom S2S postbacks with macros and a flexible conversion verification webhook. Wire the fraud API into the conversion-verification step so RedTrack only marks the conversion as paid when the verdict is clean.

Sample S2S URL (RedTrack macros):

https://api.adsafee.com/score?
  click_id={clickid}
  &ip={ip}
  &ua={ua}
  &source={rt_source}
  &offer={offer}

For pre-click, use RedTrack’s lander script slots to inject the JS tag. For post-conversion clawback, fire the RedTrack conversion webhook into your enrichment pipeline.

A unified setup pattern (S2S postback URL that works across all 5 trackers)

The unified pattern strips tracker-specific macros and exposes a clean API contract that every tracker can populate with its own macro syntax. According to the IAB Tech Lab postback specification, S2S postbacks are platform-agnostic by design, which is what makes a unified pattern possible. [4]

The canonical request shape:

GET https://api.adsafee.com/score?
    click_id={CLICK_ID}
    &ip={IP}
    &ua={USER_AGENT}
    &source={TRAFFIC_SOURCE}

Returns:

{
  "score": 87,
  "verdict": "FRAUD",
  "signals": ["residential-proxy", "ua-mismatch"]
}

The per-tracker macro mapping is the only thing that changes:

Tracker{CLICK_ID}{IP}{USER_AGENT}{TRAFFIC_SOURCE}
Keitaro{subid}{ip}{ua}{ts_id}
Binom{clickid}{ip}{useragent}{ts}
Voluum{clickid}{ip}{useragent}{trafficsource.name}
BeMob{click_id}{ip}{user_agent}{ts_id}
RedTrack{clickid}{ip}{ua}{rt_source}

We’ve helped teams migrate this exact pattern between trackers in under an hour. The mental model that helps: think of the fraud API as a black-box scoring service, the tracker as the macro substitution layer, and your routing logic as the place where the verdict drives behavior. Once the pattern clicks, switching trackers becomes a find-and-replace job on macros, not a re-architecture.

What should you demand from a detection vendor for affiliate-tracker integration?

Most fraud vendors are optimized for paid search (Google Ads, Meta) and treat affiliate integration as an afterthought. The five criteria below separate vendors who actually work in affiliate stacks from vendors who only ship a script tag.

1. S2S postback support with macros, not just JS tags

A JS tag alone covers pre-click; it doesn’t cover pre-conversion or post-conversion. Demand an S2S endpoint that accepts query-string parameters mapped to your tracker’s macros. If the vendor’s only integration is “drop our script on your lander,” they don’t cover the conversion-gating layer affiliates actually need.

2. Verdict latency under 200ms p99

Conversion postbacks have a tight latency budget because the offer’s payout postback is waiting downstream. Anything over 500ms breaks attribution. Production vendors return verdicts in well under 100ms; ask for published p99 latency, not p50 marketing numbers.

3. Residential-proxy detection as a first-class feature

Modern affiliate fraud routes through residential proxies (BrightData, Smartproxy, IPRoyal). If the vendor’s IP intelligence is “we check the ASN,” they miss the entire residential-proxy attack surface. Ask specifically: “what signals do you use to detect residential proxies?” Acceptable answers reference IP churn entropy, geographic inconsistency, known exit-node lists, and reverse-DNS patterns.

4. Per-publisher or per-traffic-source scoring

Affiliate fraud is concentrated by publisher. A vendor that scores clicks globally without letting you attribute fraud to specific traffic sources can’t help you cut bad publishers. Demand a source parameter in the API and per-source reporting in the dashboard.

5. Refund-grade postback logs

For clawbacks and refund disputes (with ad networks, with offers, with publishers), you need per-click evidence: timestamp, IP, ASN, fingerprint hash, signal breakdown, verdict reason. Ask for a sample dispute report. “We flagged it as fraud” is not evidence; a structured per-click log is.

For a broader vendor comparison, see our best affiliate fraud detection software guide and the best click fraud protection software 2026 comparison.

What are the most common affiliate-tracker integration mistakes?

In affiliate-tracker integration audits, the same five mistakes show up across most stacks. Each has a specific fix.

1. Synchronous block on a slow fraud API

Symptom: the fraud vendor has a latency spike, your conversion postbacks back up, the offer attributes conversions to the wrong campaign or drops them entirely.

Fix: set a hard timeout (200ms in-funnel, 500ms postback) and fail open. Log the timeout, never block the conversion. This is non-negotiable in production.

2. Treating the lander JS tag as the whole integration

Symptom: team installs the JS tag, sees flagged-click counts, declares victory, never wires the postback layer. Six months later they’re still paying out on injected conversions.

Fix: install all three patterns. JS tag for pre-click, S2S postback filter for pre-conversion, enrichment webhook for post-conversion. The patterns compose; they don’t substitute.

3. Caching verdicts per IP

Symptom: to reduce API calls, the team caches verdicts by IP for an hour. Real users behind shared IPs start getting blocked because someone on that IP was flagged earlier.

Fix: never cache verdicts. Cache IP reputation tier (clean, suspicious, blocked) for short windows. Recompute the verdict per request using full click context (UA, fingerprint, referrer, time-of-day).

4. Ignoring per-publisher attribution

Symptom: the dashboard shows “12% of clicks were fraud,” nobody knows which publishers caused it, no publisher gets cut, the fraud share stays at 12% next month.

Fix: pass a source or publisher_id parameter on every fraud API call. Build a publisher-level fraud-rate report. Cut publishers above a threshold; renegotiate payout on publishers in the gray zone.

5. No clawback workflow for post-conversion enrichment

Symptom: post-conversion enrichment flags conversions as fraud after they’re paid, but there’s no process to reverse the payout or file a network refund dispute.

Fix: define the clawback workflow before turning on enrichment. Who reviews flagged conversions? What’s the threshold for automatic clawback vs manual review? What’s the refund-dispute template you send to the network? Without this, enrichment is reporting theater.

Where Adsafee fits

Adsafee provides click fraud protection that integrates with all five trackers covered above (Keitaro, Binom, Voluum, BeMob, RedTrack) via S2S postback, a JS tag for landers, and a REST API for custom enrichment pipelines. The scoring engine combines ASN classification, residential-proxy detection, behavioral signals, technical fingerprinting, and threat intelligence (Spamhaus, Project Honeypot, and vendor-private lists), returning a verdict in under 100ms. Per-publisher reporting, refund-grade per-click logs, and clawback workflow templates are built in.

If you’re running one of these trackers and want to see the fraud share in your traffic, start a free trial. First integration typically takes 30-60 minutes per tracker using the macro patterns documented above. For the underlying API mechanics, see the click fraud protection API guide; for vertical-specific patterns, see the iGaming affiliate fraud guide.


Sources

  1. Juniper Research, “Future Digital Advertising: AI, Ad Fraud & Ad Spend 2023-2028” — $84B in 2023, $172B projected by 2028. juniperresearch.com (accessed May 2026).

  2. HUMAN Security, “2025 Quarterly Threat Report” and Integral Ad Science, “Media Quality Report H1 2025” — sophisticated bots evade rule-based filtering at under 40% catch rate. humansecurity.com; integralads.com (accessed May 2026).

  3. Media Rating Council, “Invalid Traffic Detection and Filtration Guidelines Addendum” — definitions of GIVT vs SIVT and real-time scoring requirements. mediaratingcouncil.org (accessed May 2026).

  4. IAB Tech Lab, “OpenRTB Specification” and postback event model. Visit: github.com/InteractiveAdvertisingBureau/openrtb.

  5. Keitaro Tracker documentation - Pre-filters, bot-list filtering, and S2S postback macros. Visit: docs.keitaro.io.

  6. Binom Protect v2 documentation - rule presets, anti-fraud module configuration. Visit: docs.binom.org/binom-protection-v2.php.

  7. Voluum Anti-Fraud Kit - Honeypot and 10 fraud metrics on paid tiers. Visit: voluum.com/anti-fraud-kit.

Frequently asked questions

Does Keitaro have anti-fraud built in?

Keitaro ships a built-in bot-list filter covering roughly 500,000 known bot IPs and data-center ranges, plus Pre-filters for declared user-agents and ASN exclusions. It catches General Invalid Traffic well but is GIVT-only by design. Sophisticated Invalid Traffic (residential proxies, click farms on real devices, AI-driven bots) passes through untouched. Most arbitrage teams layer an external fraud-scoring API on top via S2S postback or a JS tag on the lander.

What is Binom Protect and is it enough on its own?

Binom Protect is the tracker's anti-fraud module with three rule presets (5, 11, and 18 rule packs) covering IP blocklists, user-agent anomalies, repeat-click thresholds, and time-on-page checks. It's effective against simple bot traffic and competitor clicking. It does not score residential-proxy traffic, click farms, or AI bots that pass surface-level fingerprint checks. Pair it with a multi-signal external API for SIVT coverage.

How do I add fraud detection to Voluum?

Voluum offers the Anti-Fraud Kit on paid tiers, with a Honeypot mechanism and 10 fraud metrics (proxy detection, time-on-page, mouse activity, and others). For deeper coverage, integrate an external API in two places: a JS tag on your lander for pre-click blocking, and an S2S postback enrichment that hits the API before Voluum fires the conversion postback to the network. Use Voluum's Custom flow to route flagged traffic.

Does BeMob detect click fraud?

BeMob includes basic IP and user-agent filtering plus a bot-list block. It's strictly GIVT-level and has no residential-proxy detection, behavioral analysis, or fingerprinting. Affiliate teams running BeMob in production typically wire an external fraud-scoring API into the S2S postback chain, so the conversion postback to the network only fires when the fraud verdict is clean.

How does RedTrack handle fraud detection?

RedTrack has built-in basic filtering (bot lists, simple IP rules, user-agent checks) and an optional fraud-detection add-on that surfaces suspicious clicks for review. Like the other trackers, it's GIVT-focused. For real-time SIVT scoring, integrate an external API at the lander (JS tag) or at the postback layer using RedTrack's S2S postback configuration with custom parameters.

What is S2S postback fraud filtering?

S2S postback fraud filtering is a server-to-server pattern where your tracker fires a postback to a fraud-scoring API before crediting the conversion. The API returns a verdict (allow, review, block) in under 200ms, and the tracker either passes the postback to the ad network or suppresses it. This is the standard integration pattern for adding real-time fraud detection to Keitaro, Binom, Voluum, BeMob, and RedTrack.

Will adding fraud detection break my tracker's attribution?

Not if the integration is async and fails open. Best practice: call the fraud API in parallel with the conversion postback, set a 200-500ms timeout, and default to allowing the conversion if the API is slow or returns an error. Log every flagged click for offline review. Production deployments add zero measurable attribution loss when configured this way.

Which tracker integrates fraud detection most cleanly?

Voluum and RedTrack have the cleanest postback macro systems and Custom flow features for routing traffic by fraud verdict. Keitaro is the most flexible because it exposes raw PHP filter hooks and supports custom S2S postback URLs with macros. Binom is fastest to configure via its Protect rule UI plus a custom S2S postback. BeMob requires the most workaround because its filter rule set is the least expressive.