POST 方法发送广告请求。接口支持 JSON 和 Protobuf 两种消息格式:| 消息格式 | 接口路径 | 说明 |
|---|---|---|
| JSON | /json/bid | 请 求体和响应体均为 JSON |
| Protobuf | /pb/bid | 请求体和响应体均为 Protobuf 二进制 |
| 状态码 | 说明 |
|---|---|
200 OK | 正常响应,可能有广告,也可能为无填充响应 |
204 No Content | 无响应体 |
| 其他状态码 | 异常,渠道方可按无广告处理 |
200ms 到 300ms,具体以双方联调确认值为准。| 环境 | JSON | Protobuf |
|---|---|---|
| 测试 | https://test.engine.showtx.cn/json/bid | https://test.engine.showtx.cn/pb/bid |
| 正式 | https://engine.showtx.cn/json/bid | https://engine.showtx.cn/pb/bid |
| Header 字段 | 必填 | 建议/固定取值 | 说明 |
|---|---|---|---|
Content-Type | Y | application/json; charset=utf-8 或 application/x-protobuf | 声明请求体格式 |
Connection | Y | keep-alive | 建议开启长连接,降低建连耗时 |
Content-Encoding | N | gzip | 请求体压缩格式;未传表示未压缩 |
Accept-Encoding | N | gzip | 声明可接收 gzip 响应 |
| Header 字段 | 出现条件 | 说明 |
|---|---|---|
Content-Type | 必返 | JSON 响应为 application/json;Protobuf 响应为 application/protobuf |
Content-Encoding | 条件返回 | 当响应体使用 gzip 压缩时返回 |
| 参数名 | 类型 | 必填 | 描述 |
|---|---|---|---|
id | string | Y | 请求唯一 ID |
imps | object array | Y | 广告曝光对象列表 |
site | object | N | 网站流量信息,App 流量可不填 |
app | object | N | App 流量信息,App 流量建议填写 |
content | object | N | 内容上下文信息 |
device | object | Y | 用户设备信息 |
user | object | N | 用户信息 |
is_test | bool | N | 是否测试请求 |
is_ping | bool | N | 是否 ping 请求 |
is_preview | bool | N | 是否预览请求 |
https_required | bool | N | 是否要求返回 HTTPS 链接 |
max_bid_time | int32 | N | 最大竞价时间,单位毫秒 |
media_exp_ids | string array | N | 媒体实验 ID |
extend_info | string | N | 扩展信息 |
| 参数名 | 类型 | 必填 | 描述 |
|---|---|---|---|
imp_id | string | Y | 曝光机会 ID |
pid | string | Y | 广告位 ID,请联系商务获取 |
publisher_id | string | Y | 媒体 ID |
resource_type | int32 | Y | 资源类型,见附录资源类型 |
creative_types | int32 array | Y | 可接受的创意类型,见附录创意类型 |
width | int32 | Y | 广告位宽度,单位像素 |
height | int32 | Y | 广告位高度,单位像素 |
max_ad_num | int32 | N | 期望返回广告数量 |
min_cpm_price | int32 | N | CPM 底价,单位分/千次展现 |
min_cpc_price | int32 | N | CPC 底价,单位分/点击 |
open_types | int32 array | N | 广告位支持的打开方式;不填时默认支持落地页,取值见附录打开方式 |
pricing_type | int32 array | N | 支持的计费类型,见附录计费类型 |
templates | object array | N | 可用创意模板列表 |
deals | object array | N | Deal 信息 |
download_types | int32 array | N | 支持的下载类型:1 链接下载,2 应用商店下载,4 腾讯广点通下载 |
title_len | int32 | N | 标题长度限制 |
| 参数名 | 类型 | 必填 | 描述 |
|---|---|---|---|
media_id | string | Y | 媒体 ID |
name | string | Y | 应用名称 |
package_name | string | Y | Android 包名或 iOS Bundle ID |
version | string | N | App 版本号 |
app_id | string | N | 应用 ID |
version_code | int32 | N | App 版本整数 |
category | int32 array | N | App 类目 |
| 参数名 | 类型 | 必填 | 描述 |
|---|---|---|---|
ip | string | Y | 用户 IP,支持 IPv4/IPv6 |
user_agent | string | Y | HTTP User-Agent |
device_type | int32 | N | 设备类型,见附录设备类型 |
os | int32 | Y | 操作系统,见附录操作系统 |
osv | string | N | 操作系统版本 |
make | string | N | 设备厂商 |
model | string | N | 设备型号 |
carrier | int32 | N | 运营商,见附录运营商 |
connection_type | int32 | N | 网络类型,见附录网络类型 |
screen_width | int32 | N | 屏幕宽度,单位像素 |
screen_height | int32 | N | 屏幕高度,单位像素 |
geo | object | N | 地理位置信息 |
idfa | string | iOS 推荐 | iOS IDFA |
oaid | string | Android 推荐 | Android OAID |
android_id | string | Android 推荐 | Android ID |
imei_md5 | string | Android 推荐 | IMEI MD5 |
idfa_md5 | string | iOS 推荐 | IDFA MD5 |
oaid_md5 | string | Android 推荐 | OAID MD5 |
caids | object array | iOS 推荐 | CAID 列表,包含 ver、caid |
boot_mark | string | iOS 推荐 | iOS boot mark |
update_mark | string | iOS 推荐 | iOS update mark |
device_birth_time | string | iOS 推荐 | 设备初始化时间 |
installed_pkgs | string array | N | 用户已安装 App 包名列表 |
| 参数名 | 类型 | 必填 | 描述 |
|---|---|---|---|
age | int32 | N | 年龄 |
gender | int32 | N | 性别,见附录性别 |
marriage | int32 | N | 婚姻状态:0 未婚,1 已婚 |
school | int32 | N | 是否在校:0 不在校,1 在校 |
category | uint64 array | N | 人群标签 |
dmp_ids | uint64 array | N | 人群包 ID |
user_id | string | N | 用户 ID |
proto3 格式。字段说明和枚举取值以本文档对应章节为准。syntax = "proto3";
package showtx.bidding;
message BidRequest {
string sdk_version = 1;
string id = 2;
repeated Imp imps = 3;
Site site = 4;
App app = 5;
Content content = 6;
Device device = 7;
User user = 8;
bool is_test = 9;
bool is_ping = 10;
bool is_preview = 11;
int32 adx_type = 12;
bool https_required = 13;
string extend_info = 14;
int32 max_bid_time = 15;
repeated string media_exp_ids = 17;
message Imp {
string imp_id = 1;
string pid = 2;
string publisher_id = 3;
int32 resource_type = 4;
repeated int32 creative_types = 5;
int32 refresh_num = 6;
int32 screen_num = 7;
int32 position = 8;
int32 width = 9;
int32 height = 10;
Video video = 11;
int32 max_ad_num = 12;
int32 min_cpm_price = 13;
int32 min_cpc_price = 14;
bool impression_repeatable = 15;
repeated Template templates = 16;
repeated Deal deals = 17;
string campaign_date = 18;
repeated int32 open_types = 19;
repeated PricingType pricing_type = 20;
repeated ProposedCreative proposed_creatives = 21;
repeated ItemInfo item_infos = 22;
ExcludedInfo excluded_info = 23;
repeated int32 download_types = 24;
int32 title_len = 25;
string s_imp_id = 52;
message Video {
int32 videoad_start_delay = 1;
int32 videoad_section_start_delay = 2;
int32 min_ad_duration = 3;
int32 max_ad_duration = 4;
}
message Template {
uint64 id = 1;
repeated string required_fields = 2;
repeated string optional_fields = 3;
repeated Attribute attributes = 4;
message Attribute {
string name = 1;
string value = 2;
}
}
message Deal {
uint64 deal_id = 1;
DealType deal_type = 2;
repeated uint64 adv_ids = 3;
int32 price = 4;
bool impression_repeatable = 5;
enum DealType {
UNKNOWN = 0;
PRIVATE_AUCTION = 1;
PREFERRED_DEAL = 2;
DIRECT_BUY = 3;
}
}
message ProposedCreative {
string crid = 1;
}
message ItemInfo {
repeated string item_id = 1;
string seller_id = 2;
}
message ExcludedInfo {
repeated string publisher_filter_ids = 1;
repeated string creative_ids = 2;
repeated string excluded_click_through_urls = 3;
repeated uint64 adv_ids = 4;
repeated uint64 ad_category = 5;
repeated uint64 streamer_ids = 6;
repeated uint64 item_ids = 7;
}
}
message Site {
string name = 1;
string page = 2;
string ref = 3;
repeated int32 category = 4;
}
message App {
string media_id = 1;
string name = 2;
string package_name = 3;
string version = 4;
repeated int32 category = 5;
string app_id = 6;
int32 version_code = 7;
}
message Content {
string title = 1;
int32 duration = 2;
repeated string keywords = 3;
string query_term = 4;
repeated string query_suggestion = 5;
string program_id = 6;
string video_id = 7;
repeated string producer_id = 8;
repeated int32 category = 9;
string view_session_id = 10;
}
message Device {
string ip = 1;
string user_agent = 2;
int32 device_type = 3;
int32 os = 4;
string osv = 5;
string make = 6;
string model = 7;
int32 carrier = 8;
int32 connection_type = 9;
int32 screen_width = 10;
int32 screen_height = 11;
Geo geo = 12;
repeated string installed_pkgs = 13;
string media_device_id = 14;
string idfa = 15;
string oaid = 16;
string android_id = 17;
string uuid = 18;
string mac = 19;
string imei_md5 = 20;
string idfa_md5 = 21;
string oaid_md5 = 22;
string mac_md5 = 23;
repeated CAID caids = 24;
string open_udid = 25;
string cookie_id = 26;
string imei = 27;
string ver_code_of_ag = 28;
string ver_code_of_hms = 29;
string boot_mark = 30;
string update_mark = 31;
string device_birth_time = 32;
string boot_time_sec = 33;
string os_update_time_sec = 34;
string rom_version = 35;
int32 ppi = 36;
bool wx_installed = 37;
string paid = 38;
string hwv = 39;
int32 memory = 40;
int32 disk = 41;
string device_name = 42;
string device_name_md5 = 43;
string sys_memory = 44;
string sys_disk_size = 45;
message Geo {
string lon = 1;
string lat = 2;
string country_code = 3;
string province_code = 4;
string city_code = 5;
string district_code = 6;
}
message CAID {
string ver = 1;
string caid = 2;
}
}
message User {
int32 age = 1;
int32 gender = 2;
int32 marriage = 3;
int32 school = 4;
repeated uint64 category = 5;
repeated uint64 dmp_ids = 6;
repeated float embedding = 7;
string user_id = 8;
}
}
message BidResponse {
int32 code = 1;
string id = 2;
repeated SeatBid seat_bids = 3;
int32 cache_duration = 4;
UserInfo user_info = 5;
string extend_info = 6;
message SeatBid {
string imp_id = 1;
repeated Bid bids = 2;
}
message Bid {
CreativeData creative = 3;
Monitor monitor = 4;
PricingType pricing_type = 5;
int32 max_cpm_price = 6;
int32 max_cpc_price = 7;
uint64 deal_id = 8;
uint64 adv_id = 9;
string campaign_date = 10;
BidType bid_type = 11;
string network_guid = 13;
string extend_data = 14;
string platform_name = 55;
enum BidType {
NORMAL = 0;
DEFAULT = 1;
MARKET = 2;
}
}
message CreativeData {
string id = 1;
int32 type = 2;
string title = 3;
string description = 4;
string action_text = 5;
repeated ImageData images = 6;
repeated VideoData videos = 7;
string html_snippet = 8;
AppInfo app = 9;
Landing landing = 10;
string adv_name = 11;
string adv_logo = 12;
int32 sub_type = 13;
TemplateData template_data = 14;
TemplateData sub_template_data = 15;
message ImageData {
int32 type = 1;
int32 width = 2;
int32 height = 3;
string url = 4;
string md5 = 5;
}
message VideoData {
int32 type = 1;
int32 width = 2;
int32 height = 3;
int32 duration = 4;
string url = 5;
string md5 = 6;
ImageData cover_img = 7;
}
message TemplateData {
uint64 template_id = 1;
repeated Field fields = 2;
message Field {
string name = 1;
string value = 2;
}
}
}
message Landing {
string landing_url = 1;
string deeplink_uri = 2;
string universal_link = 3;
string app_schema_ids = 4;
int32 open_type = 5;
repeated string click_area = 6;
MiniApp mini_app = 7;
message MiniApp {
int32 host_app = 1;
string app_id = 2;
string path = 3;
string query = 4;
string program_id = 5;
}
}
message Monitor {
repeated string imp_tracking_url = 1;
repeated string click_tracking_url = 2;
repeated string dp_tracking_url = 3;
repeated string dp_success_tracking_url = 4;
repeated string dp_fail_tracking_url = 5;
repeated string download_start_url = 6;
repeated string download_complete_url = 7;
repeated string install_start_url = 8;
repeated string install_complete_url = 9;
repeated string install_open_url = 10;
repeated EventTrack event_tracks = 15;
string win_notice_url = 16;
string loss_notice_url = 17;
message EventTrack {
int32 type = 1;
repeated string url = 2;
int32 time = 3;
int32 send_type = 4;
}
}
message AppInfo {
string app_name = 1;
string package_name = 2;
string download_url = 3;
int32 download_type = 4;
string app_store_id = 5;
int32 size = 6;
string ver = 7;
string per_url = 8;
string pri_url = 9;
string intro_url = 10;
string publisher = 11;
}
message UserInfo {
string user_id = 1;
}
}
enum PricingType {
PRICING_CPM = 0;
PRICING_CPC = 1;
}| 参数名 | 类型 | 必填 | 描述 |
|---|---|---|---|
code | int32 | Y | 0 表示无异常;非 0 表示异常 |
id | string | Y | 对应请求 id |
seat_bids | object array | N | 出价结果列表 |
cache_duration | int32 | N | 不参竞缓存时长,单位秒 |
user_info | object | N | 用户信息 |
extend_info | string | N | 扩展信息或错误说明 |
| 参数名 | 类型 | 必填 | 描述 |
|---|---|---|---|
imp_id | string | Y | 对应请求中的 imp_id |
bids | object array | N | 该曝光机会下的广告列表 |
| 参数名 | 类型 | 必填 | 描述 |
|---|---|---|---|
creative | object | Y | 创意信息 |
monitor | object | N | 监测信息 |
pricing_type | int32 | N | 计费类型,见附录计费类型 |
max_cpm_price | int32 | CPM 必填 | CPM 出价,单位分/千次展现 |
max_cpc_price | int32 | CPC 必填 | CPC 出价,单位分/点击 |
deal_id | uint64 | N | PMP Deal ID |
adv_id | uint64 | N | 广告主 ID |
bid_type | int32 | N | 出价类型:0 正常,1 抄底,2 市场广告 |
network_guid | string | N | 自定义数据,最长 64 字节 |
extend_data | string | N | 自定义扩展字段,最长 128 字节 |
platform_name | string | N | 广告平台名称 |
| 参数名 | 类型 | 必填 | 描述 |
|---|---|---|---|
id | string | Y | 创意 ID |
type | int32 | Y | 创意类型:1 大图,2 图文,3 组图,4 互动广告,5 开屏,6 横幅,7 视频,8 激励视频,9 插屏 |
title | string | N | 标题 |
description | string | N | 描述 |
action_text | string | N | 按钮或互动引导文案 |
images | object array | N | 图片素材 |
videos | object array | N | 视频素材 |
html_snippet | string | N | HTML 创意片段 |
app | object | 下载类广告推荐 | 应用信息 |
landing | object | Y | 落地页与打开方式信息 |
adv_name | string | N | 广告主名称 |
adv_logo | string | N | 广告主 Logo |
template_data | object | N | 模板字段信息 |
| 参数名 | 类型 | 必填 | 描述 |
|---|---|---|---|
app_name | string | Y | APP 名称 |
package_name | string | Y | Android package name 或 iOS Bundle ID |
download_url | string | Y | 下载地址 |
download_type | int32 | N | 下载类型 |
app_store_id | string | iOS 下载必填 | iOS App Store ID |
size | int32 | N | 应用大小,单位字节 |
ver | string | N | 应用版本号 |
per_url | string | N | 权限说明 URL |
pri_url | string | N | 隐私政策 URL |
intro_url | string | N | 应用介绍 URL |
publisher | string | N | 开发者名称 |
| 参数名 | 类型 | 触发时机 |
|---|---|---|
imp_tracking_url | string array | 广告真实曝光 |
click_tracking_url | string array | 用户有效点击 |
dp_tracking_url | string array | 准备发起 Deeplink |
dp_success_tracking_url | string array | Deeplink 唤起成功 |
dp_fail_tracking_url | string array | Deeplink 唤起失败 |
download_start_url | string array | 开始下载 |
download_complete_url | string array | 下载完成 |
install_start_url | string array | 开始安装 |
install_complete_url | string array | 安装完成 |
install_open_url | string array | 安装后首次打开 |
event_tracks | object array | 扩展事件监测 |
win_notice_url | string | 竞价胜出反馈 |
loss_notice_url | string | 竞价失败反馈 |
{
"id": "req-202608280001",
"imps": [
{
"imp_id": "1",
"pid": "slot_10001",
"publisher_id": "media_10001",
"resource_type": 2,
"creative_types": [1, 2],
"width": 640,
"height": 320,
"min_cpm_price": 100,
"max_ad_num": 1,
"open_types": [1, 2, 3],
"pricing_type": [0]
}
],
"app": {
"media_id": "media_10001",
"name": "Demo App",
"package_name": "com.demo.app",
"version": "1.0.0"
},
"device": {
"ip": "127.0.0.1",
"user_agent": "Mozilla/5.0",
"device_type": 0,
"os": 3,
"osv": "14",
"make": "HUAWEI",
"model": "demo",
"oaid": "oaid-example",
"connection_type": 1
},
"max_bid_time": 300
}{
"code": 0,
"id": "req-202608280001",
"seat_bids": [
{
"imp_id": "1",
"bids": [
{
"pricing_type": 0,
"max_cpm_price": 120,
"creative": {
"id": "cr_10001",
"type": 2,
"title": "广告标题",
"description": "广告描述",
"action_text": "立即查看",
"images": [
{
"type": 0,
"width": 640,
"height": 320,
"url": "https://example.com/image.jpg"
}
],
"landing": {
"landing_url": "https://example.com/landing",
"open_type": 1
}
},
"monitor": {
"imp_tracking_url": ["https://track.example.com/imp?price=__WIN_PRICE__"],
"click_tracking_url": ["https://track.example.com/click"]
}
}
]
}
]
}| 宏 | 含义 |
|---|---|
__WIN_PRICE__ | 竞价成交价 |
__LOSS_REASON__ | 竞败原因 |
__WIDTH__ / __HEIGHT__ | 实际广告位宽高 |
__WIDTH_PX__ / __HEIGHT_PX__ | 实际广告位像素宽高 |
__DOWN_X__ / __DOWN_Y__ | 点击按下坐标 |
__UP_X__ / __UP_Y__ | 点击抬起坐标 |
__SLD__ | 点击交互方式 |
| 值 | 含义 |
|---|---|
0 | CPM |
1 | CPC |
| 值 | 含义 |
|---|---|
0 | 未知 |
1 | 开屏 |
2 | 信息流/推荐流/视频流 |
3 | 激励视频 |
4 | 插屏/弹窗 |
5 | Draw 沉浸全屏 |
6 | Banner |
| 值 | 含义 |
|---|---|
0 | 未知 |
1 | 图片 |
2 | 视频 |
3 | 图文 |
4 | 图文视频 |
5 | 组图 |
6 | H5 |
7 | 竖版视频 |
imps[].open_types 表示广告位支持的打开方式,可同时传多个值;响应字段 creative.landing.open_type 表示本次返回广告的实际打开方式。| 值 | 含义 |
|---|---|
0 | 未知 |
1 | 落地页 |
2 | 下载 |
3 | Deeplink |
4 | Universal Link |
5 | 直播间 |
6 | 半屏落地页 |
7 | 小程序 |
| 值 | 含义 |
|---|---|
0 | 手机 |
1 | 平板 |
2 | PC |
3 | 互联网电视 |
| 值 | 含义 |
|---|---|
0 | 未识别 |
1 | PC/Windows |
2 | iOS |
3 | Android |
4 | Windows Phone |
5 | Mac |
6 | Linux |
7 | Yun |
8 | Tizen |
9 | Cycle |
10 | HarmonyOS |
| 值 | 含义 |
|---|---|
0 | 未识别 |
1 | Wi-Fi |
2 | 2G |
3 | 3G |
4 | 4G |
5 | 5G |
| 值 | 含义 |
|---|---|
0 | 未识别 |
1 | 中国移动 |
2 | 中国联通 |
3 | 中国电信 |
| 值 | 含义 |
|---|---|
0 | 未知 |
1 | 男性 |
2 | 女性 |