1.采集设备信息开关
import 'package:gravity_engine_flutter_sdk/GravityEngineSDK.dart';
GravityEngineSDK.startGravityEngine(
accessToken, // 项目通行证,在:网站后台-->设置-->应用列表中找到Access Token列 复制(首次使用可能需要先新增应用)
enableImei :true,//是否采集 imei,仅支持 Android,默认true
enableOaid :true,//是否采集 oaid,仅支持 Android,默认true
enableAndroidId : true,//是否采集 android_id,仅支持Android,默认true
enableMAC :true,//是否采集 mac,仅支持 Android,默认true
);
2.绑定三方平台
引力支持与数数BI打通,具体如下:
- 引力后台配置数数相关相关
- 客户端代码触发三方绑定事件上报
2.1 引力后台配置
您需要先在引力后台-设置-应用管理页面配置项中配置好数数科技回调,需提供以下信息:
数数应用id:从数数后台获取对应产品的id
数数采集地址:根据数数接收接口文档找到您公司对应的采集地址,采集地址以sync_json结尾
回传模式选择:
- user_set:多次回调数据到数数时,将会覆盖原有的属性值
- user_setOnce:多次回调数据到数数时,如该属性之前已经有值,则忽略本次更新

- 键:填入您在数数后台创建的用户属性,用于存放回传的值
- 值:选择宏参数,可选的宏参数相关信息请参考引力后台显示
- 快速调试:输入上报给引力的用户clientid,测试该用户的归因信息是否正常回调给数数。需要注意,自然量不会回调给数数,仅归因为买量平台的用户会进行回调。

2.2 触发【三方绑定事件】
为确保引力能正常执行数数回调,请务必在接入完成后进行以下验证:
- 触发【三方绑定事件】上报
- 在用户细查-深度挖掘模块中检查该用户的行为序列
- 确认行为序列中已包含【三方绑定事件】
若未检测到该事件,请检查接入流程是否完整。此验证步骤对确保回调功能正常运行至关重要。
引力会自动将引力
client ID和您传入的数数account_id以及distinct_id做关联,在回调数数接口时,通过这个关联传递对应的account_id、distinct_id给数数后台
方法示例
GravityEngineSDK.bindTAThirdPlatform(String taAccountId, String taDistinctId);
参数说明
|
|
|
|
|
|
|---|---|---|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
3.校准时间
3.1 通过时间戳校准
SDK 默认会使用本机时间作为事件发生时间上报,如果用户手动修改设备时间会影响到您的业务分析,您可以使用从服务端获取的当前时间戳对 SDK 的时间进行校准。此后,所有未指定时间的调用,包括事件数据和用户属性设置操作,都会使用校准后的时间作为发生时间。
代码示例
//时间戳,单位毫秒 对应时间为1668982523000 2022-11-21 06:15:23
GravityEngineSDK.calibrateTime(1668982523000);
3.2 通过 NTP 服务器校准
我们也提供了从 NTP 获取时间对 SDK 校准的功能。您需要传入您的用户可以访问的 NTP 服务器地址。之后 SDK 会尝试从传入的 NTP 服务地址中获取当前时间,并对 SDK 时间进行校准。如果在默认的超时时间(3 秒)之内,未获取正确的返回结果,后续将使用本地时间上报数据。
除了以上校准时间接口外,SDK 还提供了所有用户属性接口的时间函数重载,您可以在调用用户属性相关接口时,传入 DateTime 对象,则系统会使用传入的 DateTime 对象来设定数据的 time 字段。
代码示例
//NTP 时间服务器校准,如:time.apple.com
GravityEngineSDK.calibrateTimeWithNtp("time.apple.com");
使用 NTP 服务进行时间校准存在一定的不确定性,建议您优先考虑用时间戳校准的方式
您需要谨慎地选择您的 NTP 服务器地址,以保证网络状况良好的情况下,用户设备可以很快的获取到服务器时间
- 关于 NTP 服务器相关更多信息请参考:https://dns.icoa.cn/ntp/