LabArticleSeat-verified

Split the key before you exclude it

Stored findings look like OPENX|ox/558246019. The exchange wants ox/558246019. The un-split key matches nothing and fails open.

Published 2026-09-10 · Search job: Beeswax placement key exchange handle format

A Supply Audit placement key is a composite. You have to split it before you send it to the exchange.

The stored forms are ${inventory_source}|${Placement} and ${inventory_source}|site:${Site ID}. Examples we validated against production findings: OPENX|ox/558246019 and PUBMATIC|site:pm/1188465. The Beeswax value is the part after the pipe, because the report's Placement and Site ID columns already carry their own exchange handle.

extractBeeswaxAppSiteValue was checked against all 26 real placement and site findings from the first production run: 15 of 15 placements, 11 of 11 sites. Domain findings are stored as a bare hostname with no pipe. The extractor returns null for those, which is correct, because domain still needs a list object.

What fails open

Sending the un-split key, or fabricating a handle from a display name, compiles to an expression that matches no inventory. OPEN then tells the buyer the placement was excluded while it keeps serving and spending. That is the worst outcome this path can have: a green "applied" and unchanged delivery.

Apply refusals that matter here: unparsable_entity_key is 409, already_excluded is 409, and exclusion_list_full is 409 at a 500-key cap. An exchange apply that would empty the allowlist is also 409. See Why an empty allowlist serves nothing.

Placement vs site vs domain is why placement and site can be applied at all. Apply a Supply Audit finding is the job. Do not infer an exchange handle. Do not send the composite.