Bid Strategy Guide
Strategy Overview
| Strategy | Description | When to Use |
|---|---|---|
fixed | Bids a flat CPM | Testing, guaranteed deals |
shaded | Adjusts by win rate | Optimize spend efficiency |
revenue_cpc | Optimizes for click revenue | CPC campaigns |
revenue_cpa | Optimizes for conversion revenue | CPA campaigns |
revenue_report | Uses external report for calibration | When partner provides revenue reports |
Strategy Details
Fixed
fixedThe simplest strategy. Every bid uses the same CPM value regardless of context. Good for initial testing or when you have a fixed-price deal with an SSP.
Formula
bid = base_cpm
Required Signals
- *None — uses configured base_cpm directly
Shaded
shadedShade factor is derived from win rate. Requires at least 100 bids before shading activates. Win rate is mapped linearly: 20% win rate = 1.0x (no shading), 80% win rate = 0.7x (bid 30% less). If you are winning too often, you are overbidding — shading reduces the bid to save money.
Formula
bid = base_cpm × shade_factor
Required Signals
- *Win notifications via nurl (win URL)
- *Loss notifications via lurl (loss URL)
Revenue CPC
revenue_cpcRevenue Per Click (RPC) comes from click postbacks. Click-Through Rate (CTR) starts at the configured prior and updates as real data accumulates. The margin parameter controls how aggressively you bid relative to estimated value.
Formula
eCPM = RPC × CTR × 1000 bid = min(max(eCPM × margin, min_bid), max_bid)
Required Signals
- */pb/click with CPC value (v= parameter)
Optional Signals
- ~/pb/imp — impression confirmation
Without optional: CTR uses prior estimate (expected_ctr, default 0.012). Auto-calibrates as click data arrives.
Revenue CPA
revenue_cpaSimilar to CPC but optimizes for conversions instead of clicks. Revenue Per Conversion comes from conversion postbacks. Conversion rates are typically much lower than CTR, so this strategy needs more data volume to calibrate effectively.
Formula
eCPM = RPA × CVR × 1000 bid = min(max(eCPM × margin, min_bid), max_bid)
Required Signals
- */pb/conv with CPA value (v= parameter)
Optional Signals
- ~/pb/imp — impression confirmation
- ~/pb/click — click tracking
Without optional: Conversion rate (CVR) uses prior estimate. Needs significant volume for accuracy.
Revenue Report
revenue_reportPolls an external partner API for revenue data, broken down by SubID. Computes calibration factors that adjust the eCPM model. SubID format: {campaign_id}__{dim1}__{dim2}. Calibration factors are stored in Redis with a 4-hour TTL and refreshed on each poll cycle.
Formula
eCPM = RPC × CTR × 1000 × calibration_factor bid = min(max(eCPM × margin, min_bid), max_bid)
Required Signals
- *External reporting endpoint configured
- *Report endpoint returns SubID-level revenue data
Optional Signals
- ~/pb/click, /pb/imp, /pb/conv — real-time signals supplement report data
Without optional: Without real-time postbacks, relies entirely on periodic report polling (every 1-24 hours).
eCPM / Bid Calculator
Simulate how the revenue strategies compute a bid price from your inputs.