Testing postbacks
Dry-run a UluMob postback with test=1, read the answer, and find and fix refused postbacks before they cost you conversions.
You can check a postback exactly as a live call would be checked, without recording a conversion or charging anything. Do this before you launch a CPA campaign, and whenever you change your tracker setup.
Test from the panel
- Open Tracking at
/app/advertiser/tracking. - Under Test a postback, paste the full postback URL, starting with
https://, on the same host as the postback URL the panel shows, with a real click ID in place of the macro. - Select Test.
The panel sends the URL with test=1 added. A passing test shows which campaign would be charged and how much; a failing one shows Refused with the reason.
Test from your own server or tracker
Add test=1 to any postback URL:
https://ulumob.com/postback?cid=6f1c2a9e-3b7d-4c55-9a51-0d2e8f4b7c10&payout=12.00&type=A&key=YOUR_SECRET&test=1
Getting a real click ID
The test needs a click ID UluMob actually issued. Placeholders such as {click_id} or made-up values are refused as unknown_click.
- Make sure your ad's destination URL contains
{click_id}in your tracker's click parameter. - Wait until the campaign is approved and has received at least one click or open.
- Copy the click ID your tracker received from its click log.
A click can receive conversions for 7 days by default, so test with a recent click.
Reading the answer
A test that passes every check answers like this:
{"status":"ok","test":true,"click_id":"6f1c2a9e-3b7d-4c55-9a51-0d2e8f4b7c10","conv_type":"A","campaign_id":318,"would_charge":"0.000000"}
| Field | Meaning |
|---|---|
status |
ok if a live call would be recorded, ignored if it would be a duplicate |
campaign_id |
The campaign the click belongs to |
would_charge |
What a live call would charge. Non-zero only on CPA campaigns, for clicks not marked as fraud |
A test does not consume the click: a live postback for the same click and type still counts afterwards.
Refusal reasons
| Reason | HTTP | What to check |
|---|---|---|
unknown_click |
404 | The click ID is missing, not a UUID, unknown or past the attribution window. Also returned when the type is not a single letter |
bad_signature |
403 | The token does not match, or the key is not your current secret |
inactive_type |
422 | The conversion type letter is not set up or is switched off |
duplicate |
200 | This click already has a conversion of this type and the type does not allow repeats |
budget |
402 | A CPA charge could not be paid from the campaign budget or your balance. Live calls only |
rate_limited |
429 | Too many postbacks from one IP address. Retry after the delay in Retry-After |
Refused postbacks log
Live postbacks that were refused in the last 7 days are listed under Refused postbacks (7 days) on the tracking page. Select Load to see them. Each row shows the time, click ID, type, reason and the query string received. Test calls are not added to this log.
Look here first when a tracker shows conversions that are missing from UluMob reports. The query column shows exactly what the tracker sent, which usually makes an unresolved macro or a wrong secret easy to spot.
Checklist before launch
- The destination URL of every ad contains
{click_id}. - The tracker's postback URL uses your current secret.
- The conversion type letter is set up and Active.
- A test with a real click ID returns
ok. - On CPA,
would_chargeshows the CPA bid you expect.
Something missing or wrong? Tell us.