How we pick which copy of an offer you see
The same app is often listed more than once, at different payouts. When you send one country, your Offer API list keeps at most two copies for each app and platform: the best copy that pays you at install, and the best copy that pays you any other way, on later steps or on one action.
See also: Offer API
On this page
Every other copy stays out of the list, but still tracks and pays if someone taps it.
Two listings count as copies of one offer when all of these match:
- The app. Its store ID: the Android package name or the App Store ID. A listing without a store ID is matched by its name, with listing decorations removed. Two different store IDs are never merged, even with the same name.
- The platform. iOS, Android and web are matched separately. A listing marked
desktopcounts as web. - How it pays you. Install-paid copies and event-paid copies are kept apart, so a game’s best install deal never hides its best ladder of steps. An install step that pays under $0.10 doesn’t make a copy install-paid.
- The country, when you name one. Send exactly one
countryand copies aimed at different country lists merge, because every copy left already serves that country. With nocountry, or several, copies for different country lists stay separate rows.
| Kind of copy | The winner |
|---|---|
| Install-paid | The copy whose install pays the most |
| Event-paid | The copy with the highest total payout across its steps |
| A tie | The copy we heard from most recently |
The rule runs on offers that can take new users right now. A copy that is full for today drops out first, so the next best copy takes its place.
Harbor Blocks is listed three times for iPhones in the US. Pebble Rewards calls the Offer API with country=US&.
| Copy | How it pays Pebble Rewards | In the list? |
|---|---|---|
| A | $4.20 at install, later steps reward the player | Yes, best install-paid copy |
| B | $3.60 at install, later steps reward the player | No, A pays more at install |
| C | $0.80 at level 10, $2.40 at level 20, $5.00 at level 40 | Yes, the only event-paid copy |
Example. Copies and payouts are made up.
If copy A fills its daily cap at 11:20 AM, it leaves the list and copy B takes its row, under copy B’s own id. When A reopens, it wins its row back.
The portal’s Offers page goes one step further, so you don’t scroll past the same game over and over:
- It matches copies more widely, on store IDs across listings and the brand name, so a game shows once per platform for each way it pays.
- The copy that earned the most across AffiliateOS in the last 30 days leads. With no sales to go on, the rule above decides.
- When the leading copy is Capped for today, the best open copy shows beside it.
- A copy you have your own rate or your own access on always shows.
- Searching an offer’s ID finds a copy that isn’t shown, and its link still tracks and pays.
- If two different apps share a name, each row shows its store ID under the name.
The wall shows each game once for the player’s platform and country, with the same winner rule, and it matches copies a little more widely than the Offer API does. You don’t need to do anything.
The Network API merges copies only when the app, the platforms, the pay type and the country list all match exactly. Install-paid copies compete on what the install pays, the rest on total payout. Direct offers your network added are never merged with marketplace copies, and listings without a store ID are never merged.
- The winner can change during the day. A cap, a pause or a payout change can hand a game’s row to another copy, under another
id. Store offers byid, and refresh your list rather than keeping it for days. See Why an offer ended or disappeared. - Players keep the copy they tapped. Their later steps post back under the
offer_idof the copy they started, even after another copy takes the row. - You want a copy that isn’t in the list. The list is a serving list and has no switch to show every copy. If you know the copy’s ID, search it on the Offers page to open its offer page and link.