{
  "id": 14073879,
  "title": "10 Curated PMP Mistakes That Drop Paid Filters and Kill Fill",
  "url": "https://urgent.news/2026/10/13/10-curated-pmp-mistakes-that-drop-paid-filters-and-kill-fill",
  "topic": "tech",
  "section": "Tech",
  "published": "2026-10-13T00:18:40.000Z",
  "source": {
    "name": "Dev.to",
    "slug": "dev-to",
    "url": "https://dev.to/aleksuix/10-curated-pmp-mistakes-that-drop-paid-filters-and-kill-fill-366e"
  },
  "original_language": "en",
  "account": "Between October 2026 and the present, the IAB Tech Lab initiated a public comment period to streamline programmatic plumbing, with curated private marketplace lines playing a significant role. In the wire, packaging is typically represented as imp.pmp and a deals array. However, when operations treat this structure as a generic PMP row, the upstream filter becomes non-existent, and fill continues to occur based on the deal name present on the IO. This results in unbillable confusion at scale, not a UI typo.\n\nProgrammatic curation is marketed as inventory combined with data, assembled prior to the auction. OpenRTB does not include a curator field in the bid request. The IAB included terms, scope, and fee disclosure in the Deal Sync sidecar. The auction object retains its form as an ordinary Deal entry.\n\nThe ten mistakes outlined here are points at which curated buys inadvertently downgrade to standard PMP traffic. The sidecar feed is simply reconciliation metadata, and the spec explicitly states that criteria pushed through Deal Sync are not guaranteed to match the subsequent bid request. If quality assurance (QA) only compares the sync export, it is possible to ship traffic that did not originally contain the buyer-specified segment or site list. Leaving private_auction unset on invite-only packages means open auction competition is allowed unless explicitly set to 1. Curators often advertise PMP-only packages, while the SSP continues to emit the default. Bidders who did not purchase the package may win, and the curated filter never applies. Winning on a deal id that was not present on the original impression billed is another issue. Reporting joins on dealid in the bid response, but finance should trace back to imp.pmp.deals[].id on the request that actually ran.\n\nMulti-imp pods and duplicated deal ids across imps can easily attribute fill to a curated line that was not attached to the specific impression that cleared. Expecting fee disclosure within the OpenRTB Deal object is misguided, as these fields are actually located in the Deal Sync sidecar's Curation object. A bid request validator cannot prove fee transparency; conflating the two objects leads buyers to seek fields that do not exist in the schema. Assuming that user.data segments indicate the curator filter was implemented correctly is also erroneous, as curators may apply segments solely as an upstream supply filter, with these segments potentially absent from the bid request altogether. Observing unrelated Data objects on the request is merely a convention rather than proof that the mandated MFA exclusion list executed. Deploying floor changes from the sync file without comparing live bidfloor results can lead to underbidding curated inventory or overbidding open paths, while dashboard displays still showcase the outdated package terms.\n\nUsing white-label curator ids instead of publisher-direct ids without updating seat maps is another mistake. The same inventory may clear under different deal ids depending on the SSP node responsible for packaging it. Seat allow lists (wseat) and advertiser block lists (wadomain) on the Deal object are specific to each id. Validating only the first impression in a pod can be problematic, particularly in CTV and long-form video requests where multiple imps are involved. Curated deals frequently attach to a mid-roll imp while the preroll remains open market. Checking imp index zero alone is insufficient, as curated deals may be attached to a different imp in the pod. Lastly, when patching deal floors or activations on the incorrect JSON path, the mutation may succeed while the exchange still operates using the uncurated object. Path precision is crucial and should be given more attention than envelope parse status. It is essential to remember that omitting imp.pmp.private_auction means open auction, and this default has caused more issues with curated packages than any single bad segment id, as buyers often assume exclusivity based on the presence of a deal id on the line item.",
  "summary": "On October 6, 2026 , the IAB Tech Lab opened a public comment period aimed at simplifying programmatic plumbing. Curated private marketplace lines are a big part of that conversation: buyers pay for packaging, not just a deal id. On the wire, packaging still collapses to imp.pmp and a deals array. When operations treat that shape like a generic PMP row, the upstream filter disappears and fill…",
  "key_points": [
    "Curated private marketplace lines play significant role in programmatic plumbing streamlining.",
    "Upstream filter becomes non-existent when operations treat structure as generic PMP row.",
    "Leaving privateauction unset allows open auction competition on invite-only packages."
  ],
  "editors_take": "Technical errors in programmatic plumbing turn premium curated packages into standard open auction traffic, undermining the exclusivity and billing accuracy that buyers expect from private marketplace deals.",
  "illustration": null,
  "coverage": {
    "outlets": 1,
    "also_reported_by": []
  },
  "ai_generated": true,
  "disclaimer": "Summaries, key points and the editor’s take are written by software from other outlets’ reporting and may contain errors — always check the linked original."
}