openrtb.bid.adm.double_encoded
What it means
The bid's adm decodes to another JSON string instead of markup: the payload (typically a native markup response) was JSON-encoded twice, the response-side twin of the native request encoding bug.
Why it matters
The rendering side decodes once and gets a string of escaped quotes no renderer can display. You spent QPS and bid price to win an impression that then errors at render, which is billed waste plus a creative-quality strike.
How to fix it
Encode adm exactly once. If your bidder framework serializes the response object as a whole, insert the native response as a pre-serialized raw string, not as an object serialized again.
Check your payload
Paste a bid request or response into the tester to see whether this code fires against it, or gate on the id in CI with the CLI: the id is stable, wording is not.
Back to the full diagnostic code reference.