Connect a rewarded network and Swaarm takes care of syncing offer payouts automatically. This guide covers how WeGet and TheyGet are calculated, how to configure the player points reward, and which setup to use depending on your network and use case.
How payouts work - the basics
When Swaarm syncs offers from a rewarded network, it imports the network's payout values and uses them to calculate what you earn (WeGet) and what the player receives (TheyGet).
There are 3 separate layers:
Layer | What it controls | Where it's configured |
Which payout fields are imported from the API | Network → Configure Offer Fields | |
TheyGet $ (your cut from WeGet) | Network Configure API page → Margin or Advertiser → %Edit Margin (top right corner) | |
TheyGet Points (player reward in points) | Advertiser → Edit → Rewarded Payout Policy |
ℹ️ TheyGet $ always comes from the margin mechanism - the Payout Policy only affects TheyGet Points.
Payout fields
Field | Description |
WeGet $ | The USD amount the network pays you per conversion |
WeGet Points | The points value the network reports per conversion |
TheyGet $ | What the player earns in USD - calculated from WeGet $ via margin % |
TheyGet Points | What the player earns in points - calculated via the Payout Policy |
Network sync settings
Configure API page
Treat Offers as CPA
When enabled, a USD payout is synced onto every non-default event of the offer. When disabled, offers are treated as CPI and non-default events are synced without USD payouts.
Sync Default Event Payout
When enabled, the default (install/main) event also gets a USD payout synced. Enable this when the network pays for the install as well as for in-app events.
Combined behaviour
Sync Default | Treat as CPA | Default event WeGet $ | Other events WeGet $ |
✅ ON | ❌ OFF | ✅ synced | ❌ empty |
❌ OFF | ✅ ON | ❌ empty | ✅ synced |
✅ ON | ✅ ON | ✅ synced | ✅ synced |
❌ OFF | ❌ OFF | ❌ empty | ❌ empty |
ℹ️ WeGet Points syncs independently of both checkboxes - it is always imported when the adapter provides it and the WeGet Points field is enabled in Configure Offer Fields.
Configure Offer Fields
Controls when each field is updated from the API:
Column | Meaning |
On Sync | Field is overwritten with the API value on every sync |
On Approval | API value is applied once when the offer is first approved; not updated on subsequent syncs |
Use Default Value | No sync, default value used for all imported offers |
ℹ️ WeGet Points is only available for adapters whose API reports a points value. It does not appear for adapters that are USD-only.
⚠️ TheyGet $ set manually always wins - if you enter a TheyGet $ value manually on an offer, it will never be overwritten by a sync. Clear it to let the margin mechanism take over again.
Advertiser margin
TheyGet $ is calculated as: TheyGet $ = WeGet $ × (1 − margin %/100%)
Example: WeGet $ = $1.00, margin = 20% → TheyGet $ = 1$ × (1 - 20/100) = $0.80
The margin can be set in 2 places - both are interchangeable and stay in sync:
ℹ️ Setting it in either place updates the other automatically.
Advertiser Payout Policy
Located at Advertiser → Edit → Rewarded Payout Policy.
This policy converts the network's payout value into TheyGet Points for the player. It applies to all offers under that advertiser. A manual TheyGet Points value set on an individual offer always overrides the policy.
ℹ️ If no policy is configured, TheyGet Points falls back to the margin mechanism. The page shows a yellow banner: "No payout conversion policy is configured."
Policy fields
Field | Options |
Network provides | Network pays us in dollars / Network pays us in points |
Pay the player in | Dollars (USD) / Points |
Adjustment | Use exactly / Keep a margin / Scale by a factor |
Points per USD | Exchange rate - used whenever converting between dollars and points |
Adjustment formulas
The behavior depends on what the network provides:
Scenario 1 - Network pays in dollars, pay player in points
The adjustment is applied to WeGet $, then converted to points via Points per USD:
Adjustment | How it works | Example (WeGet$=1.00$, points per USD = 100) |
Use exactly | Converts WeGet $ directly to points | $1.00 × 100 = 100 pts |
Keep a margin | You keep a % of WeGet $, the player gets the rest converted to points | $1.00 × 70% × 100 = 70 pts (30% kept) |
Scale by a factor | Multiplies WeGet $ by a custom factor before converting | $1.00 × 2 × 100 = 200 pts (factor = 2) |
Scenario 2 - Network pays in dollars, pay player in dollars
No Payout Policy needed — TheyGet $ is already calculated from the advertiser margin. TheyGet Points stays empty.
Scenario 3 - Network pays in points, pay player in points
The adjustment is applied directly to WeGet Points. Points per USD is not used.
Adjustment | How it works | Example (WeGet Points = 5) |
Use exactly | Uses WeGet Points as-is | 5 pts |
Keep a margin | You keep a %, the player gets the rest | 5 × 70% = 3.5 pts (30% kept) |
Scale by a factor | Multiplies WeGet Points by a custom factor | 5 × 2 = 10 pts (factor = 2) |
ℹ️ Points per USD is not applied in Scenario 3 - the adjustment works directly on the points value from the API.
Recommended setup by use case
UC1 - Sync WeGet $, calculate TheyGet $, no points
Best for: Motivefeed, Revu, Gokart, Howdoesin
Use this when the network pays in dollars only and you don't need to reward players in points.
Configure:
Network → Configure API → Margin:
your %*Example: WeGet $ = $1.00, margin = 20% → TheyGet $ = $0.80
Advertiser Payout Policy: not needed
Result: WeGet $ syncs from API → TheyGet $ calculated from margin → no points.
UC2 - Sync WeGet $, calculate TheyGet Points via exchange rate
Best for: Motivefeed, Bitlabs
Use this when the network pays in dollars and you want to convert the player reward to points using a fixed exchange rate.
Configure:
Network → Configure API → Margin:
your %*Example: WeGet $ = $1.00, margin = 20% → TheyGet $ = $0.80
Network → Configure Offer Fields → WeGet Points:
uncheckedAdvertiser → Rewarded Payout Policy:
Network provides:
Network pays us in dollarsPay the player in:
PointsAdjustment:
Use exactlyPoints per USD:
e.g. 100
Result: WeGet $ syncs from API → TheyGet $ from margin → TheyGet Points = WeGet $ × Points per USD.
UC3 - Sync WeGet $, take TheyGet Points directly from API
Best for: Revu, Besitos, Bitlabs
Use this when the network provides both a dollar value and a points value, and you want to pass the points value directly to the player.
Configure:
Network → Configure API → Margin:
your %*Example: WeGet $ = $1.00, margin = 20% → TheyGet $ = $0.80
Advertiser → Rewarded Payout Policy:
Network provides:
Network pays us in pointsPay the player in:
PointsAdjustment:
Use exactly
Result: WeGet $ and WeGet Points both sync from API → TheyGet $ from margin → TheyGet Points = WeGet Points as-is.
UC4 - Sync WeGet $, set TheyGet Points manually
Best for: all adapters
Use this when you want full control over the player reward - for example, when you need to lock a specific points value that won't change on sync.
Configure:
Network → Configure API → Margin:
your %(or 0% if you don't need TheyGet $)Advertiser Payout Policy: not needed
Offer → Payouts → TheyGet Points: set manually
Result: WeGet $ syncs from API → TheyGet Points is fixed and never overwritten by syncs.
ℹ️ This is the recommended setup if you previously had issues with TheyGet Points being removed on sync.














