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
A user clicks your link. Your tracker (RedTrack, Voluum, BeMob, etc.) generates a unique click ID for that click — for example,
?cid=abc123. - 2
The click ID flows through to ourdream.ai as
sub5on your tracking link. - 3
User subscribes on ourdream.ai. Everflow records the conversion with
sub5intact. - 4
Everflow fires your postback URL, substituting macros like
{sub5}and{payout}with real values. - 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:
| Macro | What 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. 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. 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. 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. 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. 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.