Product
Publishers
Advertisers
Networks
Help
Pause animations
Browse help topics
Concept PublisherNetwork

One postback per step on multi-step offers

Updated

View as Markdown

A multi-step offer sends one postback for each step a user completes, not one for the whole offer. Each has its own action_id, the step’s goal_id and conversion_name, and that step’s money. is_offer_complete=true marks the last one.

See also: Signed postbacks

On this page

Example: Harbor Blocks

Example. Harbor Blocks by Tidewater Games has 12 steps to level 40 and pays per install. Tidewater Games set a player reward for each step. Player u_48213 on Pebble Rewards, which uses the Offer API, plays to level 40. Three of the twelve postbacks Pebble Rewards receives:

conversion_nameaction_idpayoutuser_payoutis_offer_complete
Installact_5Kq2Wc4.21.5false
Reach level 10act_8Rt3Lb01.5false
Reach level 40act_2Wn7Qd06true

All three carry the same sub_id=u_48213 and offer_id, and each its own goal_id. Pebble Rewards credits the player 1,500, 1,500 and 6,000 pebbles, at 1,000 pebbles per $1, and earns $4.20 in all.

What each step’s postback tells you

  • Which step: goal_id matches goals[].id in the Offer API, and conversion_name is that goal’s name. Store both: a step removed from the offer later can still post back.
  • Your money: payout on the Offer API, the Top Offers Feed and links; revenue on the Hosted Offerwall. Read it on every step. Your offer list shows what each step pays you in goals[].effectivePayoutUsd.
  • The player’s reward: user_payout, in USD. Credit it as sent.
  • The end: is_offer_complete=true on the last step only.

A step that pays you 0 still posts back when it carries a player reward, so you can keep crediting the player. Multi-step offers: which steps pay reads the same steps from the offer list’s side.

Which URL each step goes to

The first step, and any install step, is a conversion. Every later step is an event. A Conversion row receives both, unless an Event row applies to that step, so one global Conversion row is enough to receive every step. Global or offer-specific postbacks has the full order.

On the Hosted Offerwall

Each step posts back with placement=offerwall. revenue is what you earn on that step (0 on later steps of install-paid games) and payout and user_payout are the player’s reward on your wall. Credit user_payout, track revenue.

Edge cases

  • Steps that never post back. A step listed in goals posts back. Steps that pay neither you nor the player, and steps the advertiser uses only for its own tracking, are usually left out of goals and send nothing.
  • A step removed after the user passed it. It can still post back, paying you 0, with the user_payout you were last sent for it, or the reward the advertiser set. It may not be in goals any more.
  • Time limits. Where the advertiser sets one, goals[].maximumCompletionTimeDays is how many days the user has to reach that step, counted by the advertiser’s side.
  • Reversing one step. A reversal takes back one step and repeats that step’s action_id with status=reversed. The other steps stand.
  • Duplicates. Dedupe on action_id and status together, never on offer_id and sub_id: one user completes many steps of one offer.

Support

Still stuck? Write to us.

One address for every question: hello@affiliateos.ai. Put the details from this list in your first message so we can find the click or conversion without asking you for them again.

Put these in your message

  1. 01The email you sign in with
  2. 02Your role: publisher, advertiser or network
  3. 03The offer ID
  4. 04The click ID or action_id
  5. 05The time it happened, with your time zone
  6. 06What you expected to happen

Looking for a reward in an app? Ask that app's support. It credits your reward, so only it can see your balance.

Search help