# 文档目的
- 本文档主要介绍了如何使用犀光科技 indep_ad 广告接口,对接犀光广告;
- 本文档主要供合作伙伴的 web 端的技术人员开发对接使用
# 注意事项
- 必须有 app_id 才能使用该接口;
- 所有的请求参数均为字符串格式! 如: client_ip:"192.168.1.144"。
- 如果不使用犀光提供的详情页时,按此文档请求广告;使用犀光详情页时,可忽略此文档。列表页广告只参考 response 和前端展示部分即可
# request
详情页广告对接的协议格式如下:
协议 | http/https+post |
---|---|
url | https://xiaojiding.com/HttpService/indep_ad |
- 请求参数
参数 | 说明 | 是否必须 | 备注 |
---|---|---|---|
api_version | 固定为 1 | 必填 | |
app_id | 用户 id,犀光提供给用户 | 必填 | |
timestamp | 时间戳 | 必填 | 精确到 s |
ad_show_type | 广告类型 | 必填 | 1:信息流 4:banner 25:开屏广告 29:激励视频广告 |
adslot_id | 广告位 id | 必填 | 犀光提供 |
user_id | 用户 id | 必填 | 用户唯一标识可以用设备号来生成 |
ua | user agent | 必填 | 需要进行 encode,不要将空格替换,只需要编码就可以 |
os | 操作系统 | 必填 | 安卓传 Android 字符串,iOS 传 iOS 字符串 |
os_version | 操作系统版本 | 必填 | 传具体的版本 |
make | 手机品牌 | 必填 | 例如 HUAWEI |
client_ip | 客户端 ip | 必填 | 传用户的真实 ip,非局域网 ip |
model | 手机型号 | 必填 | 例如 HUAWEI Y600-U00,需要进行 encode,不要将空格替换,只需要编码就可以 |
density | 屏幕密度 | 选填 | 如不填,会使用默认值取广告 |
ppi | 每英寸所有的像素 | 选填 | 如不填,会按默认值去取广告 |
hv | 横竖屏 | 选填 | 0:未知,1:竖屏,2:横屏 |
screen_width | 手机屏宽 | 必填 | |
screen_height | 手机平高 | 必填 | |
device_type | 设备类型 | 必填 | 手机:"PHONE";平板:"TABLET" |
api_level | 安卓系统 api 级别 | 选填 | |
dip | 像素值 | 选填 | |
language | 系统语言 | 选填 | zh 代表中文,en 代表英文 |
imei | 手机真实物理序列号 | 必填 | android 必填,一串数字 |
android_id | Android 设备系统 id | 选填 | |
idfa | 苹果手机标识 | 必填 | ios 必填 |
idfv | IOS 设备的 idfv 值 | 必填 | ios 必填 |
udid | IOS 设备的 openuid | 选填 | |
sn | 手机序列号 | 选填 | |
imsi | 设备 imsi 值 | 选填 | |
oaid | 匿名设备标识符 | 选填 | 若无法拿到 imei 值,建议填写此值 |
mac | mac 地址(android) | 必填 | 如果没有,如果没有,则传 02:00:00:00:00:00 |
network_type | 用户网络类型 | 必填 | 2g,3g,4g,5g,wifi(均为小写) |
carrier | 运营商 | 必填 | 传获取到的原始值,46000,46002 移动 46001 联通,46003 电信(均为字符串) |
coordinate_type | GPS 坐标类型 | 选填 | WGS84 为全球卫星定位坐标系,GCJ02 国家测绘局坐标系,BD09 为百度坐标系 |
longitude | GPS 坐标经度 | 选填 | |
latitude | GPS 坐标纬度 | 选填 | |
timestamp | GPS 时间戳信息 | 选填 | |
lac | 基站位置区域码 | 选填 | |
cellularid | 基站编码 | 选填 | |
country | 国家英文缩写 | 选填 | CHN 代表中国 |
# response
# 1.ad_zk
一 当返回的 json 中 type 为"ad_zk"时,返回广告字段如下:
参数名称 | 说明 | 备注 |
---|---|---|
errno | 错误类型,如果出错显示具体的错误,方便调试 | |
log_id | 每次请求的标识 | |
message | 错误信息 | |
statusCode | 返回状态码 | |
data | ||
type | 广告类型 | ad_zk |
ad_height | 广告高度 | |
ad_width | 广告宽度 | |
id | 广告 id | |
image_url | 广告图片 url | |
title | 广告标题 | |
icon_url | icon url | 下角标图片链接 |
landing_url | 广告落地页地址 | |
imp_track_url | 广告曝光上报 url | 为数组,逐条上报 |
org_url | xxx | 可以忽视,不用处理 |
# 2.ad_lm
二 当返回的 json 中 type 为"ad_lm"时,返回广告字段如下:
参数名称 | 说明 | 备注 |
---|---|---|
errno | 错误类型,如果出错显示具体的错误,方便调试 | |
log_id | 每次请求的标识 | |
message | 错误信息 | |
statusCode | 返回状态码 | |
data | ||
type | 广告类型 | ad_lm |
ad_height | 广告高度 | |
ad_width | 广告宽度 | |
id | 广告 id | |
image_url | 广告图片 url | |
title | 广告标题 | |
icon_url | icon url | 下角标图片链接 |
org_url | 该类型广告的链接 | 处理跳转的时候,需在该 url 后拼接 is_trans=1 |
imp_track_url | 广告曝光上报 url | 为数组,逐条上报 |
landing_url | xxx | 可以忽视,不用处理 |
# 3.ad_adx
三 当返回的 json 中 type 为"ad_adx"时,返回广告字段如下:
需要解析完最外层 data 等到以下广告参数。
参数名称 | 类型 | 说明 | 备注 |
---|---|---|---|
errno | int | 错误类型,如果出错显示具体的错误,方便调试 | |
log_id | string | 每次请求的标识 | |
message | string | 错误信息 | |
statusCode | string | 返回状态码 | |
data | object | 广告数据 |
data 参数
参数名称 | 类型 | 说明 | 备注 |
---|---|---|---|
type | string | 广告类型 | ad_adx |
click_action | int | 点击行为,0-打开网页 1-下载 2-appstore | |
creative_type | int | 0 为图文广告,1 为激励视频广告 | |
ad_height | int | 广告高度 | |
ad_width | int | 广告宽度 | |
id | string | 广告 id | |
image_url | string | 广告图片 url,当广告是激励视频的时候为视频封面 | 以逗号隔开多个图片 url |
gdttrack | int | 是否为广点通转化监测 0-否 1-是 | 如果是 1,参考文档最后一部分 广点通 app 下载落地页处理流程 |
title | string | 广告标题 | |
icon | string | icon | 下角标图片链接 |
dp_url | string | deeplink 跳转地址,字符串 | 点击地址须优先使用 dp_url,landing_url 次之 |
dp_clk | []string | deeplink 跳转监控地址,字符串 | 一维数组 |
landing_url | string | 广告落地页地址 | 点击落地页,如果是 app 下载,则为 app 下载地址。点击地址须优先使用 dp_url,landing_url 次之 |
imp_track_url | []string | 广告上报 url | 为数组,逐条上报 |
click_track_url | []string | 点击上报 url | 为数组,逐条上报 |
arrDownloadTrackUrl | []string | 开始下载上报地址 | 一维数组,当 action_type=1 上报 |
arrDownloadedTrackUrl | []string | 下载完成上报地址 | 一维数组,当 action_type=1 上报 |
arrInstallTrackUrl | []string | 开始安装上报地址 | 一维数组,当 action_type=1 上报 |
arrInstalledTrackUrl | []string | 安装完成上报地址 | 一维数组,当 action_type=1 上报 |
appname | string | 下载类应用名字 | 如果没有就为空 |
bundle | string | 下载类广告包名 | 如果没有就为空 |
Incentive_video | object | 激励视频相关字段,为 json 串 | 激励视频特有参数,如果不是激励视频,请忽略 |
Incentive_video 参数
参数名称 | 类型 | 说明 | 备注 |
---|---|---|---|
video_url | string | 激励视频 素材的链接地址 | 激励视频特有字段,视频素材地址,可能是 html 代码、url 链接 |
prefetch | int | 是否预先加载视频 | 非必须 |
video_loaded_trackers | []string | 视频加载成功上报地址 | 非必须 |
skip | []string | 激励视频播放跳过 | 一维数组,激励视频特有字段,非必须 |
close | []string | 关闭视频上报地址 | 非必须 |
video_duration | int | 激励视频播放时长 | 激励视频特有字段 |
progress | []progressTrack | 播放进度监控 | 激励视频特有字段 |
stoptrack | []string | 暂停播放监控上报 | 激励视频特有字段,非必须 |
preimage | string | 激励视频前置图片地址 | 非必须 |
endcardhtml | string | 视频播放完成后显示的 endCard HTML 页面 | 激励视频特有字段,非必须 |
html_exposure_tracking | []string | html 展示上报 url | 非必须,有 endcardhtml 需上报 |
html_close_tracking | []string | html 关闭上报 url | 非必须,有 endcardhtml 需上报 |
afterimage | string | 播放完成后展示的图片地址 | 激励视频特有字段,非必须 |
progressTrack
参数名 | 类型 | 说明 | 备注 |
---|---|---|---|
time | int | 必须下发 | 视频广告:广告播放到 Time 时间上报,单位秒 |
imp_url | []string | 必须下发 | 监控上报地址 |
# 4.ad_lmnew
四 当返回的 json 中 type 为"ad_lmnew"时,返回广告字段如下:
参数名称 | 说明 | 备注 |
---|---|---|
errno | 错误类型,如果出错显示具体的错误,方便调试 | |
log_id | 每次请求的标识 | |
message | 错误信息 | |
statusCode | 返回状态码 | |
data | ||
type | 广告类型 | ad_lmnew |
ad_height | 广告高度 | |
ad_width | 广告宽度 | |
id | 广告 id | |
image_url | 广告图片 url | |
title | 广告标题 | |
landing_url | 广告落地页地址 | |
lm_js_sdk_str | js script 字符串 | 为数组,需前端自己插入,lm_js_sdk_str[0]为广告 js 脚本,lm_js_sdk_str[1]若存在则为前者的 sdk |
imp_track_url | 广告上报 url | 为数组,逐条上报 |
org_url | xxx | 可以忽视,不用处理 |
# 前端展示(HTML)
# 1.ad_zk 类型
前端自己布局 主要用到以下参数
布局需要的参数
- title - 广告标题
- img_url - 广告素材图片 多张图片以英文逗号分隔 如"图片 1.jpg,图片 2.jpg,图片 3.jpg"
- landing_url - 广告落地页地址
上报需要的参数
- imp_track_url 为数组,需要一一上报
# 2.ad_adx 类型
前端自己布局 主要用到以下参数
布局需要的参数
- title - 广告标题
- image_url - 广告素材图片 多张图片以英文逗号分隔 如"图片 1.jpg,图片 2.jpg,图片 3.jpg"
- landing_url - 广告落地页地址
- dp_url - deeplink 地址,如果 dp_url 下发了并且不为空比 landing_url 优先使用,当 deeplink 吊起失败后需要去调用 landing_url
上报需要的参数
- imp_track_url 为数组,需要一一上报
- click_track_url 为数组,点击时需要一一上报
- dp_clk 为数组, 当使用 dp_url 时候,需要对 dp_clk 进行逐一上报
- 当是下载类广告时, 需要对开始下载时候使用 arrDownloadTrackUrl 逐一上报;下载完后使用 arrDownloadedTrackUrl 一一上报;安装开始使用 arrInstallTrackUrl 一一上报;下载完成使用 arrInstalledTrackUrl 一一上报。
# 3.ad_lm 类型
主要用到以下参数
布局需要的参数
- org_url - 广告的链接 需要在后面拼接 '&is_trans=1'
- ad_height - 广告高度
- ad_width - 广告宽度
上报需要的参数
- imp_track_url 为数组,需要一一上报
<!--不能直接使用-->
<iframe
id="iframe"
src="`${ org_url }&is_trans=1`"
scrolling="no"
frameborder="0"
width="100%"
height=""
></iframe>
<script>
const clientWidth = document.body.clientWidth;
const height = (ad_height / ad_width) * clientWidth;
function iframeHeight() {
const obj = document.getElementById("iframe");
obj.height = height;
}
iframeHeight();
</script>
# 4.ad_lmnew 类型(原生 Andorid/IOS 无法用)
主要用到以下参数
生成 dom 元素需要的参数
- lm_js_sdk_str - js script 字符串 数组 ['','']
- -- lm_js_sdk_str[0] 广告的 script 标签字符串
- -- lm_js_sdk_str[1] 若存在 则为 sdk script 标签字符串
上报需要的参数
- imp_track_url 为数组,需要一一上报
<!--放置广告的容器-->
<div id="ad"></div>
<!--js代码-->
<script>
/****** 以下两个方法可直接使用 *******/
/************ start **************/
function createScript(str) {
const tempDom = document.createElement("div");
tempDom.innerHTML = str;
const tem = tempDom.childNodes[0];
const script = document.createElement("script");
for (let i = 0; i < tem.attributes.length; i++) {
const item = tem.attributes[i];
script.setAttribute(item.name, item.value);
}
script.innerHTML = tem.innerHTML;
if (script.innerHTML.includes("document.write")) {
const innerHTML =
"var currentScript = document.currentScript;var d = document;" +
"(function () {" +
"var document = {" +
"write: function (str) {" +
'var div = d.createElement("div");' +
"div.innerHTML = str;" +
"for (var i = 0; i < div.childNodes.length; i++) {" +
"currentScript.parentNode.insertBefore(div.childNodes[i], currentScript)}}};" +
script.innerHTML +
"})()";
script.innerHTML = innerHTML;
}
return script;
}
const addedList = [];
function addSDK(sdkStr) {
if (!addedList.includes(sdkStr)) {
addedList.push(sdkStr);
const script = createScript(sdkStr);
document.body.appendChild(script);
}
}
/************ end **************/
if (lm_js_sdk_str[0]) {
const script = createScript(lm_js_sdk_str[0]);
const container = document.getElementById("ad");
container.appendChild(script);
if (lm_js_sdk_str[1]) {
addSDK(lm_js_sdk_str[1]);
}
}
</script>
# 请求示例
请求 url:
https://xiaojiding.com/HttpService/indep_ad
请求 body:
{
"ad_show_type": "1",
"adslot_id": 0,
"android_id": "4c8bec7f9516367c",
"api_version": "1",
"app_id": "test",
"carrier": "46007",
"client_ip": "59.41.119.101",
"device_type": "PHONE",
"hv": 1,
"imei": "869287043498537",
"imsi": "460071579802980",
"mac": "E0:03:07:55:0E:10",
"make": "XiaoMi",
"model": "MI6",
"network_type": "wifi",
"oaid": "cfdfdcca-ffb7-cd28-f6df-777ff1cfc250",
"os": "Android",
"os_version": "7.0.4",
"screen_height": 1900,
"screen_width": 1080,
"timestamp": "1584503135",
"ua": "Mozilla/5.0(Linux;Android7.0;M654Build/NRD90M;wv)AppleWebKit/537.36(KHTML,likeGecko)Version/4.0Chrome/53.0.2749.0MobileSafari/537.36",
"user_id": "869287043498537"
}
返回示例:
{
"data": {
"count": 1,
"data": [
{
"Incentive_video": {},
"ad_height": 0,
"ad_width": 0,
"adslot_id": -1,
"api_version": 1,
"click_track_url": [
"https://xiaojiding.com/HttpService/ad_track?key=0&app_id=test&type=ad_adx&id=ad_03172&user_id=gzcw&action_type=2&ad_show_where=1&data_update_level=0",
"http://logup.xinxiansk.com:8100/track/clicklog?u=9d0e4483-6bad-450b-9a80-af7a598712c2&s=huichuan&c=D1890027&slotid=20200316041304g3njv0&imei=device_imei_869287043498537&ip=59.41.119.101&ua=24b2c3e01cdfe4e3&t=1589956348064&vid=0&sig=66b279ff7d5d8d8811bd1b8b836705a6",
"http://adalliance.zmeng123.com/zmtmobads/v1/click.do?target=xZJwVOY84KnGeDc7chlIk4Jc03Xcb6JgXT0803TUH6e5GNCF5Jp9qcPwRmt1_tqOixy4lzTStgYXMcStkEbVrIBxPH5NhsUFXBx_8BXux900t8_TR2H6-2GzY4XXZG4w1VsWbfcpcP1XNzbB3ufCNm8CCh_ke1ARxb5saw55rHA8MBUzsqRWHOsI9jsXi6TMHVizdeNXelR8t5MrduBUMyY4R3CU4q7pDagluCffg7RKxCf5jqjkDeSdZqLSbmggvv3Jlw-kfcMJXXZBBNAul3Hg8VZj4OaTN5Wpf4mhydfHsJaLZ0wXr3dZ77VYaEr_X8VwbS4VKeHyWDFpDL7oEtO3NcR_mwBUkk-0kcrvpCe_TtpIWswoV7UV3iVbmY-nIKgD4FYeB1yOSipFjknFwQ&downy=__DOWN_Y__&downx=__DOWN_X__&width=__WIDTH__&upx=__UP_X__&height=__HEIGHT__&upy=__UP_Y__",
"http://huichuan.sm.cn/c?data=ALAAAAcFAAApSzsNue4sqHKBCpjr6awvECg1u4tn-qhWuTYrWRDbzHCT4Ea3b38PKe4Q4APfclIvj7iiW-JbasMjHPfQGP3Zgrep2BcJ_3a3R4tkEHxwzGuwb-XD_stVsXAgKm-fGL-08jMuqjjr1xrfWPO18aWD5Jo9TBs7-UJ5GImRTt0P1z4glU1K2kZRNKZolZ9A4CRHy3zWqgkhM4n6xY1NZnL2m855qYtS5iJRtZ5KCNyMsWF69D4X9L15S_1SetVklGyOQBne4h8_0qotXEMAdmKNX8ZbW1yPzaKRKczNb_cyrAP3J6Oy6shXypTqv2SJxzAV-ImWZx5CPGU6byW_WFKnJgEhSniMybLhe74NVgtxYa4pCzxm7JeEF8cX5hI_m9fqYUY8UgBuCfxHyrwfEfxPd9Kazd8Lew_rWh9g2T6CJdOvdRxRQE0t0GHxNu2MYbeNGd9p5AL9wZHNswpeBq2P85jAa1MZQUAY57OwzzXWoaSmicskRuWVTXGZ0F1OxNCc5xPRmgrE3CAlkeqqXxq5-RuX-3LmbD1gXkLTFurBaqzuFOzk2KjPD6AJtXOby1eYt1jEnSEhQiFwFKHN3druJkYlJxeiYODwFQScCmRZLfMWYDg6kVemnR8xz63T8cx4wr9YaCc2kKz9S_9hbOJcEaj05oOWRCUlxjZoEXt2Y5XyDtNXVlt9YPcWfQHScQZkSrzz1nFSlsIlpDjrhVZwMZ28Cn2W_6DSe36Y0ufuiDxHQY1Or3TK3ISgcDecbfT-PjRqeYvOJbwnFVwA2JOESn2STCQm9Swy-IVKjTDVgSwADXIDiZ7yF2RqW5xTFMou9yWAVsgRl6ZXrF_e17ZkNMjkozT4Dd4J6Yrw7tKBw1jxLKy7PVaunFGj91CLbeQJX8kasRRuTERMPMGHuqB3e0Tt0V6jhGcAcnVsrUrRuh5omBlArAay_fs0_D4ADZ9i0XIulpT_ANXVJG83mhaVBAGiMSabEKhw7cPj51MtXRKOetv2f8RgRxE-Z6q5Xz0Pskap66awi6_6SDfGCyFFycyK6hF-EYnWYRtZR2rJdfl3chHlW1t3tHl9hsjozBn4PY4crTCU581F18NQjYiXhGR5Y6iz7kLNDlPmNiUZuPNLzR97vnFxV5tikWE5qfDTqWwfEofj1oOqZaFH8vTfqgfRH6cX4xU1_XaCFaUBtxS3sAAzWlM38gUjrILH2jkJFi9PV-D0bbCxkD82lyMWI6FPLx7E8YcBzTW5vRmX00Fej0dBG-tym8KC04k_N7XWOJpyDDuE-Ad6Q2ihTJGE-nf3FMF-sx2-j_Xf7tNftJSVNPSYdlWm_PQa0TslKheUV-S3ccqsORFxwyTVpY_guhh2roJmW_l77jQVmlIvuxA5_Qs06wf2hjAXV3uSyh_KPilqAMYbFoxiPZPq2hUKVqhrW_CMrMn01earAPAuteF7BThPin2tlhN8w1BzulgKYHdMzoKKbwPAasQRMnLO3rIk-WunmVpKmpEr5s6qoUDyEz4gvqxT0OrwAleYHGkvnNgOMaKVpaOiZuV4cBDFi7CR_LsAKkP4zI6XhHBcy5THA6lsuNzQytu9k_ks1c_C_bYb01WLHGrzACYV78lc-eV7rMXXLDrW0orCFxXBfWeuSEH8heQ8Q12F7Z35Nj3ehev2BSYQF8Wt3rOtZxG0dsI8W3usC840TpEdHd4Qvbaa8KQGilQ:&stm={TS}"
],
"id": "ad_03172",
"image_url": "http://image.uczzd.cn/?id=11656890759114502266",
"imp_track_url": [
"https://xiaojiding.com/HttpService/ad_track?key=0&app_id=tzrd&type=ad_adx&id=ad_03172&user_id=gzcw&action_type=1&ad_show_where=1&data_update_level=0",
"http://logup.xinxiansk.com:8100/track/showlog?u=9d0e4483-6bad-450b-9a80-af7a598712c2&s=huichuan&c=D1890027&slotid=20200316041304g3njv0&imei=device_imei_869287043498537&ip=59.41.119.101&ua=24b2c3e01cdfe4e3&t=1589956348064&vid=0&sig=66b279ff7d5d8d8811bd1b8b836705a6",
"http://huichuan.sm.cn/v?data=AKsAAAcFAAApSzsNue4sqHKBCpjr6awvECg1u4tn-qhWuTYrWRDbzHCT4Ea3b0wOKe4Q4APfclKjpXdHtjRRizPBB0lB2v2ZOyGSwjAbSu0maUE91i5CeyJDXe16ruDb6qirE7gZ4Q9VtfAqvbmWDtLU5urizOc3cpyFZMNfqxIUKxN4QJB5sWsoloeGdLy3lpwSZid_vCI6FY4yMT23E3FHA3gd6bJtB7mUxwHPXBrcFCsxPW1-ub1jMsV_mvRmxYX4MLx6KO6cqdRjYDnjcgK8NVwtqo2RLewINlgqAudLEhzHhh8asF8a2AlmhEhlMeTmDk3Znv2FA-38qDKh7Kc1uBLWE7H2eqsXVAojxcTBkj6C3-FKzmI14WmR29_46MfHCEZPDdha9tNVHN3Y7GuC9buRhfDdJvIK0Jm-bIShk3sggPsSeh2QgFX7vFKxSTzS8sNaUp1mxak-fbl2gUlV1m0yZLlnZb3ZjRCgCPY2Cm59ip8yYjQnAXuafEF9ICGnwBycQylyCrWIvIsqiVbHgZXrUHr3scqAa-Xj_S7OmqYrOwWPsTXqG4dIMf9NwETIl_i1Iu2CDrCw5LmEiz82wc_5f-So_RR2JehynJntA-NqZs4pjGUCmst3EVjeVX1vReotqVrjXUUzvXS24DaV_1r0vvgRndcviMiBcqQfEU60W4s6Os6BCz3IwhExIi-xG0Z9r2yCi81Tk9IB4ajuuSJ_ChnIqHy94yHkXLj_m64yjX6W8NLMku_rJfJxcWRk9SbezXtIZkr1D3NXPwBuvEYP7Cs9E51oq6cS9XVCT49RKopojf6ioArwLBbXCOw3ciT54eaxo-_HV3npZaf9-5kkuw9cW4iaUSn7IMEJigGOmCBPgD6ln3tn49WOj-4jKGPLAIh9-z8w5TP0W0yqOZeBrPWikxZaf088WhfczNtezr4ZbHvuuUag0QsNJN7CCBeuCZVKto4ce8GzFkXnLAbxwKj-u_JppDaFcPGuF9XNTBu80ReRi7M1EOcYc30aW8eDsY1cDm0J1Y2lzyWIcFuPAJQSyNQNkFijcKkeq6zkUrWi6nEwZpA8wc6V3O6ZzO0qmq2pf_ZmSk839N8kVWja33qtCmkEu10T_9oUCQwY03VaCgHVCg1xRIUI7VvGzn8mCnAY82LWHCA9kmL5SHPxQUNKoRfrOXfUQJGxvFQ3W3RU4Pnu9ZufhfGablvT16HBggR-g_kslOKm5mnyS4o0hPrHcqS9An5w_eWwGeXJzG30qxjsWUq3H_dJncK1v4E96o8noSR2Q4-962nJAZufouCehHQkQdQotgnrydn_ZL_id1b09nNgnl8ky3iK-q3CBGfxxNS_6kIqKKvzP-iMBHI7yVRYhjLY3jobCUOW6f-Viae8azEdAQC8wf9q5UhROgvYFjle9iODpPiccklgaCysAtubPgBqL86gg5jGvYnJQmaoG4oWVME5UrQIowAoXnWSX6eh1IgYLxSzZ-XAg0q6T2PhpsubGbW0AsLmz3MlKJ30Joiu2PnhIanT6PIRP32jMwv2Z3bF7bRnKCwOb5HcM6Kz6m9te6FHA4P-T6gODpcEPyI_cM43G5ayPpcCMOutaY2UImSWqQ_g8MhruNfGZG9XQW3XiEjzDh7xtFtiuibalIqgb0ocy7NV20n8lTgauljRK2xtGmeqJF4YD9iav1kJxGPIMjUb2ERi7idb8ImJKOCSOTs:&stm={TS}",
"http://adalliance.zmeng123.com/zmtmobads/v1/impl.do?target=xZJwVOY84KnGeDc7chlIk4Jc03Xcb6JgXT0803TUH6e5GNCF5Jp9qcPwRmt1_tqOixy4lzTStgYXMcStkEbVrIBxPH5NhsUFXBx_8BXux900t8_TR2H6-2GzY4XXZG4w1VsWbfcpcP1XNzbB3ufCNm8CCh_ke1ARxb5saw55rHA8MBUzsqRWHOsI9jsXi6TMHVizdeNXelR8t5MrduBUMyY4R3CU4q7pDagluCffg7RKxCf5jqjkDeSdZqLSbmggvv3Jlw-kfcMJXXZBBNAul3Hg8VZj4OaTN5Wpf4mhydfHsJaLZ0wXr3dZ77VYaEr_X8VwbS4VKeHyWDFpDL7oEtO3NcR_mwBUkk-0kcrvpCe_TtpIWswoV7UV3iVbmY-nIKgD4FYeB1yOSipFjknFwQ"
],
"landing_url": "http://sm.yonghemaofa.cn/uc/zx/13/?-8-5.19-santu-1-1&creativeid=52979886&campaignid=37175128&groupid=3119142",
"lm_js_sdk_str": ["", ""],
"org_url": "https://xiaojiding.com/HttpService/ad_track?key=0&app_id=tzrd&type=ad_adx&id=ad_03172&user_id=gzcw",
"title": "男人秃头,出门没面子?植发3000单位需要多少钱?查看价格一览表",
"type": "ad_adx"
}
]
},
"errno": 0,
"log_id": "139827865035372",
"message": "ok",
"statusCode": "200"
}
# 系统支持的宏
宏列表
宏名 | 说明 | 适用范围 |
---|---|---|
__DOWN_X__ | 点击按下坐标 x,若不支持则替换为 -999, 坐标单位为像素, 基于广告位, 参见下图坐标说明 | 点击监测,点击落地页, deeplink |
__DOWN_Y__ | 点击按下坐标 y,若不支持则替换为 -999,坐标单位为像素,基于广告位,参见下图说明 | 点击监测,点击落地页, deeplink |
__UP_X__ | 点击弹起坐标 x,若不支持则替换为 -999, 坐标单位为像素, 基于广告位, 参见下图坐标说明 | 点击监测,点击落地页, deeplink |
__UP_Y__ | 点击弹起坐标 y,若不支持则替换为 -999,坐标单位为像素,基于广告位,参见下图说明 | 点击监测,点击落地页, deeplink |
__clk_time__ | (*广点通)点击时间,unix 时间戳,精确到毫秒,13 位 | 点击监测,点击落地页, deeplink |
__gdt_click_id__ | (*广点通)广点通 android app 下载接口返回 id | app 下载、安装监测 |
__WIDTH__ | 实际广告位的宽,单位为像素 | 展现、点击检测,落地页,deeplink |
__HEIGHT__ | 实际广告位的高,单位为像素 | 展现、点击检测,落地页,deeplink |
2.点击坐标说明:
# 广点通 app 下载落地页处理流程
若广告响应的 gdttrack = 1,说明本广告响应的落地页 landing 是一个广点通的 app 下载。 这种情况下 landing_url 需要按以下流程特殊处理:
先对 landing_url 进行宏替换(参见宏替换中适用于落地页的相关宏说明) ;
以 http get 访问宏替换后的落地页, 返回的 http code 200, body 是一个 json, 其格式如下:
{ "ret": 0, "data": { "dstlink": "http://click.xxx.com/278378/0E33A3.apk", "clickid": "jarbawhga4akgqsrylma" } }
其中, dstlink 是最终的 app 下载地址, clickid 是用于替换下载和安装上报的宏:__gdt_click_id__
访问 dstlink 下载 app ,在 app 下载和安装的对应时机 , 通过访问下载和安装的上报 url 实现转化上报(上报前使用 clickid 的值替换宏__gdt_click_id__)