Migrating from Xandr / Microsoft
Xandr (now Microsoft Monetize) uses OpenRTB and VAST — fully compatible with Praevis. Migration complexity depends on how much custom configuration (deals, floor rules, segment targeting) you have in Xandr.
Concept mapping
| Xandr concept | Praevis equivalent |
|---|---|
| Publisher object | Supply Source |
| Placement | Supply source (1:1 mapping recommended) |
| Deal ID / PMP | Deal ID |
| Floor rule | Floor Price CPM (per supply source) |
| Segment | Content genre / IAB category |
| Inventory package | Inventory Pool |
| Network / Member | Platform Partner account |
| Analytics | Dashboard → Supply |
Migration steps
Export your Xandr publisher configuration
From Microsoft Monetize: Publishers → export to CSV. Key fields needed:
- Publisher name
- Placement ID
- Domain or app bundle
- Current floor CPMs
- Active deal IDs
Map placements to Praevis supply sources
Xandr uses placements as the primary inventory unit. In Praevis, the supply source is the unit. Recommended mapping:
- 1 Xandr placement → 1 Praevis supply source (cleanest, easiest reporting)
- Multiple placements on same domain → 1 supply source with content_genre differentiation (reduces supply source count)
Create supply sources in Praevis
POST /api/supply/sources
{
"name": "Xandr Placement Name",
"domain": "com.example.streamingapp",
"type": "ctv",
"floor_price_cpm": 4.00,
"content_genre": "drama"
}Migrate floor rules
Xandr floor rules can be complex (geo-based, time-based, buyer-based). Praevis uses a single floor per supply source. Simplify:
- Use your blended average floor from Xandr as the Praevis starting floor
- Demand sources with Delegate strategies can apply their own bid logic on top
Migrate deal IDs
Private Marketplace (PMP) deals must be re-negotiated with your demand source buyers:
- Create deals in Praevis: Supply → supply source → Deals → Add Deal
- Agree on a new
deal_idstring with your buyer (or reuse the same ID if the buyer supports multi-platform deal IDs) - Demand source buyer updates their Delegate strategy or bidder to include the new
deal_idcondition
Map inventory packages to Praevis pools
Xandr inventory packages group supply sources for targeting. Recreate this as Praevis pools:
- Create a pool for each major Xandr package
- Assign equivalent supply sources to each pool
- Invite the same demand sources who were buyers in the Xandr package
Update app-ads.txt
# Add Praevis
praevis.com, {YOUR_PUBLISHER_ID}, DIRECT
# Keep Xandr during transition
appnexus.com, {XANDR_MEMBER_ID}, DIRECTWhat’s different on Praevis
| Feature | Xandr | Praevis |
|---|---|---|
| Auction type | Second-price (historically) / first-price | First-price only |
| Bid timeout | Configurable (typically 200–300ms) | Fixed 150ms |
| Floor rules | Dynamic, multi-condition | Static per supply source |
| Segment targeting | Xandr segment IDs | Genre + IAB category |
| Deal types | Preferred, Fixed Price, PMP, Programmatic Guaranteed | PMP (Deal ID) |
First-price auction: If your demand sources were optimising for Xandr’s second-price dynamics, they’ll need to recalibrate bids for Praevis’s first-price auction. Buyers who overbid in second-price will overpay on Praevis. Notify your demand source partners before going live.