What you need from Keitaro
Two things: the token Keitaro replaces with its click ID, which is {subid}, and your postback address with the names of its parameters. RevRake fills each parameter with a macro:
| Keitaro parameter | Filled by | Meaning |
|---|---|---|
subid | {sub1} | sub1 of the click: the click ID your tracker put on the link. |
status | {status} | The word for where the conversion stands, in the words Keitaro knows. They are in the table further down. |
payout | {commission} | Your commission as a decimal (40.00). Empty for a registration, 0 for a rejected commission, negative for a chargeback. |
currency | {currency} | The ISO code of the commission's currency. |
tid | {conversion_id} | An ID that is the same for every event about one commission: its first deposit, approval, rejection, payment and chargeback. A registration has its own. |
Keitaro shows its postback address under Settings → Postback URL. It is made of the tracker's address, your postback key and the conversion parameters: in the template, replace YOUR-TRACKER-DOMAIN and POSTBACK-KEY with the two parts of your own address.
subid and status are mandatory in Keitaro; payout, currency and tid are optional. tid is Keitaro's transaction ID: a postback with a tid Keitaro has not seen is recorded as a separate conversion, and one with a tid it knows changes that conversion. The preset puts {conversion_id} there.
Step by step in RevRake
1Create a tracking link
Open the Links page of your affiliate portal and create one link per campaign. Each link has its own short address on track.revrake.com and can land on a page of the program's site that you choose.
2Put Keitaro's click ID in sub1
Add sub1= with Keitaro's click ID token to the link, and use the result as the offer URL in Keitaro:
https://track.revrake.com/c/a8Kq2Zx?sub1={subid} Keitaro replaces {subid} with its click ID on every click. RevRake stores the value with the click, up to 200 characters, and gives it back in your postbacks as {sub1}. sub2 to sub5 are free for your own values, and UTM tags on the link are stored too.
3Add a postback destination
Open the Postbacks page and press "Add a destination". The address is a template: anything in braces is a macro that RevRake fills in for each conversion.
https://YOUR-TRACKER-DOMAIN/POSTBACK-KEY/postback?subid={sub1}&status={status}&payout={commission}¤cy={currency}&tid={conversion_id} RevRake ships this template as the Keitaro preset: choose Keitaro in the list and it is filled in for you.
Replace YOUR-TRACKER-DOMAIN with the address of your own Keitaro postback, as Keitaro shows it to you. The portal refuses a template that still has the placeholder host. If your postback address has a parameter with another name than in the template, change the name and keep the macro.
4Choose the events
Tick the events this destination should hear about. registration and ftd tell Keitaro about a new player and their first deposit within seconds of the operator reporting them. commission_approved, commission_rejected, commission_paid and chargeback follow the money afterwards.
RevRake has two IDs for a postback. {conversion_id} is the same for every event about one commission, so a tracker that updates a conversion by its ID keeps one conversion per commission. {event_id} is different for every event. The Keitaro preset uses the one that fits how Keitaro treats a repeated ID; the sections below say which. An account can have up to 10 destinations.
5Send a test and read the delivery log
Press "Send test" on the destination. RevRake sends a made-up conversion at once and shows what Keitaro answered and how fast. The test looks like a first deposit: it carries the click ID TEST-CLICK-ID and a commission of 40.00. Keitaro does not know that click, so it may ignore the test or answer with an error: what the test proves is that the address is reachable and how the filled-in address looks.
For a check from end to end, open your campaign link through Keitaro, so that a real click ID travels in sub1, and ask the operator to register a test player from that visit. The conversion then appears in the delivery log, with each attempt and Keitaro's answer, and in Keitaro.
How {status} maps to Keitaro
RevRake names each event and also gives it a status word. A destination made from the Keitaro preset sends the words Keitaro knows in {status}; {event} always carries the event name. A destination made with "Other / custom" sends lead, sale, approved, rejected and paid.
| Event | {status} | When |
|---|---|---|
registration | lead | A player was attributed to the affiliate. |
ftd | sale | A first deposit earned the affiliate a CPA commission. |
commission_approved | sale | A commission was approved when its hold period ended. |
commission_rejected | rejected | A commission on hold was rejected after a review. |
commission_paid | sale | A commission was paid in a payout batch. |
chargeback | rejected | A chargeback took back a commission. |
Keitaro knows lead, sale and rejected, and ignores a postback with a status it does not know. The preset therefore sends sale for an approved and for a paid commission too. They carry the same tid as the first deposit, so Keitaro keeps one sale per commission and does not count it again.
A rejection and a chargeback arrive as rejected with the commission's tid, and move that sale to rejected. Which changes of status Keitaro allows is set under "Next statuses" of each conversion type, in Settings → Conversion Types. A registration is a lead with a tid of its own.
Troubleshooting
- Keitaro shows no conversions. Open the delivery log on the Postbacks page. If there is no row, the event has not happened yet, or the destination is not ticked for it. If there is a row, it shows the address that was called and what Keitaro answered.
- The click ID arrives empty. The click had no
sub1. Check that the offer URL in Keitaro ends withsub1=and{subid}, and that the click went through Keitaro: a link opened directly has no click ID to carry. - A macro arrives as written, in braces. RevRake sends a name it does not know unchanged, so a typo is visible in the delivery log. Compare the name with the list of macros.
- The payout is empty or zero. A registration carries no money, so
{commission}is empty for it. It is0for a rejected commission and negative for a chargeback. - A delivery failed. Keitaro must be reachable on a public address and answer with a
2xxstatus within 5 seconds. A failed delivery is retried after 1 minute, 5 minutes, 25 minutes, 2 hours, 10 hours and 24 hours, and then marked as given up; you can send it again by hand. - The destination was switched off. After 20 failures in a row RevRake switches a destination off, with an email after 5 and after 15. Fix the address and switch it back on: every postback that queued meanwhile is sent.
- Keitaro's log says "Conversion type not found". The status word is one Keitaro does not know. That happens with a destination made with "Other / custom", which sends
approvedandpaid: choose the Keitaro preset for it. - The same player is counted more than once in Keitaro. A destination saved with an earlier version of the preset has
tid={event_id}in its address, which is different for every event. Edit the destination and writetid={conversion_id}.
Keitaro is a product of its own vendor (https://keitaro.io/) and is named here only to say which tracker the guide is for. RevRake is not affiliated with it.
Questions
- Do I need an API key to connect Keitaro?
- No. Tracking links and postbacks are set up in your affiliate portal and need no key. A key is only needed if you want to read your reports and commissions by API.
- Which token do I put in sub1 for Keitaro?
{subid}. Keitaro replaces it with its click ID on each click, and RevRake returns the value in the postback as{sub1}.- Which events can RevRake send to Keitaro?
- Six:
registration,ftd,commission_approved,commission_rejected,commission_paidandchargeback. You tick the ones you want per destination. - Does the postback carry the deposit amount?
- The templates send your commission in
{commission}. The deposit behind it is available as{amount}, with its currency in{amount_currency}: add them to the template if Keitaro has a parameter for them. - Can I send conversions to Keitaro and to another tracker at once?
- Yes. An account can have up to 10 destinations, each with its own template and its own events.
- What happens if Keitaro is down when a conversion happens?
- The postback is retried six times over about a day and a half. Every attempt is kept in the delivery log, and a delivery that was given up can be sent again by hand.
Sources
What this guide says about Keitaro comes from Keitaro's own documentation, as it read on the day given. Trackers change: if a name on your postback page differs from this guide, trust your postback page. What it says about RevRake is in the integration guide and the API reference.
- Postback | Keitaro https://docs.keitaro.io/en/conversions-and-postback/postback.html read on October 4, 2026
- Affiliate network postback | Keitaro https://docs.keitaro.io/en/conversions-and-postback/affiliate-network-postback.html read on October 4, 2026
- Conversion types | Keitaro https://docs.keitaro.io/en/settings/conversion-types.html read on October 4, 2026
- Placeholders | Keitaro https://docs.keitaro.io/en/landing-pages-and-offers/placeholders.html read on October 4, 2026
- Postback Troubleshooting | Keitaro https://docs.keitaro.io/en/conversions-and-postback/postback-troubleshooting.html read on October 4, 2026