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.

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=rejected

Status mapping:

AlterCPA TOP eventSuggested Keitaro status
waitlead
holdlead
approvesale
cancelrejected
trashrejected

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:

  1. The {subid} macro in the deep link is being populated (check the raw URL in Keitaro’s click log).
  2. The postback URL is publicly reachable (Keitaro must be accessible from our servers — not localhost or an internal IP).
  3. The status value is accepted by your Keitaro campaign’s conversion setup.

How tracking works — full macro reference and delivery rules.