1. 集成

1.1. pod 集成

//神策三方数据 SDK 提供了针对三方数据的 subspec,请根据自身需要安装相应的 subspec
pod 'SensorsThirdParty/XXX' 或者 pod 'SensorsThirdParty', :subspecs => ['xxx']

//对接 AppsFlyer
//如果集成的 AppsFlyerFramework 为静态库,请按照下面方式集成 SensorsThirdParty
pod 'SensorsThirdParty/AppsFlyer' 或者 pod 'SensorsThirdParty', :subspecs => ['AppsFlyer']
//或者集成的 AppsFlyerFramework 为动态库,请按照下面方式继承 SensorsThirdParty
pod 'SensorsThirdParty/AppsFlyerDynamic' 或者 pod 'SensorsThirdParty', :subspecs => ['AppsFlyerDynamic']

//对接 Adjust
pod 'SensorsThirdParty/Adjust' 或者 pod 'SensorsThirdParty', :subspecs => ['Adjust']
CODE


1.2. 源码集成

从 github 仓库: https://github.com/sensorsdata/SensorsThirdParty 拷贝源码,并将 iOS/SensorsThirdParty/SensorsThirdParty/Source 下所有文件拷贝到项目中即可。

2. 使用

2.1. API 介绍

SensorsThirdParty 提供 shareData:toThirdParty: 接口来实现三方数据对接,具体参数定义如下:

参数类型介绍
data

NSDictionary

共享给三方数据的内容

thirdParty

SAThirdPartyName

枚举类型,如 SAThirdPartyNameAppsFlyer 代表 AppsFlyer


2.2. 对接 AppsFlyer

在 AppsFlyer SDK 调用 start 方法前调用,使用示例如下:

// 导入 AppsFlyer SDK
#import <AppsFlyerLib/AppsFlyerLib.h>
// 导入神策埋点 SDK
#import <SensorsAnalyticsSDK/SensorsAnalyticsSDK.h>
// 导入神策三方数据 SDK
#import <SensorsThirdParty/SensorsThirdParty.h>

// 初始化 AppsFlyer SDK
[[AppsFlyerLib shared] setAppsFlyerDevKey:@"AppsFlyer 中创建的应用的 dev key"];
[[AppsFlyerLib shared] setAppleAppID:@"AppStore 中对应的 app id"];
...

// 初始化神策 SDK
SAConfigOptions *saOptions = [[SAConfigOptions alloc] initWithServerURL:@"神策埋点数据接收地址" launchOptions:launchOptions];
...
[SensorsAnalyticsSDK startWithConfigOptions:saOptions];

// 在调用 AppsFlyer SDK start 方法前调用 shareData 方法
[SensorsThirdParty shareData:"需要共享的数据" toThirdParty:SAThirdPartyNameAppsFlyer];

// 调用 AppsFlyer SDK 的 start,请注意按照 AppsFlyer SDK 的集成要求来调用 start 方法,这里只是举例来说明 share 方法需要在 start 方法前调用
[AppsFlyerLib.shared start];
CODE
  • 要求 AppsFlyer SDK 的版本号 >= 6.9.2
  • AppsFlyer SDK 的 customData 接口每次都会进行覆盖操作,请不要使用 AppsFlyer SDK 的 customData 接口,直接使用我们提供的 shareData 接口,不然会有神策标识覆盖问题,神策提供的 shareData 接口每次调用会合并共享数据。
  • shareData 接口需要在 AppsFlyer SDK 调用 start 前调用,不然激活事件会带不上共享数据,影响归因分析。
  • 如果想要 AppsFlyer 的应用内事件也带上共享数据,请在 AppsFlyer SDK logEvent 前调用 shareData 方法。

2.3. 对接 Adjust

在 Adjust SDK 初始化前调用 shareData 方法

// 导入 Adjust SDK 
#import <Adjust/Adjust.h>
// 导入神策埋点 SDK
#import <SensorsAnalyticsSDK/SensorsAnalyticsSDK.h>
// 导入神策三方数据 SDK
#import <SensorsThirdParty/SensorsThirdParty.h>


// 初始化神策 SDK
SAConfigOptions *saOptions = [[SAConfigOptions alloc] initWithServerURL:@"神策埋点数据接收地址" launchOptions:launchOptions];
...
[SensorsAnalyticsSDK startWithConfigOptions:saOptions];

// 在调用 Adjust SDK 初始化之前调用 shareData 方法
[SensorsThirdParty shareData:"需要共享的数据" toThirdParty:SAThirdPartyNameAdjust];

// 初始化 Adjust SDK 
ADJConfig *config = [ADJConfig configWithAppToken:@"your Adjust app token" environment:ADJEnvironmentSandbox allowSuppressLogLevel:YES];
...
[Adjust appDidLaunch:config];
CODE
  • 要求 Adjust SDK 的版本号 >= 4.33.4
  • 要求 SensorsThirdParty 版本号 >= 0.0.3
  • shareData 接口需要在 Adjust SDK 初始化前调用,不然 Adjust 激活事件会带不上共享数据,影响归因分析。