本文说明腾讯广告反欺诈在线查询接口的使用方法和协议规范。通过本查询接口,可以实时查询广告流量的虚假欺诈嫌疑。
- 接口采用 JSON + HTTP 协议,请求和响应数据均为 UTF-8 编码。
- 使用 post 方法提交完整报文,HTTP 头部无特殊校验逻辑,报文内容均在 HTTP 消息体中。
- 接口请求域名:
api.telesafe.qq.com
。
- 接口名:BlackLibQuery。
- 查询请求报文内容包含:请求消息头 + 请求消息体。
- 查询响应报文内容包含:响应消息头 + 响应消息体。
参数 |
是否必选 |
类型 |
说明 |
appid |
是 |
String |
请求方唯一 ID,16个字符,每次请求时传递,用于身份识别。 |
timestamp |
是 |
Int |
从格林威治时间1970年01月01日00:00:00起至现在的总秒数,精确到秒,与标准时间偏差5分钟之内。 |
v |
是 |
String |
接口版本,此处填1.1。 |
nonce |
是 |
String |
单次值,随机字符串,每次请求都必须不同,防止重放攻击。 |
echostr |
是 |
String |
随机字符串,服务器原样带回,客户端校验,长度16个字节。 |
sign |
是 |
String |
请求参数签名,以下两种字符串拼接后,经 MD5 计算出的32个字符的后16个字符:1. header 按必选字段 key 以字典序排序后,value 拼接(不包括 sign 字段)2. secret(固定密钥,16位),服务端分配 |
- 请求消息体 req_body 参数说明:
req_body 是对请求内容 json 结构的加密字符串,其中请求内容定义如下:
参数名 |
是否必选 |
类型 |
说明 |
sub_appid |
是 |
int |
子业务 ID。 |
scene |
是 |
int |
业务场景ID,详情请参见下文业务场景 ID 说明。 |
query_info |
是 |
string |
查询信息,详情请参见下文 query_info 参数说明。 |
场景 ID |
场景描述 |
1007 |
查询时机:登录/注册/营销活动等。查询目的:识别垃圾流量,真机假用户,小号等。 |
1010 |
查询时机:微信 OpenID(仅针对微信场景)。查询目的:识别垃圾流量,小号等。 |
- query_info 参数说明:
query_info 是一个 json 结构,定义如下:
参数名 |
必选 |
类型 |
说明 |
phone_num |
是 |
String |
手机号。 |
id_num |
否 |
String |
身份证号,建议提供。 |
ip |
是 |
String |
IP。 |
os_type |
是 |
Int |
操作系统类型:0:未知。1:Android。2:iOS。3:Windows。 |
os_ver |
否 |
String |
操作系统版本号,建议提供。 |
imei |
是 |
String |
Andriod 设备的 IMEI。 |
imsi |
否 |
String |
imsi。 |
mac |
否 |
String |
设备的 MAC 地址。 |
access_mode |
否 |
String |
入网方式,可取值有:wifi、4g、3g、2g。 |
name |
否 |
String |
姓名。 |
card_no |
否 |
String |
银行卡号。 |
qq |
否 |
String |
QQ 号。 |
wechat |
否 |
String |
微信号。 |
email |
否 |
String |
邮箱。 |
tel |
否 |
String |
固定电话。 |
address |
否 |
String |
所在地址。 |
contact |
否 |
String |
联系人电话号码。 |
url |
否 |
String |
需要检测的页面链接。 |
context |
否 |
String |
上下文信息。 |
sub_scene |
否 |
Int |
子场景(由客户自定义。 |
idfa |
否 |
string |
iOS 的 idfa。 |
idfa_md5_encrypted |
否 |
Int |
idfa 是否 MD5 加密。 |
imei_md5_encrypted |
否 |
Int |
IMEI 是否 MD5 加密。 |
mac_md5_encrypted |
否 |
Int |
MAC 是否 MD5 加密。 |
- 对请求内容用 AES 加密,加密模式 ECB ,填充方式全0,密钥为分配的 secret。
- 对加密后的数据经 Base64 编码后,得到的字符串作为 req_body 的最终值。
参数 |
是否必选 |
说明 |
status |
是 |
返回结果码:0:请求处理成功。100:错误的 post 数据格式。101:错误的请求消息头。102:错误的请求参数 - appid。103:错误的请求参数 - timestamp。104:错误的请求参数 - body。105:错误的请求参数 - v。106:错误的请求参数 - nonce。107:错误的请求参数 - sign。108:错误的请求类型 - echostr。109:错误的请求消息体。110:错误的加解密方式。201:访问量超过限制。500:未知处理状态。501:服务处理错误。 |
msg |
是 |
结果/原因描述。 |
echostr |
是 |
随机字符串,服务器原样带回,客户端校验,长度16个字节。 |
- 响应消息体 rsp_body 参数说明:
rsp_body 是对响应内容 json 结构加密后的字符串,加密方式参照请求体 req_body 加密过程,解密过程与加密过程逆向即可。解密后的 json 结构如下:
参数 |
是否必选 |
类型 |
说明 |
tag |
否 |
String |
标签,表示识别为欺诈的主要原因。详情请参见下文标签字段说明。 |
evil_level |
是 |
String |
欺诈分,取值0 - 100,值越大表示欺诈概率越高。 |
标签名 |
说明 |
疑似垃圾流量 |
结合设备与帐号的历史数据表现,判断该帐号/设备历史用互联网业务作恶行为,其产生的互联网行为对于其他业务来说属于作弊或垃圾流量。 |
疑似新客户 |
通过帐号互联网行为(社交,浏览等)是否异常判断为小号或接码平台帐号。 |
疑似假机 |
根据设备的一些数据表现,系统判定为模拟器或虚假设备 ID。 |
疑似真用户假行为 |
根据设备的用户使用情况,系统判定该用户存在使用脚本、外挂、病毒等作弊行为。 |
疑似真机假用户 |
根据设备的一些数据表现,系统判定为群控设备。 |
{
"Header": {
"Service": "PhoneNumber",
"AppId": "XXXX"
},
"Data": {
"PhoneNumber": "13072402195",
"Ip": "103.227.172.251",
"Imei": "xxxxxx"
}
}
{
"Header": {
"Message": "OK",
"Service": "PhoneNumber"
},
"Data": {
"Score": 80.0,
"Tags": "疑似垃圾流量"
}
}
- 申请接口使用权限。
- 调用对应的接口即可查询。