Rule reference

openrtb.native.request.legacy_wrapper

warningBid request

What it means

The decoded native.request is an object with a single top-level "native" key wrapping the real request. That convention predates Native Ads 1.1, which made the Native Markup Request itself the root object.

Why it matters

Consumers built for Native 1.1+ look for ver, assets, and friends at the root, find only "native", and read an empty request. Some parsers tolerate the wrapper for compatibility; relying on that tolerance is a bet you lose one partner at a time.

How to fix it

Emit the Native Markup Request as the root object of the encoded string and declare the spec version in ver ("1.2"). Drop the wrapper unless a specific partner documents that they still require the legacy shape.

Example that trips it

{ "native": { "request": "{\"native\":{\"ver\":\"1.2\",\"assets\":[]}}" } }

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.