Rule reference

Google SDK-rendered ads require an installed_sdk submessage in the corresponding app request.

openrtb.profile.google.sdk_not_offerederrorRequest/response pair

Google SDK-rendered ads require an installed_sdk submessage in the corresponding app request.

What it means

Google SDK-rendered ads require an installed_sdk submessage in the corresponding app request. This check applies to the selected vendor contract and integration direction.

Why it matters

The declared profile checks the published partner contract alongside canonical OpenRTB. It does not verify runtime approval or account configuration.

How to fix it

Use an option offered by the matching request. Check the request and response together at the reported path.

Example that trips it

Request:
{
  "id": "req-depth",
  "imp": [
    {
      "id": "1",
      "banner": {
        "w": 300,
        "h": 250
      },
      "ext": {
        "billing_id": [
          "123",
          "124"
        ]
      }
    }
  ],
  "app": {
    "id": "app1"
  }
}

Response:
{
  "id": "req-depth",
  "seatbid": [
    {
      "bid": [
        {
          "id": "bid-1",
          "impid": "1",
          "price": 1,
          "adomain": [
            "test.invalid"
          ],
          "ext": {
            "billing_id": "123",
            "sdk_rendered_ad": {
              "id": "sdk1",
              "rendering_data": "opaque",
              "declared_ad": {
                "html_snippet": "<div>SDK representative ad</div>"
              }
            }
          },
          "crid": "sdk-creative",
          "w": 300,
          "h": 250
        }
      ]
    }
  ]
}

Profile google-ab, OpenRTB 2.6-202606. The fixture asserts openrtb.profile.google.sdk_not_offered at seatbid[0].bid[0].ext.sdk_rendered_ad.

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.