Bidding Android iOS JS Media API 常见问题

腾讯优量汇 DSP-B 接口合作接入文档

文档版本 修订日期 修订说明
v3.19 2024-03-28 支持微信原生页广告
v3.18 2023-04-11 1. 请求协议新增搜索词字段 query,支持搜索广告
2. 点击上报新增重力加速度、屏幕角度变化宏参数及上报要求
3. 联调测试更新联调工具平台使用方法
4. 更新常见请求错误码列表
v3.17 2022-09-28 支持快应用广告
v3.16 2022-09-13 1. 请求协议新增请求请求校验字段相关参数:time_stamp、sign,新增请求校验字段说明和生成规则
2. 优化请求协议、请求响应字段说明
3. 优化点击上报说明,补充了不同交互方式的点击坐标上报要求
4. 更新竞败上报宏枚举值及说明
v3.15 2022-08-12 1. 优化请求协议字段说明
2. 请求响应新增安卓应用信息相关字段
3. 更新iOS端调起app store苹果应用商店跳转处理逻辑
v3.14 2022-07-20 1. 优化请求协议、请求响应字段说明
2. 调整转化上报完成字段,支持不作宏替换直接上报,更新事件上报时机及应用策略
3. 更新应用直达广告、小程序/小游戏广告跳转处理逻辑
4. 更新竞胜上报/竞败上报 AUCTION_PRICE 加密编码要求
v3.13 2022-06-24 完善点击上报的具体逻辑说明,新增点击坐标获取代码示例
v3.12 2022-06-06 支持Universal Link
v3.11 2022-05-24 支持微信小程序/小游戏广告
v3.10 2022-04-18 1.更新请求参数、响应字段说明
2.支持厂商应用商店下载类广告
3.新增广告点击交互处理流程
v3.9 2021-09-08 协议增加竞胜竞败上报支持

关于文档

对有APP流量变现需求但由于各种原因无法嵌入腾讯广告联盟SDK的开发者,腾讯广告联盟提供基于广告播放API的接口合作方式(以下简称“DSP-B”)。开发者应保证获得用户授权同意,由开发者收集并向腾讯提供如下字段。本文档详细介绍了广告播放API的运营对接流程和接口协议等内容。

背景知识

名词解释

技术规范

有关标准HTTP协议,可参考 RFC2616维基百科-HTTP 。有关URL编码,可参考RFC3986维基百科-Percent-encoding。有关JSON数据格式,可参考 JSON.ORG维基百科–JSON

对接流程

流程介绍

对接流程

前期准备: DSP-B接口合作以腾讯广告联盟运营人员(以下简称运营人员)邀请的方式发出,开发者在接受邀请后,需在运营人员指导下填写《DSP-B接入申请表》。

注意事项

广告播放API

腾讯广告联盟后台服务(以下简称联盟后台)通过广告播放API对外提供广告请求和数据上报服务。该API包含如下四个接口,调用流程见下文广告播放时序图。

通信方式

联盟后台与外部调用方的基础通信协议采用HTTP协议和HTTPS协议。

超时时间

不考虑网络链路(调用方与联盟后台服务器之间的传输链路)时延,对99%的请求,联盟后台能在200ms内响应。广告请求超时时间建议设置1秒;其他接口建议设置较大的超时时间,比如10秒。

编码方式

若无特殊说明,所有输入参数、返回结果的字节编码均使用UTF-8(无BOM头)。

HTTP请求

名称 必填 说明
X-Forwarded-For 用户设备的公网出口IPv4/IPv6地址,字符串形式,示例:14.17.22.37 或 2001:db8:85a3:8d3:1319:8a2e:370:7348。当广告请求由server发起时,该字段务必正确填写,否则将严重影响流量变现效果。
Referer 用户设备HTTP请求头中的Referer字段。

HTTP响应

广告请求接口

开屏广告位必须实时请求广告(实时是指在广告位即将展示给用户或已经展示给用户时),不允许缓存广告;其他广告位可以预请求广告并缓存起来,然后在合适的时机将广告曝光。预请求广告可能产生广告预算不足等一系列问题,从而影响流量变现效果,建议所有类型广告位实时请求广告。

广告请求接口-请求地址

http://mi.gdt.qq.com/api/v3

广告请求接口-请求数据

请求数据定义

可选参数填写原则:1. 首先保证取值正确;2. 在取值正确的前提下尽量填写。如不能获取,或不能保证取值正确性,则不填写,以免拉低流量质量,影响变现效果。

参数名称 类型 必填 限制 说明
api_version string 协议版本。
目前仅支持3.0及以上版本,建议使用最新版本
support_https int32 可能取值:
1 – 支持HTTPS并且需要HTTPS资源
是否支持HTTPS并且需要HTTPS资源。
当支持HTTPS并且需要HTTPS资源时,联盟后台保证返回的图片地址、曝光、点击、转化上报地址均使用HTTPS地址。
support_app_store int32 可能取值:
1 – 请求厂商应用商店下载类广告。
是否请求厂商应用商店下载类广告。
当该字段填1时,联盟后台可能返回厂商应用商店下载类广告,回包字段见market_url。
pos string 广告位相关信息。
该参数的值是一个经过url编码的json对象,见pos JSON对象。
media string 媒体相关信息。
该参数的值是一个经过url编码的json对象,见media JSON对象。
device string 用户设备相关信息。
该参数的值是一个经过url编码的json对象,见device JSON对象。
network string 用户设备网络相关信息。
该参数的值是一个经过url编码的json对象,见network JSON对象。
geo string 用户设备实时地理位置相关信息。
该参数的值是一个经过url编码的json对象,见geo JSON对象。
time_stamp int64 发起请求时的unix时间戳(精确到毫秒),请使用Asia/Shanghai时区。
sign string 请求校验字段。
sign是合作伙伴重要的身份标识,优量汇会对sign字段进行校验,请妥善保管好优量汇提供的生成sign的关键信息,防止泄露。
一旦发现泄露,请立即联系优量汇运营经理报备处理。
名称 类型 必填 限制 说明
id int64 广告位ID。
ad_count int32 请求广告数量不超过10。 请求广告数量。
last_ad_ids string 逗号分隔的广告id列表。 最近曝光过的广告。
联盟后台会过滤掉这些广告,不填写或填写错误可能导致短时间内多次请求返回的广告重复。
deep_link_version int32 可能取值:
1 - 请求应用直达广告。
是否请求应用直达广告。
当该字段填1且该媒体已开通应用直达权限时,联盟后台可能返回应用直达广告,回包字段见customized_invoke_url;
其它情况下(该字段未填或填其他值或未开通应用直达权限),联盟后台只返回非应用直达广告。
support_quick_app bool 可能取值:
true - 请求快应用广告。
false - 不请求快应用广告。
是否请求快应用广告。
当该字段填true时,联盟后台可能返回快应用广告,回包字段见quick_app_link。
support_wechat_canvas bool 可能取值:
true - 请求微信原生页广告。
false - 不请求微信原生页广告。
是否请求微信原生页广告。
当该字段填true时,联盟后台可能返回微信原生页广告,回包字段见wechat_canvas。
max_duration int32 视频广告最大播放时长,单位为秒。
min_duration int32 视频广告最小播放时长,单位为秒。
support_pkg string 格式要求:
中括号内填写多个包名string,包名间用逗号隔开,示例如下
["com.a","com.b","com.c",...]

长度要求:
包名数量小于等于200个,否则不生效
限制允许返回的应用包名集合。
如果该字段不为空,会严格根据包名集合返回广告
注:回传该字段可能会严重影响变现收益,如无特殊需求,不建议回传该字段
query string 搜索query词。申请开通搜索广告位请咨询优量汇运营经理。
注:不允许同时回传query和support_pkg。
名称 类型 必填 限制 说明
app_id string 在联盟平台创建媒体时分配的应用ID。
不填写或填写错误将不返回广告。
app_bundle_id string 可能取值:
1. android设备:使用package name
2. ios设备:使用bundle id
应用包名。
不填写或填写错误将不返回广告。请求填写包名要与注册媒体时填写保持一致,不一致将无广告返回。
名称 类型 必填 限制 说明
os string 可能取值:
1. ios(小写)
2. android(小写)
操作系统。
不填将不返回广告,填写错误会影响流量变现效果。
os_version string 三段式或两段式版本号。如果获取不到,填写unknown(小写)。 os版本。
不填将不返回广告,填写错误或填写unknown会影响流量变现效果。
model string 1. android设备:可调用系统接口android.os.Build.MODEL直接获得。
2. ios设备:系统接口返回值。
3. 如果获取不到,填写unknown(小写)。
设备型号。
不填将不返回广告,填写错误或填写unknown会影响流量变现效果。
注意:部分ios早期版本设备文档要求对系统接口返回原始值做转换,映射表见附录ios设备型号取值列表
manufacturer string 1. android设备:可调用系统接口android.os.Build.MANUFACTURER直接获得。如果获取不到,填写unknown(小写)。
2. ios设备:无需填写。
设备厂商。
安卓设备不填将不返回广告,填写错误或填写unknown会影响流量变现效果。
device_type int32 可能取值:
0 – 未知
1 – 手机(包括iTouch)
2 – 平板
3 – 电视
设备类型。
不填将不返回广告,填写错误或填写unknown会影响流量变现效果。
screen_width int32 设备竖屏状态时的屏幕宽,取设备物理像素。
screen_height int32 设备竖屏状态时的屏幕高,取设备物理像素。
orientation int32 是(激励视频广告位)
否(非激励视频广告位)
可能取值:
0 - 竖屏
90 - 横屏
APP横竖屏,激励视频广告位该参数为必填。
imei string 仅限安卓设备 android设备的imei,保留原始值。
建议在能获取的情况下填写,否则会严重影响流量变现效果。
imei_md5 string 32个字符,仅限安卓设备 android设备的imei(如果出现字母,转为小写),取md5sum摘要,摘要小写,32位。
该参数用来替补imei,两者传其一即可,强烈建议优先填写imei。
oaid string 仅限安卓设备 android设备的OAID,保留原始值。
建议在能获取的情况下填写,否则会严重影响流量变现效果。
部分厂商部分安卓系统版本提供,MSA官方链接为:http://msa-alliance.cn/
android_id string 16个字符,仅限安卓设备 android设备的Android ID,保留原始值。
建议在能获取的情况下填写,否则会严重影响流量变现效果。
android_id_md5 string 32个字符,仅限安卓设备 android设备的Android ID,取md5sum摘要,摘要小写。
该参数用来替补android_id,两者传其一即可,强烈建议优先填写android_id。
android_ad_id string 36个字符,仅限安卓设备 android设备的Android Advertising ID,保留原始值。大陆大部分设备无法获取,在保证取值正确有效的前提下填写,后续腾讯广告联盟会将其用于定向优化。
idfa string 36个字符,仅限ios设备 ios设备的idfa,保留原始值。
建议在能获取的情况下填写,否则会严重影响流量变现效果。
idfa_md5 string 32个字符,仅限ios设备 ios设备的idfa(如果出现字母,转为大写),取md5sum摘要,摘要小写,32位。
该参数用来替补idfa,两者传其一即可,强烈建议优先填写idfa。
device_start_sec string 设备启动时间,单位:秒(保留整数)
示例:"1600607106"
device_name_md5 string 设备名称的MD5值,取小写16进制的结果,长度为32个字节
示例:"e910dddb2748c36b47fcde5dd720eec1"
hardware_machine string 设备machine值,取值对齐device JSON对象的model字段
示例:"iPhone10,3"
physical_memory_byte string 物理内存,单位:字节
示例:"4047224832"
harddisk_size_byte string 硬盘大小,单位:字节
示例:"127938088960"
system_update_sec string 系统更新时间,单位:秒(保留6位小数)
示例:"1595214620.383940"
hardware_model string 仅限iOS设备 设备model值
示例:"D22AP"
country string 仅限iOS设备 国家
示例:"CN"
language string 仅限iOS设备 语言
示例:"zh-Hans-CN"
time_zone string 仅限iOS设备 时区
示例:"28800"
wx_api_ver int64 仅限Android设备 微信内部SDK版本。
详见附录微信小程序/小游戏广告处理逻辑
wx_installed bool 仅限iOS设备 是否已安装微信。
详见附录微信小程序/小游戏广告处理逻辑
opensdk_ver Android端为int64,iOS端为string 微信open SDK版本。
详见附录微信小程序/小游戏广告处理逻辑
mac string 路由器mac地址
wifiname string wifi名称
sd_free_space string 磁盘剩余空间,单位:字节

注:

(1)对安卓设备请求,imei、imei_md5、android_id、android_id_md5、oaid至少要填写其中一个

(2)对于iOS设备请求,idfa、idfa_md5、10个设备信息字段(device_start_sec~time_zone)三者至少填写一个,如果无idfa和idfa_md5则10个设备信息字段都必填

名称 类型 必填 限制 说明
connect_type int32 可能取值:
0 - 未知
1 - wifi
2 - 2G
3 - 3G
4 - 4G
5 - 4G免流
6 - 4G非免流
7 - 5G
8 - 以太网
联网方式。
不填写将无广告返回;填未知,会严重影响流量变现效果。
carrier int32 可能取值:
0 - 未知
1 - 移动
2 - 联通
3 - 电信
运营商。
不填写将无广告返回;填未知,会影响流量变现效果。
ip string 1.请回传客户端IP地址,不要回传服务端IP地址
2.优先上报IPV4地址,如果没有则上报IPV6地址
ua string 客户端WebView的UserAgent信息,需包含Mozilla或Dalvik
示例:Mozilla/5.0 (iPhone; CPU iPhone OS 9_1 like Mac OS X) AppleWebKit/601.1.46 (KHTML, like Gecko) Version/9.0 Mobile/13B143 Safari/601.1
名称 类型 必填 限制 说明
lat int32 用户原始GPS坐标的纬度*1,000,000。
该参数会用于基于地理位置的广告的定向,正确填写有助于提高流量变现效果。
lng int32 用户原始GPS坐标的经度*1,000,000。
该参数会用于基于地理位置的广告的定向,正确填写有助于提高流量变现效果。
location_accuracy double 经纬度精度半径,单位为米。
该参数会用于基于地理位置的广告的定向,正确填写有助于提高流量变现效果。

广告请求接口-请求校验字段

sign是合作伙伴重要的身份标识,优量汇会对sign字段进行校验,请妥善保管好优量汇接口人提供的生成sign的关键信息,防止泄露。一旦发现泄露,请立即联系优量汇接口人报备处理。

请求校验字段生成规则

sign 字段生成规则如下:
sign = hmac_sha256(secret, request_param)

请求校验字段生成示例

以下示例说明了如何生成请求校验字段 sign

假设生成 sign 的各个参数取值如下:
secret:LUqGS3BaEbe1O

device:{"device_type":1,"model":"rmx3366"}
media:{"app_bundle_id":"com.aaa.xxx","app_id":"1234456"}
network:{"connect_type":4}
pos:{"ad_count":1}
time_stamp:1662452225866

此时,request_param = "device={"device_type":1,"model":"rmx3366"}&media={"app_bundle_id":"com.aaa.xxx","app_id":"1234456"}&network={"connect_type":4}&pos={"ad_count":1}&time_stamp=1662452225866"

生成sign的代码示例如下

Mac sha256_HMAC = Mac.getInstance("HmacSHA256");
SecretKeySpec secret_key = new SecretKeySpec(secret.getBytes(StandardCharsets.UTF_8), "HmacSHA256");
sha256_HMAC.init(secret_key);
byte[] array = sha256_HMAC.doFinal(request_param.getBytes(StandardCharsets.UTF_8));
StringBuilder sb = new StringBuilder();
for (byte b : array) {
  sb.append(Integer.toHexString((b & 0xFF) | 0x100).substring(1, 3));
}
String sign = sb.toString();

这样我们就能生成 请求校验字段 sign = e319753299f12b4a06befc535350052da93fef1858c37d6525b469dc5ee7d555

广告请求接口-请求示例

广告请求接口-响应数据

响应数据定义

响应的JSON数据包含三部分内容,分别是返回码ret、返回码描述msg和数据data,如下表所示。未在本文档中说明但出现在响应中的字段,是腾讯内部系统接口,随时可能变更,请勿使用。

名称 类型 必填 限制 说明
ret int64 返回码。非0表示请求失败,处理措施详见附录广告请求返回码列表。流量方必须首先检查该参数,在没有发生错误的情况下,再去解析广告数据data。
msg string 解释ret返回码含义
data object 广告数据,见data JSON对象
名称 类型 必填 限制 说明
{pos.id} object 名称是本次请求的广告位ID。参数值是该广告位的广告数据,见{pos.id} JSON对象
名称 类型 必填 限制 说明
list Array 该数组的每个元素对应一条广告的数据,返回广告个数不超过请求广告个数;
数组元素(广告)定义见 list JSON数组元素(广告)
名称 类型 必填 限制 说明
ad_id string 广告ID
creative_id string 素材ID
ad_examine_type int32 可能取值:1 - 千人千面广告 特殊广告类型
impression_link string 曝光上报链接
video_view_link string 仅视频广告返回 视频播放信息上报链接
click_link string 点击上报链接(需要宏替换,详见点击上报请求数据部分)
interact_type int32 可能取值:
0 - 打开网页
1 - app下载
当广告被点击后,发生的交互行为类型。对不同交互类型的广告,处理方式有差异:
1. 可以根据该参数值进行不同方式的渲染
2. 该参数取值不同,点击上报返回数据的处理方式不同,详见点击上报响应数据部分
3.对app下载类型的广告还需要进行转化上报,详见转化上报部分
conversion_event JSON 转化上报地址,详见转化上报请求数据部分
crt_type int32 可能取值:
11 - 图片
20 - 视频
24 - 三小图
素材类型,该字段用来判断本次返回的主素材类型
img_url string 广告的图片url
img2_url string icon url
img_list Array 三图两文广告的三张小图url
img_width int32 广告图片宽
img_height int32 广告图片高
title string 广告标题
description string 广告描述
video_url string 视频url
video_width int32 视频宽度,单位像素
video_height int32 视频高度,单位像素
package_name string 安卓APP包名
app_id int64 ios应用id
video_duration int32 视频时长
video_file_size int32 视频文件大小,单位为KB
relation_target string 可能取值:
0 – 不限
1 – 定向未安装
2 – 定向已安装
广告的应用安装定向类型
customized_invoke_url string 应用直达url
universal_link string 仅iOS端返回 iOS Universal Link
quick_app_link string 仅Android端返回 快应用url
格式:hap://app//[path][?key=value]
market_url string 仅Android端返回 厂商应用商店下载页url
wechat_app_username string 小程序原始id,详见附录微信小程序/小游戏广告处理逻辑
wechat_app_path string 拉起小程序页面,详见附录微信小程序/小游戏广告处理逻辑
wechat_app_ext_data string 拉起小程序附加信息,详见附录微信小程序/小游戏广告处理逻辑
wechat_canvas string 微信原生页广告跳转信息微信原生页广告处理逻辑
package_url string 仅Android端返回 应用下载url
landing_page_url string 落地页url
app_info_url string 安卓应用信息url
app_name string 安卓应用名称
advertiser_name string 安卓应用开发者名称
app_version string 安卓应用版本
package_size_bytes int64 安卓应用包大小
permissions_url string 安卓应用权限列表
description_url string 安卓应用功能描述
privacy_agreement string 安卓应用隐私协议
ecpm int32 在开发者平台创建广告位时,勾选【实时竞价】价格策略后可调用
DSP-B接入媒体仅支持 服务端实时竞价(S2S Bidding)
单位“分”
获取本次请求优量汇的参竞价格
win_notice_url string 在开发者平台创建广告位时,勾选【实时竞价】价格策略后可调用 竞胜上报链接(需要宏替换,详见竞胜上报请求数据部分)
loss_notice_url string 在开发者平台创建广告位时,勾选【实时竞价】价格策略后可调用 竞败上报链接(需要宏替换,详见竞败上报请求数据部分)

广告请求接口-响应示例

HTTP/1.1 200 OK

{
    "ret":0,
    "msg":"",
    "data":{
        "8050018672826551":{
            "list":[
                {
                    "impression_link":"http://v.gdt.qq.com/gdt_stats.fcg?viewid=bSVdor67lmXY5!eoxbZOOOOb_CQu1rpTvJWGM8AVi0E3iy!2VnzgHLzz_dIL6pq5Fi8LxPtJYIBFM2jYvVXbDGMGQrr63raQ_9tzhiFUUlAjs1Bg_LUzJYNcxaOA!5MG!MwjlLYc!2CUmeGx6oWfp!BidFhL1ZzybbRTGcbUT1LynM1imRxQGexJkjBDHquCv7szfLd_ThR0S1cAqtlAIQ&i=1&os=2&datatype=json",
                    "click_link":"http://c.gdt.qq.com/gdt_mclick.fcg?viewid=bSVdor67lmXY5!eoxbZOOOOb_CQu1rpTvJWGM8AVi0E3iy!2VnzgHLzz_dIL6pq5Fi8LxPtJYIBFM2jYvVXbDGMGQrr63raQ_9tzhiFUUlAjs1Bg_LUzJYNcxaOA!5MG!MwjlLYc!2CUmeGx6oWfp!BidFhL1ZzybbRTGcbUT1LynM1imRxQGexJkjBDHquCv7szfLd_ThR0S1cAqtlAIQ&jtype=0&i=1&os=2&asi=%7B%22mf%22%3A%22Xiaomi%22%7D&acttype=0&s=%7B%22req_width%22%3A%22__REQ_WIDTH__%22%2C%22req_height%22%3A%22__REQ_HEIGHT__%22%2C%22width%22%3A%22__WIDTH__%22%2C%22height%22%3A%22__HEIGHT__%22%2C%22down_x%22%3A%22__DOWN_X__%22%2C%22down_y%22%3A%22__DOWN_Y__%22%2C%22up_x%22%3A%22__UP_X__%22%2C%22up_y%22%3A%22__UP_Y__%22%7D",
                    "interact_type":0,
                    "crt_type":11,
                    "title":"链家717,租房换新季!",
                    "description":"两室一厅两卫+大阳台,家用电器齐全,佣金每1000减200!",
                    "img_url":"http://pgdt.gtimg.cn/gdt/0/DAAPzYQAUAALQABZBZXLOKDKDSAgqS.jpg/0?ck=bb5fd85d2dfe45d89c73d52f6391905a",
                    "img2_url":"http://pgdt.gtimg.cn/gdt/0/DAAPzYQAEsAEsAAUBZXK6GCzdJLQFu.jpg/0?ck=9807f69989ad965535fae4448e63dbd0"
                },
                {
                    "impression_link":"http://v.gdt.qq.com/gdt_stats.fcg?viewid=!mq3jem6jprY5!eoxbZOODQykDLHprRMH65OvFKKvnuxmHadHDFZmHxCVhJgx4qdXJfEF3BzMO7ycM5WNA6vqTBcYqdnce!KjHDlc7j9XMPkPH7zXU5N9rEmO6tBdDvcoy5h9Q6V6NoZu3G8BRBT1vxgY5E3IlquQhNO0DqSWuOgpnXINM0Gbap7qjZMAzQ2LWZpHEZeu_Ix0wRx3Df14w&i=1&os=2&datatype=json",
                    "click_link":"http://c.gdt.qq.com/gdt_mclick.fcg?viewid=!mq3jem6jprY5!eoxbZOODQykDLHprRMH65OvFKKvnuxmHadHDFZmHxCVhJgx4qdXJfEF3BzMO7ycM5WNA6vqTBcYqdnce!KjHDlc7j9XMPkPH7zXU5N9rEmO6tBdDvcoy5h9Q6V6NoZu3G8BRBT1vxgY5E3IlquQhNO0DqSWuOgpnXINM0Gbap7qjZMAzQ2LWZpHEZeu_Ix0wRx3Df14w&jtype=0&i=1&os=2&asi=%7B%22mf%22%3A%22Xiaomi%22%7D&acttype=1&s=%7B%22req_width%22%3A%22__REQ_WIDTH__%22%2C%22req_height%22%3A%22__REQ_HEIGHT__%22%2C%22width%22%3A%22__WIDTH__%22%2C%22height%22%3A%22__HEIGHT__%22%2C%22down_x%22%3A%22__DOWN_X__%22%2C%22down_y%22%3A%22__DOWN_Y__%22%2C%22up_x%22%3A%22__UP_X__%22%2C%22up_y%22%3A%22__UP_Y__%22%7D",
                    "conversion_link":"http://t.gdt.qq.com/conv/alliance/api/conv?client=6&action_id=__ACTION_ID__&click_id=__CLICK_ID__&product_id=1106228530",
                    "interact_type":1,
                    "crt_type":11,
                    "title":"沙城传说",
                    "description":"经典传奇回归,开局一把木剑,打蜈蚣爆出屠龙刀,系统回收,过瘾",
                    "img_url":"http://pgdt.gtimg.cn/gdt/0/DAAEEh2AUAALQABQBZXZivCx-g1rXm.jpg/0?ck=5422e0280124288729a93a024896e7c5",
                    "img2_url":"http://pgdt.gtimg.cn/gdt/0/DAAEEh2AEsAEsAAXBZXZiXDY-kMKbV.jpg/0?ck=c6066c8bae5de0fad07ab0739852ea5f"
                }
            ]
        }
    }
}
HTTP/1.1 200 OK

{
    "ret":0,
    "msg":"",
    "data":{
        "7010946296282620":{
            "list":[
                {
                    "ad_id":"78064987",
                    "impression_link":"http://v.gdt.qq.com/gdt_stats.fcg?viewid=0UK1EIN9ibAzpwc26RfjJ1hUXwGgvOOvZLGy5ow!97_x!pE55QuV6QyA_KDCDBfW!u51XavIXZIS9IrLQAFrLyw7YqQr9r3w2tpmmqFlSoQ3a8trEKpgF1SgJdP_XP8aSjKJxWNbnuqC4yl7lRBTkB9ATQDfLYSj0wn0LSMH246WBhka14_39Xlm!NaokVnYq!opvRtU02dV5utkxBPFAH1UrPg6Clv_sC6qfM9iD48&i=1&os=1&datatype=json&xp=3",
                    "click_link":"http://c.gdt.qq.com/gdt_mclick.fcg?viewid=0UK1EIN9ibAzpwc26RfjJ1hUXwGgvOOvZLGy5ow!97_x!pE55QuV6QyA_KDCDBfW!u51XavIXZIS9IrLQAFrLyw7YqQr9r3w2tpmmqFlSoQ3a8trEKpgF1SgJdP_XP8aSjKJxWNbnuqC4yl7lRBTkB9ATQDfLYSj0wn0LSMH246WBhka14_39Xlm!NaokVnYq!opvRtU02dV5utkxBPFAH1UrPg6Clv_sC6qfM9iD48&jtype=0&i=1&os=1&acttype=0&s=%7B%22req_width%22%3A%22__REQ_WIDTH__%22%2C%22req_height%22%3A%22__REQ_HEIGHT__%22%2C%22width%22%3A%22__WIDTH__%22%2C%22height%22%3A%22__HEIGHT__%22%2C%22down_x%22%3A%22__DOWN_X__%22%2C%22down_y%22%3A%22__DOWN_Y__%22%2C%22up_x%22%3A%22__UP_X__%22%2C%22up_y%22%3A%22__UP_Y__%22%7D&xp=3",
                    "interact_type":0,
                    "crt_type":7,
                    "title":"翡翠原厂地直供,高性价比",
                    "description":"买翡翠的注意!这个APP源头直供,比实体店便宜一半",
                    "img_list":[
                        "http://pgdt.ugdtimg.com/gdt/0/DAAe7Y2ADkACWAAKBb0aNwCQwwHkGo.jpg/0?ck=6106dfc36bee5dd8dec60b6d60e2db43",
                        "http://pgdt.ugdtimg.com/gdt/0/DAAe7Y2ADkACWAAbBb0aNzBvw07kQd.jpg/0?ck=a31a8c84ca8eae23ba4e961d0b3f41d4",
                        "http://pgdt.ugdtimg.com/gdt/0/DAAe7Y2ADkACWAAdBb0aN2AqTuDmq3.jpg/0?ck=017d4621bee5af0afaacddda0135b72e"
],
                    "app_id":982906456
                }
            ]
        }
    }
}
具体情况请以线上返回为主

广告请求接口- 响应处理流程

HTTP响应状态码为200并且响应数据中返回码ret=0时,表示请求广告成功。当HTTP响应状态码不是200时,联盟后台建议立即发起广告请求重试但最多只能重试一次;其他异常情况,不允许重试。具体处理流程如下:

广告请求接口响应处理流程

曝光上报

当广告展示给用户并且满足腾讯广告联盟曝光有效性标准时,开发者需要实时将本次曝光事件上报给联盟后台。曝光有效性标准如下:

获取到的广告尽力曝光,不允许刻意舍弃某种类型的广告。每条广告只能曝光一次。以下情况可能导致联盟后台对广告播放事件不计费并影响对流量质量的评价,从而降低流量变现效果:

曝光上报-请求地址

曝光上报URL直接使用广告请求响应数据中的impression_link字段,该字段已经包含了完整的请求地址和请求数据(已经过URL编码),禁止开发者做任何修改。

曝光上报-请求数据

使用impression_link字段,无需开发者填写。

曝光上报-请求示例

GET http://v.gdt.qq.com/gdt_stats.fcg?viewid=JcOh4K3LVtyM36FJYvAKAF_yL7FjDsqIvTv5Okb!OqmRVZVS8grRgfb8mE9jYoS3BM_S5FP!mBZFagqd3pitSIXFLugPNNM75APKz15fpCA7Nk4H9DL2Ahm1KyByHV8GH2Hze4h6XRewMVpuIwReDjNtbh_alplvlZaYU3BNpH6EwUQ6YS9AO4d80Y!HEso908m3ktLbFLe6wzKcjP!ZTEGfycQ1SVBsYoeco3kALE8Q2OLoI!jjzgUFAII8BY_TUXTHvNtw!0BFSBqfcPivGUYAGavN3CsGjlNHDLISkrq4M4nBfKMOdhWSjiBSChpFUgxTRRG8Y64&datatype=json HTTP/1.1
Host: v.gdt.qq.com

曝光上报-响应数据

响应数据是JSON格式,包含两部分内容:返回码ret和返回码描述msg,如下表所示。

名称 类型 必填 限制 描述
ret int64 返回码,非0表示失败
msg string 返回码描述信息

曝光上报-响应示例

HTTP/1.1 200 OK

{
 "ret":0,
  "msg":""
}

曝光上报-响应处理流程

HTTP响应状态码为200并且ret=0时,表示上报成功;其他情况均表示失败。当HTTP响应状态码不是200时,联盟后台建议立即发起转化上报重试但最多只能重试一次;其他异常情况,不允许重试。

曝光上报接口响应处理流程

视频播放信息上报

对于视频广告,开发者需要在视频播放结束时,上报视频播放信息。在一次广告播放事件中用户可能多次播放视频,每次视频播放结束时,都要上报一次播放信息。以下情况可能导致联盟后台对广告播放事件不计费并影响对流量质量的评价,从而降低流量变现效果:

视频播放信息上报-请求地址

视频播放信息上报URL需要开发者对广告请求响应数据中video_view_link字段进行宏替换后得到。该字段包含了请求地址和部分请求数据(已经过URL编码),开发者需要进行宏替换将请求数据补充完整。

视频播放信息上报-请求数据

video_view_link中需要替换的宏:

名称 类型 必填 限制 说明
__VIDEO_TIME__ int32 视频总时长,单位为秒
__BEGIN_TIME__ int32 视频播放开始时间,单位为秒。如果视频从头开始播放,则为0。
__END_TIME__ int32 视频播放结束时间,单位为秒。如果视频播放到结尾,则等于视频总时长。
__PLAY_FIRST_FRAME__ int32 视频是否从第一帧开始播放。从第一帧开始播放,则为1;否则,为0。
__PLAY_LAST_FRAME__ int32 视频是否播放到最后一帧。播放到最后一帧,则为1;否则,为0。
__SCENE__ int32 视频播放场景。推荐场景如下:
1 - 在广告曝光区域播放;
2 - 全屏竖屏、只展示视频;
3 - 全屏竖屏、屏幕上方展示视频、下方展示广告推广目标网页(参考附录广告渲染样式示例,仅适用于交互类型是打开网页的广告,目标网页由点击上报返回数据中取得,详见点击上报响应数据部分);
4 - 全屏横屏、只展示视频;
0 - 其它开发者自定义场景
__TYPE__ int32 播放类型。
1 - 第一次播放;
2 - 暂停后继续播放;
3 - 重新开始播放。
__BEHAVIOR__ int32 播放行为。
1 - 自动播放(推荐联网方式为wifi或4G时,设置视频自动播放);
2 - 点击播放。
__STATUS__ int32 播放状态。
0 - 正常播放;
1 - 视频加载中;
2 - 播放错误。

视频播放信息上报-请求示例

GET http://vr.gdt.qq.com/gdt_stats.fcg?&datatype=json&viewid=3fOzNrVLMUCYOAUpt_U94oWRGcW_STX5fYS7sdOMs46chbddtzrkhTTd6kAvaNL5L6DoWzgO5VXF83EaF!O5MNk4vq!Un!q1uRjaYt6WQ5y_Fen1gKkVr6f4jp8u9bh1oy5h9Q6V6NoZu3G8BRBT1vxgY5E3IlquQhNO0DqSWuNYHu2KUFcRnQerHewVpZwDLWZpHEZeu_Jiadr1uWzZAA&video=%7b%22vt%22%3a%2215%22%2c%22bt%22%3a%220%22%2c%22et%22%3a%225%22%2c%22bf%22%3a%221%22%2c%22ef%22%3a%220%22%2c%22pp%22%3a%221%22%2c%22pa%22%3a%221%22%2c%22pb%22%3a%221%22%2c%22ps%22%3a%220%22%7d HTTP/1.1
Host: v.gdt.qq.com

视频播放信息上报-响应数据

响应数据是JSON格式,包含两部分内容:返回码ret和返回码描述msg,如下表所示。

名称 类型 必填 限制 描述
ret int64 返回码,非0表示失败
msg string 返回码描述信息

视频播放信息上报-响应示例

HTTP/1.1 200 OK

{
  "ret":0,
  "msg":""
}

视频播放信息上报-响应处理流程

HTTP响应状态码为200并且ret=0时,表示上报成功;其他情况均表示失败。当HTTP响应状态码不是200时,联盟后台建议立即发起视频播放信息上报重试但最多只能重试一次;其他异常情况,不允许重试。

视频播放信息上报接口响应处理流程

点击上报

当广告交互区域(对大部分广告,可以是整个广告所在区域;对某些广告,如视频广告,可以是一个局部区域,比如一个出现在视频下方的“查看详情”按钮,参考附录广告渲染样式示例视频广告渲染示例)被用户点击时,开发者需要实时将本次点击事件上报给联盟后台并尽力引导用户到达广告目标地址(广告推广商品的网页地址或APP下载地址)。对联盟后台点击上报接口的1次调用,即可实现点击事件上报,并从响应数据中获得广告目标地址。用户发生N次点击则进行N次点击上报,禁止用户点击一次,但进行多次点击上报。以下情况可能导致联盟后台对广告播放事件不计费或影响>对流量质量的评价,从而降低流量变现效果:

点击上报-请求地址

点击上报URL需要开发者对广告请求响应数据中click_link字段进行宏替换后得到。该字段包含了请求地址和部分请求数据(已经过URL编码),开发者需要进行宏替换将请求数据补充完整。

点击上报-请求数据

开发者在广告点击时需要捕获用户点击坐标,该值将在联盟后台用来帮助提升用户点击率,从而提高开发者收入。
如下图所示,坐标是指相对于实际广告位(即完整广告容器)左上角的坐标,箭头方向为正坐标方向,其中针对全屏类广告,实际广告位大小即等于屏幕大小。

点击坐标系

click_link中以下宏都需要替换,如无法获取坐标时,请替换为-999。
其中,针对点击坐标、实际广告位的宽/高共6个宏,Anrdoid端需使用 逻辑像素(dp) 作为单位,iOS端需使用 pt 作为单位,如果单位错误会严重影响流量变现效果。
具体处理逻辑,开发者可参考下方点击上报-坐标获取 的代码示例。
备注:逻辑像素(dp) = 物理像素(px) / 屏幕密度(dpi),使用逻辑像素作为单位可消除Android端不同分辨率手机屏幕导致的坐标差异。

宏名称类型必填描述限制
__WIDTH__int32实际广告位的宽(完整广告位区域,不只是素材展示区域)
__HEIGHT__int32实际广告位的高(完整广告位区域,不只是素材展示区域)
__DOWN_X__int32当SLD=0,1,3,6时必填以广告容器左上角为原点,用户手指按下时的横坐标。请正确获取有效值并替换,如无法获取时,需替换为-999。
当替换为无效值(非数字格式或取值异常)或未替换时,会严重影响广告变现收益。

备注:
针对摇一摇,由于双端加速度单位不同:Android系统单位为m/s2,iOS系统单位为G。
因此数据处理方式不同:Android端乘以100取整,iOS端乘以980取整。

针对扭一扭,计算的扭动角度是对比扭动前手机初始位置,而非水平或垂直的物理位置。
扭一扭的x、y、z轴方向和扭动角度的正负可参照下方图示。
__DOWN_Y__int32当SLD=0,1,3,6时必填以广告容器左上角为原点,用户手指按下时的纵坐标。
__UP_X__int32当SLD=0,1,3,6时必填以广告容器左上角为原点,用户手指抬起时的横坐标。
__UP_Y__int32当SLD=0,1,3,6时必填以广告容器左上角为原点,用户手指抬起时的纵坐标。
__X_MAX_ACC__int32当SLD=2时必填用户摇动点击时x轴加速度峰值。
Android端乘以100取整,iOS端乘以980取整。
__Y_MAX_ACC__int32当SLD=2时必填用户摇动点击时y轴加速度峰值。
Android端乘以100取整,iOS端乘以980取整。
__Z_MAX_ACC__int32当SLD=2时必填用户摇动点击时z轴加速度峰值。
Android端乘以100取整,iOS端乘以980取整。
__TURN_X__int32当SLD=5时必填对比扭动前初始位置,扭动触发点击时的x轴扭动角度,为-180到180的整数。
__TURN_Y__int32当SLD=5时必填对比扭动前初始位置,扭动触发点击时的y轴扭动角度,为-180到180的整数。
__TURN_Z__int32当SLD=5时必填对比扭动前初始位置,扭动触发点击时的z轴扭动角度,为-180到180的整数。
__TURN_TIME__int32当SLD=5时必填扭动触发点击时扭动的总时间(单位毫秒,保留整数)。
即最后一次监听到3个方向扭动角度均小于±5度,到点击触发的时间。
__SLD__int32广告交互方式,可能取值:
0 - 常规触屏点击
1 - 滑动点击
2 - 摇一摇
3 - 自定义手势
5 - 扭一扭
6 - 擦除
当SLD=0,1,3,6时,需要上报点击坐标参数。
当SLD=2(摇一摇)时,需要上报重力加速参数。
当SLD=5(扭一扭)时,需要上报屏幕角度变化参数。

扭一扭方向图示
针对扭一扭x轴、y轴、z轴的方向,以及各个方向上扭动角度的正负可参照下图。

扭一扭方向图示

点击上报-请求示例

GET http://c.gdt.qq.com/gdt_mclick.fcg?viewid=JcOh4K3LVtyM36FJYvAKAF_yL7FjDsqIvTv5Okb!OqmRVZVS8grRgfb8mE9jYoS3BM_S5FP!mBZFagqd3pitSIXFLugPNNM75APKz15fpCA7Nk4H9DL2Ahm1KyByHV8GH2Hze4h6XRewMVpuIwReDjNtbh_alplvlZaYU3BNpH6EwUQ6YS9AO4d80Y!HEso908m3ktLbFLe6wzKcjP!ZTEGfycQ1SVBsYoeco3kALE8Q2OLoI!jjzgUFAII8BY_TUXTHvNtw!0BFSBqfcPivGUYAGavN3CsGjlNHDLISkrq4M4nBfKMOdhWSjiBSChpFUgxTRRG8Y64&jtype=0&i=1&acttype=1&s=%7B%22req_width%22%3A%22250%22%2C%22req_height%22%3A%22100%22%2C%22width%22%3A%22300%22%2C%22height%22%3A%22120%22%2C%22down_x%22%3A%22100%22%2C%22down_y%22%3A%2250%22%2C%22up_x%22%3A%22100%22%2C%22up_y%22%3A%2250%22%7D HTTP/1.1
Host: c.gdt.qq.com

点击上报-坐标获取

针对Android/iOS端获取点击坐标的方式与处理逻辑,开发者可参考以下代码示例

1.Android端
Android端的按下、抬起坐标原点在广告容器左上角,建议重写广告容器ViewGroup的dispatchTouchEvent方法获取按下、抬起的点击坐标,然后return super.dispatchTouchEvent(event),不会影响原来dispatchTouchEvent方法逻辑。
以上方的点击坐标示意图为例,重写绿色部分广告容器的dispatchTouchEvent方法,容器内触摸事件坐标均可以获取,当红色按钮点击事件触发时上报刚刚获取的点击坐标。

Android代码示例

// 保存按下、抬起坐标
int startX,startY,endX,endY;
// 重写广告容器ViewGroup的dispatchTouchEvent方法,获取按下、抬起坐标
@Override
public boolean dispatchTouchEvent(MotionEvent event) {
    switch (event.getAction()) {
        // PxUtil.pxToDp是伪代码,需要开发者实现
        case MotionEvent.ACTION_DOWN:
            // 获取按下的坐标,转换成逻辑像素(dp)
            startX = PxUtil.pxToDp(event.getX());
            startY = PxUtil.pxToDp(event.getY());
            break;
        case MotionEvent.ACTION_UP:
            // 获取抬起的坐标,转换成逻辑像素(dp)
            endX = PxUtil.pxToDp(event.getX());
            endY = PxUtil.pxToDp(event.getY());
            break;
    }
    return super.dispatchTouchEvent(event);
}
// 点击事件触发时上报坐标
public void onBtnClick(View view) {
    ......
    // reportClickCoordinate是伪代码,需要开发者实现
    reportClickCoordinate(startX, startY, endX, endY);
}

2.iOS端
iOS的按下、抬起坐标需要通过[UITouch loactionInView:]方法来进行坐标转换,即在被触发点击事件的UITouch对象的对应方法。其中,locationInView的传入参数为广告容器,不论是半屏广告还是全屏广告,即上图中绿色部分。
以上方的点击坐标示意图为例,如果事件绑定在红色按钮区,需要取到红色按钮的UITouch对象,触发对应的loactionInView方法获取坐标。

iOS代码示例

- (void)touchesBegan:(NSSet<UITouch *> *)touches withEvent:(UIEvent *)event
{
    [super touchesBegan:touches withEvent:event];
    // 按下坐标获取方法
    CGPoint beginPoint = [[touches anyObject] locationInView:self.adView]; // 这里的View填写广告的View。如果是半屏广告就填写半屏的View,如果是全屏广告就填写全屏广告的View
}

- (void)touchesEnded:(NSSet<UITouch *> *)touches withEvent:(UIEvent *)event
{
    [super touchesEnded:touches withEvent:event];
    // 抬起坐标获取方法
    CGPoint endPoint = [[touches anyObject] locationInView:self.adView];  // 这里的View填写广告的View。如果是半屏广告就填写半屏的View,如果是全屏广告就填写全屏广告的View

    // 广告距离屏幕左上角的坐标获取方法
    CGRect adViewToScreenOriginRect = [self.adView convertRect:self.adView.frame toView:nil];
}<

点击上报-响应数据

优量汇DSP-B合作目前已支持在广告请求接口响应数据中返回广告跳转链接,不依赖点击上报响应数据,建议开发者使用最新版本。

针对不同类型广告的点击交互处理流程,可参考附录广告点击交互处理流程无需参考依赖点击上报响应进行跳转的逻辑

点击上报-响应处理流程

当发生以下情况时,联盟后台建议立即发起点击上报重试但最多只能重试一次;其他异常情况,不允许重试。

点击上报接口响应处理流程

转化上报

转化上报-请求地址

转化上报URL从广告请求响应数据中conversion_event字段得到,该字段是一个JSON对象,包含了本次返回的广告所需要的上报URL,实际回包中可能仅包含其中一个或几个事件的上报链接,每个key对应的事件类型如下表所示:

key 事件类型 上报时机
app_installed 应用已安装 广告定向条件为定向未安装(relation_target=1)但用户实际已安装应用时
app_not_installed 应用未安装 广告定向条件为定向已安装(relation_target=2)但用户实际未安装应用时
deeplink_invoke 尝试调起deeplink 用户点击应用直达广告后,尝试调用 universal_link 或 customized_invoke_url 时
deeplink_success deeplink调起成功 Android端:调用 customized_invoke_url 5秒后,检测开发者的app(即发起deeplink调起的宿主app)是否在后台,当在后台时上报唤起成功
iOS端:调用universal_link 或 customized_invoke_url 后,iOS系统接口返回结果显示应用直达未被系统弹窗取消时,上报唤起成功
download_started 开始下载 用户点击或自动下载触发时
download_finished 下载完成 下载任务完成时
install_finished 安装完成 安装动作执行时

转化上报- 请求示例

"conversion_event": {
    "app_installed":  // 应用已安装
    "https://sdk.e.qq.com/open/v1.1/report/api_data?data=CAIaQgj1hNLgnjASJGZkZWY2ZmNkLWYyZmYtNWU3OS1kZmZmLWVlZTZkN2ZlODZiMRoAKgQKABgBMAI4jrDxr5y%2FuAxACQ%3D%3D&sign=530913c34810ee1e9f460a7942f8aea6",

    "app_not_installed":  // 应用未安装
    "https://sdk.e.qq.com/open/v1.1/report/api_data?data=CAIaQgj1hNLgnjASJGZkZWY2ZmNkLWYyZmYtNWU3OS1kZmZmLWVlZTZkN2ZlODZiMRoAKgQKABgAMAI4jrDxr5y%2FuAxACQ%3D%3D&sign=d2edf359423e61ea51dbbe2bd9fcd211",

    "deeplink_invoke":  // 尝试调起deeplink
    "https://t.gdt.qq.com/conv/alliance/api/conv?client=6&action_id=245&click_id=gzva6zjxuuzoy01",

    "deeplink_success":  // deeplink调起成功
    "https://t.gdt.qq.com/conv/alliance/api/conv?client=6&action_id=246&click_id=gzva6zjxuuzoy01",

    "download_started":  // 开始下载
    "https://t.gdt.qq.com/conv/alliance/api/conv?client=6&action_id=5&click_id=gzva6zjxuuzoy01",

    "download_finished":  // 下载完成
    "https://t.gdt.qq.com/conv/alliance/api/conv?client=6&action_id=7&click_id=gzva6zjxuuzoy01",

    "install_finished":  // 安装完成
    "https://t.gdt.qq.com/conv/alliance/api/conv?client=6&action_id=6&click_id=gzva6zjxuuzoy01"
}

转化上报-响应处理流程

HTTP响应状态码为200时,表示上报成功;其他情况均表示失败。当HTTP响应状态码不是200时,联盟后台建议立即发起转化上报重试但最多只能重试一次;其他异常情况,不允许重试。

转化上报接口响应处理流程

转化上报-应用安装上报与过滤策略应用

为保证广告的转化效果,广告主往往会选择已安装或未安装定向。因此优量汇强烈建议开发者在曝光广告前,判断广告是否存在安装定向(即relation_target=1或2),当广告存在定向时需判断广告要求定向与用户实际应用安装情况是否符合,广告对应app应用可根据回包中的package_name字段获取。如果符合预期则展示广告,否则需要将广告过滤。详细逻辑请参考下方示意图

同时为提升后续广告定向的效果,当广告定向与用户实际应用安装情况不符合时,建议开发者上报应用已安装(conversion_event对象中的 app_installed URL)或 应用未安装(conversion_event对象中的 app_not_installed URL)

示例:

应用安装信息上报&曝光前过滤逻辑

竞胜上报

竞胜上报-请求地址

竞胜上报URL需要开发者对广告请求响应数据中win_notice_url字段进行宏替换后得到。该字段包含了请求地址和部分请求数据(已经过URL编码),开发者需要进行宏替换将请求数据补充完整。

竞胜上报-请求数据

win_notice_url中需要替换的宏:

宏名称 类型 必填 限制 描述
__AUCTION_PRICE__ int32 单位“分”
要求使用RSA加密算法进行加密,之后进行base64编码,编码后再进行URL编码
申请RSA加密公钥请咨询优量汇技术支持或运营经理
竞胜价格

竞胜上报-响应说明

开发者不必等待竞胜url的返回。正常情况下,HTTP响应状态码为200;其他异常情况,不允许重试。

竞败上报

竞败上报-请求地址

竞败上报URL需要开发者对广告请求响应数据中loss_notice_url字段进行宏替换后得到。该字段包含了请求地址和部分请求数据(已经过URL编码),开发者需要进行宏替换将请求数据补充完整。

竞败上报-请求数据

loss_notice_url中需要替换的宏:

宏名称 类型 必填 限制 描述
__AUCTION_PRICE__ int32 单位“分”
要求使用RSA加密算法进行加密,之后进行base64编码,编码后再进行URL编码
申请RSA加密公钥请咨询优量汇技术支持或运营经理
竞胜方报价
__AUCTION_LOSS__ int32 1 有广告回包,竞败(优量汇不是本次竞价的最高出价方)
2 无广告回包(无填充、超时等原因)
101 有广告回包,但没有参与竞价(无比价机会)
10001 其他(优量汇有广告回包)
腾讯联盟失败原因
__AUCTION_SEAT_ID__ int32 1 输给优量汇其它非bidding广告位
2 输给第三方ADN
3 输给自售广告主
4 输给优量汇其它bidding广告位
竞胜方ID

竞败上报-响应说明

开发者不必等待竞败url的返回。正常情况下,HTTP响应状态码为200;其他异常情况,不允许重试。

联调测试

联调说明

附录

DSP-B基础数据类型定义

类型 含义
bool 布尔型
int32 32位有符号整数
int64 64位有符号整数
double 双精度浮点型
string 字符串
object JSON对象类型

广告请求返回码列表

当无广告返回时,对照错误码,首先检查填写逻辑,常见问题如下:

常见返回错误码如下,查询其他返回错误码可点击链接

错误码 说明
100133 请求中包含无效的广告位
102006 没有匹配到合适的广告
104014 原始idfa无效
104015 imei无效
104017 android id无效
107005 请求中app_id不匹配
107011 请求中的操作系统类型与广告位在联盟平台的设置不匹配
107033 请求中缺少合法的设备id
107051 解析请求中设备启动时间device_start_sec字段失败
107054 解析请求中设备名称的MD5值device_name_md5字段失败
107073 请求签名校验不通过
107074 请求没有携带签名信息
109512 没有合适的素材规格

广告点击交互处理流程

请求接口响应返回相关URL说明

不同类型广告返回的URL

注:
(1) 广告请求响应 interact_type=0 是打开网页类广告,interact_type=1 是APP下载类广告。
(2) iOS设备上所有广告都是打开网页类广告。

跳转URL字段 Android
APP下载类广告
Android
打开网页类广告
iOS
打开网页类广告
universal_link × ×
customized_invoke_url
quick_app_link × ×
market_url × ×
wechat_app_username
wechat_app_path
×
wechat_canvas
package_url × ×
app_id × ×
landing_page_url

点击交互处理逻辑

1.Android端

(1) 整体逻辑

Android端广告点击交互处理逻辑

(2) APP下载类广告(interact_type=1)

(3) 打开网页类广告(interact_type=0)

跳转url优先级:customized_invoke_url > quick_app_link > wechat_app_username / wechat_app_path > wechat_canvas > landing_page_url

2.iOS端

(1) 整体逻辑

iOS端广告点击交互处理逻辑

(2) 打开网页类广告(interact_type=0)

应用直达广告处理逻辑

权限申请

应用直达广告是一种特殊形式的广告形式。需要开发者具有一定的处理能力才能确保直达率满足平台的要求。因此,此类广告只针对部分开发者开放权限,并需要配合完成审核验证,才能准许播放。具体的申请方式,可与联盟对接运营接口人联系获取。

请求处理

在请求环节,pos JSON对象中的deep_link_version字段需要填写1,只有填写1的情况下才可能请求到应用直达广告。
在响应环节, list JSON数组元素(广告)中的2个字段需要处理:

应用广告过滤处理

应用直达类广告为保证直达率,部分广告主往往会选择已安装或未安装定向。优量汇强烈建议开发者在曝光广告前判断广告定向条件与用户真实的应用安装情况是否符合,如果符合预期则展示广告,否则需将广告过滤,相关逻辑详见 转化上报-应用安装上报与过滤策略应用

点击处理

在响应环节, list JSON数组元素(广告)中的 universal_link 或 customized_invoke_url 是跳转至广告对应app应用的url。当用户发生点击时,需要正常进行点击的上报,并调用上述字段进行跳转。当唤起目标app失败时,则调用 landing_page_url 进行跳转作为兜底处理

转化处理

为追踪分析媒体或广告位的应用直达调起效果,需要开发者上报两个相关事件:应用直达广告尝试唤起APP、应用直达广告唤起APP成功。相关逻辑详见 转化上报

上报正常的情况下,尝试上报的次数-唤起成功的次数=唤起失败的次数。

联调测试

联调测试时,针对开通了应用直达类广告权限的开发者,除了常规的联调测试外,需要额外进行上文中广告过滤处理、点击处理和转化处理中要求的测试。

厂商应用商店下载类广告处理逻辑

请求处理

在请求环节,请求参数中的 support_app_store 字段需要填写1,只有填写1的情况下才可能请求到厂商应用商店下载类广告。
在响应环节,list JSON数组元素(广告)中的1个字段需要处理:

点击处理

在响应环节,list JSON数组元素(广告)中的 market_url 是厂商应用商店下载页面的url。当用户发生点击时,需要正常进行点击上报,并调用market_url,跳转至厂商应用商店内页面。

联调测试

联调测试时,需针对上述请求处理、厂商应用商店下载页面url的调起、点击处理中的要求进行测试。

微信小程序/小游戏广告处理逻辑

微信小程序/小游戏广告是指用户点击广告后,将跳转至微信打开微信小程序/小游戏,在微信内部发生后续的行为转化。优量汇新版本DSP-B协议文档已支持微信小程序/小游戏广告,开发者可按照以下方式接入微信小程序/小游戏广告。

前置条件

开发者接入微信小程序/小游戏广告前,需要

请求参数

在请求环节,device JSON对象中的下列字段(均可通过微信openSDK提供的接口获取到)需要为必填:

1.Android端

2.iOS端

当校验符合要求时,可能请求到微信小程序/小游戏广告,其中openSDK版本要求 Android端 >= 5.3.1,iOS端 >= 1.8.6。不回传opensdk_ver将不返回微信小程序/小游戏广告
上述字段均可通过openSDK提供的接口获取,回传上述字段可优化微信小程序/小游戏广告转化效果,提升变现收益

响应字段

在响应环节,list JSON数组元素(广告)中的3个字段需要处理:

开发者可调用openSDK并填写上述参数后,调起微信进入对应小程序页面,其中调用open SDK需要的字段 拉起小程序的类型 miniProgramType 默认填写0(正式版),因此不包括在响应字段内。

调用openSDK跳转微信小程序的具体方式可参考iOS流量指引Android流量指引

openSDK调用示例:

WXLaunchMiniProgram.Req req = new WXLaunchMiniProgram.Req();
req.path = "wechat_app_path值";
req.userName = "wechat_app_username值";
req.extData = "wechat_app_ext_data值";
api.sendReq(req);

微信原生页广告处理逻辑

微信原生页广告是指用户点击广告后,将跳转至微信打开原生页,在微信内部发生后续的行为转化。优量汇新版本DSP-B协议文档已支持微信原生页广告,开发者可按照以下方式接入微信原生页广告。

前置条件

与微信小程序/小游戏广告条件相同,详见微信小程序/小游戏广告处理逻辑

请求参数

在请求环节,pos JSON对象中的下列字段必填:

同时device JSON对象中的下列字段(均可通过微信openSDK提供的接口获取到)需要为必填:

1.Android端

2.iOS端

响应字段

在响应环节,list JSON数组元素(广告)中的1个字段需要处理:

openSDK调用方式

WXOpenBusinessView.Req req = new WXOpenBusinessView.Req();
req.businessType = "nativeOpenAdCanvas";  // 固定值
req.extInfo = "wechat_canvas值";
boolean ret = api.sendReq(req);

快应用广告处理逻辑

请求处理

在请求环节,pos JSON对象中的support_quick_app字段需要填写true,只有填写true的情况下才可能请求到快应用广告。
在响应环节,list JSON数组元素(广告)中的1个字段需要处理:

点击处理

在响应环节,list JSON数组元素(广告)中的 quick_app_link 是快应用的url。当用户发生点击时,需要正常进行点击上报,并调用quick_app_link,跳转至快应用页面。当调起快应用失败时,则调用 landing_page_url 进行跳转作为兜底处理

联调测试

联调测试时,需针对上述请求处理、快应用url的调起、点击处理中的要求进行测试。

ios设备型号取值列表

系统返回原始值 取值 系统返回原始值 取值 系统返回原始值 取值
iPhone1,1 iPhone 1 iPad1,1 iPad iPod1,1 iPod Touch 1
iPhone1,2 iPhone 3G iPad2,1 iPad 2 iPad4,7 iPad Mini 3
iPhone2,1 iPhone 3GS iPad2,2 iPad 2 iPad4,8 iPadMini 3
iPhone3,1 iPhone 4 iPad2,3 iPad 2 iPad4,9 iPad Mini 3
iPhone3,2 iPhone 4 iPad2,4 iPad 2 iPad5,1 iPad Mini 4
iPhone3,3 iPhone 4 iPad3,1 iPad 3 iPad5,2 iPad Mini 4
iPhone4,1 iPhone 4S iPad3,2 iPad 3 iPad5,3 iPad Air 2
iPhone5,1 iPhone 5 iPad3,3 iPad 3 iPad5,4 iPad Air 2
iPhone5,2 iPhone 5 iPad3,4 iPad 4 iPod2,1 iPod Touch 2
iPhone5,3 iPhone 5c iPad3,5 iPad 4 iPod3,1 iPod Touch 3
iPhone5,4 iPhone 5c iPad3,6 iPad 4 iPod4,1 iPod Touch 4
iPhone6,1 iPhone 5s iPad2,5 iPad Mini iPod5,1 iPod Touch 5
iPhone6,2 iPhone 5s iPad2,6 iPad Mini iPod6,1 iPod Touch 6
iPhone7,1 iPhone 6 Plus iPad2,7 iPad Mini i386 32-bit Simulator
iPhone7,2 iPhone 6 iPad4,1 iPad Air x86_64 64-bit Simulator
iPhone8,1 iPhone 6s iPad4,2 iPad Air
iPhone8,2 iPhone 6s Plus iPad4,3 iPad Air
iPhone8,4 iPhone SE iPad4,4 iPad Mini 2
iPhone9,3 iPhone 7 iPad4,5 iPad Mini 2
iPhone9,4 iPhone 7 Plus iPad4,6 iPad Mini 2

广告渲染样式示例

原生和开屏广告渲染示例
视频广告播放示例
三小图广告渲染示例
 文档反馈

腾讯公司 版权所有