Developer GuideMigration GuidesFrom SpringServe

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 macroPraevis parameterNotes
{IP_ADDRESS}ipViewer IP — required
{USER_AGENT}uaURL-encoded user agent
{APP_BUNDLE}—Use site_id instead
{CONTENT_LENGTH}—Not used in Praevis
{WIDTH}wPlayer width in px
{HEIGHT}hPlayer height in px
{IFA}didDevice advertising ID
{CONTENT_GENRE}content_genreGenre string — set in supply source settings
{FLOOR_PRICE}floorDynamic 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:

  1. Log in → Supply → Add Supply Source
  2. Use the same name as your SpringServe supply source for traceability
  3. 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}, DIRECT

Leave 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.