How do I test my postback for AI offers?
- 📅 Updated October 23, 2026
- ⏱️ 8 min read
- 📚 Answer 2 of 4
By Masha Gebber, Help center editor
Short answer
Test in three layers: send the postback URL to your tracker by hand with sample values, confirm a real click carries your click ID into the tracking link, then ask support for a test conversion or wait for a first small sale and check the postback report for a success response.
- Test the destination, the click path and a real conversion, in that order.
- A manual test proves your tracker accepts the URL; only a conversion proves the whole chain.
- Look for a 2xx response and a real click ID in the postback report's debug view.
- Test before you spend, and again after any change to links, offers or trackers.
A postback you haven't tested is a guess. Testing takes a few minutes and tells you, before you spend on traffic, that sales will reach your tracker or ad network with the right click ID and payout. This answer gives you a three-layer test that checks every part of the chain.
Testing matters even more on AI offers. Sugarlab AI and SpiceStars AI are subscription apps, and paid campaigns for them are optimized on the sales your tracker sees. If the postback is broken, your tracker reports zero sales, your ad network's algorithm stops finding buyers, and you may pause placements that were actually profitable.
Three things must work together:
| Layer | What it means | How you test it |
|---|---|---|
| Destination | Your tracker or network accepts the postback URL | A manual test with sample values |
| Click path | The click ID reaches your tracking link | A real test click |
| Conversion | A recorded conversion fires the postback | A test conversion or a first real sale |
Test them in this order. Each layer depends on the one before it.
- Copy your postback URL from the dashboard.
- Replace each macro with a realistic sample value, for example
{sub5}withtest-123and{payout}with40. - Open the resulting URL in a browser or send it with a simple request tool.
- Check your tracker for a test conversion with click ID
test-123.
| Result | Meaning | Next step |
|---|---|---|
| Tracker records the test | The destination works | Continue to layer 2 |
| Tracker rejects it | Wrong URL, parameter or token | Fix it using the tracker's postback instructions |
| Nothing happens | Wrong domain, firewall or blocked request | Check the URL and your server settings |
Tip: delete test conversions from your tracker afterwards so your reports stay clean.
- Click your real ad, tracker link or campaign URL, exactly as a visitor would.
- Follow it through your tracker and landing page to the offer.
- Open the OmniPink click report and find your test click.
- Look at the sub field you use for click IDs, usually sub5.
| What you see | Meaning |
|---|---|
| A real ID that matches your tracker's click | The click path works |
| Empty | The click ID was dropped somewhere along the path |
A literal macro such as {clickid} | The source didn't replace its macro |
If the click ID is missing, check each hop: the ad network's macro, the tracker's offer URL and any landing page link. See why a postback isn't firing.
A manual test proves the destination works. Only a recorded conversion proves the whole chain. You have two options:
Option A: ask support for a test conversion
Contact support by email at affiliates@omnipink.ai or on Telegram at @OMNIPINK and ask for a test conversion on your link. Share the tracking link you used for your test click and the time of the click. Don't buy through your own link without arranging it first, because self-referrals aren't paid and can be flagged.
Option B: wait for a first small sale
Run your campaign at a small budget until the first sale arrives, then check that it reached your tracker. This tests everything under real conditions, at the cost of a little time.
Open the postback report in the dashboard after a test conversion or first sale:
- Fired: confirms the postback was triggered by the conversion.
- Response code: 2xx means success; 4xx or 5xx means the destination rejected or failed.
- Debug view: shows the exact URL called, with macros replaced, and the destination's reply.
In the debug view, confirm that the click ID is a real value, the payout is a number and the URL points to your tracker.
- Before launching any paid campaign.
- After changing your tracker, landing page or tracking links.
- After a tier upgrade, when your links move to a new offer.
- After editing the postback URL or scope.
- Whenever conversions in your tracker and the dashboard drift apart.
- Manual test accepted by the tracker.
- Test click shows a real click ID in the click report.
- Postback scope covers the offer your links use.
- Test conversion or first sale shows a 2xx response.
- Click ID and payout look correct in the debug view.
- Test conversions removed from your tracker.
Say your tracker gives you this postback URL, where cid is the tracker's click ID and payout is the amount:
https://tracker.example.com/postback?cid={sub5}&payout={payout}
For layer 1, replace the macros with sample values and open the result:
https://tracker.example.com/postback?cid=test-123&payout=40
Your tracker should now show a test conversion for click test-123 with a payout of 40. For layer 2, run a real click through your ad and tracker. In the OmniPink click report, sub5 should show the tracker's real click ID, a long string of letters and numbers, not test-123 and not {clickid}. For layer 3, after a test conversion or a first sale, the postback report's debug view should show the same URL with that real click ID and the real payout in place of the macros, and a 2xx response from the tracker.
Most affiliate trackers work the same way, but each names things a little differently.
| Tracker type | Where to find the postback URL | What to check after a test |
|---|---|---|
| Hosted trackers | The traffic source or affiliate network template for a custom network | Conversion log with the test click ID |
| Self-hosted trackers | The tracker's postback or conversion settings | Conversion log and server response |
| Ad network tracking | The network's conversion tracking or S2S settings | Conversion column for the campaign |
In every case, use the tracker's own click ID macro in your tracking link's sub5 field, and the matching parameter name in the postback URL. If the tracker documentation lists a "test conversion" feature, run it as part of layer 1.
- Testing with your normal browser. Extensions and old cookies can change the click path. Use a private window.
- Testing an old link. After a tier upgrade, links move to a new offer. Test the link you will actually publish.
- Forgetting the scope. A postback set up for one offer doesn't fire for the other app. If you promote both Sugarlab AI and SpiceStars AI, check both, or use a global postback.
- Buying through your own link. Self-referrals aren't paid and can be flagged. Ask support for a test conversion instead.
- Leaving test data in your tracker. Test conversions inflate your numbers and confuse optimization. Delete them.
- Changing several things at once. If you edit the link, the postback and the tracker at the same time, you can't tell which change fixed or broke the chain.
If you send conversions to Google, Meta, TikTok or Reddit, the final step happens in your tracker, which forwards the conversion through the platform's conversion API. After layer 3, check that the conversion also appears in the ad platform's events or conversions view. Allow some delay, since platforms often process conversions in batches.
Can I test without spending any money? Layers 1 and 2 cost nothing. Layer 3 needs a test conversion from support or a first real sale.
Why did my manual test work but real conversions don't arrive? The destination works, so the click ID is probably not reaching your tracking link, or the postback scope doesn't cover the offer.
How long until a postback fires after a sale? Usually shortly after the conversion is recorded. If you see the conversion in your report but no postback fire, check the scope and the report filters.
Do I need a separate postback for each app? Not if you use a global postback, which fires for every offer. An offer-specific postback fires only for the offer it is set on, so you need one for each app and tier offer you promote.
Is testing different on CPA and RevShare? The steps are the same. The difference is the payout value: on CPA it is the fixed amount for that sale, and on RevShare it is your share of the payment, so it changes with the plan the subscriber buys. Make sure your tracker accepts decimal values.
How many test clicks do I need? One clean click per link is enough for layer 2. Run one for each traffic source, because each source passes its click ID in its own way.
Should I test again after a tier upgrade? Yes. Your new links point to a new offer, so check that your postback scope covers it and run layers 2 and 3 again.
Contact support if a test conversion shows in your report but no postback fires, or if the debug view shows values you can't explain. Include the postback URL, the test click time and screenshots.