ios无埋点 SDK集成
优采云 发布时间: 2020-08-11 07:31ios无埋点 SDK集成打算条件获取项目ID,请参考查看项目基本信息。
获取URL Scheme,在GrowingIO平台创建对应的应用时会生成URL Scheme。请参考。
使用GrowingIO平台创建相应的应用,平台在应用创建界面手动为您生成已加载当前项目ID、URL Scheme的跟踪代码。
1. 添加跟踪代码
集成环境:Xcode 9.0及以上;
App适配最低系统版本:iOS 8及以上
组件化SDK
GrowingIO iOS SDK 收录以下2个组件SDK:
GrowingCoreKit (组件基础库,具备剖析功能)
GrowingAutoTrackKit (无埋点库)
请保证Growing、GrowingCoreKit、GrowingAutoTrackKit版本号一致。
1. 添加依赖
使用CocoaPods快速添加
手动添加
在您的Podfile中添加pod 'GrowingAutoTrackKit'。
执行或 pod update 更新pod依赖库。不要使用 --no-repo-update选项。
(可选)GrowingIO推荐您添加 AdSupport.framework 依赖库,用于来源管理激活匹配,有利于您更好的剖析数据 ,添加项目依赖库的位置在项目设置target -> 选项卡General -> Linked Frameworks and Libraries
在工程项目中添加以下库文件。
添加项目依赖库的位置在项目设置target -> 选项卡General -> Linked -> Linked Frameworks and Librarie
库名称
说明
Foundation.framework
基础依赖库
Security.framework
用户App联接圈选页面SSL连接
CoreTelephony.framework
用于读取运营商
SystemConfiguration.framework
用于判定网路状态
AdSupport.framework
用于来源管理激活匹配
libicucore.tbd
用户App联接圈选页面解析
libsqlite3.tbd
存储日志
CoreLocation.framework
用于读取地理位置信息(如果您的App有权限)
JavaScriptCore.framework
Web圈选App交互
WebKit.framework
Web圈选
添加编译参数,并注意大小写。
2. 添加 URL Scheme
添加URL Scheme 到项目中,以便唤起您的程序进行圈选。
3. 初始化配置
在 AppDelegate 中引入#import "Growing.h"并添加初始化技巧。
#import "Growing.h"
- (BOOL)application:(UIApplication *)application
didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
...
// 启动GrowingIO
[Growing startWithAccountId:@"您的项目ID"]; // 替换为您的项目ID
// 其他配置
// 开启Growing调试日志 可以开启日志
// [Growing setEnableLog:YES];
请确保将代码添加在上述位置,添加到其他方式或异步block中可能造成数据不确切。
4.添加激活圈选的代码
在 AppDelegate 中添加激活圈选的代码
因为您代码的复杂程度以及iOS SDK的版本差别,有时候 [Growing handleUrl:url] 并没有被调用。请在各个平台上调试这段代码,确保当App被URL scheme唤起以后,该函数能被调用到。
- (BOOL)application:(UIApplication *)application openURL:(NSURL *)url sourceApplication:(NSString *)sourceApplication annotation:(id)annotation
{
...
if ([Growing handleUrl:url]) // 请务必确保该函数被调用
{
return YES;
}
return NO;
...
}
常用示例:
若您在 AppDelegate 中实现了以下一个或多个方式,请在已实现的函数中,调用[Growing handleUrl:]
- (BOOL)application:(UIApplication *)application openURL:(NSURL *)url sourceApplication:(nullable NSString *)sourceApplication annotation:(id)annotation
- (BOOL)application:(UIApplication *)application handleOpenURL:(NSURL *)url
- (BOOL)application:(UIApplication *)app openURL:(NSURL *)url options:(NSDictionary *)options
若以上所有方式均未实现,请实现以下方式并调用[Growing handleUrl:]
- (BOOL)application:(UIApplication *)application openURL:(NSURL *)url sourceApplication:(nullable NSString *)sourceApplication annotation:(id)annotatio
2. 重要配置
下列内容为常用配置,更多属性及插口详尽信息见 Growing.h
1. 设置页面别称
有些时侯,对于完成某个功能的页面,统计时可能须要进一步细分。 比如,对于展示商品列表的页面,需要分辨衣服类商品,以及食品类商品的两种列表的访问量。
为处理这些场景,我们提供了取别称的方式来分辨这两种情况下的页面,方法如下:
//手动标识该页面的标题,必须在该UIViewController显示之前设置
@property (nonatomic,copy) NSString* growingAttributesPageName;
必须在该UIViewController显示之前设置。
页面别称建议设置为字母、数字、下划线的组合。
未查看数据便捷,请尽量对不同端、不同页面的取不同的名称。
2. 设置界面元素ID
当您的应用界面改版时,可能会造成难以准确地统计早已圈选的元素。因此,对于应用中的主要流程涉及到的界面元素,建议您为它们设置固定的惟一ID,以保证数据的一致性。
若要为元素设置ID,请在viewWillAppear或则时机更早的方式里添加以下代码:
-(void)viewWillAppear {
UIView *MyView;
…
MyView.growingAttributesUniqueTag = @"my_view";
}
3. 设置元素内容
当您想采集一些可能没有文字的控件(比如UIImageView,UIView)时,也可以给属性growingAttributesValue 赋值作为文字,用来在圈选的时侯分辨不同的内容。
如果您的 app 上方有纵向滚动的 Banner 广告,若要搜集 Banner 相关数据,请在响应点击的控件上添加如下代码:
UIView *view;
…
view.growingAttributesValue = 广告的唯一ID;
其中 view 是您的广告元素,请确保两点:
【例子】当您的纵向滚动广告共有3张广告图时,您可以在3个响应点击的View上分别设置不同的广告惟一ID,实现方法:
view1.growingAttributesValue = @"ad1";
view2.growingAttributesValue = @"ad2";
view3.growingAttributesValue = @"ad3";
4. 采集输入框数据
如果您须要采集应用内某个输入框内的文字(例如搜索框),请调用如下插口进行设置:
UIView *view; // view 可以是 UITextField, UITextView, UISearchBar
...
view.growingAttributesDonotTrackValue = NO;
view代表要被采集的输入框。 当这个输入框丧失焦点(包括应用挪到后台),且输入框内容跟获取焦点前相比发生变化时,输入框内文字会被发送回GrowingIO。
对于密码输入框,即便标记为须要采集,SDK也会忽视,不采集它的数据。
5. Facebook广告SDK
如果您使用了 Facebook 广告 SDK,请勿必在 main 函数第一行调用以下代码来防止冲突,否则可能导致难以创建项目或则统计准确性问题。注意:APP启动后,将不容许更改采集模式。
[Growing setAspectMode:GrowingAspectModeDynamicSwizzling];
6.采集WebView页面数据
SDK会手动采集H5页面的数据,不需要特殊配置。
7. 采集GPS数据
如果您的应用有相应的圈选,SDK将手动采集您的GPS数据。
SDK 2.8.6及以上版本支持自动关掉采集GPS数据。
//设置为NO,将关掉GPS采集 +(void)setEnableLocationTrack:(BOOL)enable;
8. 启用Hashtag辨识
您可以在项目中添加以下方式以启用Hashtag辨识:
// 设置为 YES, 将启用 HashTag
+ (void)enableHybridHashTag:(BOOL)enable;
9. GDPR数据采集开关
SDK 版本支持:2.3.2及以上。
GrowingIO SDK 针对欧盟区的通常数据保护法(GDPR)提供了以下的API共开发者调用。
// 开启GDPR,不采集数据
[Growing disableDataCollect];
// 关闭GDPR,采集数据
[Growing enableDataCollect];
10. DeepLink & Universal Link
DeepLink功能
SDK版本