### GET 请求回传地址配置示例 Source: https://manual.sensorsdata.cn/sensorsadstracking/docs/zdymtqdpz 展示如何根据不同的回调地址格式拼接 SAT 宏参数。 ```text http://doc.hyxt666.com/callback?appid=1020&f=0febd140dfaf70a84c2de9544b1fb2be&event_type=__ACTION_VALUE__ ``` ```text __CALLBACK_URL__event_type=__ACTION_VALUE__ ``` ```text __CALLBACK_URL__&event_type=__ACTION_VALUE__ ``` ```text __CALLBACK_URL__?event_type=__ACTION_VALUE__ ``` -------------------------------- ### GET 请求地址编码示例 Source: https://manual.sensorsdata.cn/sensorsadstracking/docs/zdymtqdpz 展示如何使用 scEncode 函数对 SAT 宏参数进行编码处理。 ```text https://xxx.xx.xx/track?conb_ext=scEncode(__CALLBACK_URL__)&ss=bbb ``` -------------------------------- ### Android 调用 trackAppInstall 记录激活事件 Source: https://manual.sensorsdata.cn/sensorsadstracking/docs/sjyjswt Android 端初始化 SDK 后调用 trackAppInstall() 记录激活事件,多次调用只在第一次触发。示例包含无自定义属性和带 DownloadChannel 自定义属性的两种调用方式。 ```JAVA // 记录激活事件,无自定义属性 try { // 触发激活事件 SensorsDataAPI.sharedInstance().trackAppInstall(); } catch (Exception e) { e.printStackTrace(); } // 记录激活事件,有自定义属性 try { JSONObject properties = new JSONObject(); //这里的 DownloadChannel 负责记录下载商店的渠道,值应传入具体应用商店包的标记。如果没有为不同商店打多渠道包,则可以忽略该属性的代码示例。 properties.put("DownloadChannel", "XXX"); // 触发激活事件 SensorsDataAPI.sharedInstance().trackAppInstall(properties); } catch (Exception e) { e.printStackTrace(); } ``` -------------------------------- ### iOS 调用 trackAppInstall 记录激活事件 Source: https://manual.sensorsdata.cn/sensorsadstracking/docs/sjyjswt iOS 端初始化 SDK 后调用 - trackAppInstall 方法记录激活事件,多次调用只在第一次触发。示例包含无自定义属性和带 DownloadChannel 自定义属性的两种调用方式。 ```Objective-C // 记录激活事件,无自定义属性 [[SensorsAnalyticsSDK sharedInstance] trackAppInstall]; // 记录激活事件,有自定义属性 [[SensorsAnalyticsSDK sharedInstance] trackAppInstallWithProperties:@{@"DownloadChannel": @"AppStore"}]; ``` -------------------------------- ### 集成并初始化微信小程序 SDK Source: https://manual.sensorsdata.cn/sensorsadstracking/docs/jczcjcxcx 通过引入 SDK 核心文件及 SAT 渠道插件,并调用 sensors.init 方法完成初始化配置。 ```javascript // 先 import 微信小程序的代码 import sensors from '/dist/wechat/sensorsdata.esm.js'; // 再引入 SAT 渠道插件的代码 import channel from '/dist/wechat/plugin/ad-channel/index.esm'; // 使用 SAT 渠道插件的代码 sensors.use(channel); // 初始化微信小程序 SDK sensors.init({ //.... }) ``` -------------------------------- ### 集成并初始化抖音小程序 SDK Source: https://manual.sensorsdata.cn/sensorsadstracking/docs/JLscAC2M 在抖音小程序中引入神策 SDK 和 SAT 渠道插件,并使用 sensors.use() 注册插件后进行初始化。要求 SDK 版本为 0.14.7 或更高。 ```javascript // 先 import 抖音或者其他小程序的代码 import sensors from '/dist/mp-bytedance/index.esm.js'; // 再在对应的抖音或者其他小程序目录中找到 plugin/sat-channel ,引入 SAT 渠道插件的代码 import channel from '/dist/mp-bytedance/plugin/sat-channel/index.esm.js'; // 使用 SAT 渠道插件的代码 sensors.use(channel); // 初始化微信小程序 SDK sensors.init({ //.... }) ``` -------------------------------- ### 获取华为归因信息并触发激活事件 Source: https://manual.sensorsdata.cn/sensorsadstracking/docs/hwznfb 查询华为应用市场 content provider 获取归因信息,并触发神策激活事件。需要传入目标包名 pkgName。注意:trackId 仅在 10.5.0.300 及之后版本存在。 ```java private static final String PROVIDER_URI ="content://com.huawei.appmarket.commondata/item/5"; private static final int INDEX_ENTER_AG_TIME = 1; private static final int INDEX_INSTALLED_FINISH_TIME = 2; private static final int INDEX_START_DOWNLOAD_TIME= 3; private static final int INDEX_TRACKID = 4; private static final int INDEX_REFERRER_EX = 5; /** * 获取华为归因信息并触发神策激活事件 * @param pkgName 目标包名 */ private String trackAppInstall(String pkgName) { String trackId = null; Cursor cursor = null; Uri uri = Uri.parse(PROVIDER_URI); ContentResolver contentResolver = getContentResolver(); String packageName[] = new String[] { pkgName }; JSONObject channelJSON = new JSONObject(); try { // 查询归因信息 cursor = contentResolver.query(uri, null, null, packageName, null); if (cursor != null) { cursor.moveToFirst(); Log.i(TAG, "packageName= " + pkgName); if (cursor.getColumnCount() > INDEX_TRACKID) { // 10.5.0.300 及之后版本,之前版本无 trackId JSONObject attributionJSON = new JSONObject(); attributionJSON.put("channel_name", "huawei_appstore_track"); attributionJSON.put("enter_ag_time", cursor.getString(INDEX_ENTER_AG_TIME)); attributionJSON.put("installed_finish_time", cursor.getString(INDEX_INSTALLED_FINISH_TIME)); attributionJSON.put("download_time", cursor.getString(INDEX_START_DOWNLOAD_TIME)); attributionJSON.put("trackId", new JSONObject(cursor.getString(INDEX_TRACKID))); attributionJSON.put("referrer_ex", cursor.getString(INDEX_REFERRER_EX)); channelJSON.put("$sat_media_attribution_info", attributionJSON.toString()); } } }catch(Exception e){ //处理异常 } finally { if (cursor != null) { cursor.close(); } } //触发神策激活事件 SensorsDataAPI.sharedInstance().trackAppInstall(channelJSON); } ``` -------------------------------- ### 集成 Web JS SDK 与渠道插件配置 Source: https://manual.sensorsdata.cn/sensorsadstracking/docs/jcqdjcweb 通过 script 标签引入 SDK 和插件,并在初始化时配置 server_url、微信广告渠道采集以及启用插件。 ```html ``` -------------------------------- ### AndroidManifest.xml 配置渠道包标记 Source: https://manual.sensorsdata.cn/sensorsadstracking/docs/sjyjswt 在 AndroidManifest.xml 中配置渠道包标记,用于区分不同应用商店的下载渠道。示例中 name 为 YOUR_DOWNLOAD_CHANNEL,value 为应用宝,实际使用时请按业务需要修改。 ```XML ``` -------------------------------- ### iOS SDK 初始化与 DeepLink 处理 Source: https://manual.sensorsdata.cn/sensorsadstracking/docs/zyxgcpz iOS 端初始化神策 SDK,配置自动采集事件、日志、广告渠道 URL 和广告配置(再营销、唤醒 URL)。设置 DeepLink 回调并手动调用 requestDeferredDeepLink 开启 Deferred DeepLink 功能,建议在完成权限授权后调用。同时实现 openURL、continueUserActivity 和 openURL:sourceApplication: 方法,通过 handleSchemeUrl 处理 Scheme URL 和 Universal Link。 ```objective-c - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { SAConfigOptions *configOptions = [[SAConfigOptions alloc] initWithServerURL:Sa_Default_ServerURL launchOptions:launchOptions]; configOptions.autoTrackEventType = SensorsAnalyticsEventTypeAppStart | SensorsAnalyticsEventTypeAppEnd | SensorsAnalyticsEventTypeAppClick | SensorsAnalyticsEventTypeAppViewScreen; configOptions.enableLog = YES; configOptions.customADChannelURL = @"https://lyslink5.debugbox.sensorsdata.cn";//神策Saas域名 SAAdvertisingConfig *adConfig = [[SAAdvertisingConfig alloc] init]; adConfig.enableRemarketing = YES;//开启再营销功能 //如果 SDK 需要延迟初始化,请记录拉起 App 时的 url,并在初始化时传入 SDK,SDK 如果非延迟初始化,无需设置此项 adConfig.wakeupUrl = @"延迟初始化SDK 时唤起 app 的 url"; options.advertisingConfig = adConfig; [SensorsAnalyticsSDK startWithConfigOptions:options]; /// @param obj.params 创建渠道链接时填写的参数 /// @param obj.adChannels 归因数据,当前只有 Deferred DeepLink 会返回归因数据 /// @param obj.success 请求渠道信息是否成功 /// @param obj.appAwakePassedTime 本次请求时长 /// @return 根据返回的应用内参数,是否正确跳转至对应页面。跳转成功返回 YES,未跳转返回 NO [[SensorsAnalyticsSDK sharedInstance] setDeepLinkCompletion:^BOOL(SADeepLinkObject * _Nullable obj) { return YES; }]; //建议在完成权限授权(设备、网络等)后手动调用 [SensorsAnalyticsSDK.sharedInstance requestDeferredDeepLink:@{"tid":"xxx"}]; return YES; } - (BOOL)application:(UIApplication *)app openURL:(NSURL *)url options:(NSDictionary *)options { // 业务相关逻辑处理 if ([[SensorsAnalyticsSDK sharedInstance] handleSchemeUrl:url]) { return YES; } return YES; } - (BOOL)application:(UIApplication*)application continueUserActivity:(NSUserActivity*)userActivity restorationHandler:(void (^)(NSArray*))restorationHandler { // 业务相关逻辑处理 if ([[SensorsAnalyticsSDK sharedInstance] handleSchemeUrl:userActivity.webpageURL]) { return YES; } return YES; } - (BOOL)application:(UIApplication*)application openURL:(NSURL*)url sourceApplication:(NSString*)sourceApplication annotation:(id)annotation { // 业务相关逻辑处理 if ([[SensorsAnalyticsSDK sharedInstance] handleSchemeUrl:url]) { return YES; } return YES; } ``` -------------------------------- ### POST 归因数据订阅回调接口 Source: https://manual.sensorsdata.cn/sensorsadstracking/docs/gysjdy 数据使用方需提供一个 HTTP 或 HTTPS 的 POST 接口,用于接收神策广告分析服务推送的归因事件数据。请求体为 JSON LIST,每条记录包含一条归因事件的结构化数据。接口必须在 2 秒内返回,且仅 HTTP 200 状态码视为成功。 ```APIDOC ## [POST] 归因数据订阅回调接口 ### Description 数据使用方需提供一个可通过公网访问的 HTTP 或 HTTPS POST 接口,用于接收神策广告分析 SaaS 服务实时推送的归因事件数据。请求体为 JSON LIST,每条记录包含一条归因事件的结构化数据。接口必须在 2 秒内返回,且仅 HTTP 200 状态码视为成功。 ### Method POST ### Endpoint 由数据使用方提供,需可通过公网访问 ### Parameters #### Request Body - **data_type** (string) - Required - 订阅的事件类型,attribution 表示归因事件 - **lib** (object) - Optional - 事件上报的原始 lib 信息,不一定全部字段都有,用户一般不需关注 - **distinct_id** (string) - Required - distinct id - **type** (string) - Required - 原始事件的 type - **event** (string) - Required - 事件名,归因场景就是归因事件名 - **time** (number) - Required - 归因事件发生的时间 - **recv_time** (number) - Required - 事件接收的时间 - **ngx_ip** (string) - Optional - 客户端 IP - **process_time** (number) - Required - 处理时间,如归因事件则为归因处理的时间 - **user_id** (number) - Required - 用户 ID - **project_id** (number) - Required - 项目 ID - **properties** (object) - Required - 归因事件的原始属性 - **attribution_info** (array) - Required - 归因信息,包括渠道属性等,注意一次归因可能会有多条记录,对应多个归因场景 ### Request Example ``` [{ "data_type":"attribution", "lib":{ "lib":"Android" }, "distinct_id":"BzrbBtllfE", "type":"track", "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", "sd_channel_utm_medium":"hjhjk", "sd_channel_campaign_id":"456456456", "sd_channel_active_period_day":30, "sd_channel_adgroup_name":"435345", "sd_channel_adgroup_id":"123123", "sd_channel_utm_campaign":"数据订阅测试", "sd_channel_utm_term":"特尔马", "sd_channel_name":"baidu_sem_track", "sd_channel_ad_name":"435345", "sd_channel_account_name":"", "sd_channel_link_id":"6wt2ytma", "sd_utm_matching_type":"设备指纹模糊匹配-baidu_sem_track", "sd_channel_campaign_name":"56765767", "sd_channel_utm_content":"hjkhjkhjk", "sd_channel_ad_id":"407714081", "sd_channel_utm_source":"所思123", "sd_channel_link_type":"app", "sd_channel_attribute_period_hour":168, "sd_channel_account_id":"45345", "sd_channel_keyword":"", "sd_channel_keyword_id":"", "sd_channel_click_id":"345345435464", "channel_task_type":0, "channel_order_id":"", "channel_term":"", "channel_demand_id":"", "channel_item_id":"" } ] }] ``` ### Response #### Success Response (200) - 返回 HTTP 200 状态码表示成功 #### Error Response - 返回非 200 状态码均视为失败 ### Notes - API 内容均为 UTF-8 编码 - 回调 API 由于网络抖动等原因可能出现数据重复 - 接口必须在 2 秒内返回,否则被认为服务异常进行降级处理 ``` -------------------------------- ### 使用 curl 导出 events 表数据 Source: https://manual.sensorsdata.cn/sensorsadstracking/docs/yhsjggsjdc 通过 POST 请求执行 SQL 查询以导出包含渠道属性的事件数据。建议通过 date 字段按天导出以提高查询速度。 ```bash curl 'https://saasdemo.cloud.sensorsdata.cn/api/sql/query?token=******&project=default' \ -X POST \ --data-urlencode "q=SELECT sd_channel_name,sd_channel_link_id,time,distinct_id,event FROM events where sd_channel_name is NOT NULL and time > '2022-01-01 00:00:00' limit 5 /*MAX_QUERY_EXECUTION_TIME=1800*/" \ --data-urlencode "format=json" \ >> event.json ``` -------------------------------- ### Android SDK 初始化与 Deferred DeepLink 配置 Source: https://manual.sensorsdata.cn/sensorsadstracking/docs/zyxgcpz Android 端初始化神策 SDK,配置自动采集事件、日志、广告渠道 URL、崩溃追踪、JavaScript 桥接、可视化全埋点及广告配置(再营销和唤醒 URL)。随后设置 DeepLink 回调并手动调用 requestDeferredDeepLink 开启 Deferred DeepLink 功能,注意需在完成权限授权后调用。 ```java SAConfigOptions configOptions = new SAConfigOptions(SA_SERVER_URL); // 打开自动采集, 并指定追踪哪些 AutoTrack 事件 configOptions.setAutoTrackEventType(SensorsAnalyticsAutoTrackEventType.APP_START|SensorsAnalyticsAutoTrackEventType.APP_END |SensorsAnalyticsAutoTrackEventType.APP_CLICK|SensorsAnalyticsAutoTrackEventType.APP_VIEW_SCREEN) .enableLog(true) .setCustomAdChannelUrl("https://satxyh183.debugbox.sensorsdata.cn")//设置 URL,神策Saas域名,具体由神策售后团队提供 .enableTrackAppCrash() .enableJavaScriptBridge(true) .enableVisualizedAutoTrack(true) .setAdvertConfig(new SAAdvertisingConfig() .enableRemarketing()//开启再营销 .setWakeupUrl("延迟初始化SDK 时唤起 app 的 url")// 如果 SDK 需要延迟初始化,请记录拉起 App 时的 url,并在初始化时传入 SDK,SDK 如果非延迟初始化,无需设置此项 ); SensorsDataAPI.startWithConfigOptions(this, configOptions); //设置数据回调 SensorsDataAPI.sharedInstance().setDeepLinkCompletion(new SensorsDataDeferredDeepLinkCallback() { @Override public boolean onReceive(SADeepLinkObject saDeepLinkObject) { return true; } }); //开启 Deferred DeepLink 功能,注意:在完成权限授权 (设备、网络等) 后手动调用 SensorsDataAPI.sharedInstance().requestDeferredDeepLink({"tid":"xxx"}); ``` -------------------------------- ### iOS 设置 DeepLink/Deferred Deeplink 数据回调 setDeepLinkCompletion Source: https://manual.sensorsdata.cn/sensorsadstracking/docs/zyxgcpz 在 iOS 端调用 setDeepLinkCompletion: 方法获取创建渠道链接时填写的 App 内参数信息,返回布尔值表示是否成功跳转。 ```objectivec /// @param obj.params 创建渠道链接时填写的参数 /// @param obj.adChannels 归因数据,当前只有 Deferred DeepLink 会返回归因数据 /// @param obj.success 请求渠道信息是否成功 /// @param obj.appAwakePassedTime 本次请求时长 /// @return 根据返回的应用内参数,是否正确跳转至对应页面。跳转成功返回 YES,未跳转返回 NO [[SensorsAnalyticsSDK sharedInstance] setDeepLinkCompletion:^BOOL(SADeepLinkObject * _Nullable obj) { return YES; }]; ``` -------------------------------- ### 点击监测链接示例 Source: https://manual.sensorsdata.cn/sensorsadstracking/docs/qdtgjs 这是一个包含固定参数、宏参数、utm参数和自定义参数的完整监测链接示例。请勿直接使用此链接进行实际投放。 ```text https://satetedataflow.debugbox.sensorsdata.cn/ad/track?channel_name=baidu_sem_track&channel_link_type=app&hash_key=9Y7pDLTJZNEWa9DhR2cJ&callback_id=cz0LfEmn&_channel_app_id=cn.sensorscloud.calendar&_data_version=0.4.0&callbacks=%24AppInstall%2Cregister&project=production&_channel_track_key=kbY0bv8O&link_version=1&channel_keyword_id={{WORDID}}&os={{OS}}&ip={{IP}}&ua={{UA}}&channel_account_id={{USER_ID}}&channel_campaign_id={{PLAN_ID}}&callback_url={{CALLBACK_URL}}&channel_click_id={{CLICK_ID}}&click_time={{TS}}&channel_ad_id={{IDEA_ID}}&imei={{IMEI_MD5}}&model={{DEVICE_INFO}}&android_id={{ANDROID_ID_MD5}}&oaid={{OAID}}&channel_adgroup_id={{UNIT_ID}}&channel_utm_source=baidu&tuiguang_name=xiaoming ``` -------------------------------- ### iOS 获取 Deferred DeepLink 信息 requestDeferredDeepLink Source: https://manual.sensorsdata.cn/sensorsadstracking/docs/zyxgcpz 在 iOS 端通过 SensorsAnalyticsSDK 的 requestDeferredDeepLink 方法开启 Deferred DeepLink 功能,需设置 tid 参数。建议在权限授权后手动调用,仅安装后首次打开有效。 ```objectivec // 建议在完成权限授权(设备、网络等)后手动调用 //参数中需要设置SAT Saas租户信息tid,具体租户ID信息由神策售后团队提供 [SensorsAnalyticsSDK.sharedInstance requestDeferredDeepLink:@{"tid":"xxx"}]; ``` -------------------------------- ### iOS 设置广告自定义域名 customADChannelURL Source: https://manual.sensorsdata.cn/sensorsadstracking/docs/zyxgcpz 在 iOS 端通过 SAConfigOptions 的 customADChannelURL 属性设置 SAT 请求 URL,需替换为真实 SAT 地址。 ```objectivec configOptions.customADChannelURL = @"https://lyslink5.debugbox.sensorsdata.cn";//需替换成真实SAT地址 ``` -------------------------------- ### Android 设置 DeepLink/Deferred Deeplink 数据回调 setDeepLinkCompletion Source: https://manual.sensorsdata.cn/sensorsadstracking/docs/zyxgcpz 在 Android 端通过 SensorsDataAPI 的 setDeepLinkCompletion 方法设置数据回调,返回布尔值表示是否成功跳转。 ```java //设置数据回调 SensorsDataAPI.sharedInstance().setDeepLinkCompletion(new SensorsDataDeferredDeepLinkCallback() { /** * @saDeepLinkObject deepLink 请求数据实体 */ @Override public boolean onReceive(SADeepLinkObject saDeepLinkObject) { return true; } }); ``` -------------------------------- ### 归因事件数据结构示例 Source: https://manual.sensorsdata.cn/sensorsadstracking/docs/gysjdy 展示了通过 Push API 推送的归因事件 JSON 结构,包含事件类型、原始属性及详细的归因渠道信息。 ```json [{ "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":"" ``` -------------------------------- ### Android 设置广告自定义域名 setCustomAdChannelUrl Source: https://manual.sensorsdata.cn/sensorsadstracking/docs/zyxgcpz 在 Android 端通过 SAConfigOptions 的 setCustomAdChannelUrl 方法设置 SAT 请求 URL,地址由神策售后团队提供。 ```java //设置 SAT 请求 URL setCustomAdChannelUrl(String url) ``` -------------------------------- ### POST 请求接收地址配置示例 Source: https://manual.sensorsdata.cn/sensorsadstracking/docs/zdymtqdpz 展示如何将应用宝 API 的请求参数替换为 SAT 宏参数。 ```text https://api.e.qq.com/v1.1/user_actions/add?access_token=__ACCESS_TOKEN__×tamp=__TIMESTAMP_S__&nonce=__EVENT_TIME____TIMESTAMP__ ``` -------------------------------- ### POST 请求体配置示例 Source: https://manual.sensorsdata.cn/sensorsadstracking/docs/zdymtqdpz 展示应用宝渠道的原始请求体结构及其在 SAT 平台中的配置格式。 ```json { “account_id”: ““, “user_action_set_id”: , “actions”: [ { “action_time”: , “user_id”: { “hash_imei”: ““, “oaid”: “” //Android选填,推荐使用 }, “action_type”: “ACTIVATE_APP”, } ] } ``` ```json { "account_id": "__AUTHORIZED_ACCOUNT_ID__", "user_action_set_id": 1201435339, "actions": [ { "action_time": __EVENT_TIME_S__, "user_id": { "hash_imei":"__IMEI_MD5__", "hash_oaid": "__OAID_MD5__" }, "action_type":"__ACTION_VALUE__"} ]} ``` -------------------------------- ### Android 获取 Deferred DeepLink 信息 requestDeferredDeepLink Source: https://manual.sensorsdata.cn/sensorsadstracking/docs/zyxgcpz 在 Android 端通过 SensorsDataAPI 的 requestDeferredDeepLink 方法开启 Deferred DeepLink 功能,需设置 tid 参数。建议在权限授权后手动调用,仅安装后首次打开有效。 ```java //建议在完成权限授权(设备、网络等)后手动调用 //params参数中需要设置SAT Saas租户信息tid,具体租户ID信息由神策售后团队提供 requestDeferredDeepLink({"tid":"xxx"}) ``` -------------------------------- ### 归因信息数据结构示例 Source: https://manual.sensorsdata.cn/sensorsadstracking/docs/gysjdy 展示了包含渠道事件时间、归因策略、归因场景及自定义参数的 JSON 数据结构。 ```json "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 } ] } ``` -------------------------------- ### 导出的 JSON 数据样例 Source: https://manual.sensorsdata.cn/sensorsadstracking/docs/yhsjggsjdc 展示了通过 API 导出的事件数据格式,包含 distinct_id、时间戳、事件名称及渠道属性。 ```json {"distinct_id":"b7a4fda85b7818af","sd_channel_link_id":"","time":"2022-11-16 14:55:23.678","event":"pointId","sd_channel_name":"UnknownChannelOrNature"} {"distinct_id":"b7a4fda85b7818af","sd_channel_link_id":"","time":"2022-11-16 14:55:23.732","event":"pointId","sd_channel_name":"UnknownChannelOrNature"} {"distinct_id":"b7a4fda85b7818af","sd_channel_link_id":"","time":"2022-11-16 14:55:23.748","event":"$AppStart","sd_channel_name":"UnknownChannelOrNature"} {"distinct_id":"b7a4fda85b7818af","sd_channel_link_id":"","time":"2022-11-16 14:55:23.784","event":"$AppViewScreen","sd_channel_name":"UnknownChannelOrNature"} {"distinct_id":"b7a4fda85b7818af","sd_channel_link_id":"","time":"2022-11-16 14:55:35.539","event":"$AppClick","sd_channel_name":"UnknownChannelOrNature"} ``` === COMPLETE CONTENT === This response contains all available snippets from this library. No additional content exists. Do not make further requests.