Skip to main content

响应信息(BidResponse)

BidResponse 主要包括以下几个对象request_id、code、msg、Ad, 该结构体主要用来保存广告响应的信息

层级关系如下:

表格描述如下:

字段名称类型必填描述示例
request_idstring请求IDrequest_id= e9de2c34db51f0bf850f76a7facadf4c
codeint32请参考错误码说明章节code = 0
msgstring请参考错误码说明章节err_msg = there is no ad return
adsarray Ad返回的广告物料信息见下述表格
cooperation_extCooperationExt联运合作拓展字段见下述表格

6.3.1. Ad#

Ad 用来保存广告物料信息,用户行为上报链接。

字段名称类型必填描述示例
pos_idint64资源位idpos_id = 10055
priceint32广告出价, CPM, 单位:分。
针对开通了竞价能力的媒体使用
price = 7798
cridstring创意idcrid = 45821
nurlstring竞得回调 url
针对开通了竞价能力的媒体使用
(v2.1.6及之后版本提供该链接;v2.1.8及之后版本提供win_code、adn_id、winner_bid_price的上报)
详见 7.8. 竞价上报
https://api.ykyrtbsz.qq.com/api/v1/win_notice?request_id=2419fc8c-b8e0-4bf8-93c9-e7f0b7c1880c¶m=OO3G-0g=&is_test=2&win_code=_WIN_CODE_&adn_id=_ADN_ID_&winner_bid_price=_WINNER_BID_PRICE_&fsq_score=NQ==&fsq_risk_type=MA==
admAdm广告物料信息详见6.3.2. Adm
trackingTracking用户行为跟踪链接详见6.3.3. Tracking

6.3.2. Adm#

Adm 用来保存广告物料信息

字段名称类型必填描述示例
templateint64创意类型, 对应的游可赢广告管理平台的模板ID,详见:6.3.5 广告模板说明100
creative_contentstring创意内容, json格式。
各个广告模板的创意内容详见:6.3.5 广告模板说明
landing_pagestring落地页,点击广告跳转到一个 H5 页面
deep_link_urlstringdeep link,直接拉起设备本地应用的链接wx82dd7436af5db835://
download_urlstring下载链接,应用的下载地址。安卓是 APK 下载地址, iOS 是应用商店地址https://dlied4.myapp.com/myapp/1105636778/cos.release-75264/10162638_com.tencent.tmgp.wuxia_a1314557_0.0.32_S68lZA.apk
apk_md5stringAPK md5,应用包的 md5 值,用来校验链接下载的包和广告下发的包的一致性bb21d2d80bd7a38e1f7ad54bb5dfdc1948a40c4d
app_namestring应用名称DNF手游
app_icon_urlstring应用图标https://tiem-cdn.qq.com/o2/images/77d07969bad45a178f56b5b69d4e7e46.jpg
package_namestring应用包名com.tencent.tmgp.dnfmobile
developerstring合规信息中的开发者信息深圳市腾讯计算机系统有限公司
permission_desc_urlstring合规信息中的权限说明页面URLhttps://game.qq.com/contract.shtml
privacy_policy_urlstring合规信息中的隐私政策页面URLhttps://game.qq.com/privacy_guide.shtml?ADTAG=gamepcbottom
app_versionstring合规信息中的最新版本号7.6.53
app_update_timestring合规信息中的应用更新时间2021-05-25 00:00:00
delivery_typeint32优先跳转方式
1 跳转下载页
2 跳转H5落地页
2
promoted_typeint32广告推广类型
2 表示下载类广告
3 表示网页类广告
请注意:
1、 从V2.1.13版本开始新增此字段;
2、 当广告类型为2(下载类广告)时
1)下载链接download_url字段、包名package_name字段、下载五要素字段developer、permission_desc_url、privacy_policy_url、app_update_time、app_version有值;
2) 落地页链接landing_page字段可能为空。
3、当广告类型为3(网页类广告)时
1)落地页链接landing_page字段有值;
3) 下载链接download_url字段、包名package_name字段、下载五要素字段developer、permission_desc_url、privacy_policy_url、app_update_time、app_version可能为空。
开发者可以根据该字段判断广告类型进行相应的逻辑处理。

注意事项:

1、 promoted_type与delivery_type字段使用说明。

promoted_type表示广告类型,用来区分广告是网页类广告还是下载类广告;delivery_type用来表示YKY推荐的广告跳转方式,比如跳转下载页还是H5落地页。 开发者可以用promoted_type来判断广告的类型进行相应的逻辑处理,比如根据广告类型判断是否要显示下载五要素;可以用delivery_type来判断广告点击后的跳转流程,广告点击后的跳转逻辑推荐使用如下流程:

6.3.3. Tracking#

Tracking 用来保存用户行为上报链接

字段名称类型必填描述示例
imp_track_urlsarray string曝光上报url数组
请取出第一个链接进行上报,上报格式请参考7.1. 曝光上报
click_track_urlsarray string点击上报url数组
请取出第一个链接进行上报,上报格式请参考7.2. 点击上报
download_track_urlsarray string下载上报url数组
请取出第一个链接进行上报,上报格式请参考7.3. 下载上报
install_track_urlsarray string安装上报url数组
请取出第一个链接进行上报,上报格式请参考7.4. 安装上报
close_track_urlsarray string关闭广告上报url数组
请取出第一个链接进行上报,上报格式请参考7.5. 关闭上报
play_track_urlsarray string视频广告播放上报url数组
请取出第一个链接进行上报,上报格式请参考7.6. 播放上报
imp_end_track_urlsarray string曝光结束上报url数组
请取出第一个链接进行上报,上报格式请参考7.7. 曝光结束上报
jump_result_track_urlsarray string跳转结果上报url数组
请取出第一个链接进行上报,上报格式请参考7.9. 跳转结果上报
注意:从v2.1.12版本开始返回该字段

6.3.4. CooperationExt#

CooperationExt 用于传输联运合作的拓展字段

字段名称类型必填描述示例
traffic_typeint32流量类型:
0 - 竞价
-1 - 余量
5 - 合约
0

6.3.5. 广告模板说明#

6.3.5.1. 开屏图片#

模板 ID 100 竖屏图片 9 : 16

字段名称字段名称类型必填描述示例
icard(卡片)titlestring卡片标题王者荣耀
descstring卡片描述王者荣耀,等你来战
iconstring图标urlhttps://o2-1258344700.file.myqcloud.com/mtrcenter/img//20220126/7f73ccca9b396d1ea980d8fdf3b4aa3c.png
btn_labelstring按钮文案下载
image(图片对象)widthstring图片宽1280
heightstring图片高720
formatstring图片格式png
file_sizestring图片大小单位KB92
urlstring图片地址https://iteacdn.qq.com/file/o2m/material/20171208/201712082007281158029948.1512734848.cb921b353c71707c22dc5912aa48a562.320x568_93665.jpg
md5string图片md533b2a7dae1b10507cb7e96f95e9c7acb
{
"icard": {
"title": "与盟共战,击退敌军!这样的《乱世王者》燃爆了!",
"desc": "乱世王者开启五周年庆典,新玩法!新武将!新福利!兄弟快来!",
"icon": "https://o2-1258344700.file.myqcloud.com/mtrcenter/img//20220126/7f73ccca9b396d1ea980d8fdf3b4aa3c.png",
"btn_label": "立即下载"
},
"image": {
"width": "720",
"height": "1280",
"format": "jpg",
"file_size": "238192",
"url": "https://o2-1258344700.file.myqcloud.com/mtrcenter/img//20220308/d7abac856fbd627d4aace3d9d04f9881.jpg",
"md5": "d7abac856fbd627d4aace3d9d04f9881"
}
}

6.3.5.2. 开屏视频#

模板 ID 101 竖屏视频 9 : 16

字段名称字段名称类型必填描述示例
icard(卡片)titlestring卡片标题王者荣耀
descstring卡片描述王者荣耀,等你来战
iconstring图标urlhttps://o2-1258344700.file.myqcloud.com/mtrcenter/img//20220126/7f73ccca9b396d1ea980d8fdf3b4aa3c.png
btn_labelstring按钮文案下载
video(视频对象)widthstring视频宽720
heightstring视频高1280
formatstring视频格式mp4
file_sizestring视频大小,单位:byte35096
urlstring视频地址https://itea-cdn.qq.com/file/o2m/material/20190130/7e1107bc52e6adc7705d40c75b4b32f0.1548819749.a9c42c7ed35d88ab74421e18e08aa3fd.mp4
md5string视频md52a8fa9dd9b868a31244c55fc4c862e36
durationstring视频,单位:秒视频时长
coverobject视频封面对象"width":"720",
"height":"1280",
"format":"jpg",
"file_size":"99005",
"url":"https://o2-1258344700.file.myqcloud.com/mtrcenter/cover/2a8fa9dd9b868a31244c55fc4c862e36_aes_0.jpg"

视频封面对象cover字段说明

字段名称类型必填描述示例
widthstring图片宽1280
heightstring图片高720
formatstring图片格式png
file_sizestring图片大小KB92
urlstring图片地址https://iteacdn.qq.com/file/o2m/material/20171208/201712082007281158029948.1512734848.cb921b353c71707c22dc5912aa48a562.320x568_93665.jpg
{
"icard": {
"title": "爷青回!这款正版日系回合手游爱了爱了!",
"desc": "大火的魔力宝贝手游,原版地图和玩法,带你重回法兰大陆!",
"icon": "https://o2-1258344700.cos.ap-guangzhou.myqcloud.com/logo/icon//221491def8d35003dd9eb26385494fc1.png",
"btn_label": "立即下载"
},
"video": {
"width": "720",
"height": "1280",
"format": "mp4",
"file_size": "34985358",
"url": "https://o2-1258344700.file.myqcloud.com/mtrcenter/video//20220419/yun_compress/2a8fa9dd9b868a31244c55fc4c862e36_compress.mp4",
"md5": "2a8fa9dd9b868a31244c55fc4c862e36",
"duration": "28",
"cover": {
"width": "720",
"height": "1280",
"format": "jpg",
"file_size": "99005",
"url": "https://o2-1258344700.file.myqcloud.com/mtrcenter/cover/2a8fa9dd9b868a31244c55fc4c862e36_aes_0.jpg"
}
}
}

6.3.5.3. 激励视频#

1、激励视频目前支持如下模版

模板 ID 102 竖屏视频 9 : 16

模板 ID 103 横屏视频 16 : 9

2、模版字段说明

字段名称字段名称类型必填描述示例
icard(卡片)titlestring卡片标题王者荣耀
descstring卡片描述王者荣耀,等你来战
iconstring图标urlhttps://o2-1258344700.file.myqcloud.com/mtrcenter/img//20220126/7f73ccca9b396d1ea980d8fdf3b4aa3c.png
btn_labelstring按钮文案下载
video(视频对象)widthstring视频宽720
heightstring视频高1280
formatstring视频格式mp4
file_sizestring视频大小,单位:byte35096
urlstring视频地址https://itea-cdn.qq.com/file/o2m/material/20190130/7e1107bc52e6adc7705d40c75b4b32f0.1548819749.a9c42c7ed35d88ab74421e18e08aa3fd.mp4
md5string视频md52a8fa9dd9b868a31244c55fc4c862e36
durationstring视频,单位:秒视频时长
coverobject视频封面对象"width":"720",
"height":"1280",
"format":"jpg",
"file_size":"99005",
"url":"https://o2-1258344700.file.myqcloud.com/mtrcenter/cover/2a8fa9dd9b868a31244c55fc4c862e36_aes_0.jpg"

视频封面对象cover字段说明

字段名称类型必填描述示例
widthstring图片宽720
heightstring图片高1280
formatstring图片格式png
file_sizestring图片大小KB92
urlstring图片地址https://iteacdn.qq.com/file/o2m/material/20171208/201712082007281158029948.1512734848.cb921b353c71707c22dc5912aa48a562.320x568_93665.jpg
{
"icard": {
"title": "欢乐斗地主手游",
"desc": "开局好运,王炸不停,《欢乐斗地主》超多玩法等你探索!",
"icon": "https://tiem-cdn.qq.com/o2/images/022bdfea66f3b9e0918ce1c07e2f5c8e.png",
"btn_label": "立即下载"
},
"video": {
"width": "720",
"height": "1280",
"format": "mp4",
"file_size": "1095964",
"url": "https://o2-1258344700.file.myqcloud.com/mtrcenter/video/20220704/yun_compress/c250295e706d19786137781d51aefca2_compress.mp4",
"md5": "c250295e706d19786137781d51aefca2",
"duration": "31",
"cover": {
"width": "720",
"height": "1280",
"format": "jpg",
"file_size": "58299",
"url": "https://o2-1258344700.file.myqcloud.com/mtrcenter/cover/cros_cover/20220704/4790c14652adf4b44835c567e3d7e8e9.jpg"
}
}
}

6.3.5.4. 插屏图片#

1、目前插屏图片支持如下模版

模板 ID 104 竖屏图片 1 : 1

模板 ID 105 竖屏图片 9 : 16

2、模版字段说明

字段名称字段名称类型必填描述示例
icard(卡片)titlestring卡片标题王者荣耀
descstring卡片描述王者荣耀,等你来战
iconstring图标urlhttps://o2-1258344700.file.myqcloud.com/mtrcenter/img//20220126/7f73ccca9b396d1ea980d8fdf3b4aa3c.png
btn_labelstring按钮文案下载
image(图片对象)widthstring图片宽1080
heightstring图片高1920
formatstring图片格式png
file_sizestring图片大小KB92
urlstring图片地址https://iteacdn.qq.com/file/o2m/material/20171208/201712082007281158029948.1512734848.cb921b353c71707c22dc5912aa48a562.320x568_93665.jpg
md5string图片md533b2a7dae1b10507cb7e96f95e9c7acb
{
"icard": {
"title": "jiayu落地页光夜测试-安卓-插屏2",
"desc": "jiayu落地页光夜测试-安卓-插屏2",
"icon": "https://tiem-cdn.qq.com/o2/images/92da99ab3694a121c992dbf781b8bfab.png",
"btn_label": "立即下载"
},
"image": {
"width": "1080",
"height": "1920",
"format": "jpg",
"file_size": "245758",
"url": "https://o2-test-1258344700.file.myqcloud.com/mtrcenter/img//20220331/a6bb4c3bc69af76931a63258f64786ba.jpg",
"md5": "a6bb4c3bc69af76931a63258f64786ba"
}
}

6.3.5.5. 原生图片#

1、目前原生图片支持以下模版

模板 ID 201 横屏图文 16 : 9

模板 ID 203 竖版图文 9: 16

2、模版字段说明

字段名称字段名称类型必填描述示例
icard(卡片)titlestring卡片标题王者荣耀
descstring卡片描述王者荣耀,等你来战
iconstring图标urlhttps://o2-1258344700.file.myqcloud.com/mtrcenter/img//20220126/7f73ccca9b396d1ea980d8fdf3b4aa3c.png
btn_labelstring按钮文案下载
image(图片对象)widthstring图片宽1280
heightstring图片高720
formatstring图片格式png
file_sizestring图片大小KB92
urlstring图片地址https://iteacdn.qq.com/file/o2m/material/20171208/201712082007281158029948.1512734848.cb921b353c71707c22dc5912aa48a562.320x568_93665.jpg
md5string图片md533b2a7dae1b10507cb7e96f95e9c7acb
{
"icard": {
"title": "欢乐麻将",
"desc": "《欢乐麻将》超多玩法和福利,随时随地一秒开搓!",
"icon": "https://tiem-cdn.qq.com/o2/images/3a547182ee2ae8eb70c1b2b188bd6f30.png",
"btn_label": "立即下载"
},
"image": {
"width": "1280",
"height": "720",
"format": "jpg",
"file_size": "820840",
"url": "https://o2-1258344700.file.myqcloud.com/mtrcenter/img//20220810/e1d7b265d174ec749a57c0d3783dc1ae.jpg",
"md5": "e1d7b265d174ec749a57c0d3783dc1ae"
}
}

6.3.5.6. 原生视频#

1、目前原生视频支持以下模版

模板 ID 202 横屏视频 16 : 9

模板 ID 204 竖版视频 9 : 16

2、模版字段说明

字段名称字段名称类型必填描述示例
icard(卡片)titlestring卡片标题王者荣耀
descstring卡片描述王者荣耀,等你来战
iconstring图标urlhttps://o2-1258344700.file.myqcloud.com/mtrcenter/img//20220126/7f73ccca9b396d1ea980d8fdf3b4aa3c.png
btn_labelstring按钮文案下载
video(视频对象)widthstring视频宽1280
heightstring视频高720
formatstring视频格式mp4
file_sizestring视频大小,单位:byte35096
urlstring视频地址https://itea-cdn.qq.com/file/o2m/material/20190130/7e1107bc52e6adc7705d40c75b4b32f0.1548819749.a9c42c7ed35d88ab74421e18e08aa3fd.mp4
md5string视频md52a8fa9dd9b868a31244c55fc4c862e36
durationstring视频,单位:秒视频时长
coverobject视频封面对象

视频封面对象cover字段说明

字段名称类型必填描述示例
widthstring图片宽1280
heightstring图片高720
formatstring图片格式png
file_sizestring图片大小KB92
urlstring图片地址https://iteacdn.qq.com/file/o2m/material/20171208/201712082007281158029948.1512734848.cb921b353c71707c22dc5912aa48a562.320x568_93665.jpg
{
"icard": {
"title": "真香!乱世王者周年庆福利限时领取!礼包码:LS888",
"desc": "乱世王者盖世英雄专服开启!全新福利限定君主形象免费送!",
"icon": "https://o2-1258344700.file.myqcloud.com/mtrcenter/img//20220126/7f73ccca9b396d1ea980d8fdf3b4aa3c.png",
"btn_label": "立即下载"
},
"video": {
"width": "1280",
"height": "720",
"format": "mp4",
"file_size": "31848599",
"url": "https://o2-1258344700.file.myqcloud.com/mtrcenter/video//20220812/yun_compress/e19c4bcd3344744eea815ec75fdada82_compress.mp4",
"md5": "e19c4bcd3344744eea815ec75fdada82",
"duration": "34",
"cover": {
"width": "1280",
"height": "720",
"format": "jpg",
"file_size": "47865",
"url": "https://o2-1258344700.file.myqcloud.com/mtrcenter/cover/cros_cover/20220812/38a2d2191d0e2f72cb2bd0ef5fb7823a.jpg"
}
}
}

6.3.6. 价格加密#

{winprice}和_WINNER_BID_PRICE 等价格宏加密方法

加密方法AES加密
加密密匙同6.1. 交互协议中的secret_key(通过商务同学获取)
加密规则1、使用 AES(CFB、NoPadding) 加密 winprice和_WINNER_BID_PRICE ,密匙为 secret_key
2、对加密结果进行 url encode
加密示例(Golang)rst := pkg.AesEncryptCFB(IntToBytes(winprice), secret_key)
encryptedParam := base64.URLEncoding.EncodeToString(rst)
func AesEncryptCFB(origData []byte, key []byte) (encrypted []byte) {
block, err := aes.NewCipher(key)
if err != nil {
panic(err)
}
encrypted = make([]byte, aes.BlockSize+len(origData))
iv := encrypted[:aes.BlockSize]
if
, err := io.ReadFull(rand.Reader, iv); err != nil {
panic(err)
}
stream := cipher.NewCFBEncrypter(block, iv)
stream.XORKeyStream(encrypted[aes.BlockSize:], origData)
return encrypted
}
func IntToBytes(n int) []byte {
x := int32(n)
bytesBuffer := bytes.NewBuffer([]byte{})
_ = binary.Write(bytesBuffer, binary.BigEndian, x)
return bytesBuffer.Bytes()
}
加密示例(Java)public static String aesCfbNoPaddingEncrypt(String data, String key) throws Exception {
byte[] dataBytes = CommonUtils.intToByteArrayWithNum(Integer.parseInt(data), 4);
byte[] keyBytes = key.getBytes(Charsets.UTF_8);
byte[] encrypt = AdxAesEncryptUtils.adxAesCfbNoPaddingEncrypt(dataBytes, keyBytes);
return Base64.getUrlEncoder().encodeToString(encrypt);
}
public static byte[] intToByteArrayWithNum(int n, int num) {
byte[] b = new byte[num];
for (int i = 1; i <= num; ++i) {
int shift = (i - 1) * 8;
b[num - i] = (byte) (n >> shift & 0xff);
}
return b;
}
public static byte[] adxAesCfbNoPaddingEncrypt(byte[] data, byte[] key) throws Exception {
Key keySpec = new SecretKeySpec(key, KEY_ALGORITHM);
Cipher cipher = Cipher.getInstance(CIPHER_AES_CFB_NOPADDING);
byte[] iv = new byte[cipher.getBlockSize()];
ThreadLocalRandom.current().nextBytes(iv);
IvParameterSpec ivSpec = new IvParameterSpec(iv);
cipher.init(Cipher.ENCRYPT_MODE, keySpec, ivSpec);
byte[] encrypted = cipher.doFinal(data);
return ArrayUtils.addAll(iv, encrypted);
}