Postbacks

A postback is a server-to-server message that fires the moment a conversion happens. It is what closes the loop back to your tracker — the difference between optimizing on guesswork and optimizing on data.

What a postback does

When a user you referred subscribes on ourdream.ai, Everflow records the conversion against your account. A postback is an outbound HTTP request Everflow sends to a URL you control — almost always your own tracker. The request carries the click ID you passed through as sub5, the payout, and any other sub-parameters from the original click. Your tracker uses the click ID to credit the conversion to whatever upstream traffic source generated it.

For paid traffic, this loop is non-negotiable. Your tracker is the source of truth for attribution; the ad platform's own optimization algorithms then receive conversion signals from your tracker (via Conversions APIs) so they can bid intelligently. Skip the loop and the platform optimizes blind, your cost per conversion stays high, and scaling becomes impossible.

For organic traffic, postbacks are still useful for your own analytics and cohort tracking — but the urgency is lower.

The end-to-end flow

  1. 1

    A user clicks your link. Your tracker (RedTrack, Voluum, BeMob, etc.) generates a unique click ID for that click — for example, ?cid=abc123.

  2. 2

    The click ID flows through to ourdream.ai as sub5 on your tracking link.

  3. 3

    User subscribes on ourdream.ai. Everflow records the conversion with sub5 intact.

  4. 4

    Everflow fires your postback URL, substituting macros like {sub5} and {payout} with real values.

  5. 5

    Your tracker receives the conversion, matches the click ID back to the original click, and credits the upstream traffic source. From there, your tracker can forward the conversion on to ad platforms via their Conversions APIs.

Generic S2S postback (start here)

The simplest postback is a GET request to a URL on a server you control. This is the classic model and works with any custom analytics endpoint, your own database, or a third-party tracker (RedTrack, Voluum, AnyTrack, BeMob).

# Generic postback URL — paste into Everflow with macros intact

https://your-tracker.example.com/conversion?click_id={sub5}&payout={payout}&offer_id={offer_id}&tx_id={transaction_id}

Macros wrapped in { } are placeholders — Everflow replaces them with real values when it fires the postback. The most useful Everflow macros for a basic setup:

MacroWhat it returns
{sub5}The click ID you captured into sub5 (your tracker's click ID, or a platform click ID if running direct)
{payout}Your payout in USD for this conversion
{transaction_id}Everflow's unique ID for this conversion
{offer_id}The ourdream.ai offer ID
{sub1}{sub4}Your other sub-parameters as captured at click time

Macro names follow Everflow's standard syntax. Confirm exact spelling against your Everflow dashboard's postback macro reference before saving.

Direct-to-platform recipes (no tracker)

Use these only if you are running paid traffic on a single platform without a tracker in the middle. The recommended setup for everyone else is the generic S2S above pointed at your tracker — your tracker then handles forwarding conversions to whichever ad platform you are running on, via that platform's Conversions API. Trackers like RedTrack, Voluum, BeMob, Binom and AnyTrack all do this natively and remove the complexity of dealing with each platform's API directly.

That said, if you are starting with one platform and one ad account, here is the click ID parameter to capture into sub5 and the path to report conversions back.

Google Ads

Click ID parameter

gclid

Macro to capture

{gclid}

Conversion endpoint

Offline Conversions API

Capture gclid from your landing page URL into sub5. To report conversions back to Google Ads, configure an Offline Conversion action in Google Ads, then upload conversions either via your tracker (RedTrack/Voluum/AnyTrack all integrate this natively) or via Google Ads' bulk CSV upload.

Direct GET-style postback to Google is not supported — Google requires authenticated API uploads. If you want a single-URL setup, route through a tracker.

Meta (Facebook & Instagram)

Click ID parameter

fbclid

Macro to capture

{fbclid}

Conversion endpoint

Conversions API (CAPI)

Capture fbclid into sub5. Meta's pixel-only attribution is heavily degraded post iOS 14, so CAPI is required for reliable tracking. Configure CAPI through your tracker, or via Meta's Business Manager → Events Manager → Conversions API setup.

Like Google, Meta does not accept GET-style postbacks. CAPI uses POST requests with an access token. Use a tracker as the middleman.

TikTok Ads

Click ID parameter

ttclid

Macro to capture

{ttclid}

Conversion endpoint

Events API

Capture ttclid into sub5. Configure the TikTok Events API through your tracker, or via TikTok Ads Manager → Assets → Events. The Events API requires an access token and POST requests to business-api.tiktok.com.

Reddit Ads

Click ID parameter

rdt_cid

Macro to capture

{rdt_cid}

Conversion endpoint

Conversions API

Capture rdt_cid into sub5. Reddit's Conversions API mirrors the Meta/TikTok pattern: POST requests with an access token. Configure through your tracker, or via Reddit Ads Manager → Conversions.

Generic S2S (your own server or tracker)

If you control the destination — your own analytics endpoint, a self-hosted tracker, or a third-party tracker that accepts GET requests — paste the URL with Everflow macros directly into the affiliate postback section of your Everflow dashboard. See the Generic S2S section above for the URL template.

This is also the recommended setup for organic traffic where you do not need to feed an ad platform — your own dashboard or a Google Sheet endpoint via Apps Script is enough to track which sub-parameters are converting.

Top 5 failure modes

Almost every postback issue we see falls into one of these five patterns. If something is not working, start here.

  1. 1. Empty macro value

    The postback fires, but {sub5} resolves to an empty string. The cause is almost always that the click ID was never captured into sub5 in the first place — your landing page is not appending it, or the URL parameter name on your landing page does not match what your tracker expects. Check by examining a recent click in Everflow: if sub5 is empty there, fix it at the link level, not the postback level.

  2. 2. Wrong macro name

    Macro names are case-sensitive and must match Everflow's reference exactly. {Sub5}, {sub_5}, or {sub-5} will all be sent literally as the string {Sub5} rather than substituted. If your destination is receiving a literal placeholder string instead of a click ID, this is the cause.

  3. 3. 400 errors from the destination

    The destination URL is rejecting the request. Common causes: a required parameter is missing, the URL was malformed by manual edits, the destination expects POST and you sent GET, or an authentication token is missing or expired. Check Everflow's postback log for the exact response code and body.

  4. 4. Auto-deactivated postbacks

    If a postback URL fails repeatedly, Everflow can automatically deactivate it to avoid wasting requests. Re-enable it from your dashboard once you have fixed the underlying issue. Always verify the destination is responding 200 OK before re-enabling.

  5. 5. URL mismatch

    The protocol (http vs https), domain, or path on the postback URL does not match what the destination expects. The most common version of this is HTTPS endpoints being given an HTTP postback URL — modern destinations reject the request without a useful error. Always use HTTPS unless the destination explicitly requires HTTP.

Other common mistakes

  • Setting up postbacks before tracking links work. Postbacks fire on conversions. If your link is not recording clicks, no conversion will ever fire. Verify the link first.

  • Trying to send GET-style postbacks to Meta/Google/TikTok directly. These platforms require authenticated POST requests via their Conversions APIs. Use a tracker as a middleman or accept the manual CSV upload path.

  • Configuring multiple postbacks that all fire on the same event. One postback per destination is enough. Duplicates create reconciliation headaches.

Stuck after working through this page? Email affiliate@ourdream.ai with the postback URL you are trying to use, the destination platform, and the response code Everflow is logging. We can help you triage faster than guessing in the dark.

Related