Publisher quick start

From an approved account to your first credited user: API key, fetching offers, click links, your postback URL and a test.

This takes you from an approved publisher account to a user being credited for a completed offer. You need a server: rewards are credited server to server, never from inside your app.

1. Get your API key

In the dashboard, open Integration and press Generate API key. Keep it on your server. Anyone with the key can read your offers and payouts. You can replace it at any time from the same page; the old key stops working immediately.

2. Fetch offers

From your server, ask for the offers your user can complete:

Terminal
curl "https://cashadmedia.com/api/v1/offers?country=US&platform=android&user_id=u_123" \
  -H "Authorization: Bearer YOUR_API_KEY"

Pass the user's two-letter country and their platform (ios, android or website). You get back only offers that run there, with your payout and a suggested reward for each step. Cache the list for a few minutes per country and platform. The offers API reference lists every field.

Render the offers in your own screens. When the user taps one, open its click_url in the browser or an in-app browser. If you passed user_id in step 2, the link already contains it; otherwise replace the literal {user_id} in the link with your user's ID. See click links.

4. Set your postback URL

Open Postbacks in the dashboard and enter the URL we should call when a conversion is approved or reversed, with placeholders for the values you need:

https://api.yourapp.com/rewards?user={user_id}&points={reward}&status={status}&id={conversion_id}&sig={signature}

Saving it for the first time creates your signing secret. Your handler should check the signature, credit the reward once per conversion ID, and answer 200. The postbacks guide has code for Node.js, PHP and Python.

5. Send a test

Press Send a test postback. We call your URL with sample values (user test_user, reward 1000, status approved) and show the status code your server returned. Every real postback after that is listed on the same page with your server's response.

Go-live checklist

  • The API key is only on your server, not in your app or website code.
  • Offers are cached for a few minutes, not fetched on every screen view.
  • Each user has one stable ID that you pass in every click link.
  • Your postback handler rejects a request whose signature doesn't match.
  • Your handler ignores a conversion ID and status it has already processed.
  • Reversals take the reward back, or follow your rule for rewards already spent.
  • Your app shows users the difference between a reward that is on its way and one that is credited.