How to set up a postback URL
Create your postback secret first, then add one Conversion postback set to Global. That single row receives every step of every offer you run. Send a test before any user taps a link.
See also: Signed postbacks
On this page
- A public URL on your server that reads query parameters and answers HTTP 200. Use HTTPS: every postback carries your user’s ID.
- For publishers, an owner or admin login. Only they can create the postback secret.
Postbacks, then Create postback secret
Open Postbacks. While no secret exists, the page says none of your postbacks are being sent. Choose Create postback secret and copy the value, which starts with
ps_. It’s shown once.Add postback
Choose Add postback. Set Status to Active, Postback Type to Conversion and Postback Level to Global. A global Conversion row takes the first step of every offer and every later step too, unless you add a row for events later.
Postback URL
Paste your URL. The buttons above the field add macros, such as
{sub_id},{transaction_id}and{user_payout}, which we replace with each conversion’s values. Example, for Pebble Rewards:https://api.pebble.example/afos?user={sub_id}&txn={transaction_id}&reward={user_payout}We also add every postback parameter to the URL under its own name, so a URL with no macros works too. Give your own parameters different names from ours, as above: one of ours replaces a parameter of yours with the same name.
Save
Choose Save. The URL must start with
http://orhttps://.Send test postback
Saving takes you back to the list. Choose Edit on the row, then Send test postback. It goes through the same signing a real conversion uses and adds
test=true, so log it and don’t credit it. Send a test postback covers what it sends.Check it worked
Your server logged the test, the
verifierpassed your check and no user was credited. After your first real conversion, open Reporting, then Flight Recorder: the delivery reads sent.
Workspace settings, then Generate Webhook Secret
Under Webhook Secret, choose Generate Webhook Secret and copy it now. It isn’t shown again. With a secret, every postback we send carries a
verifier; without one, network postbacks go out unsigned.Postback URL, then Save Changes
Under Postback Configuration, paste your URL into Postback URL and choose Save Changes. This global URL takes conversions for every offer. We add the parameters to it as they are: macros aren’t replaced on network postbacks, so write the URL without them.
Test Postback
Choose Test Postback. It sends sample values with
test=trueto the saved URL.Check it worked
Your server logged the test and the
verifierpassed. Live deliveries show under Reporting, then Flight Recorder.
- A row for events and nothing else. Event rows only take later steps, so installs and other first steps go nowhere. The form warns you. Keep a Conversion row.
- A fallback URL you thought still worked. If our team set a postback URL on your account, it’s used only while you have no rows of your own. Once you save any row, your rows decide.
- A literal
{SUB_ID}in your links. Every conversion then posts back with the same user ID, and you can’t tell who to credit. Put each user’s own ID insub_id.
The parameter reference lists every value we send, and verifying with your secret has the code.