Troubleshooting Postback URLs in CAKE

This article will cover the following:


How Postback Tracking Works

A postback URL (also called server-to-server or S2S tracking) works in three steps:

1
A user clicks your affiliate's tracking link. CAKE records the click and assigns it a unique click ID (sometimes called a transaction ID or s1 value). The click ID is passed to the advertiser's landing page as a URL parameter.
2
The user completes the desired action on the advertiser's site (purchase, signup, etc.). The advertiser's server captures the click ID and sends it back to CAKE by calling the postback URL.
3
CAKE receives the postback, matches the click ID to the original click record, and records a conversion against the correct affiliate and campaign.
Note:
Every conversion depends on the click ID making the full round trip. If the click ID is not captured at step 1, or not sent back at step 2, CAKE cannot record the conversion. This is the root cause of the vast majority of postback issues.

Pre-Flight Checklist

Run through this checklist before investigating further. Most postback failures are caused by one of these five things:

CheckWhat to verifyHow to verify
Click ID capturedThe advertiser's landing page is reading the click ID from the URL and storing it for use at conversion time.Manually click a test tracking link and inspect the landing page URL in your browser. Confirm the click ID parameter (e.g. ?s1=) is present and has a non-empty value.
Postback URL correctThe postback URL being called matches exactly what CAKE provided — correct domain, path, and parameters.Copy the postback URL from the offer's Tracking tab and compare character-by-character with what is configured in the advertiser's system.
Click ID passed backThe click ID value stored at click time is included in the postback call.Review the advertiser's server logs for the postback call and confirm the click ID parameter is populated with the value from the original click.
Session not expiredThe click ID is being sent back within the offer's configured session window.Check the offer's session hours setting. The postback must fire before the session expires.
Offer is activeThe offer is in Active status at the time the postback fires.Confirm the offer status in CAKE. Postbacks sent to paused or expired offers will not record conversions.

Common Issues and Fixes

Conversions Not Appearing in CAKE

SymptomLikely CauseFix
Postback fires (advertiser confirms) but no conversion in CAKEClick ID was empty or malformed in the postback call.Check the advertiser's postback log. Confirm the click ID parameter contains the actual value from the original click — not a placeholder like {clickid} or an empty string.
No conversion and no postback in advertiser logsThe postback URL is not being called at all.Verify the advertiser's conversion trigger is firing. Check their server-side logic to confirm the postback call is executed on successful conversion, not just on page load.
Conversion appears as RejectedClick ID expired — the session window elapsed before the postback fired.Increase the offer's session hours if the conversion journey legitimately takes longer than the current window.
Conversion appears as ScrubbedThe lead matched a suppression list entry.Check the suppression list for the email, phone, or IP address associated with the conversion.
Postback returns HTTP 4xx errorThe postback URL is malformed or the domain is incorrect.Copy the postback URL from Offers → [Offer] → Tracking Tab and re-paste it into the advertiser's system exactly.
Postback returns HTTP 5xx errorCAKE-side service issue.Check CAKE system status under Admin → System Settings → Status. If status is green, retry the postback and contact support if the issue persists.

Duplicate Conversions

Duplicate conversions occur when a postback fires more than once for the same transaction. The most common causes are:

  • No unique ID deduplication. CAKE can suppress duplicate conversions when a unique_id parameter is included in the postback. If the same unique_id has already been recorded, CAKE will reject the duplicate automatically.
  • Multiple conversion triggers. The advertiser is firing the postback from both their confirmation page and their server-side order processing. Standardize to one trigger.
  • Postback retry logic. Some systems retry failed postback calls. Implement deduplication on the advertiser side using the order ID before retrying.
Tip:
Add &unique_id=YOUR_ORDER_ID to your postback URL. This is the most reliable way to prevent duplicate conversions in CAKE.

Wrong Affiliate or Campaign Attributed

If a conversion is recording but being credited to the wrong affiliate:

  • The user clicked multiple tracking links before converting. CAKE's default attribution is last-touch — the most recent click within the session window wins.
  • A shared or recycled click ID is being passed in the postback. Each click must have a unique click ID — never reuse or cache click IDs across different users.

Testing Your Postback

1
Get a test tracking link from Offers → [Offer] → Get Links or from the campaign record.
2
Click the link in a browser. Note the click ID value from the URL parameter on the landing page.
3
Manually construct and fire the postback URL in a browser or with curl, substituting the captured click ID:
curl "https://yourdomain.cakemarketing.com/api/2/conversion.json"\ "?api_key=YOUR_API_KEY"\ "&click_id=CAPTURED_CLICK_ID"\ "&offer_id=YOUR_OFFER_ID"
1
Check Reports → Conversions in CAKE. The test conversion should appear within a few seconds.
2
If it does not appear, check the API Log (Admin → System Settings → API) for any error response on the postback call.
Caution:
Always use a dedicated test tracking link for postback tests. Never fire test postbacks against live campaign tracking links — this creates false conversion records that affect affiliate payouts and billing.

Using the API Log to Diagnose

The API Log records every inbound request to your CAKE instance, including postback calls. It is the fastest way to confirm whether a postback was received and what response CAKE returned.

1
Navigate to Admin → System Settings → API → API Log.
2
Set the date filter to the time window when the postback should have fired.
3
Search or scroll for requests to the conversion endpoint (/api/2/conversion.json or /c.asmx/conversion).
4
Open the log entry and review the response status and any error message returned.
API Log ResponseWhat It MeansWhat to Do
SuccessCAKE received and recorded the conversion.Check Reports → Conversions to confirm it appears.
Invalid click_idThe click ID in the postback did not match any recorded click.Verify the click ID was captured correctly from the original click and has not been modified.
Expired click_idThe click ID exists but the session window has elapsed.Increase the offer session hours or investigate why the conversion journey is taking longer than expected.
Duplicate conversionA conversion with the same click ID or unique_id was already recorded.Expected if deduplication is working. Investigate if this appears for conversions that should be unique.
Offer not found / inactiveThe offer_id in the postback does not match an active offer.Confirm the offer ID in the postback matches the active offer in CAKE and the offer is in Active status.

FAQ

My advertiser says the postback fired successfully but I see nothing in CAKE. Why?

The most common reason is the click ID was empty or a literal placeholder like {clickid} in the postback call. Open the API Log and find the corresponding request — the response will show the exact error. Also confirm the postback is hitting your correct CAKE domain (not a staging or test domain).

Can I re-fire a postback for a missed conversion?

Yes — you can manually fire the postback using the original click ID if it has not yet expired. If the session has expired, you will need to manually create the conversion via Admin → Conversions → Add Conversion or request a bulk adjustment.

How do I know what parameter name to use for the click ID?

The parameter name depends on your CAKE configuration. Check the postback URL in your offer's Tracking tab — the parameter at the end of the URL (e.g. &s1= or &transaction_id=) is what the advertiser must populate. See Setting Up Postback URLs and Pixel Tracking in CAKE for the full parameter reference.

We use a tag manager (GTM) to fire the postback — is that reliable?

Tag manager-fired postbacks are browser-dependent and can be blocked by ad blockers, privacy settings, or slow page loads. For maximum reliability, postbacks should be fired server-side from the advertiser's backend, not from a browser-side tag. If GTM is the only option, implement a server-side GTM container.

Why is a conversion showing as Pending instead of Approved?

Pending status means the conversion has been received but is under review. This may be a manual review hold, a return/cancellation window, or a fraud screening delay. See Understanding Conversion Statuses in CAKE for a full explanation of each status.


If you have any questions, please reach out to your dedicated CAKE Client Success Manager/Account Manager or contact the CAKE Support Team at support@getCAKE.com.


Did you find it helpful? Yes No

Send feedback
Sorry we couldn't be helpful. Help us improve this article with your feedback.