Developer GuideSandboxTesting as a Supply Source

Testing as a Supply Source (Sandbox)

Validate your VAST and RTB integration against synthetic demand before switching to live traffic. No risk, no real money.


Enable sandbox on a supply source

Create or open a supply source

Log in → Supply → Add Supply Source (or open an existing one).

Enable Sandbox Mode

Under Settings, toggle Sandbox Mode → Save.

The supply source card shows a Sandbox badge and is now isolated from live auctions.

Get your sandbox VAST tag URL

Your VAST tag URL is the same as production — just append sandbox=true:

https://rtb.praevis.com/vast?site_id={PUBLISHER_ID}&w=1920&h=1080&ip=203.0.113.1&ua=TestAgent&sandbox=true

Fire test VAST requests

You can fire test requests directly from your terminal:

curl "https://rtb.praevis.com/vast?site_id={PUBLISHER_ID}&w=1920&h=1080&ip=203.0.113.1&ua=TestAgent&sandbox=true"

Filled response (HighBidder wins):

<?xml version="1.0" encoding="UTF-8"?>
<VAST version="4.0">
  <Ad id="sandbox-001">
    <InLine>
      <AdSystem>Praevis Sandbox</AdSystem>
      <AdTitle>Sandbox Test Creative — 15s</AdTitle>
      <Impression><![CDATA[https://rtb.praevis.com/track/impression?...]]></Impression>
      <Creatives>
        <Creative>
          <Linear>
            <Duration>00:00:15</Duration>
            <MediaFiles>
              <MediaFile type="video/mp4" width="1920" height="1080" bitrate="2000">
                https://sandbox.praevis.com/test-creative-15s.mp4
              </MediaFile>
            </MediaFiles>
          </Linear>
        </Creative>
      </Creatives>
    </InLine>
  </Ad>
</VAST>

Empty response (no winner):

<?xml version="1.0" encoding="UTF-8"?>
<VAST version="4.0"/>

You’ll see both filled and empty responses during sandbox testing — this is correct. RandomBidder generates realistic mixed fill rates.


Validate with VAST Inspector

After getting a filled response, paste the URL or XML into a VAST inspector to verify your creative validates:

Checks to verify:

  • VAST XML is valid and well-formed
  • <MediaFile> URL resolves (HTTPS, returns MP4)
  • <Duration> matches actual file length
  • <Impression> tracking URL is present

Reading sandbox metrics

  1. Go to the main dashboard
  2. Click the Sandbox toggle in the time period selector (top-right area)
  3. You’ll see RPS, fill rate, and revenue for your sandbox publisher

Sandbox metrics update with the same ~60-second lag as production. After firing a test request, wait 60–65 seconds before checking.


Testing RTB in sandbox

If you’re using direct RTB (server-to-server), send a test bid request with the sandbox header:

curl -X POST https://rtb.praevis.com/rtb \
  -H "Content-Type: application/json" \
  -H "X-Publisher-ID: {PUBLISHER_ID}" \
  -H "X-Sandbox: true" \
  -d '{
    "id": "test-request-001",
    "imp": [{"id": "imp-001", "video": {"mimes": ["video/mp4"], "w": 1920, "h": 1080, "minduration": 15, "maxduration": 30}, "bidfloor": 3.00}],
    "app": {"id": "app-test", "bundle": "com.example.test", "publisher": {"id": "{PUBLISHER_ID}"}},
    "device": {"ip": "203.0.113.1", "ua": "TestAgent", "devicetype": 3, "geo": {"country": "AE"}}
  }'

Pre-go-live checklist

Run through this before switching the publisher to live:

  • At least one filled VAST response received in sandbox
  • Empty VAST handled correctly (passback fires, no player error)
  • Revenue appears in sandbox dashboard after ~60s
  • VAST validates cleanly in VAST Inspector
  • RTB bid request received and bid response returned (if RTB mode)
  • app-ads.txt / ads.txt file set up and verified
  • Floor price tested — bids arriving above it

When all pass: disable Sandbox Mode in supply source settings, update your ad server tag URL (remove sandbox=true), and you’re live.