English
Log In
You can then view all documents
AdSpark(增长参谋)/技术接入文档/广告监测服务/归因服务接入-iOS
归因服务接入-iOS
Last updated 2023-11-07 17:35:34

重要提示:

  1. 归因服务接入后,会关联归因接入兼容数据接入,全部联调成功后,需要有真实归因数据进来才能真正接入成功,需要创建推广活动,用生成的监测链接配置在对应投放平台上
  2. oppo投放渠道配置监测链接门槛:需连续7天投放消耗在1w以上
  3. 支持渠道:归因服务支持渠道

1.环境准备

  • iOS 8.0 及以上
  • Xcode 10.0+

2.接入SDK

2.1方式一(推荐使用

2.1.1使用CocoaPods安装SDK

在Podfile中,添加source源:

复制

2.1.2引入SDK

在Podfile中,引入SDK,并执行pod install --repo-update更新Pods。

复制

2.2方式二

2.2.1手动安装SDK

注意 6.x 版本开始默认不提供 sdk 包,需要的话请联系技术支持。下载 RangersAppLog iOS SDK 并解压缩。将安装包下的文件复制到项目文件夹下,并在XCode中依次添加到项目中。

RangersAppLog iOS.zipRangersAppLog iOS.zip
0

2.2.2添加依赖

将安装包下的文件复制到项目文件夹下,并在XCode中依次添加到项目中。添加依赖:

  • libz.tbd
  • libsqlite3.tbd
  • CoreGraphics.framework
  • Security.framework
  • CoreTelephony.framework (读取运营商名称)
  • SystemConfiguration.framework (判断网络状态)
  • JavaScriptCore.framework
  • WebKit.framework
  • AdSupport.framework (不使用全埋点或圈选功能就不需要依赖)
  • AppTrackingTransparency.framework (不集成Unique模块不需要依赖)

设置 Build Settings -> Linking -> Other Linker Flags 添加 -ObjC:

3.渠道接入指南(仅以下渠道投放时需要接入)

3.1Apple Search Ads(ASA)

3.1.1原理介绍

对于iOS 14.3之前的操作系统,apple search ads通过iAd framework来进行归因监测。

对于iOS 14.3及之后的操作系统,apple search ads通过新的Ad Services framework来进行归因监测。

3.1.2SDK集成

3.1.2.1自动集成

集成RangersAppLog SDK,确认版本号 >= 6.5.0,如果版本号低于6.5.0,将无法正确监测apple search ads渠道的广告活动。

SDK默认不支持apple search ads归因,如果需要开启apple search ads,确保包含ASA子库。集成ASA子库后,SDK初始化时会获取apple search ads的归因数据,并在注册和激活请求时上报。

复制

另外需要注意的是:iAd API请求时间较长,延迟大约为400-500ms,会导致后续事件依次延迟。SDK中包含Flags/DisableiAd子库,作为关闭iAd的开关。如果关闭了iAd,那么对于iOS 14.3之前的操作系统无法获取归因结果。

复制
3.1.2.2手动集成

下载 RangersAppLog iOS-ASA SDK 并解压缩。将安装包下的文件复制到项目文件夹下,并在XCode中依次添加到项目中,注意:ASA 渠道包SDK仅比普通包多了一个库文件libRangersAppLog_ASA_awesome_ios.a,请注意区分。

RangersAppLog iOS-ASA.zipRangersAppLog iOS-ASA.zip
0

除此之外,需要在项目中添加依赖:iAd.frameworkAdServices.framework,添加两个framework依赖的时候要额外补充:添加iAd.framework时需要选择require(强引用),AdServices.framework需要选择optional(弱引用),否则在iOS 14.3以下版本中会因为找不到AdServices导致崩溃。

4.配置Scheme(可选)

如需使用实时埋点检测圈选事件,请配置Scheme。否则可跳过此步骤。

4.1获取URL Scheme

「应用列表」-> 接入应用的「详情」->「URL Scheme」中可查看您的scheme,一般为rangersapplog.xxxxx的形式。

4.2添加URL Scheme

将URL Scheme添加到你的项目中:

4.3重写回调方法

请根据需要使用实时埋点检测或圈选事件功能的设备版本,并添加URL的处理。 在AppDelegate回调里面添加 URL 的处理。

复制

在 iOS 13+ 版本中,使用 UISceneSession 需要在 UISceneDelegate 回调方法添加URL的处理。

复制

5.初始化SDK

请在App启动完成的时候,就初始化配置(如果在页面展示完毕之后 才初始化配置,会导致部分事件采集有缺失)。

初始化参数说明

appid

channel

为AdSpark(增长参谋)应用列表中生成的AppID

自定义,一般为应用市场名称

复制

在AppDelegate中通过实现onAttributionData 来获取每一次安装用户的归因数据,继而进行下一步行为。

复制

客户端如需要唯一性ID来处理业务逻辑,可以通过SDK获取

Objective-C请参考:

复制

Swift请参考:

复制

6.埋点设计和规范

如果在广告投放平台进行投放时只统计激活数,可忽略此步骤。

如果需要此功能,须根据深度事件进行自定义埋点,然后在平台创建推广活动后关联回传事件类型

6.1系统事件

系统深度事件

事件类型

事件名称(系统预置)

上报时机

激活(系统自带)

$activation

初始化时

留存(系统自带)

app_launch

应用启动时

6.2自定义事件

设计深度事件埋点时,注意要埋点隔离,避免同一个自定义事件名称用来上报多个深度事件类型,否则会有数据GAP问题,建议直接使用参谋提供的埋点设计,如有自定义埋点需求,尽量对齐格式

自定义深度事件

事件类型

事件名称

上报时机

注册

grown_attribution_event_register









根据业务场景


次留

grown_attribution_event_retention_2d

付费

grown_attribution_event_purchase

下单

grown_attribution_event_order

关键行为

grown_attribution_event_key_behavior

下载

grown_attribution_event_download

授权

grown_attribution_event_authorization

拉活

grown_attribution_event_app_re_active_wake_up

应用内拉起

grown_attribution_event_deelink

广告变现

grown_attribution_event_ad_purchase

表单提交

grown_attribution_event_form_submit

添加购物车

grown_attribution_event_add_to_cart

自定义激活

grown_attribution_event_custom_activition

以下是参谋提供的埋点规范代码,可直接复制到应用内使用

复制

7.埋点上报

用户行为日志采用事件event + 属性params的形式,事件一般对应多个属性,也可以仅有事件没有属性。代码埋点方案一般由数据分析师或产品运营设计。仅上报事件的代码埋点,示例如下:

Objective-C请参考:

复制

Swift请参考:

复制

上报事件和对应属性的代码埋点,适用于需要携带额外参数上报,例如付费;示例如下:

Objective-C请参考:

复制

Swift请参考:

复制

例如上报注册场景,自定义事件名称为grown_attribution_event_register,以下为两种上报方式示例,选择其中一种即可

复制

8.自查工具使用

温馨提示:

①此工具可用于检测Applog初始化状态Header设置是否正常埋点是否正常上报,以及涉及到端上其他情况,强烈建议利用起来

②或者直接参考广告监测:用户自查手册 里,埋点验证相关部分使用Charles抓包确认

8.1引入DevTools组件

通过CocoaPods集成DevTools组件,注意:支持的最小版本:6.12.0

复制

8.2功能说明

完成接入操作后,打开完整的URL即可使用下述功能。

8.3面板入口

复制

devToolsEnabled 默认为 YES,只有加载了 DevTools 模块才会生效

复制

8.2事件栏

在开发工具面板中选择【事件】可切换到事件栏,事件栏功能包括

  • 事件状态筛选已采集:事件已生成,还未存入本地数据库已落库:事件已经存入本地数据库已上报:事件成功上报。若上报失败,会继续存入本地数据库落库失败:事件存入本地数据库失败,会被丢弃
  • 事件类型筛选Launch:app 切前台事件,或者 app 首屏展示Terminate:app 切后台事件,或者 app 进程被杀Profile:用户属性事件EventV3:自定义事件UITracker:全埋点事件
  • 关键字筛选
  • 事件详情展示 & 复制
  • 点击事件后,在弹框中展示事件详情,点击【复制】可复制事件详情至剪贴板
  • 复制成功后提示:已复制到剪贴板

8.3信息栏 &日志栏

在开发工具面板中选择【基本信息】可切换到信息栏,信息栏功能包括

  • 基本信息:包括 appId, appName, SDK版本, 运行状态
  • 初始化配置:包含初始化传入的参数以及实时设置的配置信息;
  • 服务端配置:包含服务端下发的配置信息;
  • AB实验配置:包含AB实验命中的内容(JSON格式);
  • Log接口配置:日志上报接口下发的配置。
  • 自定义参数: 用户自定义的Header参数
  • 数据导出分享

在开发工具面板中选择【日志】可切换到日志栏,通过查看错误日志等可以快速排查接入等问题。日志栏功能包含:

  • 日志级别筛选
  • 功能模块筛选
  • 关键字筛选
  • 日志文件导出分享

9.常见问题

更多问题解决和自查请参考广告监测:用户自查手册

Q :归因服务接入联调时数据有效缓存是多久?

A :SDK初始化即可上报launch和terminal事件,需要检查csj_attribution,此事件24小时有效,一般正常初始化SDK几分钟后即可到平台查看接入是否成功

Q :初始化时channel该怎么填?

A: channel为自定义参数,通常定义为上架的应用市场名称,比如AppStore等

Q :接入归因服务联调报错时显示缺少csj_attribution回传

A :新接入归因服务的应用必须要设置header(csj_attribution=1),且后续发版要一直保留,缺失会影响归因结果,造成不必要的数据GAP,强烈建议在初始化后设置,具体设置方法如下:

[BDAutoTrack setCustomHeaderValue:@"1" forKey:@"csj_attribution"]


Contents
Contact us