高级功能
本功能为高级功能,需额外付费开通。如需开通,请咨询商务/客户经理。
Deeplink链接格式说明
再营销支持APP有拉活能力,其中Deeplink链接(uri scheme)的链接结构有一定的要求,APP需要配置相关工程配置,具体类型如下:其中host和pathPrefix为固定页面生成,其余客户可以自行调整。
集成步骤
联系神策售后服务团队获取配置内容,在后续步骤中进行填写:
- 请求 SAT 接口的地址
- tid 取值信息
升级SDK版本
Android SDK版本:6.7.6
IOS SDK版本:4.5.23
Android端
设置广告自定义域名
SAConfigOptions 新增配置项 setCustonAdChannelUrl 设置【请求 SAT 接口的地址】,地址由神策售后团队提供
//设置 SAT 请求 URL
setCustomAdChannelUrl(String url)
设置 DeepLink/Deferred Deeplink 请求的数据回调
SensorsDataAPI 新增方法 setDeepLinkCompletion 方法设置数据回调。
如果是Deeplink API,params参数将返回创建链接中的“深度路由参数”,如果是Deferred Deeplink API请求,params将返回创建链接中的“延迟深度路由参数”
//设置数据回调
SensorsDataAPI.sharedInstance().setDeepLinkCompletion(new SensorsDataDeferredDeepLinkCallback() {
/**
* @saDeepLinkObject deepLink 请求数据实体
*/
@Override
public boolean onReceive(SADeepLinkObject saDeepLinkObject) {
return true;
}
});
获取 Deferred DeepLink 信息
SensorsDataAPI 方法 requestDeferredDeepLink(final JSONObject params) 开启 Deferred DeepLink 功能,params需设置【tid信息】。
注意:建议在完成权限授权(设备、网络等)后手动调用,只有安装后首次打开应用时调用有效
//建议在完成权限授权(设备、网络等)后手动调用
//params参数中需要设置SAT Saas租户信息tid,具体租户ID信息由神策售后团队提供
requestDeferredDeepLink({"tid":"xxx"})
IOS端
设置广告自定义域名
SAConfigOptions 新增配置项 custonAdChannelURL 设置【请求 SAT 接口的地址】,地址由神策售后团队提供
configOptions.customADChannelURL = @"https://lyslink5.debugbox.sensorsdata.cn";//需替换成真实SAT地址
设置 DeepLink/Deferred Deeplink 请求的数据回调
调用 - setDeepLinkCompletion: 方法获取在创建渠道链接时填写的 App 内参数信息,如果是Deeplink API,params参数将返回创建链接中的“深度路由参数”,如果是Deferred Deeplink API请求,params将返回创建链接中的“延迟深度路由参数”。使用说明如下:
/// @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;
}];
获取 Deferred DeepLink 信息
SensorsAnalyticsSDK 方法 - requestDeferredDeepLink 开启 Deferred DeepLink 功能。params需设置【tid信息】。
注意:建议在完成权限授权(设备、网络等)后手动调用,只有安装后首次打开应用时调用有效
// 建议在完成权限授权(设备、网络等)后手动调用
//参数中需要设置SAT Saas租户信息tid,具体租户ID信息由神策售后团队提供
[SensorsAnalyticsSDK.sharedInstance requestDeferredDeepLink:@{"tid":"xxx"}];
注意事项
- APP不能手动触发$AppDeeplinkLaunch事件,如果手动触发则会影响再营销功能的归因计算(即:trackDeepLinkLaunchWithUR/)
代码示例
安卓代码示例
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代码示例
- (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<UIApplicationOpenURLOptionsKey,id> *)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;
}
APP适配工作原理
在使用再营销链接进行推广APP实现如下场景:
- 新用户第一次打开APP归因成功到再营销链接,APP将直接跳到配置的神策广告分析链接的推广页面,如果是老客户在N天不活跃后再次重装,亦可跳转到指定页面。归因结果统一进行回传
- 老客户通过神策广告分析链接生成的Deeplink链接进行投放(uri scheme)方式打开APP,神策广告分析将进行归因,归因成功将直接跳转到配置的目标页面,归因结果统一进行回传
- 老客户在沉默超过一定时间后,触发了【回流唤醒】归因场景进行归因和回传
- 新用户第一次打开APP归因成功到没有开启【延迟深度链接】配置的链接,将只进行归因,如果是老客户在N天不活跃后再次重装打开APP,归因成功到没有开启【延迟深度链接】配置的链接,将进行重装归因。归因结果统一进行回传
在实现层面,无论是用户安装完成首次打开还是已安装用户Deeplink打开,统一都是包装在神策SDK中的逻辑,只需要在安装完成首次打开和Deeplink拉起APP的时候执行相关特定接入代码即可,神策SDK统一在设置回调函数中返回给APP「深度链接路由参数/深度路由参数」,APP对深度链接路由参数执行页面跳转。