Swaarm supports two levels of budget control - offer-level and publisher-level. Understanding how they interact is important for setting up campaigns correctly.
Budget types
You can set budgets for any combination of:
Clicks - total clicks forwarded to the advertiser
Impressions - total impressions served
Conversions - total approved conversions
Revenue - total WeGet earned
And at any frequency:
Hourly
Daily
Monthly
Total (lifetime of the offer)
Offer budget vs publisher budget
| Offer budget | Publisher budget |
Scope | Applies to the entire offer across all publishers | Applies to one specific publisher on one offer |
Priority | Higher - offer budget always takes precedence | Lower - only applies if the offer budget hasn't been reached |
Where to set it | Offer settings → Budgets tab
| Offer detail page → Publishers tab → Edit → Budget |
Offer budget - where to set it
Publisher budget - where to set it
ℹ️ Offer budget takes priority. If the offer budget is reached, traffic stops for all publishers - regardless of whether individual publisher budgets still have capacity. If a publisher's budget is reached but the offer budget hasn't, only that publisher's traffic stops.
Hard caps vs Soft caps
Both offer and publisher budgets can be set as Hard or Soft. This controls what happens when the cap is reached.
| Hard cap | Soft cap |
Feed API | Offer disappears from the publisher's feed | Offer stays visible in the publisher's feed |
Clicks | Discarded once budget is reached - not forwarded to the advertiser | Still forwarded to the advertiser |
Conversions | Status set to Rejected - publisher postback not fired | Status set to Approved - publisher postback not fired |
Reported as | Discarded Click / Rejected conversion | Normal click / Approved conversion |
Use when | You must not exceed the budget under any circumstances | You want to keep receiving conversions but stop paying the publisher |
⚠️ Budgets are not guaranteed to be exact. Two scenarios can cause overcap:
Simultaneous clicks - if a large volume of clicks arrives at the same time, some may be forwarded before the system registers the cap as reached
In-flight conversions - clicks sent before the cap was reached can still convert after it. These conversions are assigned with status Pending - publisher postback is not fired
ℹ️ Soft budget counting - soft conversion budgets only count conversions that were actually passed to the publisher (Decision: Passed). Conversions with a failed decision (e.g. blocked by CTIT or Random Evaluation rules) do not count against the soft budget.
ℹ️ Feed API behaviour - Hard cap removes the offer from the publisher's Feed API when reached. Soft cap keeps the offer visible. To control whether budgets are shown at all, or whether soft budgets are used instead of hard ones, go to Organization → Settings → Miscellaneous → Feed API. See Feed API →
Identifying budget type
In the budget column headers and the Publishers tab, budget type is shown as:
[H] - Hard cap
[S] - Soft cap
Budget timezones
Budgets reset according to the offer-level timezone, not the platform timezone. If your advertiser's budget resets at midnight in their local time, set the offer timezone to match theirs to avoid misalignment.
You can set the budget timezone per offer in two places:
⚠️ Changing the platform (organisation) timezone causes all offer budgets to reset at the next received postback or at midnight in the new timezone - even if they were already partially filled. Conversions received before the reset but counted after may be assigned Pending status. To avoid this, adjust offer-level timezones before changing the platform timezone.
Common examples
1) Daily conversion cap on an offer
The advertiser can only accept 100 installs per day.
Go to Offer → Edit → Budgets tab, set a Hard Daily Conversion budget of 100 - once reached, the offer disappears from publishers' feeds and clicks are discarded until midnight (as per platform or offer timezone if set).
2) Hourly click cap
You want to smooth traffic and avoid sending spikes of clicks.
Set an Hourly Click budget with a Soft cap - clicks still forward to the advertiser after the cap, but you can monitor when it's regularly being exceeded and adjust.
3) Monthly revenue cap with soft budget
Your advertiser has a monthly budget of $10,000. Set a Monthly Revenue budget of $10,000 with a Soft cap - conversions after the cap are still approved (WeGet tracked) but the publisher postback is not fired, so you're not paying out beyond the limit.
4) Total conversion cap for a limited campaign
The advertiser gives you a fixed pool of 5,000 conversions with no time limit.
Set a Total Conversion budget - the offer keeps running until it hits 5,000 approved conversions, then stops automatically. No need to manually pause it.









