版本记录
|
版本 |
日期 |
内容 |
最低支持SDK版本 |
|
2.0 |
2026/05/25 |
修改adm及nurl |
6.5.61.6 |
|
1.0 |
2026/04/09 |
初版协议 |
6.5.61 |
交互流程
广告请求和返回流程
STEP1:流量方App调用酷盈SDK接口请求获取buyerUid
STEP2:流量方ADX携带buyerUid请求酷盈ADX服务端
STEP3:酷盈ADX服务端返回流量方竞价响应信息
STEP4:流量方ADX完成比价后,调用相关竞价成功接口上传相关信息
STEP5:流量方将最终竞价成功响应里的adm信息给到酷盈SDK
备注:
(1)STEP1和STEP2中获取和携带的buyerUid信息为必传参数,缺失将影响变现效果;建议开发者每次发起广告请求前都调用酷盈SDK接口获取并上传相关信息,提升变现效果;
(2)STEP4和STEP5无严格顺序,且竞价失败后不需要进行STEP5。
接口协议
调用酷盈SDK获取竞价请求buyerUid
-
Android
//需先完成 SDMSDK.init(...) 等初始化(与常规接入一致)
final String placementId = "你的广告位ID";
Map<String, Object> extras = new HashMap<>(); //无扩展时也建议非 null
SDMSDK.getInstance().getSDMAdManager().getS2SBidToken(
placementId,
extras,
new ISDMAdManager.S2SBidTokenCallback() {
@Override
public void onComplete(String buyerUid) {
if (buyerUid == null || buyerUid.isEmpty()) {
//取buyerUid失败,勿用于询价
return;
}
//将buyerUid(token)交给服务端进行 RTB 竞价,走S2S竞价;服务端返回json取出adm后再用于下面load
}
});
//RTB竞价返回的 adm数据用于load 接口传入扩展字段s2s_bid_adm
SDMInterstitialAd interstitial = new SDMInterstitialAd(context, placementId);
Map<String, Object> extraMap = new HashMap<>();
extraMap.put("s2s_bid_adm", ${adm_data});
interstitial.load(new SDMAdRequest.Builder()
.setExtraMap(extraMap)
.build());
- iOS
//需先完成KuyingSDK初始化,生命周期内一次
[[SDMAPI sharedInstance] startWithAppID:@"你的AppId" appKey:@"你的AppKey" error:nil];
//获取s2sBuyerUid(token)
[SDMBaseAd requestS2SBuyerUidWithPlacementId:@"你的广告位id" extra:nil completion:^(NSString *_Nullable buyerUid, NSError *_Nullable error) {
if (error) {
//错误信息
}
//将buyerUid(token) 交给服务端进行RTB竞价,走S2S竞价;服务端返回json取出adm后再用于下面load
];
//RTB竞价返回的 adm数据用于load接口传入扩展字段s2s_bid_adm
//创建对应样式Ad对象
SDMInterstitialAd *adInfo = [[SDMInterstitialAd alloc] initAdWithPlacementId:@"你的广告位id"];
NSMutableDictionary *s2sExtra = [NSMutableDictionary dictionary];
s2sExtra[@"kSDMS2SAdmPayloadKey"] = adm;
[adInfo loadAdWithExtraDic:s2sExtra];
Server端竞价请求协议
竞价请求
采用OpenRTB协议
-
请求路径: 请联系对接运营&商务同学获取
-
请求方式: POST
-
请求头:
Content-Type: application/json
Accept: application/json
BidRequest请求
|
字段 |
类型 |
是否必填 |
说明 |
|
id |
string |
是 |
请求 ID,用于广告效果追踪 |
|
tmax |
int |
是 |
超时时间(单位:毫秒) |
|
app |
object |
是 |
应用信息 |
|
imp |
object array |
是 |
广告位与素材约束 |
|
user |
object |
是 |
用户信息 |
|
device |
object |
是 |
设备信息 |
|
test |
int |
否 |
1=测试,0=正式(默认0) |
app对象
|
字段 |
类型 |
是否必填 |
说明 |
|
id |
string |
是 |
酷盈平台的应用 ID |
|
ver |
string |
否 |
应用版本 |
|
bundle |
string |
是 |
包名 |
|
name |
string |
否 |
应用名称 |
device对象
|
字段 |
类型 |
是否必填 |
说明 |
|
ip |
string |
是 |
设备 IP |
|
ua |
string |
是 |
设备浏览器用户代理字符串;例如:'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' |
|
os |
string |
是 |
iOS/Android |
|
osv |
string |
是 |
系统版本 |
|
language |
string |
否 |
系统语言 |
|
devicetype |
int |
是 |
设备类型: 0:未知 1:手机 2:PC 3:平板 4:电视TV |
|
make |
string |
是 |
手机品牌 |
|
model |
string |
是 |
手机型号 |
|
h |
int |
是 |
以像素计的设备屏幕高度 |
|
w |
int |
是 |
以像素计的设备屏幕宽度 |
|
carrier |
string |
否 |
运营商: 0:未知 1:中国移动 2:中国联通 3:中国电信 |
|
connectiontype |
int |
是 |
网络类型: 0:未知 1:以太网 2:WiFi 4:2G 5:3G 6:4G 7:5G |
|
ifa |
string |
条件必填 |
ios传idfa, 安卓传oaid |
|
ext |
object |
否 |
设备扩展 |
imp 对象
|
字段 |
类型 |
是否必填 |
说明 |
|
id |
string |
是 |
同BidRequest里的ID 相同 |
|
tagid |
string |
是 |
广告位 ID(酷盈分配) |
|
bidfloor |
float64 |
否 |
底价(单位:元) |
|
secure |
int |
否 |
1-需要https |
user对象
|
字段 |
类型 |
是否必填 |
说明 |
|
buyeruid |
string |
是 |
透传酷盈sdk生成的buyerUid |
竞价响应
BidResponse
|
字段 |
类型 |
是否必填 |
说明 |
|
id |
string |
是 |
请求 ID 回传 |
|
seatbid |
object array |
是 |
出价集合 |
|
bidid |
string |
否 |
bid id |
|
cur |
string |
是 |
币种 |
|
nbr |
int |
否 |
不填充原因: 10000-参数错误 10002-无效的publisher 10031-无效的buyeruid 10008-系统错误 10012-无效的广告源id 10004-无效的tagid 40001-无预算填充 30018-底价过滤 |
seatbid对象
|
字段 |
类型 |
是否必填 |
说明 |
|
id |
string |
是 |
bid id |
|
impid |
string |
是 |
对应 imp.id |
|
price |
float64 |
是 |
出价(单位:元) |
|
nurl |
string |
否 |
竞胜上报 |
|
lurl |
string |
否 |
竞败上报 |
|
adm |
string |
是 |
素材内容 |
|
adomain |
string[] |
否 |
广告主域名 |
|
cid |
string |
否 |
创意组 ID |
|
crid |
string |
否 |
创意 ID |
|
exp |
int |
否 |
广告过期时间(单位:秒) |
|
bundle |
string |
否 |
推广包名 |
|
ext |
object |
否 |
扩展信息 |
示例
-
请求示例
{
"id": "473179c4-c598-4522-acc2-69cb54d00140",
"imp": [
{
"id": "473179c4-c598-4522-acc2-69cb54d00140",
"tagid": "b69ae487ad9ad9",
"bidfloor": 0.01,
"secure": 0
}
],
"app": {
"id": "a67eb571f012bf",
"name": "闲鱼",
"ver": "7.25.60",
"bundle": "com.taobao.idlefish"
},
"device": {
"ua": "Mozilla/5.0 (Linux; Android 12; HBN-AL00 Build/HUAWEIHBN-AL00; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/99.0.4844.88 Mobile Safari/537.36",
"ip": "111.73.77.95",
"make": "OPPO",
"model": "PKH110",
"os": "Android",
"osv": "12",
"w": 1260,
"h": 2844,
"connectiontype": 2
},
"tmax": 2000,
"user": {
"buyeruid": "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"
}
}
返回示例
{
"id": "473179c4-c598-4522-acc2-69cb54d00140",
"seatbid": [
{
"bid": [
{
"id": "9c0bcc54-cbe4-47f7-9831-317ae11551d5",
"impid": "473179c4-c598-4522-acc2-69cb54d00140",
"price": 0.9147355833000002,
"nurl": "https://adx-tk.statisticslinks.com/adx/nurl?req_id=473179c4-c598-4522-acc2-69cb54d00140&p=${AUCTION_PRICE}",
"adm": "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",
"cid": "17-14cbc71d8c1cc19ec347c9f8d60a9ae6",
"crid": "17-1047575745",
"exp": 1800
}
]
}
],
"cur": "CNY"
}
竞胜结果上报
- ${AUCTION_PRICE}:竞胜的第二名价格,单位:元/千次,例如:5.25。注:明文传输
https://adx-tk.statisticslinks.com/adx/nurl?req_id=473179c4-c598-4522-acc2-69cb54d00140&p=${AUCTION_PRICE}