最后更新于
这有帮助吗?
最后更新于
这有帮助吗?
埋点 SDK 的目标是使用第三方插件开发的 APP, 比如使用 Weex、APICloud 等,或不需要SDK自动采集页面浏览,元素点击行为数据的APP。
在一些第三方混合开发框架中,我们无法自动采集用户的点击事件和页面浏览事件等,需要依赖调用埋点事件或变量 API 来进行数据采集。
如果您的 APP 使用 OS 原生开发,并且希望自动采集用户的点击事件、页面浏览事件等无埋点事件, 请集成 iOS无埋点SDK 。
获取项目ID,获取方法请参考"项目管理 > 项目概览 > "。
获取URL Scheme,在GrowingIO平台创建对应的应用时会生成URL Scheme。请参考。
集成环境:Xcode 9.0及以上;
App适配最低系统版本:iOS 8及以上
组件化SDK
GrowingIO iOS SDK 包含以下组件SDK:
• GrowingCoreKit (组件基础库,具备分析功能)
请保证Growing、GrowingCoreKit版本号一致
在您的Podfile中添加pod 'GrowingCoreKit'
。
执行pod install
或 pod update
更新pod依赖库。
(可选)GrowingIO推荐您添加 AdSupport.framework 依赖库,用于来源管理激活匹配,有利于您更好的分析数据 ,添加项目依赖库的位置在项目设置target -> 选项卡General -> Linked Frameworks and Libraries
URL Scheme 是您在 GrowingIO 平台创建应用时生成的该应用的唯一标识。把 URL Scheme 添加到您的项目中,以便在使用圈选,Mobile Debugger,及深度链接功能时唤醒您的应用。
URL Scheme 只能对应一个应用。当应用的包名发生变化时,需再次创建一个应用使用对应的 URL Scheme
在 AppDelegate 中引入#import "Growing.h"
并添加初始化方法。
请确保将代码添加在上述位置,添加到其他方法或异步block中可能导致数据不准确。
手动集成或者三方框架集成
对于手动集成,或者Flutter,Cordova创建的工程,swift调用OC需要设置一个bridge header,首先创建一个头文件,例如叫做 BridgingHeader.h
然后选择 target->build settings->Objective-c Bridging Header
添加此头文件的 相对路径
,即可在AppDelegate.swift
中引入import GrowingCoreKit
因为您代码的复杂程度以及iOS SDK的版本差异,有时候 [Growing handleUrl:url] 并没有被调用。请在各个平台上调试这段代码,确保当App被URL scheme唤醒之后,该函数能被调用到。
若您在 AppDelegate 中实现了以下一个或多个方法,请在已实现的函数中,调用[Growing handleUrl:]
若以上所有方法均未实现,请实现以下方法并调用[Growing handleUrl:]
实际情况可能很复杂,请在调试时确保函数[Growing handleUrl:]
会被执行到
如果您使用了 Facebook 广告 SDK,请务必在 main 函数第一行调用以下代码来避免冲突,否则可能造成无法创建项目或者统计准确性问题。注意:APP启动后,将不允许修改采集模式。
SDK 2.9.0及以上版本支持该接口
示例代码
用户开启相应获取地理位置信息权限,在SDK初始化前调用如下接口,设置为 YES
(默认值),当 App 调用获取地理位置API 时,SDK会同步采集地理位置信息。用户未开启权限,则不采集。
如果希望禁止采集地理位置信息,在SDK初始化前调用如下接口,设置为 NO
。
如果没有用户的地理位置信息,我们会根据用户的ip模糊匹配
用户所在城市地区,能够在最终的数据分析时看到APP
用户地域分布。
SDK 2.8.6及以上版本支持手动关闭采集地理位置数据。
//在SDK初始化之前调用,设置为NO,将关闭地理位置信息采集
+(void)setEnableLocationTrack:(BOOL)enable;
GrowingIO SDK 默认情况下,不会把HashTag
识别成页面 URL 的一部分,内嵌H5页面点击锚点页面跳转不计为页面浏览事件。
对于使用HashTag
进行页面跳转的单页面网站应用来说,可以启用它来标识页面,HashTag
的值也会记录在页面URL中。启用之后,如果用户点击页面中的锚点进行页面跳转,则发送一次页面浏览事件。
在SDK初始化代码中添加如下代码:
SDK 版本支持:2.3.2及以上。
GrowingIO SDK 针对欧盟区的一般数据保护法(GDPR)提供了以下的API共开发者调用。
确认URl Scheme添加正确。
添加自定义参数回调方法:
params参数为您在DeepLink页面设置的”直达落地页参数“。
SDK版本 < 2.8.5 请在 + (BOOL)handleUrl:(NSURL*)url
被调用前注册回调方法。
SDK版本 >= 2.8.5 请保证注册回调方法的时机在startWithAccountId函数之前,并且在主线程当中。
使用 Universal Link 唤醒App,步骤如下:
请在AppDelegate.m添加以下代码:
3. 添加Universal Link参数解析回调方法,此方法与DeepLink方法一致。
SDK默认会开启收集SDK内部异常上报至服务端功能,方便开发更好的追踪SDK问题和完善SDK功能。如果您不希望收集SDK内部异常,或者和您的 crash 收集框架有冲突,您可以关闭该功能。
请在 startWithAccountId: 或 startWithAccountId: withSampling: 接口之前设置 (SDK2.8.9以后)
如您需要使用 Apple Search Ads 归因数据分析,请在 SDK 初始化之前调用setAsaEnabled
接口:
在 Target -> Build Phases -> Link Binary With Libraries,添加 iAd.framework 和 AdServices.framework,并设置 AdServices.framework status 为 Optional
如果您添加了库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
导入框架 #import <AppTrackingTransparency/AppTrackingTransparency.h>
调用获取权限代码
添加代码之后,请先Clean项目,然后再进行编译,并在你的 App 安装了 SDK 后重新启动几次 App,保证行为采集数据自动发送给 GrowingIO,以便顺利完成检测。
在GrowingIO平台的应用创建页面继续完成应用创建的数据检测,检测成功后应用创建成功。
GrowingIO为您提供多种验证SDK是否正常采集数据的方式:
方式二:在SDK中设置了Debug模式后,在IDE编译器控制台查看数据采集日志。
为使 App 合规,请参考。
埋点 SDK 会采集H5页面的数据,需要增加如下特殊配置。同时H5页面需要手动集成 。
如果内嵌H5页面集成了Web JS SDK,则 Web JS SDK 中 配置有效,该接口调用无效
配置链接:。
除上述的用户行为数据(无埋点数据)之外,GrowingIO 还提供了多种 API 接口,供您上传一些自定义的数据指标及维度 ,请参考iOS SDK API > 。
了解GrowingIO平台数据采集类型请参考。
方式一:
方式三:
DeepLink功能
SDK版本
基础DeepLink功能(Scheme打开App至首页)
>=2.3.0
直达落地页(Scheme打开至活动页)
>=2.3.2
Universal Link、应用宝微下载链接支持
>=2.4.1
库名称
说明
Foundation.framework
基础依赖库
Security.framework
用于APP连接圈选页面SSL连接
CoreTelephony.framework
用于读取运营商名称
SystemConfiguration.framework
用于判断网络状态
AdSupport.framework
用于来源管理激活匹配
libicucore.tbd
用于WebSocket
libsqlite3.tbd
存储日志
CoreLocation.framework
用于读取地理位置信息(如果您的app有权限)
JavaScriptCore.framework
Web圈App交互
WebKit.framework
Web圈选