Migrating from SpringServe
SpringServe and Praevis Exchange are both VAST-based ad servers. The migration is a URL swap — same VAST protocol, different macros and endpoint.
Estimated time: 1–3 days for a clean supply source migration.
SpringServe → Praevis macro mapping
| SpringServe macro | Praevis parameter | Notes |
|---|---|---|
{IP_ADDRESS} | ip | Viewer IP — required |
{USER_AGENT} | ua | URL-encoded user agent |
{APP_BUNDLE} | — | Use site_id instead |
{CONTENT_LENGTH} | — | Not used in Praevis |
{WIDTH} | w | Player width in px |
{HEIGHT} | h | Player height in px |
{IFA} | did | Device advertising ID |
{CONTENT_GENRE} | content_genre | Genre string — set in supply source settings |
{FLOOR_PRICE} | floor | Dynamic floor override (optional) |
{DOMAIN} | — | Derived from supply source account |
Migration steps
Create supply sources in Praevis
For each SpringServe supply source, create a matching supply source in Praevis:
- Log in → Supply → Add Supply Source
- Use the same name as your SpringServe supply source for traceability
- Note the Praevis Supply Source ID (UUID)
Build your Praevis VAST tag
https://rtb.praevis.com/vast?site_id={PUBLISHER_ID}&w={WIDTH}&h={HEIGHT}&ip={IP_ADDRESS}&ua={USER_AGENT}&did={IFA}&content_genre={CONTENT_GENRE}Replace {PUBLISHER_ID} with your Praevis UUID. SpringServe macros stay in {curly_braces}.
Enable sandbox mode in Praevis
Add &sandbox=true to your VAST URL. Test with 10–20 requests in SpringServe’s tag tester. Confirm:
- Filled VAST responses arrive
- Empty VAST handled correctly
- Supply source appears in Praevis sandbox dashboard after ~60s
Run both in parallel (A/B)
Keep SpringServe as primary. Add Praevis as a secondary waterfall tag in SpringServe:
- SpringServe: Set Praevis as a passback demand source on your existing tag
- Traffic split: Start with 10% to Praevis, monitor fill rate and eCPM
- Increase gradually: 10% → 25% → 50% → 100% over 5–7 days
This lets you validate revenue without risking your existing fill.
Switch to 100% Praevis
Once Praevis eCPM ≥ SpringServe eCPM at matching floor, remove the SpringServe tag and route all traffic to Praevis.
app-ads.txt update
Add Praevis to your app-ads.txt or ads.txt before going to 100%:
praevis.com, {YOUR_PUBLISHER_ID}, DIRECTLeave SpringServe’s line in place during parallel running. Remove it only after full migration.
Common issues after migration
Lower fill rate than SpringServe SpringServe likely has more demand sources configured. During ramp-up, Praevis has fewer demand sources seeing your inventory. As your supply source builds history, more demand sources bid. Also check floor price — if SpringServe used dynamic floors and yours were low, Praevis’s static floor may be higher.
Impression tracking discrepancy
SpringServe counts its own impression pixel; Praevis counts the <Impression> pixel inside the VAST. Small differences (<5%) are normal. Larger gaps indicate the VAST player isn’t firing Praevis’s tracking pixel — check player configuration.
Genre not passing
SpringServe may not populate {CONTENT_GENRE}. Set a default genre on each Praevis supply source in the supply source settings instead.
During migration, you can keep both SpringServe and Praevis VAST tags active as separate demand sources. There is no contract exclusivity requirement.