Rule reference

openrtb.native.request.double_encoded

errorBid request

What it means

imp.native.request is defined as a string holding the JSON-encoded Native Markup Request, encoded exactly once. Here the string decodes to another JSON string rather than an object, meaning the payload was JSON-encoded twice.

Why it matters

A buyer decodes once, per the spec, and finds a string of escaped quotes where the native request object should be. Most drop the impression. Double encoding usually comes from serializing an already-serialized string a second time in a generic pipeline.

How to fix it

Encode the Native Markup Request exactly once: build the object, serialize it to a string, place that string at native.request, and stop. If a framework serializes the whole bid request afterward, store the native request as a raw string, not as an object it will re-serialize.

Example that trips it

{ "native": { "request": "\"{\\\"ver\\\":\\\"1.2\\\"}\"" } }

The tell is a leading escaped quote inside the string.

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.