Skip to content
Growth Channels

When Keitaro Postbacks Stopped Matching the Platform: A Reconciliation Story

8 min read
RI

Riccardo Iovine

Affiliate & Tracking Analyst

For three weeks the team scaled on a number nobody had checked. The ad platform's dashboard showed conversions climbing, so budget followed and the campaign looked like a winner. Then the offer's weekly payout statement landed, and the revenue did not match the conversions the team thought it had driven — not by a rounding error, but by a margin wide enough to change whether the campaign was profitable at all. This is a story about how to reconcile Keitaro postbacks tracker mismatch the moment it appears, instead of finding the gap three weeks and a five-figure spend later, by moving the whole loop into a native Tracker Hub.

Quick answer: When an ad platform reports one conversion count and Keitaro reports another, you are scaling on a number you cannot trust. The mismatch is almost always a wiring or definition problem — attribution windows, duplicate postback fires, or a broken postback URL — not fraud. Reconciling it means reading both counts on the same screen, and with Keitaro wired natively into the platform that launches and reports the campaign, that diagnosis happens in one place instead of across three disconnected tools.

This is a composite drawn from common affiliate patterns, but the failure mode and the fix are real. The names and exact figures are illustrative; the mechanism that produced the mismatch is not.

The discrepancy: two systems, two conversion counts

The first sign was not an alert. It was a payout statement that disagreed with the dashboard. The ad platform credited the campaign with one volume of conversions over the week. Keitaro, where the offer's postbacks actually landed, had recorded a smaller number. The team's own tracking spreadsheet, rebuilt by hand each Monday, had a third figure that matched neither.

None of the three was obviously wrong. The platform counted on its own pixel and attribution logic, Keitaro on the offer's server-to-server postback, and the spreadsheet on whatever had been copied into it last. Three honest systems, three different answers, and a budget decision riding on the assumption that they agreed.

A conversion count is only a number until you know which event produced it. The platform counts when its attribution window says a click earned credit; the tracker counts when the offer's postback fires with a payout. Those are different moments measuring different things — and treating them as interchangeable is how a campaign gets scaled on a figure that was never real.

Why this is dangerous: scaling on a number you cannot trust

The danger is not the gap itself — it is acting on the wrong side of it. If the platform over-reports and you scale to its number, you pour budget into traffic that is not converting as well as the dashboard claims. If the tracker under-reports because a postback is broken, you might kill a campaign that was actually paying. In paid media, a number you cannot trust is more expensive than no number at all: an empty dashboard makes you cautious, a confident wrong one makes you bold in the wrong direction. The team had been bold, and the payout statement was the first time anyone looked at both sides at once.

The most expensive metric in an affiliate account is a conversion count the buyer trusts blindly. It feels like ground truth, so nobody re-examines it, and the misallocation compounds silently until a payout statement exposes the gap underneath the rising volume.

The usual debugging hell: glue between three tools

In the old setup, finding the source of the gap meant a tour through three disconnected systems: the ad platform in one tab for its count and attribution window, Keitaro in another for the postback log and recorded payouts, then the spreadsheet that was supposed to tie them together but mostly added a fourth version of events.

Every handoff between those tools was a place the wiring could break, and one no single screen could show you. Was the sub-ID passed from the ad click all the way to the offer's postback? Did the platform's attribution window match the tracker's lookback? Was a postback firing twice? You could not answer any of those from one system, because the truth lived in the seams between them — exactly where the tracker wiring mistakes that quietly kill conversions hide. The team spent two days reconstructing a single week and still finished unsure they had found everything.

A mismatch that lives in the glue between three tools cannot be diagnosed inside any one of them: the difference is created in the handoffs you cannot inspect. Disconnected tooling does not just slow the diagnosis down — it can hide the cause entirely.

Native Tracker Hub: postbacks tied to campaigns you can see

The change was structural. The team moved the loop into Wevion's native Keitaro Tracker Hub, where the tracker is not a separate login bolted onto the ad stack but part of the same platform that launches and reports the campaign. Built on Keitaro's official integration, the postback is wired to a campaign you can see, so the conversion the offer reports is tied to the click the platform launched — end to end, in one place.

That collapsed the three-tool tour into one screen. The ad-side count and the tracker-side count sat next to each other, on the same campaign, in the same view, with no spreadsheet to rebuild because there was nothing to copy by hand. The same official-API discipline that makes a clean tracker-to-Facebook-Ads integration reliable now applied to the whole reconciliation: one wiring, one record, one screen to read it on.

The structural fix was making the launch, the report, and the tracker the same surface. When the postback is tied to a campaign you can see, a divergence is something you read in one place rather than reconstruct across three — a glance instead of a forensic project.

Reading both sides in one place to find where the count diverged

With both counts on one screen, the team could finally do what the old setup made nearly impossible: compare a campaign's ad-reported conversions against its Keitaro-recorded postbacks, for the same window, and see exactly where the lines split. Reconciliation became a reading exercise instead of a reconstruction.

The pattern jumped out almost immediately. For most days the two counts tracked closely, with a small, consistent offset explained by the platform's longer attribution window crediting clicks the tracker logged a day later. But on a handful of days the tracker count spiked above the platform's — the fingerprint of a postback firing twice — and on two days it cratered while the platform's held steady, the signature of a postback that had stopped arriving at all. Each divergence had a shape, and the shapes pointed straight at causes: a steady offset is an attribution-window difference, a tracker spike above the platform is a duplicate fire, and a tracker count that drops to near zero while the platform holds is a dead postback.

Common culprits: windows, duplicate fires, broken URLs

The team's gap turned out to be three problems stacked, which is why no single theory ever fit the data. The first was benign: the ad platform's attribution window was longer than Keitaro's lookback, so the platform credited late conversions the tracker attributed to the day the click happened. That offset was real, expected, and not a bug — it just had to be understood rather than chased.

The second was a duplicate fire: the offer's postback pinged Keitaro twice for a slice of conversions, inflating the tracker count on the days that had spiked. The third was the dangerous one — a stale postback URL on one of the offer's flows had silently stopped delivering, so genuine conversions never reached the tracker at all, and the campaign had been paying more than the record showed. These are the recurring failure modes every affiliate eventually meets, and they are exactly what a tracker QA protocol catches before it costs you. Reading both counts together had turned an undefined "the numbers are off" into three named, fixable defects.

Most postback mismatches are not one problem but a stack: an attribution-window offset you accept, a duplicate fire you deduplicate, and a broken URL you repair. They compound against each other, which is why an aggregate "off by some amount" tells you nothing. Only the side-by-side, day-by-day view separates the noise you keep from the bugs you fix.

Fixing the wiring and confirming the numbers reconcile

Naming the three defects made fixing them ordinary. The duplicate fire was traced to a postback set to trigger on more than one status and trimmed to one. The dead URL was repaired and re-tested with a forced test conversion until it pinged cleanly. The attribution-window offset was not "fixed" but documented, so the team would stop treating an expected difference as a defect to hunt every week.

Then came the step the old setup never really allowed: confirming the reconciliation held before scaling again. The team watched a fresh week with both counts side by side, and this time the platform and the tracker agreed within the documented window offset — no spikes, no cratering. The number was finally trustworthy, not because it was high but because every difference between the two systems was accounted for. Whether to weight the platform's window or the tracker's payout event as the source of truth is the same first-touch versus last-touch attribution decision every buyer has to make deliberately, and now the team was making it on purpose.

Reconciliation is not the moment the two counts match. It is the moment every difference between them is explained: this gap is the window, that one was a duplicate we fixed, this one was a dead postback we repaired. A number you can fully account for is one you can scale on.

Lesson: reconciliation is a one-place job when the tracker is native

The team did not get a magic number out of the migration. Keitaro still counts conversions the way a tracker does, and the ad platform the way a platform does. What changed was the cost of explaining the difference. When the tracker is bolted on — a separate login, a manual spreadsheet, glue you cannot inspect — every mismatch is a forensic project, and the answer often arrives after the budget is spent. When the tracker is native, wired to campaigns inside the same platform that launches and reports them, the mismatch is something you read on one screen the day it appears.

That single-place reconciliation is one piece of a larger pattern in Wevion: the six ad platforms it supports — Meta, Google, TikTok, Taboola, Snapchat, and Outbrain — plus cross-platform rules and profitability all live on one surface, with a roughly 15-minute sync from the official APIs rather than an instant feed. For an affiliate buyer, the payoff is concrete: launch, report, and track in one place, so "why don't these two numbers agree?" stops being a two-day investigation and becomes a glance. Wevion's plans start at a permanent free tier (€0), then Starter at €99/mo, Pro at €499/mo, and Plus at €1,499/mo, with annual billing at -20% and a 14-day trial on every paid tier that coexists with the free plan — so a team can wire Keitaro and watch its postbacks reconcile before committing. The rest of the playbook lives in the affiliate marketing cluster.

The lesson generalizes to any affiliate buying paid traffic against an offer: the platform and the tracker always count slightly different things, and the cost is not the gap but how long it takes to explain it. Put the launch, the report, and the postback on one surface, read both counts together, and scale only on a number you can fully reconcile. The mismatch you cannot see is the one that empties the budget.

Frequently Asked Questions

Newsletter

The Ad Signal

Weekly insights for media buyers who refuse to guess. One email. Only signal.

Related Articles

Ready to Automate Your Ad Operations?

Start launching campaigns in bulk across every account. Start free, forever. No credit card required. Cancel anytime.