高级功能
本功能为高级功能,需额外付费开通。如需开通,请咨询商务/客户经理。涉及较多技术细节,适用于对相关功能有经验的用户参考。
神策广告分析 SaaS 平台设计为开放的架构,支持订阅实时广告归因独有数据。广告分析 SaaS 服务在完成归因计算后,实时将归因结果数据通过「Push API」主动推送,供下游各类计算模块使用,此「Push API」由数据使用方提供。本文将介绍广告分析数据订阅「Push API」的方法。
订阅范围
- 当前版本支持归因事件(即激活 $AppInstall 或者页面访问 $ChannelLinkReaching事件 )的实时订阅,神策广告分析 SaaS 版默认为最新版本数据订阅能力。
订阅要求
- 提供一个 Http 或 Https 的 API,能够通过公网访问。将此 API 提供给神策售后服务开通数据订阅功能。
- API 接口必须是 POST 接口,请求体为 JSON LIST,LIST 内部一个 JSON 为一条归因事件结构,归因事件内容结构如「数据示例」内容,即 API 回调是批量接口。
- API 接口必须2秒内返回,否则被认为服务异常进行降级处理,回调API由于网络抖动等原因可能出现数据重复。
- API 接口的响应状态码,必须返回http status code 200为成功,其他均认为失败。
- API 内容均为 UTF-8 编码,提供的 API 需要适配此编码。
数据示例:
[{
"data_type":"attribution", //订阅的事件类型,attribution表示归因事件
"lib":{ //事件上报的原始lib信息,不一定全部字段都有,用户一般不需关注
"lib":"Android"
},
"distinct_id":"BzrbBtllfE", //distinct id
"type":"track", //原始事件的type
"event":"$AppInstall", //事件名,归因场景就是归因事件名
"time":1670236279828, //归因事件发生的时间
"recv_time":1670236343489, //事件接收的时间
"ngx_ip":"204.180.31.29", //
"process_time":1670236347765, //处理时间,如归因事件则为归因处理的时间
"user_id":4209889997192905273,
"project_id":2,
"properties":{ //归因事件的原始属性
"$browser_version":"87.0.4280.101",
"$os_version":"10",
"$city":"未知",
"$model":"MIUI,12",
"$os":"Android",
"$matching_key_list":"p_2#ios_ins_0a52cf2bf19cb1fe31a16015a71bb454_com.xyh.test,p_2#ios_ins_d17156f9b5fb95b2742ada3e4a2dfcf9_com.xyh.test,p_2#ios_ins_FB8023C30F80B29D6FD3280BF46B4B47_com.xyh.test,p_2#ios_ins_D17156F9B5FB95B2742ADA3E4A2DFCF9_com.xyh.test,p_2#ios_ins_f1e9a9f5bd5dcea0bf2b3ebd1a3739be_com.xyh.test,p_2#ios_ins_a1f13c36909d2c9b4560baeb61d682d8_com.xyh.test,p_2#ios_ins_C99F87B6E7B1E2814873C3A5D1FF740E_com.xyh.test,p_2#ios_ins_A1F13C36909D2C9B4560BAEB61D682D8_com.xyh.test,p_2#ios_ins_834422673847602_com.xyh.test,p_2#ios_ins_e8c764cf395e0cb6308bac0556f156b3_com.xyh.test,p_2#ios_ins_E8C764CF395E0CB6308BAC0556F156B3_com.xyh.test,p_2#ios_ins_7527dfeebf5fcc90cc8b8de5724fe5d3_com.xyh.test,p_2#ios_ins_8F4FDAAC04FD191200D0B6CBCCBD88ED_com.xyh.test,p_2#ios_ins_aae989f614457d4a51ff6802e8c86156_com.xyh.test,p_2#ios_ins_AAE989F614457D4A51FF6802E8C86156_com.xyh.test,p_2#ios_ins_0a52cf2bf19cb1fe31a16015a71bb454,p_2#ios_ins_d17156f9b5fb95b2742ada3e4a2dfcf9,p_2#ios_ins_FB8023C30F80B29D6FD3280BF46B4B47,p_2#ios_ins_D17156F9B5FB95B2742ADA3$",
"$ip":"204.180.31.29",
"$browser":"Chrome Webview",
"$user_agent":"Mozilla/5.0 (Linux; Android 10; M2007J22C Build/QP1A.190711.020; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/87.0.4280.101 Mobile Safari/537.36",
"$app_version":"1.0.0",
"$lib":"Android",
"$country":"美国",
"$app_name":"神策商城 - 可视化&点击图",
"$province":"未知",
"$app_id":"com.xyh.test",
"$is_login_id":false,
"$manufacturer":"Android",
"$ad_fuzzy_user_id":"204_180_31_29_10"
},
"attribution_info":[ //归因信息,包括渠道属性等,注意一次归因可能会有多条记录,对应多个归因场景
{
"sd_matched_key":"FM#2#0#204.180.31.29", //渠道归因结果使用的key
"sd_channel_utm_medium":"hjhjk", //广告系列媒介(SAT)
"sd_channel_campaign_id":"456456456", //渠道广告计划id
"sd_channel_active_period_day":30, //渠道有效激活窗口期(天)
"sd_channel_adgroup_name":"435345", //渠道广告组名称
"sd_channel_adgroup_id":"123123", //渠道广告组id
"sd_channel_utm_campaign":"数据订阅测试", //广告系列名称(SAT)
"sd_channel_utm_term":"特尔马", //广告系列字词(SAT)
"sd_channel_name":"baidu_sem_track", //渠道名称
"sd_channel_ad_name":"435345", //渠道广告创意标题
"sd_channel_account_name":"", //渠道广告主账户名称
"sd_channel_link_id":"6wt2ytma", //渠道链接唯一id
"sd_utm_matching_type":"设备指纹模糊匹配-baidu_sem_track", //渠道追踪匹配模式
"sd_channel_campaign_name":"56765767", //渠道广告计划名称
"sd_channel_utm_content":"hjkhjkhjk", //广告系列内容(SAT)
"sd_channel_ad_id":"407714081", //渠道广告创意id
"sd_channel_utm_source":"所思123", //广告系列来源(SAT)
"sd_channel_link_type":"app", //渠道链接类型
"sd_channel_attribute_period_hour":168, //渠道激活归因窗口期(小时)
"sd_channel_account_id":"45345", //渠道广告主id
"sd_channel_keyword":"", //渠道关键词id
"sd_channel_keyword_id":"", //渠道关键词id
"sd_channel_click_id":"345345435464", //渠道监测点击id
"channel_task_type":0, //渠道任务类型
"channel_order_id":"",
"channel_term":"", //渠道搜索词
"channel_demand_id":"",
"channel_item_id":"",
"channel_event_time":1670236269828, //渠道事件的时间
"project_id":2,
"project":"production",
"matched_key_type":"IP,APP_ID,MODEL,OS,OS_VERSION", //渠道归因结果使用的key的类型
"attribution_event_name":"$AppInstall", //渠道归因事件的名称
"attribution_strategy":2, //归因策略
"attribution_scene":1 //归因场景
"match_type":"FUZZY", //渠道归因结果的匹配类型
"app_id":"com.xyh.test", //应用唯一标识
"start_date":20221205, //渠道生效的开始时间
"expiration_date":99991231, //渠道有效的过期时间
"user_id":4209889997192905273, //用户id
"custom_properties":{ //自定义参数
"p_BImport":"BImportValue"
},
},
{
"sd_matched_key":"FM#2#0#204.180.31.29",
"sd_channel_utm_medium":"hjhjk",
"sd_channel_campaign_id":"456456456",
"channel_term":"",
"sd_channel_active_period_day":30,
"sd_channel_adgroup_name":"435345",
"sd_channel_adgroup_id":"123123",
"sd_channel_utm_campaign":"数据订阅测试",
"sd_channel_utm_term":"特尔马",
"project":"production",
"custom_properties":{
"p_BImport":"BImportValue"
},
"expiration_date":99991231,
"channel_order_id":"",
"channel_demand_id":"",
"sd_channel_name":"baidu_sem_track",
"sd_channel_ad_name":"435345",
"sd_channel_account_name":"",
"project_id":2,
"sd_channel_ad_id":"407714081",
"sd_channel_utm_source":"所思123",
"matched_key_type":"IP,APP_ID,MODEL,OS,OS_VERSION",
"attribution_event_name":"$AppInstall",
"sd_channel_account_id":"45345",
"match_type":"FUZZY",
"app_id":"com.xyh.test",
"start_date":20221205,
"sd_channel_link_type":"app",
"sd_channel_keyword":"",
"attribution_strategy":2,
"sd_channel_keyword_id":"",
"channel_task_type":0,
"sd_channel_attribute_period_hour":168,
"user_id":4209889997192905273,
"sd_channel_click_id":"345345435464",
"channel_item_id":"",
"sd_channel_link_id":"6wt2ytma",
"sd_utm_matching_type":"设备指纹模糊匹配-baidu_sem_track",
"sd_channel_campaign_name":"56765767",
"sd_channel_utm_content":"hjkhjkhjk",
"channel_event_time":1670236269828,
"attribution_scene":38
}
]
},
{...}
]
其中:数据内容中「attribution_info」为神策广告分析计算的归因信息,包括渠道属性等,注意一次归因可能会有多条记录,对应多个归因场景和多归因策略,正常我们只需要关注「"attribution_scene":38 & "attribution_strategy":2」即可,归因信息数组结果内容位置可能出现调整,切勿以下标形式访问固定场景和归因策略的数据。
FAQ
1、当客户提供的 API 服务异常时,神策的处理逻辑是什么?
当 API 服务异常时,神策广告分析服务会主动重试2次,如果还是异常,则异常期间的数据会进入失败队列中,失败队列中的数据一般保留7天。如果需要这部分数据,则等 API 恢复之后,联系神策相关人员,进行人工推送 。
2、如何进行数据去重?
数据可以根据 event+time+distinct_id 进行去重。