💎一站式轻松地调用各大LLM模型接口,支持GPT4、智谱、星火、月之暗面及文生图 广告
[TOC] ## **更新日志** | 版本 | 更新时间 | 修订内容 | | --- | --- | --- | | 1.2.0 | 2021-01-20 | 1、添加deeplink点击上报事件<br />2、跑OPPO需要相对坐标和绝对坐标,跑vivo只需要相对坐标 | | 1.2.1 | 2021-03-26 | 1、删除参数 img_type<br />2、添加参数 caid | | 1.3.0 | 2021-04-09 | 1、新增广点通广告 | | 1.3.1 | 2021-06-03 | 1、 新增参数support_universal、os_update_time、os_startup_time、phone_name、phone_name、sys_memory、sys_disksize、hardware_machine、country、language、timezone、hms_ver、hwag_ver| | 1.3.2 | 2021-09-02 | 1、新增参数 boot_mark、update_mark | | 1.3.3 | 2021-09-03 | 1、添加返回字段is_gdt, 修改广点通预算输出方式 | | 1.3.4 | 2021-09-09 | 1、新增参数 ali_aaid, iOS跑阿里预算必填| | 1.3.5 | 2021-10-08 | 1、删除宏\_\_DOWN_TIME__、\_\_UP_TIME__、\_\_SHOW_TIME__、\_\_CLICK_TIME__<br>2、新增宏请求广告位宽高\_\_REQ\_WIDTH\_\_、\_\_REQ\_HEIGHT\_\_;<br>广告展示区域坐标:\_\_DISPLAY\_LUX\_\_、\_\_DISPLAY\_LUY\_\_、\_\_DISPLAY\_RDX\_\_、\_\_DISPLAY\_RDY\_\_;<br>广告按钮区域坐标:\_\_BUTTON\_LUX\_\_、\_\_BUTTON\_LUY\_\_、\_\_BUTTON\_RDX\_\_、\_\_BUTTON\_RDY\_\_;<br>设备参数信息:\_\_MAC\_M\_\_、\_\_MAC\_MS\_\_、\_\_IMEI\_M\_\_、\_\_ANDROIDID\_\_、\_\_ANDROIDID\_M\_\_;<br>视频时间:\_\_VIDEO\_TIME\_\_、\_\_BEGIN\_TIME\_\_、\_\_END\_TIME\_\_| | 1.3.6 | 2021-11-25 | 1、添加fallback\_type返回字段 | | 1.3.7 | 2022-01-04 | 1、新增参数 installed | | 1.3.8 | 2022-06-15 | 1、添加广点通唤醒广告处理方式 | | 1.4.0 | 2022-11-25 | 1、新增参数api_version、count,新增响应字段Ad.id<br>2、响应字段data由对象改为数组对象(为了兼容,参数带api_version时生效) | | 1.4.1 | 2022-12-12 | 1、新增小程序响应字段applet_id、applet_path、applet_appid,interaction_type=3| | 1.4.2 | 2023-1-13 | 1、新增逻辑像素宏| | 1.4.3 | 2023-4-23 | 1、新增响应字段ua| | 1.4.4 | 2023-4-25 | 1、新增响应字段clk_time、over_time<br /> 2、新增参数bidfloor、响应字段price、价格宏__LW_BID_PRICE__| | 1.4.5 | 2023-5-18 | 1、新增广告交互方式宏_\_SLD__| ## **接入说明** 本文档定义了广告平台接入协议,便于媒体实现快速接入。 接入方务必详细阅读对接流程及连接方式,避免对接过程中出现问题。 > 正式对接时,媒体方需要向 BlueMobi 运营人员申请联调地址和代码位ID; ## **开发原则** 1. POST 方式,参数值以 UTF-8 编码,请使用 json/application作为 Content-Type,<span style="color:red;"> **请使用长连接请求**</span>。 2. 通过 API 请求到的广告内容,请及时展现给终端用户,不要缓存,不要同一广告展现多次,这样广告服务会将该点击判为作弊,反而使得开发者收入降低。 3. 开发者在广告请求时应尽可能多填写参数,这样广告服务可以配到更相关、用户更喜欢的广告, 能够提升用户点击率,从而提高开发者收入。但是如果开发者本身获取不到可选参数,请开发者不要随便填写可选字段,这样反而可能造成配到不相关广告,降低点击率,影响开发者收入。总之,对于可选字段,开发者应该尽最大可能填写准确可信的值。 4. 请求广告时,若从服务器发起,必须使用 ip 参数传入用户原始 IP 地址。 5. 展示上报和点击上报必须从客户端发起,禁止通过第三方服务器发起,以免被判定为作弊。 6. 请求和上报 HTTP 请求中的 User-Agent 请设置成客户端浏览器默认 User-Agent 值,不允许自定义 User-Agent, 以免被判定为作弊。请求到的广告如果超过半小时,展示就不用上报了 7. **请求和上报的ua, ip要保持一致, 宏替换尽量替换,以免过滤** 8. <span style='color:red;'>**所有广告进入落地页或者进行上报时,请求头如果在x-request-with、ua、cookie等中携带包名,需要去掉。示例: {"x-requested-with":"com.baidu.video"}**</span> ## **请求参数** | 字段 | 类型| 是否必填 | 备注 | | --- | --- | --- | --- | | api_version | String | 是| API版本,当前版本号1.4.0| | app_name | String | 是| 应用名称| | app_version | String | 是| 应用版本,来源 于 manifest 的 versionName ,而不是versionCode如3.5.6| | app_version_code | Int | 是| 应用版本号,来源于 manifest 的 versionCode。如 119| | pkg_name | String | 是| 应用包名| | platform | Int | 是| 平台:<br /> 0 - 未知<br />1 - 安卓<br /> 2 - IOS <br /> 3 - 其他| | make | String | 是| 设备制造商,例如 OPPO| | model | String | 是| 设备硬件型号,例如 PGCM10| | brand | String | 是| 手机品牌,例如 OPPO| | hwv | String | 推荐| 硬件型号版本,例如 iPhone 中的 7S,默认值:"unkown"| | os | String | 是| 操作系统,Android 或 iOS 字符串,注意大小写| | os_version | String | 是| 系统版本,示例:7.0| | osapilevel | Int | 是|安卓系统版本系统级别,示例:24。 av >= 29时,视为安卓系统为 Android Q 及以上| | android_id | String | 是| Android ID| | auidmd5 | String | 是| Android ID的MD5值| | auidsha1 | String | 是| Android ID的sha1值| | imei | String | 是| Android 系统必填,Android手机设备的imei| | imeimd5 | String | 是| Android 系统必填,Android手机设备的imei的MD5值| | imeisha1 | String | 是| Android 系统必填,Android手机设备的imei的sha1值| | meid | String | 否| 手机设备的meid号| | imsi | String | 否| 国际移动用户识别码| | oaid | String | 是 | 广告标识符,安卓10以上必填| | idfa | String | 是| IOS系统必填,原生大写| | idfv | String | 是| IOS系统必填| | openudid | String | 是| IOS系统必填,设备识别码| | caid| String | 否 | 中国广告协会互联网广告标识,ios14以上填写 | | ip | String | 是| IP地址| | ua | String | 是| 客户端 user-agent| | mac | String | 是| 客户端mac地址,保留原始值| | macmd5 | String | 是| 32位小写md5加密mac| | density | String | 是| 屏幕密度,比例值(dpi/160) eg: 1.5 | | ppi | Int | 是| 像素密度,表示每英寸的像素数。eg:401 | | dpi | Int | 是| 像素点密度,表示每英寸的点数。eg:240 | | screen_width | Int | 是| 屏幕的宽度| | screen_height | Int | 是| 屏幕的高度| | screen_orient | Int | 是| 屏幕的方向:<br /> 1 - 竖屏<br /> 2 - 横屏| | app_store_version | String | 否 | 样例:oppo:5500,vivo:10700 手机自带的应用商店的版本(OV广告不能为空),包括华为ag版本号等 | | rom_version | String | 否 | 手机的ROM版本号(OV广告不能为空) | | net_type | Int | 是| 客户端网络类型:<br />0.unkown<br />1.wifi<br />2.2G<br />3.3G<br />4.4G<br />5.5G| | carrier | Int | 是| 运营商类型:<br />0. 未知运营商<br />1.中国移动<br />2.中国联通<br />3.中国电信<br />4.其他运营商| | bssid | String | 推荐|无线网 ssid 名称| | wifi_mac | String | 推荐|wifi 路由的 mac 地址| | iccid | String | 否| Sim卡的序号| | mnc | String | 否| 基站MNC| | mcc | String | 否| 基站MCC| | serialno | String | 是 | 系统设备序列号(获取不到需要报备)| | ali_aaid| String | 否 | 阿里巴巴匿名设备标识,需集成阿里SDK 获取,阿里预算必填,具体查看附件。 | | boot_mark | String | 是 | 系统启动标识,原值传输,取值参见附件文档,示例 iOS::1623815045.970028,Android:ec7f4f33-411a-47bc-8067-744a4e7e0723 | | update_mark | String | 是 | 系统更新标识,原值传输,取值参见附件文档,示例 iOS:1581141691.570419583, Android:1004697.709999999 | | os_birth_time | String | 是 | iOS必传,系统初始化时间 | | os_compiling_time | String | 是 | iOS必传, 系统编译时间 | | os_update_time | String | 是 | iOS必传,系统最近一次更新时间,单位:秒(保留6位小数)示例:"1595214620.383940" | | os_startup_time | String | 是 | iOS必传, 系统最近一次启动时间, 秒级时间戳,(保留整数) 示例:"1600607108" | | phone_name | String | 是 | 设备名称<br>例如:张三的 iPhone | | phone_name_md5 | String | 是 | 设备名称md5值 | | sys_memory | String | 是 | 系统内存,单位字节 | | sys_disksize | String | 是 | 硬盘容量,单位字节<br>例如:63900340224 | | cpu_num | String | 是 | 设备的 cpu 核心数量 | | hardware_machine | String | 是 |设备machine值,示例:"iPhone10.3" | | hardware_model | String | 是 | 设备model值示例:“D22AP",仅限iOS设备 | | country | String | 否 | 国家编码(ISO-3166-1/alpha-2)例如:CN | | language | String | 否 | 设备语言(ISO-639-1/alpha-2)例如:zh | | timezone | String | 否 | 系统所在时区例如:Asia/Shanghai | | hms_ver| String | 条件必填 | 华为安卓设备的 HMS Core的版本号,保留原始值。华为手机必填 | | hwag_ver| String | 条件必填 | 华为安卓设备的 AG(应用市场)的版本号,保留原始值。华为手机必填 | | sys_ui_ver| String | 条件必填 | 系统UI版本,保留原始值。如小米设备的 MIUI的版本号,华为、OV、魅族等设备版本号 | | gps_type | Int | 是| 坐标类型。<br />0:未知;<br />1= WGS84(全球卫星定位系统坐标系);<br />2= GCJ02(国家测绘局坐标系);<br />3= BD09(百度坐标系);| | longitude | Double | 是| 经度,默认值: 0| | latitude | Double | 是| 纬度,默认值:0| | gps_ts | Int | 是| 获取 gps 位置时的时间戳,单位:秒| | ad_width | Int | 是| 广告位宽度,单位为像素| | ad_height | Int | 是| 广告位高度,单位为像素| | support_deeplink | Int | 是| 是否支持deeplink:<br />0.不支持<br />1.支持| | support_universal | Int | 是| 是否支持universal link:<br />0.不支持<br />1.支持| | installed | []String | 否 | 从应用列表中筛选已安装的应用包名进行上传,如<br />["com.sina.news","com.kuaishou.nebula"] | | count | Int | 否 | 广告数量,默认1,预留字段,部分预算有效| | bidfloor| Int | 否 | 底价,单位分,部分预算有效| > 参数请尽量获取,实在无法获取的可暂时填写模拟默认值(0 or ""等)模拟测试,有问题再与技术协调 ## **广告响应** ### 响应参数 | 字段 | 类型 | 是否必填 | 备注 | | --- | --- | --- | --- | | code | Int | 是 | 响应状态码,0=正常, 1=无填充,其他请看msg提示 | | msg | String | 是 | 响应提示消息| | data | []Ad **Object** | 否 | 广告信息 | | unique| String | 是 | 请求唯一标识符 | ### Ad | 字段 | 类型 | 是否必填 | 备注 | | --- | --- | --- | --- | | id | String | 否 | 曝光id,每个广告唯一 | | title | String | 否 | 主标题 | | desc | String | 否 | 描述 | | price| Int | 否 | 投放出价,单位分,部分预算有效| | ad_width | Int | 否 | 广告宽度| | ad_height | Int | 否 | 广告高度 | | ad_logo | String | 否 | 广告图标 | | imgs | []String | 否 | 图片地址数组 | | fallback_type | Int | 否 | deeplink 退化类型,应用未安装时如何处理,默认0 <br />0 - 浏览器打开 <br /> 1 - 下载应用 | | interaction_type | Int | 是 | 广告操作行为:<br />0 - 落地页 <br />1 - 下载 <br />2 - 唤醒<br /> 3 - 小程序广告 | | ad_type | Int | 否 | 广告类型:<br />1 - Banner<br />2 - 开屏<br />3 - 插屏<br />4 - 信息流 <br />5 - 激励视频 | | is_gdt | Int | 否 | 是否广点通:<br />0 - 不是<br /> 1 - 是 | | replace | Int | 是 | 是否需要宏替换:<br />0 - 不需要<br /> 1 - 需要 | | deeplink | String | 否 | Deeplink地址 | | clk | String | 是 | 点击行为地址 | | clk_time | Int| 否 | 点击事件触发的时间,单位:秒,距离曝光的时间。不传或0默认正常处理后续广告行为 | | over_time | Int| 否 | 超时时间,单位秒,当因灭屏导致程序中断时间超过该设置时间时,后续广告行为不处理。不传或0默认不处理超时,正常处理后续广告行为 | | **applet_id** | String | 否 | ⼩程序原始ID,格式:gh\_xxxxxxx | | **applet_path** | String | 否 | ⼩程序⻚⾯的可带参路径,schema | | **applet_appid** | String | 否 | ⼩程序id,格式:wxexxxxxxx | | ua| String | 否 | 后续上报事件、访问素材以及落地页URL需要使用的UA,没有时默认传客户端ua | | event | Event **Object** | 是 | 事件行为,使用GET请求上报 | | video | Video **Object**| 否 | 激励视频信息 | | video_event| VideoEvent **Object** | 否 | 激励视频事件行为,使用GET请求上报 | | appinfo| App **Object** | 是 | App信息 | ### Event | 字段 | 类型 | 是否必填 | 备注 | | --- | --- | --- | --- | | show | []String | 是 | 展示跟踪链接数组,对接广告位客户端需要获取show里的所有链接进行逐条上报。上报时,http header头中需要增加User-Agent属性,下同! | | click | []String | 是 | 点击跟踪链接数组,对接广告位客户端需要获取click 里的所有链接进行逐条上报。 | | start_down| []String | 否 | 开始下载上报数组| | down_done| []String | 否 | 下载完成上报数组 | | start_install| []String | 否 | 开始安装上报数组 | | install_done| []String | 否 | 安装完成上报数组 | | open_app_success | []String | 否 | deeplink 打开成功后上报数组 | | open_app_false | []String | 否 | deeplink 打开失败后上报数组 | | open_app_click | []String | 否 | deeplink被点击(尝试唤起),如果为空,无需上报 | | active_app | []String | 否 | 安装后激活打开App后上报数组 | ### Video | 字段 | 类型 | 是否必填 | 备注 | | --- | --- | --- | --- | | url | String | 是 | 视频地址 | | cover| String | 否 | 视频素材封面地址 | | desc | String | 否 | 广告文本描述,如点击下载查看详情等 | | width | Int| 否 | 视频宽度,像素 | | height | Int| 否 | 视频高度,像素 | | duration| Float | 否 | 视频时长(秒) | | end_show_type | Int | 否 | 视频播放结束显示尾帧类型:<br />空/0:没有 ;<br />1:图片url; <br /> 2:html页面 ; <br />3:html url | | end_show_value | String | 否 | 视频播放结束显示尾帧值,存放videoEndShowType对应类型的数据 | | html_show_tracking | []String | 否 | 跳转类广告落地页展示上报链接 | | html_click_tracking | []String | 否 | 跳转类广告落地页点击上报链接 | | html_close_tracking | []String | 否 |跳转类广告落地页关闭后进行的上报链接 | ### VideoEvent | 字段 | 类型 | 是否必填 | 备注 | | --- | --- | --- | --- | | start_tracks| []String | 否 | 视频开始播放追踪 url 数组 | | click_tracks| []String | 否 | 视频播放过程中点击追踪 url 数组 | | complete_tracks| []String | 否 | 视频播放完成追踪 url 数组 | | skip_tracks| []String | 否 | 视频跳过播放追踪 url 数组 | | stop_tracks| []String | 否 | 视频暂停播放追踪 url 数组 | | unstop_tracks| []String | 否 | 视频解除暂停播放追踪 url 数组 | | mute_tracks| []String | 否 | 视频静音追踪 url 数组 | | unmute_tracks| []String | 否 | 视频取消静音追踪 url 数组 | | play_first_quartile_tracks| []String | 否 | 视频播放 1/4 追踪 url 数组 | | play_midpoint_tracks| []String | 否 | 视频播放 1/2 追踪 url 数组 | | play_third_quartile_tracks| []String | 否 | 视频播放 3/4 追踪 url 数组 | | close_tracks| []String | 否 | 视频关闭 追踪 url 数组 | ### App | 字段 | 类型 | 是否必填 | 备注 | | --- | --- | --- | --- | | app_name| String | 否 | App名称 | | package_name| String | 否 | 包名 | ## Interaction_type 值说明 | 数值 | 说明 | | --- | --- | | 0 | 落地页是页面,直接调用浏览器打开clk,展示上报 show,点击上报 click | | 1 | 点击后落地页clk是应用下载地址(若deeplink有值,先使用原生方法处理deeplink并单独触发clk点击检测),走 event 对象的下载流程,依次展示上报 show,点击上报 click,开始下载上报 start_down,下载完成上报 down_done ,开始安装上报 start_instal,安装完成上报 install_done,激活上报 active_app | | 2 | 唤醒处理,走唤醒流程,展示上报 show,点击上报 click,唤醒成功 open_app_success,唤醒失败 open_app_false | 1. 先根据图片和广告标题之类的拼揍出一个广告页面,页面出来之后逐条上报 show里的URL 2. 当用户点击后逐条上报 click 的 url,点击后先判断deeplink如果有值则访问 deeplink(如果 deeplink 有宏需要替换也得处理),拉起应用,此时上报 open_app_success 里的所有 url。如果失败,则上报 open_app_false 里的所有 url,并且根据fallback_type值判断clk链接交互方式,默认以webview浏览器打开clk ### 点击广告流程 部分广告仅部分上报流程,为空则不上报,请注意判别,结合上下文进行合理操作。 ![](https://img.kancloud.cn/1c/37/1c37a76690a43e90ebdd7b82d125bed2_984x300.png) ## 宏替换 >推荐**左右两条下划线,中间一条下划线** 使用$$、%%等特殊符号会存在兼容问题!!!从而影响上报统计,望知悉!!! <table> <tr> <th>宏</th> <th colspan="2">说明</th> </tr> <tr> <td>__REQ_WIDTH__</td> <td rowspan="6">广告位宽高</td> <td>请求时广告位宽度</td> </tr> <tr> <td>__REQ_HEIGHT__</td> <td>请求时广告位高度</td> </tr> <tr style="color:red;"> <td>__WIDTH__</td> <td>实际广告位宽度,单位为物理像素</td> </tr> <tr style="color:red;"> <td>__HEIGHT__</td> <td>实际广告位高度,单位为物理像素</td> </tr> <tr style="color:red;"> <td>__DP_WIDTH__</td> <td>实际广告位宽度,单位为逻辑像素</td> </tr> <tr style="color:red;"> <td>__DP_HEIGHT__</td> <td>实际广告位高度,单位为逻辑像素</td> </tr> <tr> <td>__DISPLAY_LUX__</td> <td rowspan="4">广告展示区域坐标(坐标定义:以屏幕左上角坐标为原点)</td> <td>左上角横坐标</td> </tr> <tr> <td>__DISPLAY_LUY__</td> <td>左上角纵坐标</td> </tr> <tr> <td>__DISPLAY_RDX__</td> <td>右下角横坐标</td> </tr> <tr> <td>__DISPLAY_RDY__</td> <td>右下角纵坐标</td> </tr> <tr style="color:red;"> <td>__DOWN_X__</td> <td rowspan="4">点击相关 1(绝对坐标定义:以屏幕左上角坐标为原点,单位物理像素)</td> <td>点击时横坐标</td> </tr> <tr style="color:red;"> <td>__DOWN_Y__</td> <td>点击时纵坐标</td> </tr> <tr style="color:red;"> <td>__UP_X__</td> <td>弹起时横坐标</td> </tr> <tr style="color:red;"> <td>__UP_Y__</td> <td>弹起时纵坐标</td> </tr> <tr style="color:red;"> <td>__DOWN_OFFSET_X__</td> <td rowspan="4">点击相关 2(相对坐标定义:以广告位左上角为原点,单位物理像素)</td> <td>点击时横坐标</td> </tr> <tr style="color:red;"> <td>__DOWN_OFFSET_Y__</td> <td>点击时纵坐标</td> </tr> <tr style="color:red;"> <td>__OFFSET_X__</td> <td>弹起时横坐标</td> </tr> <tr style="color:red;"> <td>__OFFSET_Y__</td> <td>弹起时纵坐标</td> </tr> <tr style="color:red;"> <td>__DP_DOWN_X__</td> <td rowspan="4">点击相关 3(相对坐标定义:以广告位左上角为原点,单位逻辑像素)</td> <td>点击时横坐标</td> </tr> <tr style="color:red;"> <td>__DP_DOWN_Y__</td> <td>点击时纵坐标</td> </tr> <tr style="color:red;"> <td>__DP_UP_X__</td> <td>弹起时横坐标</td> </tr> <tr style="color:red;"> <td>__DP_UP_Y__</td> <td>弹起时纵坐标</td> </tr> <tr> <td>__BUTTON_LUX__</td> <td rowspan="4">广告 按钮 区域坐标(坐标定义:以 屏 幕 左 上角坐标为原点)</td> <td>左上角横坐标</td> </tr> <tr> <td>__BUTTON_LUY__</td> <td>左上角纵坐标</td> </tr> <tr> <td>__BUTTON_RDX__</td> <td>右下角横坐标</td> </tr> <tr> <td>__BUTTON_RDY__</td> <td>右下角纵坐标</td> </tr> <tr> <td>__READY_TIME__</td> <td colspan="2">所有⼴告素材下载完成时的当前时间戳,精确到毫秒(13 位)</td> </tr> <tr style="color:red;"> <td>__TS__</td> <td colspan="2">执行时间戳秒级</td> </tr> <tr style="color:red;"> <td>__MTS__</td> <td colspan="2">执行时间戳毫秒级替换 13位</td> </tr> <tr> <td>__EVENT_TIME_START__</td> <td colspan="2">事件开始时 13位时间戳,单位毫秒</td> </tr> <tr> <td>__EVENT_TIME_END__</td> <td colspan="2">事件结束时 13位时间戳,单位毫秒</td> </tr> <tr> <td>__LONGITUDE__</td> <td colspan="2">经度,没有则替换为 0</td> </tr> <tr> <td>__LATITUDE__</td> <td colspan="2">纬度,没有则替换为 0</td> </tr> <tr> <td>__UA__</td> <td colspan="2">UserAgent,客户端 UA,需要 URLEncode</td> </tr> <tr> <td>__IP__</td> <td colspan="2">客户端IP地址</td> </tr> <tr> <td>__MAC__</td> <td colspan="2">设备 mac 地址</td> </tr> <tr> <td>__MAC_M__</td> <td colspan="2">设备的 mac 地址,字符串,保留分隔符“:”,转大写,然后 MD5 加密</td> </tr> <tr> <td>__MAC_MS__</td> <td colspan="2">设备的 mac 地址,字符串,去除分隔符“:”,转大写,然后 MD5 加密</td> </tr> <tr> <td>__IMEI__</td> <td colspan="2">IMEI,Android 设备的 IMEI 号</td> </tr> <tr> <td>__IMEI_M__</td> <td colspan="2">Android 设备的 IMEI 号,MD5 加密</td> </tr> <tr> <td>__ANDROIDID__</td> <td colspan="2">Android ID</td> </tr> <tr> <td>__ANDROIDID_M__</td> <td colspan="2">Android ID,MD5 加密</td> </tr> <tr> <td>__OAID__</td> <td colspan="2">Android 广告标识符</td> </tr> <tr> <td>__IDFA__</td> <td colspan="2">idfa,iOS 设备的 IDFA</td> </tr> <tr> <td>__CLICKAREA__</td> <td colspan="2">点击区域:1-广告素材;2-按钮</td> </tr> <tr> <td>__CLICK_ID__</td> <td colspan="2">点击唯一ID</td> </tr> <tr> <td>__DP_REASON__</td> <td colspan="2">调起失败原因,调起失败时必填:1-被 拦截,2-应用未安装,3-调起异常</td> </tr> <tr> <td>__DP_RESULT__</td> <td colspan="2">deeplink 调起结果:0-成功,1-失败</td> </tr> <tr> <td>__VIDEO_TIME__</td> <td colspan="2">视频总时长(s)</td> </tr> <tr> <td>__BEGIN_TIME__</td> <td colspan="2">视频播放开始时间(s)</td> </tr> <tr> <td>__END_TIME__</td> <td colspan="2">视频播放结束时间(s)</td> </tr> <tr> <td>__PROGRESS__</td> <td colspan="2">视频⼴告播放的进度,单位秒</td> </tr> <tr> <td>__PROGRESS_MS__</td> <td colspan="2">视频⼴告播放的进度,单位毫秒</td> </tr> <tr> <td>__RATE__</td> <td colspan="2">视频⼴告播放的进度,百分比</td> </tr> <tr> <td>__LW_BID_PRICE__</td> <td colspan="2">曝光价格原值,取整,单位分,竞价必须!</td> </tr> <tr> <td>__SLD__</td> <td colspan="2">广告交互方式:<br> 0 - 常规触屏点击<br> 1 - 滑动点击<br> 2 - 摇一摇<br> 3 - 自定义手势<br> 5 - 扭一扭<br> 6 - 擦除</td> </tr> </table> > 所有上报链接里都可能含有上面宏,都需要替换坐标,特别注意,落地页 clk 也可能含有坐标宏需要替换 比如 click 里的一条 url 包含“\_\_DOWN_X_\_ ”这个字符,那你就得用你按下时的坐标比如210,去替换这个值 ## 广点通广告处理 仅针对于**唤醒类**预算(即 deeplink有值时),且**is_gdt** 值为 1 时,执行正常唤醒操作;当唤起目标app失败时,则使用点击响应data JSON对象的**dstlink**进行跳转; 仅针对于**下载类**预算(即 Interaction\_type=1),且**is_gdt** 值为 1 时:需要 http get 二次请求 clk,以便获取到最终的下载地址以及后续下载、安装监测需要用clickid 替换里面的\_\_CLICK_ID__ 的字段。 二次请求的响应格式如下: ``` { "ret":0, "data":{ "dstlink":"http://xxx/xxx.apk", "clickid":"xxxxxxxxxxx" } } ``` 广点通坐标替换处理点: 1、广告位相对坐标 \_\_DOWN_OFFSET_X\__ 、\_\_DOWN_OFFSET_Y\__、 \_\_OFFSET_X\__、 \_\_OFFSET_Y\__ 、\_\_WIDTH__、\_\_HEIGHT__这些值必须替换 2、替换的坐标不能超出广告点击区域,例如(广告位的实际宽高:600*300,那点击的x和y一定在600和300里面) 3、宏替换在**clk**中有,点击上报链接**click**中也有,点击上报链接中的宏也都要替换,替换的值和**clk**中的一样。 | 字段 | 类型 | 描述 | | --- | --- | --- | | ret | Int | 0 表示返回值正常,当 ret 返回错误值时,不打开落地页,不发送后续监测上报 | | dstlink | String | 真正的下载地址,客户端解析 json 后直接请求该地址开始下载 app。 | | clickid | String | 点击 ID。需缓存下来,用于后续点击、下载事件上报(转化上报)。替换上报中的宏变量\_\_CLICK_ID__| ## 请求示例 ``` { "api_version": "1.4.0", "app_name": "抖音短视频", "pkg_name": "com.ss.android.ugc.aweme", "app_version": "5.6.0", "make": "Oppo", "brand": "Oppo", "model": "Oppor15", "hwv": "5s", "android_id": "83ae257b377746ec", "auidmd5": "523AB7C8EA18A674C4A085E354818AAB", "auidsha1": "bc4520537f6e32940c2e291b0a999bf079c17376", "imei": "867905025513807", "imeimd5": "B7B46DA7A31349518CD8E87857DDEC8A", "imeisha1": "69db2ef0feb8048321b8a14cd2888e42f7f9771d", "imsi": "7512a3c480f43980dc1c45738c078921", "ua": "Mozilla/5.0 (Linux; Android 8.1.0; M1816 Build/O11019; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/65.0.3325.109 Mobile Safari/537.36", "mac": "90:f0:52:40:c5:a1", "net_type": 1, "density": 1.5, "screen_width": 1080, "screen_height": 1920, "dpi": 326, "ppi": 441, "platform": 1, "os": "Android", "os_version": "10.1", "osapilevel": 8.0, "ip": "223.104.65.150", "screen_orient": 1, "serialno": "008d4305e9ab2653ce4ce86704f3cf3f", "carrier": 1, "latitude": 0, "longitude": 0, "iccid": "008d4305e9ab2653ce4ce86704f3cf3f", "bssid": "", "pkgs": "", "mnc": "", "mcc": "", "oaid": "846359299220", "ad_width": 350, "ad_height": 150, "support_deeplink": 1, "installed": [ "com.kuaishou.nebula", "com.sina.news", "com.smile.gifmaker", "com.ss.android.ugc.aweme.lite", "com.ss.android.ugc.aweme", "com.quark.browser", "com.wuba", "com.dragon.read", "com.baidu.searchbox", "com.anjuke.android.app", "com.eg.android.AlipayGphone", "com.UCMobile", "com.qqjh.easyclean", "cn.emagsoftware.gamehall", "com.tencent.qqlivekid", "com.tencent.qqlive", "com.tencent.map" ]} ``` ## 响应数据 ``` { "code": 0, "msg": "OK", "unique": "30f3cdb46c61f4", "data": [{ "title": "开屏测试广告", "desc": "", "ad_width": 720, "ad_height": 1280, "clk": "http://download.alicdn.com/wireless/taobao4android/latest/702757.apk", "deeplink": "", "replace": 0, "interaction_type": 1, "imgs": [ "http://cdn.cloudmob.xyz/img/pg_20200416105713.jpg" ], "event": { "show": [ "http://ssp2.com/media/ads_report?e=3Z97ZrBsMcXZrhy8dbUgu9Xz_MuQiaQzM8nbp06_f6xW0GhqvNw9BeDnpnAvxHbdBeZSLR9fDtDnF7g7MFCysau6HxcsS4o8NnPCry8vgj4&action=show" ], "click": [ "http://ssp2.com/media/ads_report?e=3Z97ZrBsMcXZrhy8dbUgu9Xz_MuQiaQzM8nbp06_f6xW0GhqvNw9BeDnpnAvxHbdBeZSLR9fDtDnF7g7MFCysau6HxcsS4o8NnPCry8vgj4&action=click" ], "start_down": [ "http://ssp2.com/media/ads_report?e=3Z97ZrBsMcXZrhy8dbUgu9Xz_MuQiaQzM8nbp06_f6xW0GhqvNw9BeDnpnAvxHbdBeZSLR9fDtDnF7g7MFCysau6HxcsS4o8NnPCry8vgj4&action=start_down" ], "down_done": [ "http://ssp2.com/media/ads_report?e=3Z97ZrBsMcXZrhy8dbUgu9Xz_MuQiaQzM8nbp06_f6xW0GhqvNw9BeDnpnAvxHbdBeZSLR9fDtDnF7g7MFCysau6HxcsS4o8NnPCry8vgj4&action=down_done" ], "start_install": [ "http://ssp2.com/media/ads_report?e=3Z97ZrBsMcXZrhy8dbUgu9Xz_MuQiaQzM8nbp06_f6xW0GhqvNw9BeDnpnAvxHbdBeZSLR9fDtDnF7g7MFCysau6HxcsS4o8NnPCry8vgj4&action=start_install" ], "install_done": [ "http://ssp2.com/media/ads_report?&action=install_done" ], "open_app_success": [ "http://ssp2.com/media/ads_report?e=3Z97ZrBsMcXZrhy8dbUgu9Xz_MuQiaQzM8nbp06_f6xW0GhqvNw9BeDnpnAvxHbdBeZSLR9fDtDnF7g7MFCysau6HxcsS4o8NnPCry8vgj4&action=open_app_success" ], "open_app_false": [ "http://ssp2.com/media/ads_report?action=open_app_false" ], "active_app": [ "http://ssp2.com/media/ads_report?e=3Z97ZrBsMcXZrhy8dbUgu9Xz_MuQiaQzM8nbp06_f6xW0GhqvNw9BeDnpnAvxHbdBeZSLR9fDtDnF7g7MFCysau6HxcsS4o8NnPCry8vgj4&action=active_app" ] }, "appinfo": { "app_name": "", "package_name": "" } }] } ``` ## 激励视频响应示例 ``` { "code": 0, "msg": "OK", "unique": "AUdisTexOhjpjDgr1611041011", "data": [{ "title": "", "desc": "这是什么神仙游戏,挂机就能领红包,提现秒到账!", "ad_width": 0, "ad_height": 0, "clk": "http://down-ddz.734399.com/download/shandianapi/shandian3-awddz-release0529.apk", "ad_type": 5, "interaction_type": 1, "replace": 1, "deeplink": "", "imgs": [ ], "event": { "show": [ "http://ssp.com/media/ads_report?" ], "click": [ "http://ssp.com/media/ads_report?" ], "start_down": [ "http://ssp.com/media/ads_report?" ], "down_done": [ "http://ssp.com/media/ads_report?" ], "start_install": [ "http://ssp.com/media/ads_report?" ], "open_app_success": [] }, "video": { "url": "http://static.wannuosili.com/material/1610957675.685468_46_tmpb8huo0kk.webm", "width": 720, "height": 1280, "size": 0, "duration": 34 }, "video_event": { "start_tracks": [ "https://adx.test.com/ssp/report?t=v" ], "click_tracks": [ "https://adx.test.com/ssp/report?t=v" ], "complete_tracks": [ "https://adx.test.com/ssp/report?t=v" ], "skip_tracks": [ "https://adx.test.com/ssp/report?t=v" ], "mute_tracks": [ "https://adx.test.com/ssp/report?t=v" ], "unmute_tracks": [ "https://adx.test.com/ssp/report?t=v" ], "play_first_quartile_tracks": [ "https://adx.test.com/ssp/report?t=v" ], "play_midpoint_tracks": [ "https://adx.test.com/ssp/report?t=v" ], "play_third_quartile_tracks": [ "https://adx.test.com/ssp/report?t=v" ] }, "appinfo": { "app_name": "", "package_name": "com.awpanda.pandaddz" } }] } ``` ## 返回状态码 | 状态码 | 说明 | | --- | --- | | 0 | 广告请求成功,有广告填充 | | 1 | 无广告填充! | | 其他 | 其他错误 | ## 附件 ### 1.参数boot\_mark和update\_mark **boot\_mark iOS参考代码** ![](https://img.kancloud.cn/d7/d7/d7d7ddda4db27457bd75ce0e8ccf6546_1160x648.png) **boot\_mark Android参考代码** ![](https://img.kancloud.cn/68/68/686800c8efdb2f22f3ab03733b1d8882_1152x776.png) **update\_mark iOS参考代码** ![](https://img.kancloud.cn/31/75/317557301a04fe521b6d803c99803a31_1160x720.png) **update\_mark Android参考代码** ![](https://img.kancloud.cn/83/7d/837dd7a5e0c73505305b039e6e628c0d_1160x560.png) ### 2.阿里aaid参数集成 [查看ali_aaid集成方式](http://ssp.ibluefrog.com/doc/Ali_AAID_API%E6%8E%A5%E5%85%A5%E6%96%87%E6%A1%A3_v0310.pdf)