Skip to main content

Budgets - how they work

An overview of how offer and publisher budgets work in Swaarm - the difference between the two, Hard vs Soft caps, and what happens when a budget is reached.

Updated today

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.

ℹ️ If you're using the Feed API and want publishers to see Soft budget status rather than having the offer disappear, configure this in the Feed API Configurator. See Feed API Configurator →

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:

  • Offer Edit → General tab → Timezone

  • Offer Edit → Budgets tab → Timezone dropdown

⚠️ 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.

Did this answer your question?