Testing as a DSP (Sandbox)
Test your bidding infrastructure or Delegate strategy against synthetic supply before going live. Win rates in sandbox are higher than production — this is intentional to make validation easy.
Enable sandbox on your DSP
Open your DSP settings
Log in → Demand → click your DSP → Settings.
Enable Sandbox Mode
Toggle Sandbox Mode → Save.
In sandbox mode your demand source (DSP):
- Receives bid requests only from sandbox supply sources
- Is evaluated against sandbox Delegate strategies (if applicable)
- Incurs no real spend
Traditional RTB — testing your endpoint
Receive a test bid request
Use the sandbox test-bid endpoint to generate a sample bid request and send it to your endpoint:
POST /api/sandbox/test-bid
X-API-Key: {YOUR_KEY}
Content-Type: application/json
{
"dsp_id": "{YOUR_DSP_ID}",
"scenario": "ctv-uae-drama"
}This fires a synthetic bid request to your registered endpoint and returns the full request/response details.
Or: generate a sample bid request
Pull a sample bid request JSON without sending it to your endpoint:
GET /api/sandbox/test-bid?scenario=ctv-uae-dramaAvailable scenarios: ctv-uae-drama, mobile-uk-sport, web-us-news, ctv-timeout (triggers 150ms wait to test circuit breaker).
What your endpoint must return
Win (valid bid):
HTTP 200
Content-Type: application/json
{
"id": "{auction-id-from-request}",
"seatbid": [{
"bid": [{
"id": "your-bid-001",
"impid": "imp-001",
"price": 5.50,
"adm": "https://your-vast-server.com/vast?...",
"crid": "creative-001",
"w": 1920,
"h": 1080
}],
"seat": "{YOUR_DSP_ID}"
}],
"cur": "USD"
}No bid:
HTTP 204
(empty body)In sandbox, your win rate is higher than production because HighBidder competes with you at moderate CPMs. You win auctions where you bid above $2.50 CPM for most inventory types.
Delegate — testing your strategy
- Go to Demand → your DSP → Strategy tab
- Edit your strategy JSON in the editor
- Click Test in Sandbox — the dashboard fires a configurable test auction against your strategy
- Adjust scenario parameters (geo, device type, genre, hour) and re-test
- The result shows which rule matched, the effective bid calculated, and the outcome
Testing budget pacing
To test that Guide and daily budget limits work:
- Set a low
daily_budget(e.g., $5.00) on a Delegate campaign - Fire 100+ test auctions via
POST /api/sandbox/simulate-auction - Watch QPS drop in the dashboard as budget approaches
- Verify auctions stop when budget is exhausted
- Budget resets at midnight UTC (or via
POST /api/sandbox/reset)
Testing the circuit breaker
To test circuit breaker behaviour for traditional RTB:
- Set your endpoint to return responses with >150ms delay
- Fire 10+ bid requests via
POST /api/sandbox/test-bid - Check health:
GET /api/demand/sources/{DSP_ID}/health—circuit_breakershould become"open" - Fix the latency and reset:
POST /api/demand/sources/{DSP_ID}/reset - Confirm circuit breaker returns to
"closed"
Pre-go-live checklist — DSPs
Traditional RTB:
- Endpoint returns HTTP 200 with valid bid within 150ms
- Endpoint returns HTTP 204 for no-bid (not HTTP 200 with empty body)
- VAST URL in
admfield is reachable and returns valid VAST - Win rate > 0% in sandbox testing
- Circuit breaker remained
closedthroughout testing
Delegate:
- At least one rule matches in the test simulator
- Effective bid is above floor for target scenarios
-
daily_budgetpacing behaves correctly - Fallback rule (
"conditions": {}) present and returning a non-zero bid
When all pass: disable Sandbox Mode → you’re live.