Skip to content
Browse documentation

Conversion rules (CTIT, hold, IP allowlist, postback and fraud rules)

Configure the checks that approve, hold, flag or reject conversions automatically, and the order they run in.

Last updated 6 min read

On this page

Conversion rules decide the status of every new conversion after its click, event and payout are known. They live in two places:

WhereWhat
Offer → Conversion rules tabMinimum click-to-conversion time (seconds), Hold period (hours), the postback IP allowlist switch, Minimum CTIT per event, Partner hold & throttle, plus the postback and fraud rules that apply to the offer.
Settings → Conversion rulesAttribution (last / first touch, coupon priority, advertiser reversals), Postback rules and Fraud rules for the whole workspace.
Advertiser → Postback security tabAllowed IPs and ranges and the Migration postback URL.

Changes reach the tracking engine within about 10 seconds. Rules apply to new conversions only; conversions already decided keep their status.

Order of evaluation#

  1. Status from the postback (status=) or the offer's Default conversion status.
  2. click_blocked → outside_window → too_fast (the first that applies rejects).
  3. ip_not_allowed (S2S only).
  4. Fraud rules (skipped when step 2 or 3 already rejected).
  5. Postback rules — only if the conversion is not rejected; the first matching rule by priority decides.
  6. Throttle — only if not rejected.
  7. Hold — only if the conversion is approved at this point.
  8. De-duplication and caps (Duplicates).

Minimum click-to-conversion time (CTIT)#

Conversions that arrive sooner after the click than the minimum are rejected with too_fast — typical of bots and cookie stuffing.

  1. Open the offer → Conversion rules → Conversion controls.
  2. Enter Minimum click-to-conversion time (seconds) (0 = off, max 2,592,000 = 30 days).
  3. Click Save controls.
  4. Optional: under Minimum CTIT per event, set a different value per event (empty = inherit the offer's, 0 = off for that event) and click Save on the row.

The CTIT distribution is on Reports → Conversion quality → Click-to-conversion time (buckets 0–15 s, 15–60 s, 1–10 min, 10–60 min, 1–24 h, 1–7 days, > 7 days). Conversions without a click are never too fast.

Hold period#

A hold keeps approved conversions pending (reason hold, shown as "On hold" to partners) for a number of hours. When the hold ends, the worker (checking every minute) approves them, clears the reason and fires the partner postbacks that fire on approval.

  1. Offer → Conversion rules → Hold period (hours) (0 = approve immediately, max 8,760).
  2. Per partner: Partner hold & throttle → Hold (hours) (empty = the offer's value) → Save.

Only conversions that would otherwise be approved are held. A held conversion can still be rejected by the advertiser or by you in the meantime; its money can still be changed by a reversal postback.

Postback IP allowlist#

Accept S2S postbacks for an offer only from the advertiser's servers.

  1. Open the advertiser → Postback security tab.
  2. Enter Allowed IPs and ranges: one IPv4/IPv6 address or CIDR range per line (for example 203.0.113.10, 198.51.100.0/24), at most 100. Click Save postback security.
  3. Open each offer → Conversion rules → turn on Accept S2S postbacks only from the advertiser's server IPs → Save controls. The switch is disabled until the advertiser has at least one address.

A postback from another address is still stored — as rejected ip_not_allowed — so you can see it, and it can never change an existing conversion (conversion_id updates and migration forwards answer 403 postback IP not allowed for this offer). Pixels are not affected.

Partner throttle#

Partner hold & throttle → Throttle % moves that share of a partner's conversions on the offer to pending with reason throttled. It is visible to your team, off by default, and must be disclosed in your partner terms. Review throttled conversions in Reports → Conversions.

Attribution settings#

Settings → Conversion rules → Attribution, then Save attribution:

SettingEffect
Last touch / First touchLast touch (default) credits the click ID the conversion carries. First touch credits the SDK's first_click_id when it is older and for the same offer.
Coupon codes win over click idsOff: a coupon attributes only conversions without a click. On: a valid coupon_code always credits the coupon's partner.
Advertisers may reverse conversions by postbackOn (default): advertiser-token postbacks may reject or re-price existing conversions. Off: only the workspace token can (Reversals).

Postback rules#

Postback rules approve, reject or hold conversions whose data matches conditions — for example "reject test orders" or "hold sales above 500".

  1. Settings → Conversion rules → Postback rules (or the offer's Conversion rules tab) → add a rule.
  2. Name — shown as the status reason rule:<name> (first 60 characters) of conversions it rejects or holds for review.
  3. Applies to: Every conversion, One advertiser, One offer, One event of an offer or One partner (with an optional offer).
  4. Priority — lower runs first.
  5. Conditions, combined with All conditions must match or Any condition matches. A rule without conditions matches every conversion in scope.
  6. Action: Approve, Reject or Hold (pending) with Hold for (hours) (0 = pending until a reviewer decides).
  7. Optional Starts / Ends dates.
  8. Add rule.
FieldTests
adv1 … adv5Values sent by the advertiser
Sale amount, Payout, RevenueResolved amounts (numeric comparison)
Order ID (txid), E-mail, Event code, Status sent, CurrencyPostback values
Country / Region / City / Device / OS / Browser (click)From the attributed click
sub1 … sub5, Source IDFrom the click
Coupon code, Offer code, Partner codeCodes
Postback IPThe IP the conversion request came from
Click-to-conversion secondsSeconds between click and conversion (numeric)
Other parameter…Any extra postback parameter, as param:<name>

Operators: equals, does not equal, contains, does not contain, greater than, less than, between (two values, 10, 50), is empty, is not empty, is one of (US, CA, GB). Text comparisons ignore case. A rule with an invalid condition never matches.

Fraud rules#

Fraud rules check the attributed click and the converting IP.

  1. Settings → Conversion rules → Fraud rules → add a rule.
  2. Name; optional Offer (empty = All offers) and Partner (empty = All partners).
  3. Checks (one or more):
CheckLabelHits when
botBot clickThe click came from a crawler, HTTP library or automation tool.
datacenterDatacenter IPThe click came from a hosting / cloud network.
proxy_hintProxy headersThe click carried proxy headers from an untrusted hop.
headlessHeadless browserHeadless browser or automation framework detected.
missing_uaMissing user agentThe click had no User-Agent.
duplicate_click_ipRepeat click IPNot the first click of this IP and user agent within 24 hours.
duplicate_conv_ipRepeat converting IPAnother conversion of this offer came from the same IP in the last 30 days.
duplicate_conv_subnet24Repeat converting /24Same, for the /24 (IPv6 /48).
  1. Action: Flag only (the conversion keeps its status; the hits are recorded) or Reject the conversion (reason fraud:<check>).

The converting IP is the click's IP; for a pixel without click data it is the browser's IP. S2S postbacks without a click have no converting IP. Results appear on Reports → Conversion quality → Fraud.

Something unclear or missing in this article?Tell us