旧-帮助文档
回到 GrowingIO
  • GrowingIO 帮助文档
  • 快速提交工单
  • 快速上手-Web
  • 快速上手-移动端
  • 快速上手-小程序
  • 产品更新日志
  • 分析工具
    • 事件分析
    • 用户分群
    • 用户细查
    • 漏斗分析
    • 活动分析
    • 落地页分析
    • 分布分析
    • 智能路径
    • 留存分析
    • 留存魔法师
    • 活跃用户分析
    • 热图分析
      • Web 端热图
      • App 热图
    • 单图
    • 微信应用用户分析
    • 小程序-分享分析
  • 看板
    • 自定义首页
    • 概览看板
    • KPI看板(企业版)
    • 小程序预置看板
    • 微信内嵌页预置看板
    • 实时监控模板
    • 业务场景
  • GIO 小程序看数助手
  • 广告监测
    • 创建监测链接
      • 推广 App
      • 推广网页
      • 推广小程序(微信)
    • 数据报表
      • 应用级数据
      • 深度数据分析
      • 数据指标说明
    • 推广管理
      • 监测链接
      • 广告活动
      • 推广渠道
    • 渠道配置指南
      • 腾讯社交广告
      • 今日头条
      • 百度原生信息流
      • 微博超级粉丝通
      • 爱奇艺
      • Inmobi
      • 微信广告平台
      • 凤羽广告平台
      • bilibili(B 站)
    • 其他功能
      • 日志导出
      • 维度配置
      • 权限配置
      • 反作弊规则
      • 深度链接配置
    • 相关知识
      • UTM 参数使用指南
      • 创建小程序的推广码
      • 移动端转化归因
      • 默认的渠道来源跟踪
      • DeepLink 启用新域名
    • 广告监测FAQ
  • SDK 文档
    • SDK 简介与安全性说明
    • 各平台 SDK 支持明细
    • SDK 更新日志
    • Web JS SDK
      • Web JS SDK API
      • Web JS SDK 常见问题
    • Android SDK
      • Android 无埋点 SDK
      • Android 无埋点 SDK API
      • Android 半自动采集浏览事件
      • Android 埋点 SDK
      • Android SDK 常见问题
    • iOS SDK
      • iOS 无埋点SDK
      • iOS SDK API
      • iOS 半自动采集浏览事件
      • iOS SDK 1.X旧版本升级指导
      • iOS 埋点SDK
      • iOS SDK 常见问题
    • Hybrid SDK (App内嵌H5)
    • 小程序、小游戏以及内嵌页 SDK
      • SDK 更新日志 - 小程序 & 内嵌页 & 快应用
      • 微信小程序 SDK
        • mpvue+第三方插件 添加代码
      • 微信小游戏 SDK
      • H5 内嵌页 SDK
      • 支付宝小程序 SDK
      • 百度小程序 SDK
      • QQ 小程序 SDK
      • 字节跳动小程序 SDK
      • 快应用 SDK
    • React Native 无埋点 SDK
      • ReactNative 埋点 SDK
    • Flutter 埋点 SDK
    • Cordova 埋点 SDK
    • Weex 埋点 SDK
    • API Cloud埋点 SDK
    • AppCan 埋点 SDK
    • Java 埋点 SDK
    • PHP 埋点 SDK
    • GrowingIO Debugger
      • 验证打点事件
  • 数据模型
    • 用户模型
      • 访问用户
      • 登录用户
      • 用户属性
    • 事件模型
      • 什么是事件
      • 无埋点事件
        • 访问事件及属性
        • 页面事件及属性
        • 动作事件及属性
      • 埋点事件
        • 埋点事件及属性
    • 统计模型
      • 指标--事件的度量
      • 维度--事件的属性
      • 预定义的指标和维度
  • 数据定义
    • 用户变量
      • 登录用户变量
      • 访问用户变量
    • 页面级变量
      • 查询条件直接设置成页面级变量
    • 无埋点圈选
      • Web 圈选
      • App 端圈选 App
      • 电脑端圈选 App
      • 小程序数据定义
      • 微信内嵌页数据定义
      • 圈选指标管理
        • 合并简单指标
        • 复合指标
    • 埋点事件
      • 埋点事件级变量
      • 转化变量
    • 小程序事件和变量
  • 数据管理
    • 新版数据管理功能说明
    • 无埋点事件管理
    • 埋点事件管理
    • 变量管理
    • 合并事件管理
    • 计算指标
  • 系统配置
    • 组织管理
    • 项目管理
    • 用户管理
    • 权限管理
    • 爬虫规则
    • 账号管理
    • UTM 映射管理
    • IP及域名数据过滤
  • API
    • GrowingIO API 认证
    • 广告监测链接创建服务 API
    • 微信小程序二维码创建服务 API
    • 原始数据导出 API
      • 原始数据导出字段说明
        • 无埋点事件
        • 埋点事件与变量
        • 广告相关数据
        • 通用字段说明
      • 原始数据导出 2.0 API
      • 原始数据导出 1.0 API(已废弃)
      • 原始数据导出 API 的升级迁移
      • 原始数据导出格式及处理建议
    • 统计数据导出 API
    • 埋点数据上传API
    • 用户变量上传 API
    • 项目管理 API
    • 数据管理 API (GDPR)
    • API 更新日志
  • 常见问题
    • 基本问题
    • SDK 集成
    • 圈选常见问题
    • 指标和维度
    • 数据安全
    • 产品使用
    • 数据统计差异
    • 无效指标清理说明
  • 内容贡献者
  • 帮助文档问题反馈
Powered by GitBook
On this page
  • 埋点 SDK集成
  • 1. 选择集成方式
  • 2. 设置URL Scheme
  • 3.添加初始化函数
  • 4.App Store 提交应用注意事项
  • 自定义事件和变量 API
  • track
  • setEvar
  • setPeopleVariable
  • setVisitor
  • setUserId
  • clearUserId
  • 埋点SDK支持的其他接口
  1. SDK 文档
  2. iOS SDK

iOS 埋点SDK

埋点 SDK 的目标用户是使用第三方插件开发的 APP, 比如使用 Weex、APICloud 等。在这些平台中,我们无法自动采集用户的点击事件和页面浏览事件等,需要依赖调用自定义事件和变量 API来进行数据采集。 如果您的 APP 使用 iOS 原生开发,并且希望自动采集用户的点击事件、页面浏览事件等无埋点事件, 请集成 iOS 无埋点SDK 。

PreviousiOS SDK 1.X旧版本升级指导NextiOS SDK 常见问题

Last updated 5 years ago

埋点 SDK集成

1. 选择集成方式

注意: 请保证Growing,GrowingCoreKit版本号一致

(1)使用 CocoaPods 快速集成

  • 添加pod 'GrowingCoreKit'到 Podfile 中

  • 执行pod update,不要用--no-repo-update选项

  • (optional) GrowingIO推荐您添加AdSupport.framework依赖库,用于来源管理激活匹配,有利于您更好的分析数据 ,添加项目依赖库的位置在项目设置target -> 选项卡General -> Linked Frameworks and Libraries

  • 直接进行第 2 步 “”

(2)手动集成 SDK

  • 下载 iOS SDK以下包: ,​

  • 解压 iOS SDK 压缩文件

  • 将Growing.h,GrowingCoreKit.framework添加到iOS工程中。

提醒: 记得勾选 "Copy items if needed"

添加依赖, 在项目中添加以下库文件

库名称

类型

Foundation.framework

基础依赖库

Security.framework

用于SSL连接

CoreTelephony.framework

用于读取运营商名称

SystemConfiguration.framework

用于判断网络状态

AdSupport.framework

用于来源管理激活匹配

libicucore.tbd

用于WebSocket

libsqlite3.tbd

存储日志

CoreLocation.framework

用于读取地理位置信息(如果您的app有权限)

JavaScriptCore.framework

Web圈app交互

WebKit.framework

Web圈选

提醒:添加项目依赖库的位置在项目设置target -> 选项卡General -> Linked Frameworks and Libraries

添加编译参数,注意大小写:

2. 设置URL Scheme

(1) 获取URL Scheme

• 添加新产品:登录官网-> 点击项目选择框-> 点击“项目管理” -> 点击“应用管理” -> 点击“新建应用”->选择添加iOS 应用-> 填写“应用名称“,点击下一步->在第二段中标黄字体。

• 现有产品:登录官网-> 点击项目选择框-> 点击“项目管理” -> 点击“应用管理” -> 找到对应产品的URL Scheme设置URL Scheme

(1) 获取URL Scheme

• 添加新产品:登录官网-> 点击项目选择框-> 点击“项目管理” -> 点击“应用管理” -> 点击“新建应用”->选择添加iOS 应用-> 填写“应用名称“,点击下一步->在第二段中标黄字体。

• 现有产品:登录官网-> 点击项目选择框-> 点击“项目管理” -> 点击“应用管理” -> 找到对应产品的URL Scheme

(2) 添加URL Scheme(growing.xxxxxxxxxxxxxxxx)到项目中

(3) 在AppDelegate 中添加代码

- (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<NSString*, id> *)options

若以上所有方法均未实现,请实现以下方法并调用[Growing handleUrl:]

- (BOOL)application:(UIApplication *)application openURL:(NSURL *)url sourceApplication:(nullable NSString *)sourceApplication annotation:(id)annotation

实际情况可能很复杂,请在调试时确保函数[Growing handleUrl:]会被执行到。

3.添加初始化函数

在AppDelegate 中引入#import "Growing.h"并添加启动方法

#import "Growing.h"
- (BOOL)application:(UIApplication*)application
    didFinishLaunchingWithOptions:(NSDictionary*)launchOptions {
      ...
      //启动GrowingIO
     [Growing startWithAccountId:@"xxxxxxxxxxxxxxxx"]; //替换为您的ID
     // 其他配置
     // 开启Growing调试日志可以开启日志
     // [Growing setEnableLog:YES];
  }

请确保将代码添加在上面描述的位置,添加到其他函数中或者异步block 中可能导致数据不准确!

4.App Store 提交应用注意事项

如果您添加了库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

至此,您的SDK安装就成功了。

自定义事件和变量 API

​

SDK 提供多种不同类型的API,请根据您的实际需要正确地调用。

// 发送自定义事件 API
+ (void)track:(NSString *)eventId;
+ (void)track:(NSString *)eventId withNumber:(NSNumber *)number;
+ (void)track:(NSString *)eventId withNumber:(NSNumber *)number andVariable:(NSDictionary<NSString *, NSObject *> *)variable;
+ (void)track:(NSString *)eventId withVariable:(NSDictionary<NSString *, NSObject *> *)variable;
​
// 发送转化变量 API
+ (void)setEvarWithKey:(NSString *)key andStringValue:(NSString *)stringValue;
+ (void)setEvarWithKey:(NSString *)key andNumberValue:(NSNumber *)numberValue;
+ (void)setEvar:(NSDictionary<NSString *, NSObject *> *)variable;
​
// 发送用户变量 API
+ (void)setPeopleVariableWithKey:(NSString *)key andStringValue:(NSString *)stringValue;
+ (void)setPeopleVariableWithKey:(NSString *)key andNumberValue:(NSNumber *)numberValue;
+ (void)setPeopleVariable:(NSDictionary<NSString *, NSObject *> *)variable;
​
// 访问用户变量 API
+ (void)setVisitor:(NSDictionary<NSString *, NSObject *> *)variable;
​
// 设置登录用户ID API
+ (void)setUserId:(NSString *)userId;
​
// 清除登录用户ID API
+ (void)clearUserId;

track

发送一个自定义事件。在添加所需要发送的事件代码之前,需要在打点管理用户界面声明事件以及事件级变量。

参数说明:

参数名称

参数类型

是否必须

说明

eventId

String

是

事件标识符

number

Number

否

事件的数值,没有number参数时,事件默认加1;当出现number参数时,事件自增number的数值。

eventLevelVariable

JSON Object

否

事件发生时所伴随的维度信息。

参数限制条件:

参数名称

限制条件

eventId

英文数字组合的字符串,不能为 nil 或者"",长度小于等于50,且不能含有特殊字符

number

正整数或浮点数

eventLevelVariable

不能为nil;eventLevelVariable 内部不允许含有JSONObject或者JSONArray;

key 长度限制小于等于50,value 长度限制小等于1000,值不能为空串,也就是""。

// track API原型
+ (void)track:(NSString *)eventId;
+ (void)track:(NSString *)eventId withNumber:(NSNumber *)number;
+ (void)track:(NSString *)eventId withNumber:(NSNumber *)number andVariable:(NSDictionary<NSString *, NSObject *> *)variable;
+ (void)track:(NSString *)eventId withVariable:(NSDictionary<NSString *, NSObject *> *)variable;
// track API调用示例一
[Growing track:@"registerSuccess"];
// track API调用示例二
[Growing track:@"registerSuccess" withVariable:@{@"gender":@"male", @"age":@"21"}];
// track API调用示例三
[Growing track:@"loanAmount" withNumber:@800000 andVariable:@{@"loanType":@"houseMortgage", @"province":@"Zhejiang"}];

​

setEvar

发送一个转化信息用于高级归因分析,在添加代码之前必须在打点管理界面上声明转化变量。

参数说明:

参数名称

参数类型

是否必须

说明

key

String

否

转化变量的标识符

Value

String

否

转化变量的值

conversionVariables

JSON Object

否

转化变量用于高级归因分析

参数限制条件:

参数名称

限制条件

key

不能为 nil 或者"",长度小于等于50

Value

变量不为nil或者"",若为字符串则长度应小于等于 1000

conversionLevelVariable

不能为nil; conversionLevelVariable 内部不允许含有JSONObject或者JSONArray;

key 长度限制小于等于50,value 长度限制小等于1000,值不能为空串,也就是""。

// setEvar API原型
+ (void)setEvarWithKey:(NSString *)key andStringValue:(NSString *)stringValue;
+ (void)setEvarWithKey:(NSString *)key andNumberValue:(NSNumber *)numberValue;
+ (void)setEvar:(NSDictionary<NSString *, NSObject *> *)variable;
// setEvar API调用示例一
[Growing setEvarWithKey:@"campaignId" andStringValue:@"1234567890"];
// setEvar API调用示例二
[Growing setEvar:@{@"campaignId":@"12345", @"campaignOwner":@"Li Si"}];

setPeopleVariable

发送用户信息用于用户信息相关分析,在添加代码之前必须在打点管理界面上声明用户变量。

参数说明:

参数名称

参数类型

是否必须

说明

key

String

否

用户变量的标识符

value

String

否

用户变量的值

customerVariables

JSON Object

否

用户变量用于用户信息相关的分析

参数限制条件:

参数名称

限制条件

key

不能为nil或"",长度小于等于50

value

变量不为nil或者"",若为字符串则长度应小于等于 1000

customerVariables

不能为nil;customerVarialbes 内部不允许含有JSONObject或者JSONArray;

key 长度限制小于等于50,value 长度限制小等于1000,值不能为空串,也就是""。

// setPeopleVariable API原型
+ (void)setPeopleVariableWithKey:(NSString *)key andStringValue:(NSString *)stringValue;
+ (void)setPeopleVariableWithKey:(NSString *)key andNumberValue:(NSNumber *)numberValue;
+ (void)setPeopleVariable:(NSDictionary<NSString *, NSObject *> *)variable;
// setPeopleVariable API调用示例一
[Growing setPeopleVariableWithKey:@"gender" andStringValue:@"male"];
// setPeopleVariable API调用示例二
[Growing setPeopleVariable:@{@"gender":@"male", @"age":@"25"}];

setVisitor

2.4.0以上版本支持

当用户未登录时,定义用户属性变量,也可用于A/B测试上传标签。

参数说明:

参数名称

参数类型

是否必须

说明

variable

JSON Object

是

访问用户信息

参数限制条件:

参数名称

限制条件

variable

不能为nil;variable 内部不允许含有JSONObject或者JSONArray;

key 长度限制小于等于50,value 长度限制小等于1000,值不能为空串,也就是""。

// setVisitor 访问用户变量 API原型
+ (void)setVisitor:(NSDictionary<NSString *, NSObject *> *)variable;
// setVisitor API调用示例
[Growing setVisitor:@{@"gender":@"male", @"age":@"25"}];

setUserId

当用户登录之后调用setUserId API,设置登录用户ID。

参数说明:

参数名称

参数类型

是否必须

说明

userId

String

是

用户的登录用户ID

参数限制条件:

参数名称

限制条件

userId

英文数字组合的字符串,长度小于等于1000,且不能含有特殊字符,不允许传空、"" 或者nil,如有清除操作,请调用 clearUserId 方法

// setUserId API原型
+ (void)setUserId:(NSString *)userId;
// setuserId API调用示例
[Growing setUserId:@"1234567890"];

如果您的应用是App,且每次用户升级App版本时无需重新登录的话,建议在用户每次升级App版本后初次访问时重新调用上述 setUserId 方法。

clearUserId

当用户登出之后调用clearUserId,清除已经设置的登录用户ID。

// clearUserId API原型
+ (void)clearUserId;
// clearUserId API调用示例
[Growing clearUserId];

埋点SDK支持的其他接口

GrowingIO 埋点 SDK 仅自动采集设备信息和您埋点内容数据,对比无埋点 SDK ,埋点 SDK 少很多 API, 请勿在埋点 SDK 中调用无埋点 SDK 接口。

1,如果需要采样设置一个采样值  0.01即1% 0.001即1‰  最多支持小数点后5位
+ (void)startWithAccountId:(NSString*)accountId withAppId:(NSString*)appId withSampling:(CGFloat)sampling;
+ (void)startWithAccountId:(NSString*)accountId withSampling:(CGFloat)sampling;
​
2,默认采样100%
+ (void)startWithAccountId:(NSString*)accountId withAppId:(NSString*)appId;
+ (void)startWithAccountId:(NSString*)accountId;
​
3,命令行输出调试日志
+ (void)setEnableLog:(BOOL)enableLog;
+ (BOOL)getEnableLog;
​
4,若使用加密功能,请在UI元素初始化之前设置此函数
+ (void)setEncryptStringBlock:(NSString*(^)(NSString*string))block;
​
5,以下函数设置后会覆盖原有设置
// 并且只会在第一次安装后调用以保证同一设备的设备ID相同
// 请在方法startWithAccountId之前调用
// 使用自定义的ID 自定义ID长度不可大于64 否则会被抛弃NSUUID的UUIDString长度为36
+ (void)setDeviceIDModeToCustomBlock:(NSString*(^)(void))customBlock;
​
6,deeplink广告落地页参数回调设置
+ (void)registerDeeplinkHandler:(void(^)(NSDictionary*params, NSError*error))handler;
​
7,Universallink广告落地页参数回调设置
+ (void)registerUniversallinkHandler:(void(^)(NSDictionary*params, NSError*error))handler;
​
8,该函数请在main函数第一行调用APP启动后将不允许修改采集模式
+ (void)setAspectMode:(GrowingAspectMode)aspectMode;
+ (GrowingAspectMode)getAspectMode;
​
9,是否允许发送基本性能诊断信息,默认为开
+ (void)setEnableDiagnose:(BOOL)enable;
​
10,全局不发送统计信息
+ (void)disable;
​
11,设置发送数据的时间间隔(单位为秒)
+ (void)setFlushInterval:(NSTimeInterval)interval;
+ (NSTimeInterval)getFlushInterval;
​
12,设置每天使用数据网络(2G、3G、4G)上传的数据量的上限(单位是KB)
+ (void)setDailyDataLimit:(NSUInteger)numberOfKiloByte;
+ (NSUInteger)getDailyDataLimit;
​
13,设置数据收集平台服务器地址
+ (void)setTrackerHost:(NSString*)host;
​
14,设置设备报活服务器地址
+ (void)setReportHost:(NSString*)host;
​
15,设置数据查看平台服务器地址
+ (void)setDataHost:(NSString*)host;
​
16,设置数据后台服务器地址
+ (void)setGtaHost:(NSString*)host;
​
17,设置数据后台服务器地址
+ (void)setWsHost:(NSString*)host;
​
18,设置zone信息
+ (void)setZone:(NSString*)zone;
​
19,设置GDPR 生效
+ (void)disableDataCollect;
​
20,设置GDPR 失效
+ (void)enableDataCollect;
​
21,获取当前设备id
+ (NSString*)getDeviceId;
​
22,获取当前uid
+ (NSString*)getVisitUserId;
​
23,获取当前访问id
+ (NSString*)getSessionId;

您的APP或网页在集成了 GrowingIO 的 SDK 之后,它将会自动地为您采集一系列用户行为数据,并在 GrowingIO 分析后台供您制成数据分析报表。除上述的用户行为数据(或称为无埋点数据)之外,GrowingIO 还提供了多种 API 接口,供您上传一些和,下面介绍自定义事件和变量 API 使用方法。

埋点SDK除了支持上面的打点事件,还支持以接口,接口详情请参考中的说明:

设置 URL Scheme
GrowingHeader
GrowingCoreKit
自定义事件
变量
IOS SDK API