Tutorials
Budget & Pacing
How CPM billing, daily and total budgets, pacing and Smart Boost work in AdManta, with examples of how delivery is spread over the day.
CPM billing
CPM stands for Cost per Mille – the price per 1,000 impressions. For budget campaigns, costs are deducted proportionally on each impression.
Cost per impression
cost = cpm ÷ 1000
Total spend
spend = impressions × (cpm ÷ 1000)
Example: CPM = €2.50, 10,000 impressions
10,000 × (2.50 ÷ 1000) = €25.00
The CPM value is stored with up to 4 decimal places to accurately represent very low prices (e.g. €0.0025).
Pacing scenarios
Pacing distributes the budget evenly over the campaign's run time. Without pacing, ads are served as fast as possible until the budget is exhausted.
| Scenario | Pacing | Smart Boost | Result |
|---|---|---|---|
| No pacing | Off | Off | Maximum delivery until budget exhausted. Budget may run out early. |
| Standard pacing | On | Off | Budget spread evenly over run time. Consistent delivery throughout the day. |
| Smart Boost pacing | On | On | When CTR is high, delivery is automatically increased. Good performance is rewarded. |
Hourly budget target (pacing formula)
hourly_target = remaining_budget ÷ remaining_hours
Remaining hours = hours until end date (or until 23:59 today if no end date is set).
Smart Boost
Smart Boost automatically increases the delivery rate when a campaign has an above-average CTR – so high-performing ads get more reach.
Parameters
- Boost percent: How much the hourly budget may be exceeded (e.g. 150% = 1.5× target allowed)
- Min. CTR: CTR threshold (in %) above which the boost activates
Logic
- CTR ≥ Min. CTR → Boost active, up to Boost-% more budget per hour
- CTR < Min. CTR → Standard pacing, no extra budget
Smart Boost does not increase the total budget. It can only deplete it faster if CTR remains consistently high.
Redis caching of budget data
To perform budget checks quickly on every ad request, current spend totals are cached in Redis. This minimises database queries.
| Cache key | Content | TTL |
|---|---|---|
| camp_spend_{id} | Current total spend for the campaign | 5 min. |
| camp_daily_{id}_{date} | Spend for the current day | Until midnight |
The cache lag of up to 5 minutes can cause the budget to be slightly exceeded. This is intentional to maximise performance.
Budget warning levels
The campaign dashboard displays warning levels when budget is running low:
Budget usage < 80 %: Normal
Budget usage 80–95 %: Warning – budget running low
Budget usage ≥ 95 %: Critical – campaign ending soon