背景信息
- 应用有用户注册系统,用户注册成功前/后,需判断/维护用户的归因信息;
- 用户的归因存在更新的情形,如再归因、由 iOS 用户 ATT 授权状态变化导致的的归因更新等;
- 选择方案时,主要考虑准确性+时效性。
归因字段说明
字段 | 说明 |
---|---|
{tracker_name} | 完整归因信息,结构: {network_name}::{campaign_name}::{adgroup_name}::{creative_name} |
{network_name}|{fb_install_referrer_publisher_platform} | 渠道 |
{campaign_name}|{fb_install_referrer_campaign_group_name} | 推广计划 |
{adgroup_name}|{fb_install_referrer_campaign_name} | 推广组 |
{creative_name}|{fb_install_referrer_adgroup_name} | 推广素材 |
三类获取途径
方式一:客户端 SDK
坑:对于 iOS,即使 Adjust 是可以获取到具体归因信息的,但为了响应苹果隐私政策,SDK 返回的归因信息可能是 No User Consent,此时可以使用本文其他获取方式作为补救方案。
方式二:服务端回调
- 官方文档:Callback structure
- 回调配置:以下环节均可配置,按需:
安装
注册成功
(自定义事件)归因更新
- 延迟说明:官方说法是 30s,但实际操作过程中没有这么久
方式三:设备 API 接口
-
官方文档:设备 API
-
延迟说明:官方说法是 30s,但实际操作过程中没有这么久
-
例子:
1 2 3
curl \ --header "Authorization: Bearer {your_api_token}" \ -L -X GET "https://api.adjust.com/device_service/api/v2/inspect_device?advertising_id={your_advertising_id}&app_token={your_app_token}"
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28
{ "Adid": "acf8534f2f052395e617a38730682ccc", "AdvertisingId": "1234-5678-9012-3456", "Tracker": "abc123", "TrackerName": "Organic", "FirstTracker": "zr5vueb", "FirstTrackerName": "Organic", "Environment": "sandbox", "ClickTime": "0001-01-01T00:00:00Z", "InstallTime": "2015-08-19T03:42:03Z", "LastSessionTime": "2017-07-29T17:29:17Z", "LastEventsInfo": { "kgfcul": { "name": "Copy IDFA", "time": "2024-07-18T10:01:16Z" }, "wz9qqz": { "name": "Accept Terms", "time": "2024-07-01T14:13:47Z" }, "z3f773": { "name": "Copy IDFV", "time": "2024-07-01T19:01:39Z" } }, "LastSdkVersion": "ios4.37.2", "State": "installed" }
应用 Case
建议实际应用中,以上方式组合使用,以最大化用户归因的准确性。
Case1: 注册拦截
当需要根据用户归因信息进行注册拦截时,可采用如下的方案:
- 优先客户端判断(2~3s)
- 如果客户端有有效返回值,可直接在请求服务端注册接口时,携带归因信息
- 如果客户端无有效返回值,此时服务端可通过设备 API 接口实时查询归因信息(30s)
- 大写加粗强调:如果返回
No User Consent
(属于设备未授权 ATT 的情形),也属于无有效返回值
- 大写加粗强调:如果返回
Case2: 注册成功环节获取归因信息
对于安装且注册成功的用户,需要在数据库维护其归因信息,可采用如下的方案:
- 先自定义一个
注册成功(NEW_USER_REGISTER_SUCCESS)
事件 - 然后设置服务端回调,以获取用户的归因信息
可参考下图:
Case3:iOS ATT 授权导致的归因更新
配置入口如下图,回调参数按需设置:
附:两种 ATT 弹窗形式
第一种:先初始化,后弹窗(建议)
先初始化 SDK 再弹 ATT 弹窗
第二种:先弹出,后初始化
先弹 ATT 弹窗再初始化 SDK