记录激活事件
可以调用 trackAppInstall() 方法记录激活事件,多次调用此方法只会在第一次调用时触发激活事件。在 trackAppInstall() 方法中会尝试读取:AndroidId、MEID、IMEI、MAC、OAID 标识符用于提高匹配准确性。
if(Build.VERSION.SDK_INT >=Build.VERSION_CODES.M){
if (ActivityCompat.checkSelfPermission(this, "android.permission.READ_PHONE_STATE") != PackageManager.PERMISSION_GRANTED) {
// 6.0 以上,无权限时,先申请 READ_PHONE_STATE 权限。
ActivityCompat.requestPermissions(this, new String[]{"android.permission.READ_PHONE_STATE"}, 100);
} else {
// 6.0 以上,有权限时,直接触发激活事件。
trackAppInstall();
}
} else {
// 6.0 以下,无须申请权限,直接触发激活事件。
trackAppInstall();
}
在权限回调的 onRequestPermissionsResult() 方法中,申请权限结果回调无论申请权限成功失败,都要调用 trackAppInstall():
@Override
public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) {
super.onRequestPermissionsResult(requestCode, permissions, grantResults);
if (requestCode == 100) {
// 申请权限结果回调时(无论申请权限成功失败),都需要触发激活事件。
trackAppInstall();
}
}
/**
* 记录激活事件
*/
private void trackAppInstall() {
try {
JSONObject properties = new JSONObject();
//这里的 DownloadChannel 负责记录下载商店的渠道,值应传入具体应用商店包的标记。如果没有为不同商店打多渠道包,则可以忽略该属性的代码示例。
properties.put("DownloadChannel", "XXX");
// 触发激活事件
//首次接入神策SDK,请使用trackAppInstall,如果之前使用了trackInstallation,也建议尽快改成trackAppInstall,原有的激活事件需要合并看数的话使用【虚拟事件】将原激活事件和 $AppInstall 合并分析数据。 如果因为暂时无法修改接口,也可以继续用trackInstallation
SensorsDataAPI.sharedInstance().trackAppInstall(properties);
} catch (Exception e) {
e.printStackTrace();
}
}
- 若用原记录的激活事件名不是 $AppInstall,需要将原激活事件和 $AppInstall 合并分析数据,具体咨询神策技术支持;
- 更多关于渠道追踪功能的说明,请参考渠道追踪。
追踪并进行渠道匹配和回传
从 Android v4.1.0 开始 SDK 支持 track 方法触发的自定义事件添加渠道属性的逻辑。
使用方法
调用 SAConfigOptions.enableAutoAddChannelCallbackEvent(true) 方法来开启功能,此功能默认是关闭的。示例如下:
private void initSensorsDataAPI() {
SAConfigOptions configOptions = new SAConfigOptions(SA_SERVER_URL);
configOptions.setAutoTrackEventType(SensorsAnalyticsAutoTrackEventType.APP_START |
SensorsAnalyticsAutoTrackEventType.APP_END |
SensorsAnalyticsAutoTrackEventType.APP_VIEW_SCREEN |
SensorsAnalyticsAutoTrackEventType.APP_CLICK)
.enableTrackAppCrash()
.enableAutoAddChannelCallbackEvent(true) //开启新渠道功能
SensorsDataAPI.startWithConfigOptions(this, configOptions);
}
效果
可以使用 SensorsDataAPI.shareInstance().track(eventName) 来对特定的事件进行渠道追溯。
- 当次安装、首次触发回传事件,记录事件并进行渠道匹配和回传。
- 当次安装、再次触发回传事件,记录事件但不会进行渠道匹配及回传。
- 卸载重装、首次触发回传事件,记录事件并进行渠道匹配和回传。
上述规则适用于同名事件,不同事件之间不相互影响。
广告再营销
从 Android SDK v6.7.6 版本开始,支持广告再营销功能,具体用法参考下面:
SAConfigOptions configOptions = new SAConfigOptions(SA_SERVER_URL);
SAAdvertisingConfig advertisingConfig = new SAAdvertisingConfig();
// 开启广告再营销
advertisingConfig.enableRemarketing();
// 如果 SDK 需要延迟初始化,请记录拉起 App 时的 url,并在初始化时传入 SDK,SDK 如果非延迟初始化,无需设置此项
advertisingConfig.setWakeupUrl("延迟初始化SDK 时唤起 app 的 url");
configOptions.setAdvertConfig(advertisingConfig);
SensorsDataAPI.startWithConfigOptions(this, configOptions);