Optimization

Conversion review: how to hold conversions for approval before you pay

A guide to putting a checkpoint between a recorded conversion and a paid one — how to hold new conversions in Pending, what pending means for billing and affiliate postbacks, and how to approve, reject, or flag conversions as tests.

Most of the time you want a conversion to count the instant it arrives — the pixel fires, the sale is recorded, the affiliate's postback goes out, and everyone moves on. That speed is the right default. But there are moments when you want a beat between "recorded" and "paid": a new partner whose traffic you are still learning to trust, a promotion attracting opportunists, a fraud pattern you are watching, or simply a program that wants a human to eyeball high-value conversions before money moves. Conversion review is the checkpoint that gives you that beat without slowing everything else down.

This guide explains what review does, the three ways to switch it on, exactly what a pending conversion can and cannot do, how to work the queue, and how to flag a stray test conversion so it never pollutes your numbers.

The default, and what review changes

By default every conversion is confirmed on arrival. The moment your pixel or postback records it, it counts toward your reports, it can be billed, and the affiliate's postback fires so their own systems hear about it. Nothing is held back.

Conversion review inserts a hold. With it on, new conversions land in a Pending status and wait for a decision before any of that downstream activity happens. The conversion is still fully recorded — you lose no data — but it sits in a queue until you approve or reject it. Think of it as the difference between a payment that clears instantly and one that goes into a short review before settling.

Three ways to turn it on

Review can apply to your whole account or narrowly to specific traffic, and any one of these switches is enough to hold a given conversion.

You can turn it on account-wide, so every incoming conversion lands pending. This is the blunt instrument — right when you are actively investigating a problem across the board, heavier than you want as a permanent posture.

You can turn it on per affiliate, so that every conversion from one partner is held while everyone else's flows through untouched. This is the most useful setting in practice: it lets you extend a new or unproven affiliate onto real offers without exposing yourself to instant payouts, and you can lift the hold once they have earned trust.

You can turn it on per campaign, so only the conversions from one specific affiliate-and-offer pairing are held. Use this when a single placement or promotion warrants scrutiny but the affiliate's other traffic does not.

With all three off, nothing changes — conversions confirm instantly, exactly as before. You are never forced into review; you opt into precisely as much of it as the situation calls for.

What "pending" actually means

This is the part worth being precise about, because a pending conversion behaves differently from both a confirmed one and a rejected one.

A pending conversion is recorded in full. It appears in your conversions report with a Pending badge, it keeps its payout and revenue figures, and it shows up in your performance roll-ups so you can see the shape of what is waiting. What it does not do, until approved, is trigger anything downstream:

  • It is not billed. Neither your own platform usage nor the affiliate's invoice counts a pending conversion. Only confirmed conversions ever bill. This is the whole point — money does not move until you say so.
  • The affiliate's postback does not fire. The affiliate can see the pending row in their own portal reports, but their tracking system is not pinged until you approve. And a pixel cannot sneak past the queue: while review applies, any status the pixel URL tries to send is ignored, and re-firing the pixel cannot flip a pending conversion to confirmed. The only thing that confirms it is your decision.

That last detail matters for anyone worried about being gamed. Review is not a suggestion an affiliate can override by firing their pixel again; it is a genuine gate.

Approving and rejecting

You work the queue from your conversions report — filter by status to show only pending rows and you have your review list. Each row offers the actions that make sense for its current state, and the same buttons appear on the conversion's detail view when you open it.

A pending row offers Approve and Reject. Approving sets the conversion to confirmed: it bills normally, and if it had been held, the affiliate's postback fires at that moment — once, never twice. Rejecting opens a small panel for an optional reason and then sets the conversion to rejected: it never bills and no postback fires.

Crucially, no decision is a dead end. A confirmed conversion still offers a Reject action so you can undo a wrong approval, and a rejected conversion still offers Approve so you can undo a wrong rejection. If you reject something by mistake, you just open it again and approve it. Nothing is destroyed by a decision, which means you can review quickly without fear of an irreversible slip.

Every decision is stamped with who made it and when, and rejection reasons are visible in a few places — including to the affiliate in their own portal, who sees the reason but not the identity of the person who decided. That transparency is deliberate: a rejected affiliate who can see why is far less likely to open a support ticket than one who just sees a number disappear.

Marking a conversion as a test

A different but related problem: sometimes a real, live conversion lands that was only ever a test — you fired your own pixel to check an integration and forgot to mark it as a test on the URL. You do not want that inflating your numbers, but you also do not want to pretend it never happened.

You can flag any recorded conversion as a test after the fact, and flag it back to live if you change your mind. Nothing is deleted. A conversion marked as test drops out of every live view — your reports, roll-ups, dashboards, billing usage, and the affiliate's own portal reports all ignore it — while its payout and revenue stay on the record, so restoring it brings the numbers back exactly. You can do this one row at a time or in bulk.

There is one honest limit worth stating: marking a conversion as a test cannot undo something that already happened. If the affiliate's postback already fired or an invoice line was already issued, flagging the conversion as a test afterward does not claw those back — it only removes the row from future reporting. That is a good argument for pairing test flags with review on untrusted traffic, so the postback never fires in the first place.

Where review fits with everything else

Conversion review sits on top of the deduplication and attribution logic, not instead of it. A conversion that arrives as a duplicate, or that cannot be attributed to any click, is handled by those systems before review ever sees it — our guide to conversion pixels and postbacks covers how a conversion is matched and de-duplicated in the first place. Review is specifically about the human-judgment layer: this conversion is real and attributed; do I want to pay for it?

It also interacts cleanly with the money model. Because payout and revenue are frozen at click time, approving a held conversion pays exactly the terms that were locked in when the click happened — reviewing later never changes the economics, only whether they apply. If you want the full picture of how those numbers are set, see contracts and payouts: how the money works. And because the whole workflow lives inside your reports, the broader reports guide shows where the pending queue sits alongside everything else you monitor.

A few good practices

  • Review regularly. Affiliates can see their pending rows, and a long queue reads to them as unpaid work. A daily or twice-weekly sweep keeps the relationship healthy.
  • Prefer the per-affiliate flag for new or untrusted partners over holding the entire account. It is targeted, reversible, and invisible to everyone else.
  • Put a short reason on rejections. One line — "duplicate lead, already in system" — saves the follow-up conversation and closes the loop for the affiliate.

Conversion review is one of the controls that lets an affiliate program scale without scaling its risk. If you want to see how these checkpoints combine with first-party attribution to keep a program both fast and honest, the attribution feature overview shows the whole picture — and a demo will run a held conversion through the queue on your own data.

See it on your own program.

Book a demo and we'll stand up your workspace, wire your tracking domain, and walk this through on your kind of data, with you.