Keitaro
Sending AlterCPA TOP conversions to Keitaro is straightforward S2S postback integration. The one critical step: use Keitaro’s click id macro in the deep link, so the click id travels from Keitaro into AlterCPA TOP and we can send it back with each postback.
The key idea
Keitaro traffic link → injects {subid} → AlterCPA TOP deep link stores it as {click}
AlterCPA TOP fires postback → passes {click} back to Keitaro's /postback endpoint
Keitaro matches {click} to the original click record → conversion attributed ✓Keitaro’s click id macro is {subid} (also referred to as the “external id”
in some Keitaro versions). Always verify the macro name in your Keitaro panel —
go to Campaigns → (any campaign) → Integrations → S2S postback to see the
parameter names for your version.
Step 1 — set up the deep link in Keitaro
In your Keitaro campaign, set the destination URL (the link you send traffic to)
to the AlterCPA TOP deep link, inserting Keitaro’s click id macro where
{click} is expected:
t.me/YourBot?start=CAMPAIGNCODE-{subid}Replace CAMPAIGNCODE with your campaign code from AlterCPA TOP. Keitaro
will replace {subid} with the actual click id at redirect time.
Step 2 — configure the postback URLs in AlterCPA TOP
In your campaign’s Postbacks section (or in Profile → Global postbacks), set the five templates pointing at Keitaro’s S2S postback endpoint.
Replace your-keitaro.com with your Keitaro domain:
wait: https://your-keitaro.com/postback?subid={click}&status=lead
hold: https://your-keitaro.com/postback?subid={click}&status=lead
approve: https://your-keitaro.com/postback?subid={click}&status=sale
cancel: https://your-keitaro.com/postback?subid={click}&status=rejected
trash: https://your-keitaro.com/postback?subid={click}&status=rejectedStatus mapping:
| AlterCPA TOP event | Suggested Keitaro status |
|---|---|
| wait | lead |
| hold | lead |
| approve | sale |
| cancel | rejected |
| trash | rejected |
The exact status values accepted by Keitaro depend on your version and campaign setup. Check Campaigns → Conversions → Statuses in Keitaro for the full list of valid values.
Step 3 — verify in Keitaro
After running a test click through the deep link, open Keitaro → Reports and confirm the conversion appears with the correct status. If nothing arrives, double-check:
- The
{subid}macro in the deep link is being populated (check the raw URL in Keitaro’s click log). - The postback URL is publicly reachable (Keitaro must be accessible from our servers — not localhost or an internal IP).
- The status value is accepted by your Keitaro campaign’s conversion setup.
→ How tracking works — full macro reference and delivery rules.