iOS SDK 提供了 无埋点
和 埋点
两个SDK版本:
埋点 SDK 只自动采集用户访问事件,需要开发同学调用相应埋点 API 采集自定义事件;
无埋点 SDK 具备埋点 SDK 的所有功能,同时具备自动采集基本用户行为事件,如页面访问,点击事件等。
CDP无埋点SDK(包括埋点 SDK)代码托管在 Github,欢迎 star,fork 一波。
开发环境 Xcode 9.0 及以上 iOS 8.0 及以上
在Podfile文件中添加
pod 'GrowingAnalytics-cdp/Autotracker'
URL Scheme 是您在 GrowingIO 平台创建应用时生成的该应用的唯一标识。把 URL Scheme 添加到您的项目,以便使用Mobile Debug等功能时唤醒您的应用。
选择工程 → Target → Info → URL Types → 添加您的Url Scheme 即可
您需要在GrowingIO网站上先创建您的App应用,获取Url Scheme
导入头文件"GrowingAutotracker.h"
请将以下 [GrowingAutoTracker startWithConfiguration:]
加在您的AppDelegate
的 application:didFinishLaunchingWithOptions:
方法中
代码示例:
// Config GrowingIO// 参数需要从GrowingIO网站上,创建新应用,或从已知应用中获取// YourProjectId eg:0a1b4118dd954ec3bcc69da5138bdb96// YourServerHost 域名前面需要加上 协议:// eg:http://106.75.81.105:8080// YourDatasourceId eg: 11223344aabbccGrowingTrackConfiguration *configuration = [GrowingTrackConfiguration configurationWithProjectId:@"YourProjectId"];configuration.dataCollectionServerHost = @"YourServerHost";configuration.dataSourceId = @"YourDatasourceId";[GrowingAutotracker startWithConfiguration:configuration launchOptions:launchOptions];
注意
请确保将代码添加在 AppDelegate 的 application:didFinishLaunchingWithOptions
方法中,添加到其他方法中或者延迟初始化可能导致GrowingIO SDK
未初始化的情况,从而导致页面的采集数据丢失。
startWithConfiguration
第二个参数为 application:didFinishLaunchingWithOptions 的 launchOptions
projectId,serverHost,dataSourceId 为必传参数;其中 serverHost格式为:请求协议://域名
2. 在appDelegate.m文件中实现urlSchme跳转以及DeepLink跳转的代理方法
// url scheme跳转- (BOOL)application:(UIApplication *)applicationopenURL:(NSURL *)urlsourceApplication:(NSNSString *)sourceApplicationannotation:(id)annotation {return NO;}// universal Link执行- (BOOL) application:(UIApplication *)applicationcontinueUserActivity:(NSUserActivity *)userActivityrestorationHandler:(void (^)(NSArray<id <UIUserActivityRestoring>> *_Nullable))restorationHandler {return YES;}
3. 若使用了iOS 13的 UIScene,请在您指定的SceneDelegate中设置如下
- (void)scene:(UIScene *)scene continueUserActivity:(NSUserActivity *)userActivity {}- (void)scene:(UIScene *)scene openURLContexts:(NSSet<UIOpenURLContext *> *)URLContexts {}
上述代理方法空实现即可,SDK会自动加入处理代码
API | 参数类型 | 是否必填 | 默认值 | 说明 |
|
| 是 |
| 官网的中您的项目ID |
|
| 是 |
| 官网的中您的相应APP的UrlScheme |
|
| 是 |
| 官网的中您的相应APP的DataSourceId |
|
| 是 |
| 您部署服务的后端Host |
|
| 否 |
| 收集SDK内部异常上报服务端 |
|
| 否 |
| 调试模式,会打印SDK log,抛出错误异常,在线上环境务必关闭 |
|
| 否 |
| 每天发送数据的流量限制,单位MB |
|
| 否 |
| 数据发送的间隔,单位秒 |
|
| 否 |
| 每次访问会话的最大时长,单位秒 |
|
| 否 |
| 是否采集数据 |
|
| 否 |
| 元素曝光事件中的比例因子,范围 [0-1] |
|
| 否 |
| 需要过滤的事件类型计算的掩码值 |
|
| 否 |
| 事件中需要过滤的属性计算的掩码值 |
埋点 SDK只自动采集用户访问事件和APP关闭事件,其他事件均需要开发同学调用相应埋点 API 采集自定义事件。
在Podfile文件中添加
pod 'GrowingAnalytics-cdp/Tracker'
URL Scheme 是您在 GrowingIO 平台创建应用时生成的该应用的唯一标识。把 URL Scheme 添加到您的项目,以便使用Mobile Debug等功能时唤醒您的应用。
选择工程 -> Target -> Info -> URL Types -> 添加您的Url Scheme 即可
您需要在GrowingIO网站上先创建您的App应用,获取Url Scheme
导入头文件"GrowingTracker.h"
,请将以下 [GrowingTracker startWithConfiguration:]
加在您的AppDelegate
的 application:didFinishLaunchingWithOptions:
方法中
代码示例:
// Config GrowingIO// 参数需要从GrowingIO网站上,创建新应用,或从已知应用中获取// YourProjectId eg:0a1b4118dd954ec3bcc69da5138bdb96// YourServerHost eg:http://106.75.81.105:8080// YourDatasourceId eg: 11223344aabbccGrowingTrackConfiguration *configuration = [GrowingTrackConfiguration configurationWithProjectId:@"YourProjectId"];configuration.dataCollectionServerHost = @"YourServerHost";configuration.dataSourceId = @"YourDatasourceId";[GrowingTracker startWithConfiguration:configuration launchOptions:launchOptions];
注意
请确保将代码添加在 AppDelegate
的 application:didFinishLaunchingWithOptions
方法中,添加到其他方法中或者延迟初始化可能导致GrowingIO SDK
未初始化的情况,从而导致页面的采集数据丢失。
startWithConfiguration
第二个参数为 application:didFinishLaunchingWithOptions 的 launchOptions
projectId,serverHost,dataSourceId 为必传参数;其中 serverHost格式为:请求协议://域名
2. 在appDelegate.m文件中实现 urlScheme 跳转以及 DeepLink 跳转的代理方法
// url scheme跳转- (BOOL)application:(UIApplication *)applicationopenURL:(NSURL *)urlsourceApplication:(NSString *)sourceApplicationannotation:(id)annotation {return NO;}// universal Link执行- (BOOL) application:(UIApplication *)applicationcontinueUserActivity:(NSUserActivity *)userActivityrestorationHandler:(void (^)(NSArray<id <UIUserActivityRestoring>> *_Nullable))restorationHandler {return YES;}
3. 若使用了iOS 13的 UIScene,请在您指定的SceneDelegate中设置如下
- (void)scene:(UIScene *)scene continueUserActivity:(NSUserActivity *)userActivity {}- (void)scene:(UIScene *)scene openURLContexts:(NSSet<UIOpenURLContext *> *)URLContexts {}
上述代理方法空实现即可,SDK会自动加入处理代码
API | 参数类型 | 是否必填 | 默认值 | 说明 |
|
| 是 |
| 官网的中您的项目ID |
|
| 是 |
| 官网的中您的相应APP的UrlScheme |
|
| 是 |
| 官网的中您的相应APP的DataSourceId |
|
| 是 |
| 您部署服务的后端Host |
|
| 否 |
| 收集SDK内部异常上报服务端 |
|
| 否 |
| 调试模式,会打印SDK log,抛出错误异常,在线上环境务必关闭 |
|
| 否 |
| 每天发送数据的流量限制,单位MB |
|
| 否 |
| 数据发送的间隔,单位秒 |
|
| 否 |
| 每次访问会话的最大时长,单位秒 |
|
| 否 |
| 是否采集数据 |
|
| 否 |
| 需要过滤的事件类型计算的掩码值 |
|
| 否 |
| 事件中需要过滤的属性计算的掩码值 |
如果您添加了库AdSupport.framework, GrowingIO则会启用 IDFA,所以在向 App Store 提交应用时,需要:
对于问题 Does this app use the Advertising Identifier (IDFA),选择 YES。
对于选项Attribute this app installation to a previously served advertisement,打勾。
对于选项Attribute an action taken within this app to a previously served advertisement,打勾。
为什么 GrowingIO 使用 IDFA? GrowingIO 使用 IDFA 来做来源管理激活设备的精确匹配,让你更好的衡量广告效果。如果您不希望启用IDFA,可以选择不引入 AdSupport.framework
对于iOS 14之前,你无需主动获取 广告标识IDFA
的权限
对于iOS 14之后,你需要使用如下方法来开启你的 广告标识IDFA
的权限
Plist 文件中添加 NSUserTrackingUsageDescription
<key>NSUserTrackingUsageDescription</key><string>GrowingIO测试demo 需要使用你的广告标识信息以用于数据追踪分析</string> //描述内容请根据App修改
导入框架 #import <AppTrackingTransparency/AppTrackingTransparency.h>
调用获取权限代码
if (@available(iOS 14, *)) {// iOS14及以上版本需要先请求权限[ATTrackingManager requestTrackingAuthorizationWithCompletionHandler:^(ATTrackingManagerAuthorizationStatus status) {switch (status) {case ATTrackingManagerAuthorizationStatusDenied://用户拒绝向App授权break;case ATTrackingManagerAuthorizationStatusAuthorized://用户同意向App授权break;case ATTrackingManagerAuthorizationStatusNotDetermined://用户未做选择或未弹窗break;case ATTrackingManagerAuthorizationStatusRestricted://用户在系统级别开启了限制广告追踪break;default:break;}}];}