English
Log In
You can then view all documents
AdSpark(增长参谋)/技术接入文档/广告监测服务/归因服务接入-iOS
归因服务接入-iOS
Last updated 2024-12-26 10:56:14

更新日志

发布时间

更新说明

2024-12-25

  • 更新RangersAppLog为6.17.1版本,bugfix

2024-9-19

  • 更新RangersAppLog为6.16.9版本,兼容Xcode 16.0 版本

2024-8-9

  • 更新RangersAppLog为6.16.8版本,优化idfa上报

2024-6-11

  • 更新RangersAppLog为6.16.6版本,使用 Unique 子库,则需要配置 idfa 专用域名,详见初始化部分

2023-8-17

  • 新增系统埋点zzcm_quickpush_activation 激活(for快速push)

2023-6-12

  • 文档重构
  • 增加测试工具使用说明
  • 埋点规范和设计

2023-3-2

  • 增加联调管理功能前置必要条件和问题排查方法
  • 增加支持渠道说明
  • 增加注意事项

2023-1-10

  • 增加联调功能初始化配置
  • 升级版本
  • 增加bd_did获取方式

2022-10-17

  • 增加ASA渠道接入指南说明
  • 增加自定埋点定义说明

2022-9-21

  • 调整上报参数说明
  • 新增初始化参数说明和来源

2022-8-29

  • 新增归因服务二期接入文档,支持深度事件回传

2022-7-15

  • 新增归因服务一期接入文档,仅支持激活

重要提示:

  1. 归因服务接入后,会关联归因接入兼容数据接入,全部联调成功后,需要有真实归因数据进来才能真正接入成功,需要创建推广活动,用生成的监测链接配置在对应投放平台上
  2. oppo投放渠道配置监测链接门槛:需连续7天投放消耗在1w以上
  3. 支持渠道:归因服务支持渠道
  4. 由于SDK可能需要采集IDFA(由宿主通过SDK的开关控制),请广告主app store上架申请时表明需要获取IDFA权限,以免影响审核。

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中依次添加到项目中。

RangerApplog iOS SDK@6.17.1.zipRangerApplog iOS SDK@6.17.1.zip
4.43 MB

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 -> Header Search Paths 添加 Headers 文件夹路径:

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

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

3.1 Apple 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.2 SDK集成

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
15.93 MB

除此之外,需要在项目中添加依赖: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启动完成的时候,就初始化配置(如果在页面展示完毕之后 才初始化配置,会导致部分事件采集有缺失)。如有合规场景,请在用户授权后再进行 SDK 的初始化

初始化参数说明

appid

channel

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

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

复制

在AppDelegate中通过实现onAttributionData 来获取每一次安装用户的数据,继而进行下一步行为。如:为安装的用户提供个性化的内容,或者将他们带到App内的指定页面

复制

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

Objective-C请参考:

复制

Swift请参考:

复制

6. 埋点设计和规范

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

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

6.1 系统事件

系统深度事件

事件类型

事件名称(系统预置)

上报时机

激活(系统自带)

$activation

初始化时

留存(系统自带)

app_launch

应用启动时,开发者可以参考6.2自定义深度事件,即可以使用系统采集激活事件(activation)或其他自定义事件,作为「留存的开始事件」,后续每天留存判断事件默认为系统采集app_launch(应用启动)

激活(系统自带)

zzcm_quickpush_activation

push时

6.2 自定义事件

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

考虑到开发者事件名称可能和参谋归因产出的激活重复导致数据GAP,禁止开发者使用activation,$activation,app_launch,zzcm_quickpush_activation这四个埋点事件名称

自定义深度事件

事件类型

事件名称

上报时机

注册

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请参考:

复制

上报事件和对应属性的代码埋点,适用于需要携带额外参数上报,例如上报付费场景,自定义事件名称为grown_attribution_event_purchase,以下为两种上报方式示例,选择其中一种即可

  • 回传要求:自定义/深度事件名称为英文格式,自定义属性:下划线+小写英文字母,如user_id,需要注意的是只有自定义事件支持上报事件属性,预置事件不支持;
  • 获取方式:Push回传的归因数据中 event_name为事件名称,event_params为该事件自带的事件属性。

Objective-C请参考:

复制

Swift请参考:

复制

8.常见问题

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

8.1 归因接入FAQ

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"]


8.2 ASA归因

Q:为什么新建了apple search ads推广活动后没有监测链接?

A:Apple search ads是自归因渠道,不提供监测链接,展点数据通过mapi抓取获得。

Q:怎么确认是否已集成了ASA归因

A:开发者集成时包含了ASA子库,SDK会通过mapi抓取归因结果

Q:ASA投放后,只有激活数据无其他数据(注册、付费等)?

A:ASA只支持激活

Q:为什么AdSpark(增长参谋)广告监测-推广活动分析中显示的数据和apple显示的数据不一致?

A:增长参谋广告监测结果和apple的结果会有一些差异,有以下几个可能的原因:

  • apple将点击广告后的安装作为激活,而增长参谋会将第一次打开app作为激活;
  • 归因窗口期的差异,apple的归因窗口期30天,在增长参谋可以设置归因窗口期为7-30天;
  • apple无法得知用户是否在点击apple search ads之后是否点击了其他渠道的广告,然后再下载了app;
  • 如果用户启用了限制广告追踪(LAT),增长参谋就不会从apple search ads的归因API收到归因结果,这种情况下增长参谋不会归因给apple search ads。但apple可能依然会将其算为正确归因;


8.3 通用问题

Q:客户端是否支持通过接口获取归因结果?

A:暂时还不支持通过客户端接口获取归因结果,开发和可以接入push回传能力接收归因数据:adspark会将归因结果实时推送到开发者指定的收数地址,详细请参Push API接入说明;

Q:adspark支持哪几种归因方式?

A:归因方式:①精准归因;②模糊归因;③精准归因+模糊归因,建议开发者选择第三种,会提高整体的归因率;精准归因主要是通过设备号id来mapping,因此强烈建议开发者在允许广告追踪后2s再初始化归因SDK,保证能获取到设备号,若用户不允许追踪,adspark也会通过ipua等方式进行模糊归因;

9. 自查工具使用

温馨提示:

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

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

9.1 引入DevTools组件

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

复制

9.2 功能说明

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

9.2.1 面板入口

复制

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

复制

9.2.2 事件栏

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

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

9.2.3 信息栏 &日志栏

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

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

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

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


Contents
Contact us