当 Unity 收到广告请求时,SDK 会将广告请求发送给所有潜在的出价者,包括在用户不限制数据用途的情况下用于个性化广告的数据(请参阅有关数据隐私的文档)。
对于广告请求数据,Unity 支持 JSON 格式。标准 JSON 表示法的 MIME 类型为 application/json
,并在 HTTP 标头字段中指定为:
contentType: application/json Accept-Encoding: gzip
Unity 在请求中发送 Accept-Encoding GZIP 压缩数据,并强烈建议对响应进行压缩。如需了解更多信息,请参阅 OpenRTB 规范的第 2.4 节。
请求对象
顶级广告请求对象包含全局唯一的广告请求 ID。
属性 | 类型 | 示例 | 描述 |
---|---|---|---|
id | 字符串 | "id": "bcaIDT1Nbv0zU8mn9tXQ6j" | Unity 生成的 ID。此 ID 必须在广告返回对象中返回。 |
imp | 对象 | 如需了解更多信息,请参阅有关 | 对于每个广告请求,Unity 支持一个 |
pmp | 对象 | 如需了解更多信息,请参阅有关 | 私有市场容器,用于可能与广告展示相关的买卖双方之间的直接交易。实际交易表示为 |
app | 对象 | 如需了解更多信息,请参阅有关 | 用于描述项目或应用程序的对象。 |
device | 对象 | 如需了解更多信息,请参阅有关 | 用于描述用户设备的对象。 |
user | 对象 | 如需了解更多信息,请参阅有关数据隐私的文档。 | 用于表示设备真实用户或广告受众的对象。 |
at | 整型 | "at":1 | 使用的广告竞价类型。所有 Unity Exchange 广告竞价都是第一高价广告竞价,因此该值始终为 |
tmax | 整型 | "tmax":200 | 超时值(以毫秒为单位)。 |
bcat | 字符串数组 | "bcat": ["IAB9-9", "IAB8"] | 需屏蔽的广告主类别(使用 IAB 分类 ID 表示)。 |
bapp | 字符串数组 | "bapp": ["com.foo.mygame"] | 被屏蔽的应用程序列表,由其特定平台表示。在 Android 上,这些是捆绑包名或软件包名。在 iOS 上,这些是数字 ID。 |
source | 对象 | 如需了解更多信息,请参阅有关 | 此对象提供关于库存来源的数据以及关于哪个实体做出最终决策的信息。 |
regs | 对象 | 如需了解更多信息,请参阅有关数据隐私的文档。 | 此对象用于指定针对该请求实施的任何行业法规, 法律法规或政府法规。 |
source 对象
一种描述交易平台上游广告请求来源实体的性质和行为的对象类。此对象的主要目的是在交易平台本身不控制最终决策时定义竞价后或上游的决策。如需了解更多信息,请参阅 OpenRTB 指南的对象:source (Object: source) 部分。
属性 | 类型 | 示例 | 描述 |
---|---|---|---|
pchain | 字符串 | "pchain":"12abcd3456789:12345" | 支付链 ID 字符串,包含 TAG 支付 ID 协议 v1.0 中所述的嵌入式语法。 |
omidpn | 字符串 | "omidpn":"Unity3d" | Open Measurement SDK 集成的标识符。与 OMID Partner 对象的 |
omidpv | 字符串 | "omidpv":"1.3.0" | Open Measurement SDK 集成版本。与 OMID Partner 对象的 |
schain | 对象 | 如需了解更多信息,请参阅有关 schain 对象的部分。 | 此对象既表示供应链中的链接,也表示供应链信息是否完整。 |
schain 对象
此对象既表示供应链中的链接,也表示供应链信息是否完整。
属性 | 类型 | 示例 | 描述 |
---|---|---|---|
complete | 整型 | "complete":1 | 此标志指示供应链中是否包含交易涉及的所有节点,这些节点导向回库存网站, 应用或其他媒介的所有者。
|
nodes | 对象数组 | 需要示例 | 按供应链顺序排列的 |
ver | 字符串 | "ver":"1.0" | 正在使用的供应链规范版本,格式为 |
nodes 对象
一个用于表示交易供应链中涉及的实体的对象。
属性 | 类型 | 示例 | 描述 |
---|---|---|---|
asi | 字符串 | "asi":"unity.com" | 出价者连接到的系统域名。如果它与父级企业域名不同,可能是系统的运营域名。如果存在 |
sid | 字符串 | "sid":"1596090" | 与广告系统中的卖家或经销商帐户关联的 ID。必须包含 OpenRTB 交易中使用的相同值。通常为 |
rid | 字符串 | "rid":"582f5fb3-0cc6-4944-ab12-1233175675e8-9999-36946" | 此卖家发出的请求的 OpenRTB |
hp | 整型 | "hp":1 | 指示此节点是否参与库存的支付流程。
|
imp 对象
此对象类描述正在参与竞价的广告展示。
属性 | 类型 | 示例 | 描述 |
---|---|---|---|
banner | 对象 | 如需了解更多信息,请参阅有关 | 用于描述横幅广告展示的对象。 |
bidfloor | 浮点 | "bidfloor":3.95 | 赢得此广告展示所需的最低单次展示成本 (CPM) 出价。以美元为单位。 |
displaymanager | 字符串 | "displaymanager": "unity sdk" | 负责展示广告的广告聚合合作伙伴, SDK 技术或播放器的名称。 |
displaymanagerver | 字符串 | 4001 | 负责展示广告的广告聚合合作伙伴, SDK 技术或播放器的版本。 |
id | 字符串 | "id":"1" | 对于每个广告请求,Unity 支持一个 |
instl | 整型 | "instl":1 | 横幅广告请求的值为 |
secure | 整型 | "secure":1 | Unity 要求广告展示必须具有安全的 |
tagid | 字符串 | "tagid": "com.this.game-video" | Unity 以标识符的形式传递 |
video | 对象 | 如需了解更多信息,请参阅有关 video 对象的部分。 | 用于描述视频广告展示的对象。 |
ext.skadn | 对象 | 如需了解更多信息,请参阅有关 iOS 14 支持的文档。 | 如果 DSP 在发布者应用的 |
ext.skadn.skoverlay | 整数 | 1 | 指示是否有资格使用 SKOverlay 功能。
|
ext.skadn.productpage | 整数 | 1 | 指示是否有资格使用 Custom Product Page 功能。
|
ext.skadn.ext.ask | 整数 | 1 | 指示是否有资格使用 Auto Storekit 功能。
|
video 对象
用于描述视频广告展示的 impression
对象类的子集。如需了解更多信息,请参阅 OpenRTB 规范中的第 3.2.7 节。
属性 | 类型 | 示例 | 描述 |
---|---|---|---|
api | 整型数组 | "api": [7] | 此广告展示支持的 API 框架。值为 |
battr | 整型数组 | "battr": [ 1, 3, 5, 6, 8, 9, 13] | 被屏蔽的广告素材属性数组。如需查看支持值的完整列表,请参阅 OpenRTB 规范中的表 5.3。 |
h | 整型 | "h":600 | 视频播放器的高度(以设备独立像素 (DIPS) 为单位)。 |
maxduration | 整型 | "maxduration":30 | 视频广告最大持续时间(以秒为单位)。此值始终为 |
mimes | 字符串数组 | "mimes": ["video/mp4","video/webm"] | 支持的内容 MIME 类型,包括 |
minduration | 整型 | "minduration":5 | 视频广告最小持续时间(以秒为单位)。此值始终为 |
placement | 整型 | "placement":5 | Unity 支持的视频广告位类型如下:
|
pos | 整型 | "pos":7 | 视频广告在屏幕上的位置。Unity Ads 视频广告库存始终设置为全屏展示 ( |
protocols | 整型数组 | "protocols": [2, 3, 5, 6] | 受支持视频协议的数组。如需查看支持值的完整列表,请参阅 OpenRTB 规范中的表 5.8。 |
w | 整型 | "w":1024 | 视频播放器的宽度(以设备独立像素 (DIPS) 为单位)。 |
companiontype | 整型数组 | "companiontype": [1,2,3] | 可支持的结束页类型数组,包含 |
linearity | 整型 | "linearity":1 | 指示广告展示是否必须是线性的。对于 Unity Exchange,此值始终为 |
skip | 整型 | "skip":1 | 指示是否可以跳过视频,其中:
对于 Unity Exchange,此值始终为 |
sequence | 整型 | "sequence":1 | 如果同一个广告请求收到了多个广告展示的机会,则可以通过序号来协调多个广告素材的交付。对于 Unity Exchange,此值始终为 |
banner 对象
一个用于描述横幅广告展示的 impression
对象类的子集。如需了解更多信息,请参阅 OpenRTB 规范中的第 3.2.6 节。
属性 | 类型 | 示例 | 描述 |
---|---|---|---|
api | 整型数组 | "api": [6] | 发布者支持的横幅广告 API 框架。Unity 支持 MRAID 3.0 ( |
battr | 整型数组 | "battr": [ 1, 3, 5, 6, 8, 9] | 被屏蔽的横幅广告素材属性数组。如需查看支持值的完整列表,请参阅 OpenRTB 规范中的表 5.3。 |
format | 对象数组 | "format": [{"w":728, "h":90}] | 用于表示支持的横幅广告尺寸的对象数组。横幅广告素材格式支持的尺寸:
展示性广告素材格式支持的尺寸:
|
h | 整型 | "h":320 | 横幅广告展示的高度(以设备独立像素 (DIPS) 为单位)。 |
pos | 整型 | "pos":7 | 横幅广告的位置。如需查看支持值的完整列表,请参阅 OpenRTB 规范中的表 5.4。 |
w | 整型 | "w":480 | 横幅广告展示的宽度(以设备独立像素 (DIPS) 为单位)。 |
pmp 对象
一种描述私有市场属性(适用于可能与广告展示相关的买卖双方之间的直接交易)的对象类。如需了解更多信息,请参阅 OpenRTB 规范中的第 3.2.11 节。
属性 | 类型 | 示例 | 描述 |
---|---|---|---|
deals | 对象数组 | 如需了解更多信息,请参阅有关 | 一组 |
private_auction | 整型 | "private_auction":0 | 指示
|
deal 对象
一种描述在买卖双方之间建立的特定交易的对象类。它的存在表明可以根据该交易的条款进行广告展示。如需了解更多信息,请参阅 OpenRTB 规范中的第 3.2.12 节。
属性 | 类型 | 示例 | 描述 |
---|---|---|---|
at | 整型 | "at":1 | 广告请求的广告竞价类型的可选覆盖:
|
id | 字符串 | "id": "abcdef12345" | 直接交易的唯一标识符。 |
app 对象
一种描述发出广告请求的应用程序的对象类。如需了解更多信息,请参阅 OpenRTB 规范中的第 3.2.14 节。
属性 | 类型 | 示例 | 描述 |
---|---|---|---|
bundle | 字符串 | Google 示例:
Apple 示例:
| 应用程序的包名(Bundle ID或package name),需具有跨广告交易平台的唯一性。
|
id | 字符串 | "id": "a1b2c3d4e5f6g7h8i9j0123456789abc" | 特定于广告交易平台的应用程序 ID。 |
name | 字符串 | "name":"Trash Dash" | 应用程序名称。 |
publisher | 对象 | "publisher":"ExamplePublisher" | 特定于广告交易平台的发布者 ID。 |
storeurl | 字符串 | "storeurl": "https://itunes.apple.com/us/app/trash-dash/id1198634425?mt=8" | 已安装应用的商店链接(为了实现 QAG 1.5 合规性)。 在特定情况下,可能无法传递该属性,如:当发布者在合同协议中要求禁止提供时。 |
publisher 对象
一种描述发出广告请求的发布者的对象类。如需了解更多信息,请参阅 OpenRTB 规范中的第 3.2.15 节。
属性 | 类型 | 示例 | 描述 |
---|---|---|---|
id | 字符串 | "id": "a1b2c3d4e5f6g7h8i9j0123456789abc" | 特定于广告交易平台的发布者 ID。 |
device 对象
一种描述终端用户设备的对象类。如需了解更多信息,请参阅 OpenRTB 规范中的第 3.2.18 节。
属性 | 类型 | 示例 | 描述 |
---|---|---|---|
connectiontype | 整型 | "connectiontype":1 | 网络连接类型。如需查看支持值的完整列表,请参阅 OpenRTB 规范中的表 5.22。 |
devicetype | 整型 | "devicetype":4 | 设备的一般类型。如需查看支持值的完整列表,请参阅 OpenRTB 规范中的表 5.21。 请注意,OpenRTB 2.2 版中引入了手机与平板电脑之间的区分:
|
geo | 对象 |
| 设备的定位数据(假定为用户的当前定位):
|
hwv | 字符串 | "hwv": "samsung SM-J200H" | 设备的硬件版本。 |
ifa | 字符串 | "ifa": "ab12c456-78de-90f1-ghi2-j3kl4567890m" | 明确批准供广告主使用的 Android 广告 ID (AID) 或 iOS 广告标识符 (IFA/IDFA)(非哈希值)。 |
ip | 字符串 | "ip":"12.34.5.6" | 设备的 IP 地址。 |
language | 字符串 | "language": "en" | 浏览器语言,使用 ISO-639-1-alpha-2 代码。 |
lmt | 整型 | "lmt":1 | 已获商业认可的"Limit Ad Tracking(限制广告追踪)"信号。
Unity 在值为 |
make | 字符串 | "make":"Apple" | 设备的制造商。 |
model | 字符串 | "model": "iPhone7,2" | 设备的型号。 |
os | 字符串 | "os": "ios" | 设备的操作系统。 |
osv | 字符串 | "osv":"3.1.2" | 设备的操作系统版本。 |
ua | 字符串 |
| Web 浏览器端的用户代理字符串。 |
carrier | 字符串 | "carrier":"Verizon" | 设备运营商。 |
广告请求示例
VAST 广告请求
{ "id": "bcaIDT1Nbv0zU8mn9tXQ6j", "at": 1, "tmax": 200, "source": { "pchain": "12abcd3456789:12345" "omidpn": "Unity3d", "omidpv": "1.3.0" }, "imp": [{ "id": "1", "secure": 1, "instl": 1, "tagid": "com.unity3d.ads.example-vast", "bidfloor": 3.95, "video": { "mimes": [ "video/mp4","video/webm","application/javascript" ], "minduration": 5, "maxduration": 30, "placement": 5 "protocols": [2, 3, 5, 6], "pos": 7, "battr": [1, 3, 5, 8, 9, 13], "w": 1024, "h": 600, "api": [7], "companiontype": [1,2,3] } "displaymanager": "unity sdk", "displaymanagerver": "4001", "ext": { "skadn": { "ext": { "ask": 1 }, "skoverlay": 1, "productpage": 1 } } }], "app": { "id": "d01234idnfld234ier6c70930a", "name": "Build A Town: All the games", "publisher": { "id": "11972001l" }, "bundle": "12312312399", "storeurl": "https://apps.apple.com/us/app/build-a-town/id12312312399" }, "device": { "ifa": "ab12c456-78de-90f1-ghi2-j3kl4567890m", "make": "Apple", "model": "iPhone", "ua": "Mozilla/5.0 (iPhone; CPU iPhone OS 10_0 like Mac OS X) AppleWebKit/602.1.50 (KHTML, like Gecko) Mobile/14A345", "os": "ios", "ip": "12.34.5.6", "devicetype": 4, "carrier": "Apple", "osv": "10.1", "hwv": "iphone6", "geo": { "lat": 55.5492, "lon": 59.0456, "country": "USA", "city": "San Francisco", "type": 2, "utcoffset": 180 }, "connectiontype": 3, "language": "en", "h": 1184, "w": 768 }, "regs": { "coppa": 0 } }
VPAID 广告请求
{ "id": "bcda7938-14eb-4a46-8dcb-bcd7587a964f", "imp": [ { "id": "1", "video": { "mimes": [ "video/mp4", "application/javascript" ], "minduration": 5, "maxduration": 30, "protocols": [ 2, 3, 5, 6 ], "w": 320, "h": 480, "linearity": 1, "sequence": 1, "battr": [ 1, 3, 5, 6, 8, 9, 13 ], "pos": 7, "api": [ 2 ] }, "pmp": {}, "displaymanager": "unity sdk", "displaymanagerver": "3000", "instl": 1, "tagid": "com.unity3d.unityads.AdOpsTools.enterprise-vast", "bidfloor": 3.95, "secure": 1 "ext": { "skadn": { "ext": { "ask": 1 }, "skoverlay": 1, "productpage": 1 } } }], "app": { "id": "d01234idnfld234ier6c70930a", "name": "Build A Town: All the games", "publisher": { "id": "11972001l" }, "bundle": "12312312399", "storeurl": "https://apps.apple.com/us/app/build-a-town/id12312312399" }, "device": { "ua": "Mozilla/5.0 (iPhone; CPU iPhone OS 8_1 like Mac OS X) AppleWebKit/600.1.4 (KHTML, like Gecko) Mobile/12B411", "geo": { "lat": 37.7958, "lon": -122.4203, "type": 2, "country": "USA", "region": "CA", "city": "San Francisco", "utcoffset": -480 }, "ip": "4.14.109.2", "devicetype": 4, "model": "iPhone7,1", "os": "ios", "osv": "8.1", "hwv": "iPhone 6 Plus", "h": 716, "w": 414, "language": "en", "carrier": "dna", "connectiontype": 2, "ifa": "36E493A2-8E81-4CAE-B85A-1B9786E3C9F2" }, "at": 1, "tmax": 500, "regs": { "ext": {} }, "ext": { "sessionDepth": 7 } }
横幅广告请求
{ "id": "bcda7938-14eb-4a46-8dcb-bcd7587a964f", "imp": [ { "id": "1", "banner": { "w": 320, "h": 50, "battr": [ 1, 3, 5, 6, 8, 9, 13 ] }, "pmp": {}, "displaymanager": "unity sdk", "displaymanagerver": "3200", "tagid": "com.unity3d.ads.opstool-banner", "bidfloor": 3.95, "secure": 1 } ], "app": { "id": "2aa377f91oo12398465d6af383", "name": "Example Game: Chapter Two", "publisher": { "id": "189857700" }, "bundle": "com.devexample.thegamebundlename", "storeurl": "https://play.google.com/store/apps/details?id=com.devexample.thegamebundlename\u0026hl=en" }, "device": { "ua": "Mozilla/5.0 (Linux; Android 9; Pixel Build/PQ3A.190705.001; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/75.0.3770.101 Mobile Safari/537.36", "geo": { "lat": 37.7958, "lon": -122.4203, "type": 2, "country": "USA", "region": "CA", "city": "San Francisco", "utcoffset": -480 }, "ip": "4.14.109.3", "devicetype": 4, "make": "Google", "model": "Pixel", "os": "android", "osv": "9.0", "hwv": "Google Pixel", "w": 320, "h": 50, "language": "en", "connectiontype": 2, "ifa": "d0a77d1b-e974-41f3-84c5-8fe75718ef2d" }, "at": 1, "tmax": 500, "regs": { "ext": {} }, "ext": { "sessionDepth": 1 } }
试玩广告请求
{ "id": "abcIDT1Def0zU8mn9gHI6j", "source": { "pchain": "12abcd3456789:12345" }, "imp": [{ "id": "1", "banner": { "w": 1024, "h": 768, "battr": [1, 3, 5, 6, 8, 9], "pos": 7, "api": [5] }, "displaymanager": "unity sdk", "displaymanagerver": "4000", "instl": 1, "tagid": "com.unity-game.trashdash-m3-ios-display", "bidfloor": 3.95, "secure": 1 }], "app": { "id": "d01234idnfld234ier6c70930a", "name": "Build A Town: All the games", "publisher": { "id": "11972001l" }, "bundle": "12312312399", "storeurl": "https://apps.apple.com/us/app/build-a-town/id12312312399" }, "device": { "ifa": "ab12c456-78de-90f1-ghi2-j3kl4567890m", "ua": "Mozilla/5.0 (iPad; CPU OS 11_2_2 like Mac OS X) AppleWebKit/604.4.7 (KHTML, like Gecko) Mobile/15C202", "geo": { "lat": 55.5492, "lon": 59.0456, "country": "USA", "city": "San Francisco", "type": 2, "utcoffset": 180 }, "ip": "12.34.5.6", "devicetype": 5, "model": "iPad5,3", "os": "ios", "osv": "11.2.2", "hwv": "iPad Air 2 (Wi-Fi)", "h": 768, "w": 1024, "language": "en", "connectiontype": 2 }, "at": 1, "tmax": 200, "regs": {}, "ext": {} }
插页式展示性广告请求
{ "id": "ApJv9QAmN3FJjEcTtFDtW3", "imp": [{ "id": "1", "banner": { "w": 480, "h": 320, "format": [ {"w":250,"h":300}, {"w":300,"h":250}, {"w":480,"h":320}, {"w":320,"h":480} ], "battr": [1, 3, 5, 6, 8, 9, 13], "pos": 7, "api": [5] }, "displaymanager": "unity sdk", "displaymanagerver": "3750", "instl": 1, "tagid": "com.unity3d.ads.example-display", "bidfloor": 3.95, "secure": 1 }], "app": { "id": "2aa377f91oo12398465d6af383", "name": "Example Game: Chapter Two", "publisher": { "id": "189857700" }, "bundle": "com.devexample.thegamebundlename", "storeurl": "https://play.google.com/store/apps/details?id=com.devexample.thegamebundlename\u0026hl=en" }, "device": { "ua": "Mozilla/5.0 (Linux; Android 5.1.1; SM-J200H Build/LMY48B; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/64.0.3282.137 Mobile Safari/537.36", "geo": { "lat": 55.5492, "lon": 59.0456, "country": "USA", "city": "San Francisco", "type": 2, "utcoffset": 180 }, "source": { "pchain": "12abcd3456789:12345" }, "ip": "12.34.5.6", "devicetype": 4, "make": "samsung", "model": "SM-J200H", "os": "android", "osv": "5.1", "hwv": "samsung SM-J200H", "h": 540, "w": 960, "language": "ru", "carrier": "Tele2", "connectiontype": 2, "ifa": "dd92e219-68ae-43b9-bcb7-e6fb7557806e" }, "at": 1, "tmax": 200, "regs": {}, "ext": { "placementType":"nonrewarded", "Mute":false, "gameCategory":"Applications", "subGameCategory":"Tools", "sessionDepth":0 } }