公开竞价网络集成
ORTB 请求/响应
Yandex 服务器间集成端点将由经理提供。
Yandex 支持 OpenRTB API 规范 2.5。
竞价请求结构
Bid Request对象
| 
 属性  | 
 类型  | 
 必需  | 
 说明  | 
| 
 
  | 
 字符串  | 
 是  | 
 竞价请求的唯一 ID,由交易提供  | 
| 
 
  | 
 
  | 
 是  | 
 表示提供的展示次数的   | 
| 
 
  | 
 
  | 
 是  | 
 通过   | 
| 
 device  | 
 
  | 
 是  | 
 通过   | 
| 
 
  | 
 
  | 
 是  | 
 通过   | 
| 
 
  | 
 整数  | 
 是  | 
 交易允许接收竞价的最长时间(毫秒),包含网络延迟以避免超时  | 
| 
 
  | 
 字符串数组  | 
 是  | 
 由此竞价请求的竞价所允许的货币构成的数组,用   | 
| 
 
  | 
 整数  | 
 否  | 
 测试模式标识,测试模式下竞拍不计费,  | 
| 
 
  | 
 整数  | 
 否  | 
 竞拍类型,  | 
| 
 
  | 
 字符串数组  | 
 否  | 
 使用 IAB 内容类别的被封锁广告主类别  | 
| 
 
  | 
 
  | 
 否  | 
 用于指定此次请求适用的行业、法律或政府监管要求的   | 
App对象
| 
 属性  | 
 类型  | 
 必需  | 
 说明  | 
| 
 
  | 
 字符串  | 
 是  | 
 平台特定的每个应用程序的唯一标识符,并且与交易无关  | 
| 
 
  | 
 字符串  | 
 否  | 
 特定于交易的应用 ID  | 
| 
 
  | 
 字符串  | 
 否  | 
 应用版本  | 
| 
 
  | 
 字符串数组  | 
 否  | 
 应用的 IAB 内容类别的数组  | 
| 
 
  | 
 字符串  | 
 否  | 
 应用程序版本  | 
| 
 
  | 
 publisher 对象  | 
 否  | 
 应用发布者的相关详细信息  | 
| 
 
  | 
 字符串  | 
 否  | 
 应用相关的关键字列表,以逗号分隔  | 
Publisher对象
| 
 属性  | 
 类型  | 
 必需  | 
 说明  | 
| 
 
  | 
 字符串  | 
 否  | 
 特定于交易的发布者 ID  | 
| 
 
  | 
 字符串  | 
 否  | 
 发布者名称  | 
| 
 
  | 
 字符串数组  | 
 否  | 
 描述发布者的 IAB 内容类别的数组  | 
| 
 
  | 
 字符串  | 
 否  | 
 发布者的顶级域名  | 
Device对象
| 
 属性  | 
 类型  | 
 必需  | 
 说明  | 
| 
 
  | 
 字符串  | 
 是  | 
 浏览器用户代理字符串  | 
| 
 
  | 
 字符串  | 
 是  | 
 最接近设备的 IPv4 地址  | 
| 
 
  | 
 
  | 
 否  | 
 设备的位置,假定为用户当前所在位置,由 Geo 对象定义(见 Geo 对象)  | 
| 
 
  | 
 整数  | 
 否  | 
 浏览器通过标头信息设置的标准   | 
| 
 
  | 
 整数  | 
 否  | 
 商业认可的   | 
| 
 
  | 
 字符串  | 
 否  | 
 最接近设备的 IPv6 地址  | 
| 
 
  | 
 字符串  | 
 否  | 
 设备操作系统  | 
| 
 
  | 
 字符串  | 
 否  | 
 设备操作系统版本  | 
| 
 
  | 
 整数  | 
 否  | 
 屏幕物理高度(以像素为单位)  | 
| 
 
  | 
 整数  | 
 否  | 
 屏幕物理宽度(以像素为单位)  | 
| 
 
  | 
 字符串  | 
 否  | 
 浏览器语言,使用   | 
| 
 
  | 
 整数  | 
 否  | 
 网络连接类型  | 
| 
 
  | 
 字符串  | 
 否  | 
 广告商获准可用的明文 ID  | 
Geo对象
| 
 属性  | 
 类型  | 
 必需  | 
 说明  | 
| 
 
  | 
 浮点数  | 
 否  | 
 纬度,范围为 -90.0 到 +90.0,负数表示南半球  | 
| 
 
  | 
 浮点数  | 
 否  | 
 经度,范围为 -180.0 到 +180.0,负数表示西半球  | 
| 
 
  | 
 字符串  | 
 否  | 
 国家/地区代码,使用   | 
| 
 
  | 
 字符串  | 
 否  | 
 地区代码,使用   | 
| 
 
  | 
 字符串  | 
 否  | 
 城市,使用联合国贸易和运输地点代码  | 
Imp对象
| 
 属性  | 
 类型  | 
 必需  | 
 说明  | 
| 
 
  | 
 字符串  | 
 是  | 
 此展示的唯一标识符,位于竞价请求的上下文中  | 
| 
 
  | 
 字符串  | 
 是  | 
 Yandex Ads 广告单元 ID  | 
| 
 
  | 
 字符串  | 
 是  | 
 广告的类型。值:  | 
| 
 
  | 
 
  | 
 否  | 
 一个 Banner 对象  | 
| 
 
  | 
 
  | 
 否  | 
 一个 Video 对象  | 
| 
 
  | 
 
  | 
 否  | 
 一个 Native 对象  | 
| 
 
  | 
 整数  | 
 否  | 
 
  | 
| 
 
  | 
 整数  | 
 否  | 
 表示用户是否因观看广告而获得奖励,  | 
Banner对象
| 
 属性  | 
 类型  | 
 必需  | 
 说明  | 
| 
 
  | 
 整数  | 
 否  | 
 精确宽度,以设备无关像素 (DIPS) 为单位  | 
| 
 
  | 
 整数  | 
 否  | 
 精确高度,以设备无关像素 (DIPS) 为单位  | 
| 
 
  | 
 format 对象数组  | 
 否  | 
 
  | 
Format对象
| 
 属性  | 
 类型  | 
 必需  | 
 说明  | 
| 
 
  | 
 整数  | 
 否  | 
 宽度,以设备无关像素 (DIPS) 为单位  | 
| 
 
  | 
 整数  | 
 否  | 
 高度,以设备无关像素 (DIPS) 为单位  | 
| 
 
  | 
 整数  | 
 否  | 
 以比例表示尺寸时的相对宽度  | 
| 
 
  | 
 整数  | 
 否  | 
 以比例表示尺寸时的相对高度  | 
| 
 
  | 
 整数  | 
 否  | 
 以比例表示尺寸时广告的最小显示宽度,以设备无关像素 (DIPS) 为单位  | 
Video对象
| 
 属性  | 
 类型  | 
 必需  | 
 说明  | 
| 
 
  | 
 字符串数组  | 
 否  | 
 精确宽度,以设备无关像素 (DIPS) 为单位  | 
| 
 
  | 
 整数  | 
 否  | 
 视频播放器的宽度,以设备无关像素 (DIPS) 为单位  | 
| 
 
  | 
 整数  | 
 否  | 
 视频播放器的高度,以设备无关像素 (DIPS) 为单位  | 
Native对象
| 
 属性  | 
 类型  | 
 必需  | 
 说明  | 
| 
 
  | 
 字符串  | 
 否  | 
 符合原生广告规范的请求负载  | 
| 
 
  | 
 整数  | 
 否  | 
 请求所遵循的动态原生广告 API 的版本  | 
User对象
| 
 属性  | 
 类型  | 
 必需  | 
 说明  | 
| 
 
  | 
 字符串  | 
 是  | 
 从 Yandex Mobile Ads SDK 获取的竞价者令牌  | 
| 
 
  | 
 字符串  | 
 否  | 
 用户的特定于交易的 ID  | 
| 
 
  | 
 字符串  | 
 否  | 
 以逗号分隔的关键词、兴趣或意图列表  | 
Regs对象
| 
 属性  | 
 类型  | 
 必需  | 
 说明  | 
| 
 
  | 
 整数  | 
 否  | 
 表示此请求是否受   | 
| 
 
  | 
 整数  | 
 否  | 
 表示此请求是否受   | 
| 
 
  | 
 整数  | 
 否  | 
 表示用户是否已同意授权,  | 
| 
 
  | 
 字符串  | 
 否  | 
 TCF 同意字符串,采用 URL 安全的 base64 字符串。Yandex AC Vendor ID 为   | 
建议在竞价请求中使用的标头
我们建议添加带有国家/地区代码值的标头 X-Country-Code。
竞价请求示例
{
  "id": "00000000000000000000000",
  "at": 1,
  "tmax": 3000,
  "cur": [
    "USD"
  ],
  "app": {
    "name": "Test app",
    "bundle": "test.bundle",
    "cat": [
      "IAB9-30"
    ],
    "publisher": {
      "name": "Demo studio games",
      "domain": "test.domain"
    }
  },
  "device": {
    "ifa": "52fc72ad-dfa3-4ccb-a614-d60c3a9ec905",
    "ip": "000.000.000.000",
    "language": "en",
    "connectiontype": 6,
    "h": 1650,
    "w": 720,
    "geo": {
      "lat": 1.0,
      "lon": 1.0,
      "city": "Demo city"
    },
    "osv": "12.0.0",
    "os": "android",
    "ua": "demo user agent",
  },
  "imp": [
    {
      "id": "1",
      "instl": 0,
      "tagid": "demo-banner-yandex",
      "rwdd": 0,
      "banner": {
        "w": 320,
        "h": 50
      },
      "ext": {
        "ad_type": "banner"
      }
    }
  ],
  "user": {
    "data": [
      {
        "segment": [
          {
            "signal": "AAAAAZCN7oq0h2hscaYv9Toq9PQ5a/rlD2WTApTYPSXW0vYlQDYoLruywTekZYfFo6XhydKev15guctnw3WsQhhZ5bX19b59Ro00fVQqJ5k8uKbITKkDS/c/VDymvomUxg/B9yAfVm4BUDkzknfplXBlKXOwPCTbN7PXZ307OFEjvUhexcTkue4bK6sD/mGvOFZv6ZrT12zsJyfDVFdLJxbdPzsQM0Wg1/jgyDF+oO0zRLOCwbX2UNPW7DRJtsKvArZhqrY9tUTaSFaWFpimGKMkC6PXV9Q9BH5uw5qIptis8PCwrT5T/z9cKdQ+bb0DiQklyn9UZuldGGyJBYdzbEyaQ3hKDyjQqZMAM4EX19hrM/T0/4v8Xt63mgPVLNjQECQPpf9lErm0YQvlMsmF3iy5LbdNO3fUeFj8JK3P0QYpsylMBMm2JKnRW0pJGXuJpz8NjHjVvz/wFcj+KrYcsEYgq+rysEh/e1jTTMLntAnOyaCA/Hr53UKq1nzTgh3ovDksMm6V5RUPJzTrWSey1zPdqujrh8mKJNq1bi0Eq45waVkBJ011JFcQo0Hn9Gei6rOvvr8H98rC4PTufWsgmCxjxNeNTfeQQTMZGvWAmq02gsCSfp8reAzSWdRWEwJFxtgSVa45G01Q/aQuH4FRI5B/FOoIqqIP/J/lTo74PtSpuSU/WU0xXZaxDUdDkc26yEpv0KDU/7uQH4Ffjj8L3T/S93SKAuQVxhHqRGBr7xS2jHIsAXwcllV+L1HiUcgM4nBbXTUg6r0UB6U817hbRd+u5/9S6wXX6SqrUWBG/ACbSKpi5urQz1ZmKAUGzj098rKXonrrRGEMGOFnMA3mSAqKNOUfx+BVs7Je75IitJzhiyETzRjKodFRWWeavF69wxs/8roFqoUySSbipX9maEzKy3Uaevryx4k+QramYCNDNjjzimMyjlWnwI5bdcHuPP1iaM5X/gAfSwEQdWVkcU1VVhNJ6xV35wUmoqOQbVnvHSQIZPhaAT3ooZnK/UrIZ3EW3uVODfl/dnYmE5Pe+KoUg/qxoLpfPhxqiUJpQHkI697FT82JeG85hFmuldqbInKXVvoCWSvXvQIIBGNMtfHZFCtpiCFgGxLhQRVkSKyprYc/uCbmYaH38WruoFVvTx43M2rhMz1TKQODKRfrim6v4IEm1eSe76AC0/4fumZkcc3dVDV6BtItAtS58yeGb8UTRYdUHpTXvCqp5LsHUNow4yOxmzXeTFHHAZ3kv95IqlujanO7d+XnWLTTe8j0wcq+h559tK74UCoGgiWNKH84D7ePUuTzybY0Gr2LZYLbWIZBBIzsQQbZfjG3bTYIS8ePdUVQJGuoTl4R377zm/qBcKhMJlkrp/sCCj40xun5w/YRJ1NPoHMBoM9SCWGgUny51FIJI9TP4tRMBl3LhqwQPqYTDQz1qGF4oN74+EazQIskye33PPCay02uu8uVUg2OJA=="
          }
        ]
      }
    ]
  }
}
        
    {
  "id": "00000000000000000000000",
  "at": 1,
  "tmax": 3000,
  "cur": [
    "USD"
  ],
  "app": {
    "name": "Test app",
    "bundle": "test.bundle",
    "cat": [
      "IAB9-30"
    ],
    "publisher": {
      "name": "Demo studio games",
      "domain": "test.domain"
    }
  },
  "device": {
    "ifa": "52fc72ad-dfa3-4ccb-a614-d60c3a9ec905",
    "ip": "000.000.000.000",
    "language": "en",
    "connectiontype": 6,
    "h": 1650,
    "w": 720,
    "geo": {
      "lat": 1.0,
      "lon": 1.0,
      "city": "Demo city"
    },
    "osv": "12.0.0",
    "os": "android",
    "ua": "demo user agent",
  },
  "imp": [
    {
      "id": "1",
      "instl": 1,
      "tagid": "demo-interstitial-yandex",
      "rwdd": 0,
      "ext": {
        "ad_type": "interstitial"
      }
    }
  ],
  "user": {
    "data": [
      {
        "segment": [
          {
            "signal": "AAAAAZCN7oq0h2hscaYv9Toq9PQ5a/rlD2WTApTYPSXW0vYlQDYoLruywTekZYfFo6XhydKev15guctnw3WsQhhZ5bX19b59Ro00fVQqJ5k8uKbITKkDS/c/VDymvomUxg/B9yAfVm4BUDkzknfplXBlKXOwPCTbN7PXZ307OFEjvUhexcTkue4bK6sD/mGvOFZv6ZrT12zsJyfDVFdLJxbdPzsQM0Wg1/jgyDF+oO0zRLOCwbX2UNPW7DRJtsKvArZhqrY9tUTaSFaWFpimGKMkC6PXV9Q9BH5uw5qIptis8PCwrT5T/z9cKdQ+bb0DiQklyn9UZuldGGyJBYdzbEyaQ3hKDyjQqZMAM4EX19hrM/T0/4v8Xt63mgPVLNjQECQPpf9lErm0YQvlMsmF3iy5LbdNO3fUeFj8JK3P0QYpsylMBMm2JKnRW0pJGXuJpz8NjHjVvz/wFcj+KrYcsEYgq+rysEh/e1jTTMLntAnOyaCA/Hr53UKq1nzTgh3ovDksMm6V5RUPJzTrWSey1zPdqujrh8mKJNq1bi0Eq45waVkBJ011JFcQo0Hn9Gei6rOvvr8H98rC4PTufWsgmCxjxNeNTfeQQTMZGvWAmq02gsCSfp8reAzSWdRWEwJFxtgSVa45G01Q/aQuH4FRI5B/FOoIqqIP/J/lTo74PtSpuSU/WU0xXZaxDUdDkc26yEpv0KDU/7uQH4Ffjj8L3T/S93SKAuQVxhHqRGBr7xS2jHIsAXwcllV+L1HiUcgM4nBbXTUg6r0UB6U817hbRd+u5/9S6wXX6SqrUWBG/ACbSKpi5urQz1ZmKAUGzj098rKXonrrRGEMGOFnMA3mSAqKNOUfx+BVs7Je75IitJzhiyETzRjKodFRWWeavF69wxs/8roFqoUySSbipX9maEzKy3Uaevryx4k+QramYCNDNjjzimMyjlWnwI5bdcHuPP1iaM5X/gAfSwEQdWVkcU1VVhNJ6xV35wUmoqOQbVnvHSQIZPhaAT3ooZnK/UrIZ3EW3uVODfl/dnYmE5Pe+KoUg/qxoLpfPhxqiUJpQHkI697FT82JeG85hFmuldqbInKXVvoCWSvXvQIIBGNMtfHZFCtpiCFgGxLhQRVkSKyprYc/uCbmYaH38WruoFVvTx43M2rhMz1TKQODKRfrim6v4IEm1eSe76AC0/4fumZkcc3dVDV6BtItAtS58yeGb8UTRYdUHpTXvCqp5LsHUNow4yOxmzXeTFHHAZ3kv95IqlujanO7d+XnWLTTe8j0wcq+h559tK74UCoGgiWNKH84D7ePUuTzybY0Gr2LZYLbWIZBBIzsQQbZfjG3bTYIS8ePdUVQJGuoTl4R377zm/qBcKhMJlkrp/sCCj40xun5w/YRJ1NPoHMBoM9SCWGgUny51FIJI9TP4tRMBl3LhqwQPqYTDQz1qGF4oN74+EazQIskye33PPCay02uu8uVUg2OJA=="
          }
        ]
      }
    ]
  }
}
        
    {
  "id": "00000000000000000000000",
  "at": 1,
  "tmax": 3000,
  "cur": [
    "USD"
  ],
  "app": {
    "name": "Test app",
    "bundle": "test.bundle",
    "cat": [
      "IAB9-30"
    ],
    "publisher": {
      "name": "Demo studio games",
      "domain": "test.domain"
    }
  },
  "device": {
    "ifa": "52fc72ad-dfa3-4ccb-a614-d60c3a9ec905",
    "ip": "000.000.000.000",
    "language": "en",
    "connectiontype": 6,
    "h": 1650,
    "w": 720,
    "geo": {
      "lat": 1.0,
      "lon": 1.0,
      "city": "Demo city"
    },
    "osv": "12.0.0",
    "os": "android",
    "ua": "demo user agent",
  },
  "imp": [
    {
      "id": "1",
      "instl": 0,
      "tagid": "demo-rewarded-yandex",
      "rwdd": 1,
      "ext": {
        "ad_type": "rewarded"
      }
    }
  ],
  "user": {
    "data": [
      {
        "segment": [
          {
            "signal": "AAAAAZCN7oq0h2hscaYv9Toq9PQ5a/rlD2WTApTYPSXW0vYlQDYoLruywTekZYfFo6XhydKev15guctnw3WsQhhZ5bX19b59Ro00fVQqJ5k8uKbITKkDS/c/VDymvomUxg/B9yAfVm4BUDkzknfplXBlKXOwPCTbN7PXZ307OFEjvUhexcTkue4bK6sD/mGvOFZv6ZrT12zsJyfDVFdLJxbdPzsQM0Wg1/jgyDF+oO0zRLOCwbX2UNPW7DRJtsKvArZhqrY9tUTaSFaWFpimGKMkC6PXV9Q9BH5uw5qIptis8PCwrT5T/z9cKdQ+bb0DiQklyn9UZuldGGyJBYdzbEyaQ3hKDyjQqZMAM4EX19hrM/T0/4v8Xt63mgPVLNjQECQPpf9lErm0YQvlMsmF3iy5LbdNO3fUeFj8JK3P0QYpsylMBMm2JKnRW0pJGXuJpz8NjHjVvz/wFcj+KrYcsEYgq+rysEh/e1jTTMLntAnOyaCA/Hr53UKq1nzTgh3ovDksMm6V5RUPJzTrWSey1zPdqujrh8mKJNq1bi0Eq45waVkBJ011JFcQo0Hn9Gei6rOvvr8H98rC4PTufWsgmCxjxNeNTfeQQTMZGvWAmq02gsCSfp8reAzSWdRWEwJFxtgSVa45G01Q/aQuH4FRI5B/FOoIqqIP/J/lTo74PtSpuSU/WU0xXZaxDUdDkc26yEpv0KDU/7uQH4Ffjj8L3T/S93SKAuQVxhHqRGBr7xS2jHIsAXwcllV+L1HiUcgM4nBbXTUg6r0UB6U817hbRd+u5/9S6wXX6SqrUWBG/ACbSKpi5urQz1ZmKAUGzj098rKXonrrRGEMGOFnMA3mSAqKNOUfx+BVs7Je75IitJzhiyETzRjKodFRWWeavF69wxs/8roFqoUySSbipX9maEzKy3Uaevryx4k+QramYCNDNjjzimMyjlWnwI5bdcHuPP1iaM5X/gAfSwEQdWVkcU1VVhNJ6xV35wUmoqOQbVnvHSQIZPhaAT3ooZnK/UrIZ3EW3uVODfl/dnYmE5Pe+KoUg/qxoLpfPhxqiUJpQHkI697FT82JeG85hFmuldqbInKXVvoCWSvXvQIIBGNMtfHZFCtpiCFgGxLhQRVkSKyprYc/uCbmYaH38WruoFVvTx43M2rhMz1TKQODKRfrim6v4IEm1eSe76AC0/4fumZkcc3dVDV6BtItAtS58yeGb8UTRYdUHpTXvCqp5LsHUNow4yOxmzXeTFHHAZ3kv95IqlujanO7d+XnWLTTe8j0wcq+h559tK74UCoGgiWNKH84D7ePUuTzybY0Gr2LZYLbWIZBBIzsQQbZfjG3bTYIS8ePdUVQJGuoTl4R377zm/qBcKhMJlkrp/sCCj40xun5w/YRJ1NPoHMBoM9SCWGgUny51FIJI9TP4tRMBl3LhqwQPqYTDQz1qGF4oN74+EazQIskye33PPCay02uu8uVUg2OJA=="
          }
        ]
      }
    ]
  }
}
        
    {
  "id": "00000000000000000000000",
  "at": 1,
  "tmax": 3000,
  "cur": [
    "USD"
  ],
  "app": {
    "name": "Test app",
    "bundle": "test.bundle",
    "cat": [
      "IAB9-30"
    ],
    "publisher": {
      "name": "Demo studio games",
      "domain": "test.domain"
    }
  },
  "device": {
    "ifa": "52fc72ad-dfa3-4ccb-a614-d60c3a9ec905",
    "ip": "000.000.000.000",
    "language": "en",
    "connectiontype": 6,
    "h": 1650,
    "w": 720,
    "geo": {
      "lat": 1.0,
      "lon": 1.0,
      "city": "Demo city"
    },
    "osv": "12.0.0",
    "os": "android",
    "ua": "demo user agent",
  },
  "imp": [
    {
      "id": "1",
      "instl": 0,
      "tagid": "demo-native-content-yandex",
      "rwdd": 0,
      "ext": {
        "ad_type": "native"
      }
    }
  ],
  "user": {
    "data": [
      {
        "segment": [
          {
            "signal": "AAAAAZCN7oq0h2hscaYv9Toq9PQ5a/rlD2WTApTYPSXW0vYlQDYoLruywTekZYfFo6XhydKev15guctnw3WsQhhZ5bX19b59Ro00fVQqJ5k8uKbITKkDS/c/VDymvomUxg/B9yAfVm4BUDkzknfplXBlKXOwPCTbN7PXZ307OFEjvUhexcTkue4bK6sD/mGvOFZv6ZrT12zsJyfDVFdLJxbdPzsQM0Wg1/jgyDF+oO0zRLOCwbX2UNPW7DRJtsKvArZhqrY9tUTaSFaWFpimGKMkC6PXV9Q9BH5uw5qIptis8PCwrT5T/z9cKdQ+bb0DiQklyn9UZuldGGyJBYdzbEyaQ3hKDyjQqZMAM4EX19hrM/T0/4v8Xt63mgPVLNjQECQPpf9lErm0YQvlMsmF3iy5LbdNO3fUeFj8JK3P0QYpsylMBMm2JKnRW0pJGXuJpz8NjHjVvz/wFcj+KrYcsEYgq+rysEh/e1jTTMLntAnOyaCA/Hr53UKq1nzTgh3ovDksMm6V5RUPJzTrWSey1zPdqujrh8mKJNq1bi0Eq45waVkBJ011JFcQo0Hn9Gei6rOvvr8H98rC4PTufWsgmCxjxNeNTfeQQTMZGvWAmq02gsCSfp8reAzSWdRWEwJFxtgSVa45G01Q/aQuH4FRI5B/FOoIqqIP/J/lTo74PtSpuSU/WU0xXZaxDUdDkc26yEpv0KDU/7uQH4Ffjj8L3T/S93SKAuQVxhHqRGBr7xS2jHIsAXwcllV+L1HiUcgM4nBbXTUg6r0UB6U817hbRd+u5/9S6wXX6SqrUWBG/ACbSKpi5urQz1ZmKAUGzj098rKXonrrRGEMGOFnMA3mSAqKNOUfx+BVs7Je75IitJzhiyETzRjKodFRWWeavF69wxs/8roFqoUySSbipX9maEzKy3Uaevryx4k+QramYCNDNjjzimMyjlWnwI5bdcHuPP1iaM5X/gAfSwEQdWVkcU1VVhNJ6xV35wUmoqOQbVnvHSQIZPhaAT3ooZnK/UrIZ3EW3uVODfl/dnYmE5Pe+KoUg/qxoLpfPhxqiUJpQHkI697FT82JeG85hFmuldqbInKXVvoCWSvXvQIIBGNMtfHZFCtpiCFgGxLhQRVkSKyprYc/uCbmYaH38WruoFVvTx43M2rhMz1TKQODKRfrim6v4IEm1eSe76AC0/4fumZkcc3dVDV6BtItAtS58yeGb8UTRYdUHpTXvCqp5LsHUNow4yOxmzXeTFHHAZ3kv95IqlujanO7d+XnWLTTe8j0wcq+h559tK74UCoGgiWNKH84D7ePUuTzybY0Gr2LZYLbWIZBBIzsQQbZfjG3bTYIS8ePdUVQJGuoTl4R377zm/qBcKhMJlkrp/sCCj40xun5w/YRJ1NPoHMBoM9SCWGgUny51FIJI9TP4tRMBl3LhqwQPqYTDQz1qGF4oN74+EazQIskye33PPCay02uu8uVUg2OJA=="
          }
        ]
      }
    ]
  }
}
        
    {
  "id": "00000000000000000000000",
  "at": 1,
  "tmax": 3000,
  "cur": [
    "USD"
  ],
  "app": {
    "name": "Test app",
    "bundle": "test.bundle",
    "cat": [
      "IAB9-30"
    ],
    "publisher": {
      "name": "Demo studio games",
      "domain": "test.domain"
    }
  },
  "device": {
    "ifa": "52fc72ad-dfa3-4ccb-a614-d60c3a9ec905",
    "ip": "000.000.000.000",
    "language": "en",
    "connectiontype": 6,
    "h": 1650,
    "w": 720,
    "geo": {
      "lat": 1.0,
      "lon": 1.0,
      "city": "Demo city"
    },
    "osv": "12.0.0",
    "os": "android",
    "ua": "demo user agent",
  },
  "imp": [
    {
      "id": "1",
      "instl": 0,
      "tagid": "demo-appopenad-yandex",
      "rwdd": 0,
      "ext": {
        "ad_type": "appopenad"
      }
    }
  ],
  "user": {
    "data": [
      {
        "segment": [
          {
            "signal": "AAAAAZCN7oq0h2hscaYv9Toq9PQ5a/rlD2WTApTYPSXW0vYlQDYoLruywTekZYfFo6XhydKev15guctnw3WsQhhZ5bX19b59Ro00fVQqJ5k8uKbITKkDS/c/VDymvomUxg/B9yAfVm4BUDkzknfplXBlKXOwPCTbN7PXZ307OFEjvUhexcTkue4bK6sD/mGvOFZv6ZrT12zsJyfDVFdLJxbdPzsQM0Wg1/jgyDF+oO0zRLOCwbX2UNPW7DRJtsKvArZhqrY9tUTaSFaWFpimGKMkC6PXV9Q9BH5uw5qIptis8PCwrT5T/z9cKdQ+bb0DiQklyn9UZuldGGyJBYdzbEyaQ3hKDyjQqZMAM4EX19hrM/T0/4v8Xt63mgPVLNjQECQPpf9lErm0YQvlMsmF3iy5LbdNO3fUeFj8JK3P0QYpsylMBMm2JKnRW0pJGXuJpz8NjHjVvz/wFcj+KrYcsEYgq+rysEh/e1jTTMLntAnOyaCA/Hr53UKq1nzTgh3ovDksMm6V5RUPJzTrWSey1zPdqujrh8mKJNq1bi0Eq45waVkBJ011JFcQo0Hn9Gei6rOvvr8H98rC4PTufWsgmCxjxNeNTfeQQTMZGvWAmq02gsCSfp8reAzSWdRWEwJFxtgSVa45G01Q/aQuH4FRI5B/FOoIqqIP/J/lTo74PtSpuSU/WU0xXZaxDUdDkc26yEpv0KDU/7uQH4Ffjj8L3T/S93SKAuQVxhHqRGBr7xS2jHIsAXwcllV+L1HiUcgM4nBbXTUg6r0UB6U817hbRd+u5/9S6wXX6SqrUWBG/ACbSKpi5urQz1ZmKAUGzj098rKXonrrRGEMGOFnMA3mSAqKNOUfx+BVs7Je75IitJzhiyETzRjKodFRWWeavF69wxs/8roFqoUySSbipX9maEzKy3Uaevryx4k+QramYCNDNjjzimMyjlWnwI5bdcHuPP1iaM5X/gAfSwEQdWVkcU1VVhNJ6xV35wUmoqOQbVnvHSQIZPhaAT3ooZnK/UrIZ3EW3uVODfl/dnYmE5Pe+KoUg/qxoLpfPhxqiUJpQHkI697FT82JeG85hFmuldqbInKXVvoCWSvXvQIIBGNMtfHZFCtpiCFgGxLhQRVkSKyprYc/uCbmYaH38WruoFVvTx43M2rhMz1TKQODKRfrim6v4IEm1eSe76AC0/4fumZkcc3dVDV6BtItAtS58yeGb8UTRYdUHpTXvCqp5LsHUNow4yOxmzXeTFHHAZ3kv95IqlujanO7d+XnWLTTe8j0wcq+h559tK74UCoGgiWNKH84D7ePUuTzybY0Gr2LZYLbWIZBBIzsQQbZfjG3bTYIS8ePdUVQJGuoTl4R377zm/qBcKhMJlkrp/sCCj40xun5w/YRJ1NPoHMBoM9SCWGgUny51FIJI9TP4tRMBl3LhqwQPqYTDQz1qGF4oN74+EazQIskye33PPCay02uu8uVUg2OJA=="
          }
        ]
      }
    ]
  }
}
        
    测试竞价响应
若要获取测试响应,请将 oRTB 请求中的 test 字段的值指定为 1。
竞价响应结构
Bid Response对象
| 
 属性  | 
 类型  | 
 说明  | 
| 
 
  | 
 字符串  | 
 此响应对应的竞价请求的 ID  | 
| 
 
  | 
 字符串  | 
 竞价货币,使用   | 
| 
 
  | 
 
  | 
 包含 1 个 Seatbid 对象 的数组  | 
Seatbid对象
| 
 属性  | 
 类型  | 
 说明  | 
| 
 
  | 
 
  | 
 包含 1 个 Bid 对象 的数组  | 
Bid对象
| 
 属性  | 
 类型  | 
 说明  | 
| 
 
  | 
 字符串  | 
 竞价者生成的竞价 ID,用于辅助记录/跟踪  | 
| 
 
  | 
 字符串  | 
 相关竞价请求中的   | 
| 
 
  | 
 浮点数  | 
 以 CPM 表示的竞价价格,即使实际交易仅针对单次展示  | 
| 
 
  | 
 字符串  | 
 所选广告的相关信息。必须在客户端请求期间传输  | 
| 
 
  | 
 字符串  | 
 竞价获胜时由交易调用的获胜通知 URL(不一定表示广告已被投放、被查看或可计费);可作为投放广告素材的可选方式  | 
| 
 
  | 
 字符串  | 
 当获胜的出价根据交易所特定的业务政策变为可计费时,由交易调用的计费通知 URL  | 
| 
 
  | 
 字符串  | 
 确认竞价失败后,由交易调用的失败通知 URL  | 
支持的宏
| 
 宏  | 
 位置  | 
 说明  | 
| 
 
  | 
 nurl、burl、lurl  | 
 使用与竞价相同的货币和单位的结算价格  | 
| 
 
  | 
 lurl  | 
 失败原因代码  | 
| 
 
  | 
 lurl、nurl  | 
 赢得交易的竞拍的所需的最低竞价,使用与竞价相同的货币和单位  | 
竞价响应示例
{
    "cur": "USD",
    "seatbid": [{
        "bid": [{
            "price": 8.2869000000,
            "id": "7149643471343346645",
            "ext": {
                "signaldata": "{\"cache_id\":\"openbidding_7149643471343346645\"}"
            },
            "impid": "1",
            "lurl": "https://yandex.ru/an/ssp_notifications/1Mldfsfadffasdfasdv618PGIAPrvDZl02YPUA0NcrLu74LA2u0yDCnWP52P1EXeMC2mu8WLah6GChEC6ilOoz7TKCHy7ygumWW-uoCiWmCFnbdCN4m32N2IIobEaNa5pBP0GappBz1uAdJ8dVLh2-OXBWQoYfkfhCm72mSCPfyKki37-PM86AMfcPWMGlc9pA339YBdC4o5fc9WQ51WO11eQhOD6xOF8diuCJFzWnArWQ3YTiOFaF0umxaDW7aDWtMS3g6JxOFsJHZEa_z5NZWVrR5f0VVh7m1kdwwfeQ6vXRcEWQ6JMnIkOa9kcbbURbLIOM51H3MCdvEVb5nITP-LlOmEPyPGKPku1jzwQ7RxfUVFgpdd4b6ypSHsoyKQvcLcMEnNaMOQvXvY_PO7R_XBC0WRgD-m00?ssp-notification-type=2&ssp-request-id=acbce306085481e0a42156b00d8a19523c2813a9&ssp-auction-loss=${AUCTION_LOSS}&ssp-auction-min-bid-to-win=${AUCTION_MIN_TO_WIN}&ssp-cur-price=${AUCTION_PRICE}",
            "nurl": "https://yandex.ru/an/ssp_notifications/1fsdafasdDEYKsGv618PGIAPrvDZl02YPUA0NcrLu74LA2u0yDCnWP52P1EXeMC2mu8WLah6GChEC6ilOoz7TKCHy7ygumWW-uoCiWmCFnbdCN4m32N2IIobEaNa5pBP0GappBz1uAdJ8dVLh2-OXBWQoYfkfhCm72mSCPfyKki37-PM86AMfcPWMGlc9pA339YBdC4o5fc9WQ51WO11eQhOD6xOF8diuCJFzWnArWQ3YTiOFaF0umxaDW7aDWtMS3g6JxOFsJHZEa_z5NZWVrR5f0VVh7m1kdwwfeQ6vXRcEWQ6JMnIkOa9kcbbURbLIOM51H3MCdvEVb5nITP-LlOmEPyPGKPku1jzwQ7RxfUVFgpdd4b6ypSHsoyKQvcLcMEnNaMOQvXvY_PO7R_XBC0WRgD-m00?ssp-notification-type=1&ssp-request-id=acbce306085481e0a42156b00d8a19523c2813a9&ssp-cur-price=${AUCTION_PRICE}&ssp-auction-min-bid-to-win=${AUCTION_MIN_TO_WIN}",
            "burl": "https://yandex.ru/an/ssp_notifications/1Ml0nI5N0QS10000000dsfasdfasd618PGIAPrvDZl02YPUA0NcrLu74LA2u0yDCnWP52P1EXeMC2mu8WLah6GChEC6ilOoz7TKCHy7ygumWW-uoCiWmCFnbdCN4m32N2IIobEaNa5pBP0GappBz1uAdJ8dVLh2-OXBWQoYfkfhCm72mSCPfyKki37-PM86AMfcPWMGlc9pA339YBdC4o5fc9WQ51WO11eQhOD6xOF8diuCJFzWnArWQ3YTiOFaF0umxaDW7aDWtMS3g6JxOFsJHZEa_z5NZWVrR5f0VVh7m1kdwwfeQ6vXRcEWQ6JMnIkOa9kcbbURbLIOM51H3MCdvEVb5nITP-LlOmEPyPGKPku1jzwQ7RxfUVFgpdd4b6ypSHsoyKQvcLcMEnNaMOQvXvY_PO7R_XBC0WRgD-m00?ssp-notification-type=3&ssp-request-id=acbce306085481e0a42156b00d8a19523c2813a9&ssp-cur-price=${AUCTION_PRICE}"
        }]
    }],
    "id": "acbce306085481e0a42156b00d8a19523c2813a9"
}
        
    iOS 客户端设置
见 iOS SDK 集成指南。
设置隐私设置
MobileAds.setUserConsent(userConsent)
MobileAds.setAgeRestrictedUser(ageRestrictedUser)
MobileAds.setLocationTrackingEnabled(locationTrackingEnabled)
        
    [YMAMobileAds setUserConsent: userConsent];
[YMAMobileAds setAgeRestrictedUser: ageRestrictedUser];
[YMAMobileAds setLocationTrackingEnabled: locationTrackingEnabled];
        
    在 iOS 客户端中生成竞价者令牌
在客户端侧,我们需要收集竞拍请求所需的参数,并将其发送到竞拍服务器。以下是用于获取竞价者令牌的代码示例。
- 
创建一个
BidderTokenLoader对象并将其设为类字段。SwiftObjective-cprivate let bidderTokenLoader = BidderTokenLoader(mediationNetworkName: "MEDIATION_NETWORK_NAME")@property (nonatomic, strong) YMABidderTokenLoader *bidderTokenLoader; self.bidderTokenLoader = [[YMABidderTokenLoader alloc] initWithMediationNetworkName: @"MEDIATION_NETWORK_NAME"]; - 
通过传递所请求广告的格式来创建一个
BidderTokenRequestConfiguration。SwiftObjective-clet requestConfiguration = BidderTokenRequestConfiguration(adType: adType)YMABidderTokenRequestConfiguration *requestConfiguration = [[YMABidderTokenRequestConfiguration alloc] initWithAdType:adType]; - 
如果请求的是横幅广告,设置横幅的尺寸。
SwiftObjective-crequestConfiguration.bannerAdSize = BannerAdSize.fixedSize(withWidth: width, height: height)requestConfiguration.bannerAdSize = [YMABannerAdSize fixedSizeWithWidth:width height:height]; - 
添加适配器的相关信息。
SwiftObjective-crequestConfiguration.parameters = [ "adapter_version": "ADAPTER_VERSION", "adapter_network_sdk_version": "MEDIATION_SDK_VERSION" ]requestConfiguration.parameters = @{ @"adapter_version": @"ADAPTER_VERSION", @"adapter_network_sdk_version": @"MEDIATION_SDK_VERSION" }; - 
加载竞价者令牌。
SwiftObjective-cbidderTokenLoader.loadBidderToken(requestConfiguration: requestConfiguration) { bidderToken in // 获取生成的令牌 }[self.bidderTokenLoader loadBidderTokenWithRequestConfiguration:requestConfiguration completionHandler:^(NSString *bidderToken) { // 获取生成的令牌 }]; 
在 iOS 客户端上从竞价响应加载广告
Yandex 竞价在竞拍中获胜后,下一步是使用竞价数据加载广告。
开屏广告
// 创建一个加载器 adLoader = AppOpenAdLoader()
adLoader.delegate = self;
let biddingData = "{\"cache_id\":\"openbidding_714964347453245346645\"}" // bidResponse 中的 ext.signaldata 字段
let adUnitId = "Yandex adUnitId" // 发布者在聚合控制台中设置的 Yandex 广告单元 ID
// 创建请求配置
let requestConfiguration = MutableAdRequestConfiguration(adUnitID: adUnitId)
requestConfiguration.biddingData = biddingData
// 正在将请求配置传递给加载程序
adLoader.loadAd(with: requestConfiguration)
        
    // 创建一个加载器 self.adLoader = [[YMAAppOpenAdLoader alloc] init];
self.adLoader.delegate = self;
NSString *biddingData = @"{\"cache_id\":\"openbidding_714964347453245346645\"}"; // bidResponse 中的 ext.signaldata 字段
NSString *adUnitId = @"Yandex adUnitId"; // 发布者在聚合控制台中设置的 Yandex 广告单元 ID
// 创建请求配置
YMAMutableAdRequestConfiguration *requestConfiguration = [[YMAMutableAdRequestConfiguration alloc] initWithAdUnitID:adUnitId];
requestConfiguration.biddingData = biddingData;
// 正在将请求配置传递给加载程序
[self.adLoader loadAdWith:requestConfiguration];
        
    点击此处可查看开屏广告集成的详细指南。
插屏广告
// 创建一个加载器 adLoader = InterstitialAdLoader()
adLoader.delegate = self;
let biddingData = "{\"cache_id\":\"openbidding_714964347453245346645\"}" // bidResponse 中的 ext.signaldata 字段
let adUnitId = "Yandex adUnitId" // 发布者在聚合控制台中设置的 Yandex 广告单元 ID
// 创建请求配置
let requestConfiguration = MutableAdRequestConfiguration(adUnitID: adUnitId)
requestConfiguration.biddingData = biddingData
// 正在将请求配置传递给加载程序
adLoader.loadAd(with: requestConfiguration)
        
    // 创建一个加载器 self.adLoader = [[YMAInterstitialAdLoader alloc] init];
self.adLoader.delegate = self;
NSString *biddingData = @"{\"cache_id\":\"openbidding_714964347453245346645\"}"; // bidResponse 中的 ext.signaldata 字段
NSString *adUnitId = @"Yandex adUnitId"; // 发布者在聚合控制台中设置的 Yandex 广告单元 ID
// 创建请求配置
YMAMutableAdRequestConfiguration *requestConfiguration = [[YMAMutableAdRequestConfiguration alloc] initWithAdUnitID:adUnitId];
requestConfiguration.biddingData = biddingData;
// 正在将请求配置传递给加载程序
[self.adLoader loadAdWith:requestConfiguration];
        
    点击此处可查看插屏广告的详细指南。
激励广告
// 创建一个加载器 adLoader = RewardedAdLoader()
adLoader.delegate = self;
let biddingData = "{\"cache_id\":\"openbidding_714964347453245346645\"}" // bidResponse 中的 ext.signaldata 字段
let adUnitId = "Yandex adUnitId" // 发布者在聚合控制台中设置的 Yandex 广告单元 ID
// 创建请求配置
let requestConfiguration = MutableAdRequestConfiguration(adUnitID: adUnitId)
requestConfiguration.biddingData = biddingData
// 正在将请求配置传递给加载程序
adLoader.loadAd(with: requestConfiguration)
        
    // 创建一个加载器 self.adLoader = [[YMARewardedAdLoader alloc] init];
self.adLoader.delegate = self;
NSString *biddingData = @"{\"cache_id\":\"openbidding_714964347453245346645\"}"; // bidResponse 中的 ext.signaldata 字段
NSString *adUnitId = @"Yandex adUnitId"; // 发布者在聚合控制台中设置的 Yandex 广告单元 ID
// 创建请求配置
YMAMutableAdRequestConfiguration *requestConfiguration = [[YMAMutableAdRequestConfiguration alloc] initWithAdUnitID:adUnitId];
requestConfiguration.biddingData = biddingData;
// 正在将请求配置传递给加载程序
[self.adLoader loadAdWith:requestConfiguration];
        
    点击此处可查看激励广告集成的详细指南。
横幅广告
let biddingData = "{\"cache_id\":\"openbidding_714964347453245346645\"}" // bidResponse 中的 ext.signaldata 字段
let adUnitId = "Yandex adUnitId" // 发布者在聚合控制台中设置的 Yandex 广告单元 ID
// 创建一个 adView adView = AdView(adUnitID: adUnitId, adSize: adSize)
adView.delegate = self
// 创建请求配置
let adRequest = MutableAdRequest()
adRequest.biddingData = biddingData
// 正在将请求配置传递给加载程序
adView.loadAd(with: adRequest)
        
    NSString *biddingData = @"{\"cache_id\":\"openbidding_714964347453245346645\"}"; // bidResponse 中的 ext.signaldata 字段
NSString *adUnitId = @"Yandex adUnitId"; // 发布者在聚合控制台中设置的 Yandex 广告单元 ID
// 创建一个 adView self.adView = [[YMAAdView alloc] initWithAdUnitID:adUnitId adSize:adSize];
self.adView.delegate = self
// 创建请求配置
YMAMutableAdRequest *adRequest = [[YMAMutableAdRequest alloc] init];
adRequest.biddingData = biddingData;
// 正在将请求配置传递给加载程序
[self.adView loadAdWithRequest:adRequest];
        
    原生广告
// 创建一个加载器 adLoader = NativeAdLoader()
adLoader.delegate = self;
let biddingData = "{\"cache_id\":\"openbidding_714964347453245346645\"}" // bidResponse 中的 ext.signaldata 字段
let adUnitId = "Yandex adUnitId" // 发布者在聚合控制台中设置的 Yandex 广告单元 ID
// 创建请求配置
let requestConfiguration = MutableNativeAdRequestConfiguration(adUnitID: adUnitId)
requestConfiguration.biddingData = biddingData
// 正在将请求配置传递给加载程序
adLoader.loadAd(with: requestConfiguration)
        
    // 创建一个加载器 self.adLoader = [[YMANativeAdLoader alloc] init];
self.adLoader.delegate = self;
NSString *biddingData = @"{\"cache_id\":\"openbidding_714964347453245346645\"}"; // bidResponse 中的 ext.signaldata 字段
NSString *adUnitId = @"Yandex adUnitId"; // 发布者在聚合控制台中设置的 Yandex 广告单元 ID
// 创建请求配置
YMAMutableNativeAdRequestConfiguration *requestConfiguration =
        [[YMAMutableNativeAdRequestConfiguration alloc] initWithAdUnitID:adUnitId];
requestConfiguration.biddingData = biddingData;
// 正在将请求配置传递给加载程序
[self.adLoader loadAdWithRequestConfiguration:requestConfiguration];
        
    原生格式包含必需和可选的资产。提供自定义素资产以进行绑定的方式在很大程度上取决于你的广告 SDK 的 API。
点击此处可查看详细的原生广告文档。
示例
点击此处可查看适配器示例。