Media buyer tool 3 · Postback URL Tester for Keitaro
Test your Keitaro postback URL before the next conversion goes missing.
The affiliate network calls your Keitaro postback URL (copied from Settings, Postback URL) with the subid when a conversion happens. Below: Keitaro's postback format and macros as Keitaro's own docs give them, the ways a Keitaro postback usually breaks, and the tester, pre-filled with an example of the postback URL your affiliate network calls in. Edit it to match yours and run the check.
Nothing you enter leaves your browser.
Keitaro's postback format
http://IP/postback-key/postback?subid=REPLACE&status=REPLACE&payout=REPLACE
Set by your network, not by Keitaro: put your network's click-ID macro in the subid= field. Source: Postback (Keitaro docs) (read on November 9, 2026). Networks rename macros and some show them only inside your account; if your dashboard differs, it wins.
Keitaro macros
| Macro | Meaning |
|---|---|
| {subid} | Landing-page pixel placeholder only: replaced on index.html or index.php, never by a network |
| REPLACE | Slot in the copied postback URL for your network's macro (subid, status, payout) |
Parameter names on the receiving side
subid: Mandatory. Click ID in the trackerstatus: Mandatory. Conversion status (base statuses in Conversion Types)tid: Optional transaction ID so repeated conversions do not overwrite the previous onepayout: Optional payout; positive and negative values supportedcurrency: Optional payout currency (usd, eur, rub)cost: Optional cost for CPA and RevShare cost modelsreturn: Optional response text sent back to the sender, e.g. &return=OK
How a Keitaro postback usually breaks
REPLACE placeholders left in
Keitaro's template is subid=REPLACE&status=REPLACE&payout=REPLACE. Without subid and status the tracker cannot process the postback correctly.
Fix: Replace each REPLACE with the network's token or a fixed status such as lead or sale.
{subid} used outside index files
The {subid} placeholder works only on index.html or index.php, so it is not replaced in the pixel on other pages.
Fix: Use the pixel on index.html or index.php, or pass the real subid.
Extra parameters overwrite click data
Keyword, cost, external_id, creative_id, ad_campaign_id and source sent in a postback overwrite values recorded from the traffic source click.
Fix: Only send those params when you intend to replace the source data.
Test your Keitaro postback
Pre-filled with an example: Keitaro's postback with an example network's macros (CAKE's #s2# and #price#) in place of REPLACE. Swap in your own network's macros. Paste your own URL over it; the check runs in this page and fires nothing.
Not Keitaro's own macros: #s2# (CAKE); #price# (CAKE).
Want me to trace one real campaign?
This tool checks the postback URL and offer link you pasted from what you typed. It can't see your ad accounts, tracker, network or live traffic. If the result shows gaps, I'll look at one real campaign for free: I trace it from ad click to payout and back, and within 48 hours I send you a written report on where money or data leaks silently, the fix for each, and the tests that prove it's fixed.
In the review I fire a test conversion end to end on one real campaign and check it lands once, with the right payout, in your tracker and in your traffic source. You get the fix for every place it doesn't.
Shilpa Goel, [email protected]
This is an engineering checklist, not a security audit, legal, compliance or investment advice.
Not affiliated with or endorsed by Meta, Google, TikTok or any network or tracker named here.