帮助文档(2019)
进入GrowingIO平台
  • What's new
  • 文档使用指南
  • 产品简介
    • 产品概述
    • 数据模型
      • 用户模型
        • 访问用户
        • 登录用户
        • 用户属性
      • 事件模型
        • 什么是事件
        • 无埋点事件
          • 概述
          • 访问事件及变量
          • 页面事件及变量
          • 动作事件及变量
        • 埋点事件
      • 统计模型
        • 指标-事件的度量
        • 维度-事件的属性
        • 预定义指标
        • 预定义维度
    • 数据定义
      • 用户变量
        • 登录用户变量
        • 访问用户变量
      • 页面级变量
      • 埋点事件及变量
        • 埋点事件和事件级变量
        • 转化变量
    • 数据安全
    • 产品界面熟悉
    • 角色权限说明
  • 开发者文档
    • SDK集成
      • SDK简介
      • SDK使用流程
      • Web JS SDK
        • 概述
        • 集成最新SDK
        • Web JS SDK升级指导
        • Web JS SDK API
          • API 2.x
          • API 1.x
        • Web半自动采集浏览事件
        • 常见问题
          • 为什么我们的网站要允许iframe加载?
          • 为什么我的网站不能复写 window 对象?
          • 页面内部嵌入的 iframe 元素如何加载 SDK?
          • 同时集成了web sdk和hybrid sdk会怎么处理?
          • 同时集成了web sdk 1.x 和web sdk 2.x会怎么处理?
          • 元素没有元素浏览量怎么处理?
          • 对于 display:none 的元素,其子元素中的a/button只会采集一次浏览量,但是想每次曝光都采集一次浏览量怎么处理?
          • 设置了growing-ignore之后,其子元素也都不采集数据了怎么处理?
        • Web JS SDK更新日志
      • 原生Android SDK
        • 无埋点 SDK集成
        • 埋点 SDK 集成
        • Android SDK API
          • Gradle配置API
          • 初始化配置项API
          • 运行时API
          • 自定义数据上传API
        • Android半自动采集浏览事件
        • 1.x Android SDK 升级指导
        • 常见问题
          • 无埋点数据采集问题
          • 无埋点下埋点API使用问题
          • SDK性能问题
          • 圈选问题
          • Gradle 常见问题
          • App内嵌H5页面常见问题
        • 更新日志
      • 原生iOS SDK
        • 无埋点 SDK集成
        • 埋点 SDK集成
        • iOS SDK API
          • 初始化配置项API
          • 埋点SDK支持的其他接口
          • 动态添加属性说明
          • 自定义数据上传API
        • iOS半自动采集浏览事件
        • iOS SDK升级指导
        • 常见问题
        • 更新日志
      • 移动端第三方框架SDK
        • React Native无埋点SDK
        • React Native埋点SDK
        • Flutter埋点SDK
        • Cordova埋点SDK
        • Weex埋点SDK
        • API Cloud埋点SDK
        • AppCan埋点SDK
      • Hybrid JS SDK
      • 小程序、小游戏、内嵌页SDK
        • 更新日志
        • 微信小程序 SDK
        • 微信小游戏SDK
        • 支付宝小程序SDK
        • 百度小程序SDK
        • H5内嵌页SDK
        • QQ小程序SDK
        • 字节跳动小程序SDK
        • 快应用SDK
        • 自定义数据上传API
      • 服务端埋点SDK
        • Java埋点SDK
        • PHP埋点SDK
        • 常见问题
    • SDK调试
      • 概述
      • Web Debugger
      • Mobile Debugger
      • 小程序&内嵌页Debugger
      • 验证埋点事件
        • 概述
        • cstm(事件以及关联的事件级变量)事件
        • pvar(页面级变量)事件
        • evar(转化变量)事件
        • ppl(用户变量)事件
    • API参考
      • 公共请求参数
      • 原始数据导出API V2
        • 概述
        • 事件表字段说明
          • 事件表关联
          • 无埋点事件字段
          • 埋点事件与变量字段
          • 广告相关字段
        • 接口定义
          • 获取不同类型原始数据下载链接
          • 获取全部事件类型原始数据的下载链接
        • 升级说明
        • 导出数据处理建议
      • 原始数据导出API V1
        • 概述
        • 字段说明
          • 事件类型
          • 无埋点事件字段
          • 埋点事件与变量字段
          • 广告相关字段
        • 接口定义
          • 获取原始数据下载链接
          • 来源管理数据导出
        • 导出数据处理建议
      • 统计数据导出API V3
        • V3接口概述
        • 接口定义
          • 获取事件分析数据
          • 获取漏斗分析数据
          • 获取留存分析数据
          • 获取用户分群的下载链接
      • 统计数据导出API
        • 概述
        • 接口定义
          • 获取看板列表
          • 获取看板中的图表信息
          • 获取事件分析数据
          • 获取漏斗分析数据
          • 获取留存分析数据
          • 获取分群列表
          • 获取特定分群的用户列表
          • 获取圈选元素定义
      • 广告监测链接创建API
        • 概述
        • 接口定义
          • 查询应用ID
          • 新建推广活动
          • 查询推广活动ID
          • 新建推广渠道
          • 查询推广渠道ID
          • 新建监测链接(吸引用户直接打开App)
          • 查询监测链接(吸引用户直接打开App)
          • 新建监测链接(增加APP下载量-同时推广iOS和Android)
          • 查询监测链接(增加APP下载量-同时推广iOS和Android)
          • 新建监测链接(增加App下载量-推广iOS或Android单个平台)
          • 查询监测链接(增加App下载量-推广iOS或Android单个平台)
          • 新建监测链接(推广网页)
          • 查询监测链接(推广网页)
      • 微信小程序码&小程序监测链接创建服务API
      • 埋点数据上传API
      • 登录用户变量上传API
        • 登录用户变量上传
        • 维度分类上传
        • 既有登录用户ID上传
        • (旧)接口定义
          • 用户变量上传
          • 维度分类上传
      • 项目管理API
        • 概述
        • 从项目内移除成员
        • 获取埋点事件列表
        • 创建埋点事件
        • 获取事件级变量
        • 创建事件级变量
        • 获取页面级变量
        • 创建页面级变量
        • 获取登录用户变量
        • 创建登录用户变量
        • 获取埋点数量限额
      • 数据管理API(GDPR)
        • 数据保护
        • 删除原始数据
  • 产品使用文档
    • 看板
      • 看板简介
      • 看板管理
      • 自定义首页
      • 预置看板介绍
        • 概览看板
        • 实时监控看板
        • 小程序预置看板
        • 微信内嵌页预置看板
        • 业务场景预置看板
      • KPI看板(企业版)
    • 产品分析
      • 事件分析
        • 什么是事件分析
        • 创建事件分析
        • 视图介绍
      • 漏斗分析
        • 什么是漏斗分析
        • 创建漏斗分析
        • 漏斗分析结果解读
        • 案例解读
      • 留存分析
        • 什么是留存分析
        • 创建留存分析
        • 留存分析结果解读
        • 视图介绍
        • 应用场景
        • 常见问题
      • 分布分析
        • 什么是分布分析
        • 使用场景
        • 创建分布分析
      • 热图分析
        • 什么是热图分析
        • Web端热图
        • App热图
      • 分析实验室-留存魔法师
      • 分析实验室-智能路径
    • 用户分析
      • 用户分群
        • 什么是用户分群
        • 创建用户分群
        • 查看分群详情页
        • 分群的计算和使用
        • 常见问题
      • 用户细查
        • 什么是用户细查
        • 细查用户
        • 应用场景
        • 常见问题
      • 活跃用户分析
        • 什么是活跃用户分析
        • 分析活跃用户
      • 微信应用用户分析
    • 用户运营
    • 获客分析
      • 广告监测
        • 创建监测链接
          • 推广App
          • 推广网页
          • 推广小程序(微信)
          • 推广链接的投放和设置指南
        • 数据报表
          • 应用级数据
          • 深度数据分析
          • 数据指标说明
        • 推广管理
          • 监测链接管理
          • 广告活动管理
          • 推广渠道管理
        • 高级设置
          • 日志导出
          • 维度配置
          • 权限配置
          • 反作弊规则
          • 深度链接配置
        • 相关知识
          • UTM参数使用指南
          • 移动端转化归因
          • 默认的渠道来源跟踪
          • DeepLink启用新域名
        • 常见问题
        • 渠道配置指南
          • 腾讯社交广告
          • 今日头条
          • 百度原生信息流
          • 微博超级粉丝通
          • 爱奇艺
          • InMobi
          • 微信广告平台
          • 凤羽广告平台
          • bilibili(B站)
      • 活动分析
      • 落地页分析
      • 分享分析
      • 小程序码管理
    • 看数助手
    • 数据中心
      • 数据管理
        • 事件管理
          • 无埋点事件管理
          • 埋点事件管理
        • 变量管理
          • 事件变量
          • 用户变量
          • 转化变量
        • 自定义指标管理
          • 合并事件
          • 计算指标
        • 业务标签管理
      • 数据规划
      • 无埋点事件定义(圈选)
        • 概述
        • Web端数据定义(Web圈选)
        • App端数据定义(Web圈选)
        • App端数据定义(App圈选)
        • 小程序数据定义
        • 微信内嵌页数据定义
      • 数据校验
      • 微信公众号数据集成
    • 系统管理
      • 组织管理
        • 组织架构介绍
        • 组织概览
        • 组织下项目管理
        • 组织下成员管理
        • 计费方案
        • 成员使用看板
      • 项目管理
        • 项目概览
        • 项目下应用管理
        • 项目下成员管理
        • IP及域名数据过滤
        • 爬虫预防
        • UTM映射管理
        • API Token管理
        • 获取项目UID
      • 权限管理
        • 角色权限
        • 资源权限
        • 数据权限
        • 典型应用场景
      • 工单管理
        • 提交工单
        • 查看进度
        • 邀请技术支持
      • 个人中心
        • 学习中心
        • 个人信息
        • 安全设置
    • 常见问题
      • 基本问题
      • SDK集成
      • 圈选问题
      • 指标和维度
      • 数据安全
      • 产品使用
      • 数据统计差异
      • 无效指标清理说明
  • 术语解释
Powered by GitBook
On this page
  • 准备条件
  • 1. 添加跟踪代码
  • 1. 添加依赖
  • 2. 添加 URL Scheme
  • 3. 初始化配置
  • 4.添加激活圈选的代码
  • 2. 重要配置
  • 1. 设置页面别名
  • 2. 设置界面元素ID
  • 3. 设置元素内容
  • 4. 采集输入框数据
  • 5. Facebook广告SDK
  • 6 采集WebView页面数据
  • 7. 采集GPS数据
  • 8. 启用Hashtag识别
  • 9. GDPR数据采集开关
  • 10. DeepLink & Universal Link
  • 11. App Store提交应用注意事项
  • 12. 采集推送
  • 13. 浏览事件的半自动采集配置
  • 3.自定义数据上传
  • 4. 创建应用
  • 5. 验证SDK是否正常采集数据

Was this helpful?

  1. 开发者文档
  2. SDK集成
  3. 原生iOS SDK

无埋点 SDK集成

Previous原生iOS SDKNext埋点 SDK集成

Last updated 4 years ago

Was this helpful?

准备条件

获取项目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. 添加依赖

  1. 在您的Podfile中添加pod 'GrowingAutoTrackKit'。

  2. 执行或 pod update 更新pod依赖库。不要使用 --no-repo-update选项。

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

  1. 下载iOS SDK以下包: ,,,并解压。

  2. 将Growing.h、GrowingCoreKit.framework、GrowingAutoTrackKit.framework添加到iOS工程中。

提醒:记得勾选”Copy item if needed“

在工程项目中添加以下库文件。

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

库名称

说明

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<NSString*, id> *)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;
  1. 必须在该UIViewController显示之前设置。

  2. 页面别名建议设置为汉字、字母、数字、下划线的组合。

  3. 未查看数据方便,请尽量对不同端、不同页面的取不同的名称。

2. 设置界面元素ID

当您的应用界面改版时,可能会导致无法准确地统计已经圈选的元素。因此,对于应用中的主要流程涉及到的界面元素,建议您为它们设置固定的唯一ID,以保证数据的一致性。

  • 主要流程是指登录、注册、购买、发帖等操作步骤

  • 被设置 ID 的对象是界面的重要元素,如“注册”、“结算”、“发布”等按钮

若要为元素设置ID,请在viewWillAppear或者时机更早的方法里添加以下代码:

-(void)viewWillAppear {
    UIView *MyView;
    …
    MyView.growingAttributesUniqueTag = @"my_view";
}
  • ID 只能设置为字母、数字和下划线的组合

  • 对于已经集成过旧版SDK并圈选过的应用,对某个元素设置ID后再圈选它,指标数值会从零开始计算,类似初次集成SDK后发版的效果,但不影响之前圈选的其它指标数据。如果不希望出现这种情况,请不要使用这个方法。

3. 设置元素内容

当您想采集一些可能没有文字的控件(比如UIImageView,UIView)时,也可以给属性growingAttributesValue 赋值作为文字,用来在圈选的时候区分不同的内容。

如果您的 app 上方有横向滚动的 Banner 广告,若要收集 Banner 相关数据,请在响应点击的控件上添加如下代码:

UIView *view;
…
view.growingAttributesValue = 广告的唯一ID;

其中 view 是您的广告元素,请确保两点:

  • 对不同广告图,广告的唯一 ID 也不相同

  • 响应点击的控件,与设置 ID 的控件是同一个

【例子】当您的横向滚动广告共有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版本

基础DeepLink功能(Scheme打开App至首页)

>=2.3.0

直达落地页(Scheme打开至活动页)

>=2.3.2

Universal Link、应用宝微下载链接支持

>=2.4.1

DeepLink

  1. 确认URl Scheme添加正确。

  2. 添加自定义参数回调方法:

/**
 deeplink广告落地页参数回调设置
​
 @param handler deeplink广告落地页参数回调, params 为解析正确时回调的参数, processTime为从app被deeplink唤起到handler回调的时间(单位秒), error 为解析错误时返回的参数.
                 handler 默认为空, 客户需要手动设置.
 */
+ (void)registerDeeplinkHandler:(void(^)(NSDictionary *params, NSTimeInterval processTime, NSError *error))handler;
//DeepLink 调用示例
[Growing registerDeeplinkHandler:^(NSDictionary *params, NSTimeInterval processTime, NSError *error) {
        NSLog(@"params : %@", params);
        XCTAssertNotNil(params);
        XCTAssertEqualObjects(params[@"key1"], @"value1");
        XCTAssertEqualObjects(params[@"key2"], @"value2");
 }];
  • params参数为您在DeepLink页面设置的”直达落地页参数“。

  • SDK版本 < 2.8.5 请在 + (BOOL)handleUrl:(NSURL*)url被调用前注册回调方法。

  • SDK版本 >= 2.8.5 请保证注册回调方法的时机在startWithAccountId函数之前,并且在主线程当中。

Universal Link

使用Universal Link唤醒App,步骤如下:

  1. 请在AppDelegate.m添加以下代码:

- (BOOL)application:(UIApplication *)application continueUserActivity:(NSUserActivity *)userActivity restorationHandler:(void (^)(NSArray * _Nullable))restorationHandler{
    [Growing handleUrl:userActivity.webpageURL];
	return YES;
}

3. 添加Universal Link参数解析回调方法,此方法与DeepLink方法一致。

11. 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

12. 采集推送

在IOS SDK 2.6.3 版本, 支持采集用户点击本应用的通知的题和内容。此功能默认关闭,如需开启,请在 Application 初始化 GrowingIO 中设置,例如:

- (BOOL)application:(UIApplication *)application
    didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
 ...
  //开启推送点击采集
  [Growing disablePushTrack:NO];
  ...
  }

查看通知采集数据

支持对于通知的展现和点击事件的采集,GrowingIO 并未增加新的采集事件类型,而是使用了自定义事件发送,所以需要您创建自定义事件和事件级变量,事件级变量标识符为notification_title,notification_content,自定义事件的标识符为notification_show,notification_click如图:

iOS SDK 不支持通知展现的事件采集,但是 Android SDK 支持。

这里为了满足大部分客户都有 Android 和 iOS 两个应用的情况,创建的推送展示自定义事件的统计值为0。

13. 浏览事件的半自动采集配置

SDK版本支持:>=2.8.4

  • 事件/元素采集更具针对性,提升采集效率

  • 优化采集逻辑,贴合业务场景,提升数据准确性

  • 浏览事件关联自定义事件和变量,减少研发埋点工作量

3.自定义数据上传

4. 创建应用

添加代码之后,请先Clean项目,然后再进行编译,并在你的 iOS App 安装了 SDK 后重新启动几次 App,保证行为采集数据自动发送给 GrowingIO,以便顺利完成检测。

在GrowingIO平台的应用创建页面继续完成应用创建的数据检测,检测成功后应用创建成功。

5. 验证SDK是否正常采集数据

GrowingIO为您提供多种验证SDK是否正常采集数据的方式:

方式二:在SDK中设置了Debug模式后,在IDE编译器控制台查看数据采集日志。

配置链接:。

「用户浏览事件」半自动采集方案已经上线,详细配置请参考。

除上述的用户行为数据(无埋点数据)之外,GrowingIO 还提供了多种 API 接口,供您上传一些自定义的数据指标及维度 ,请参考iOS SDK API > 。

了解GrowingIO平台数据采集类型请参考。

方式一:

方式三:

iOS半自动采集浏览事件
自定义数据上传API
数据模型
Mobile Debugger
数据校验
查看项目基本信息
GrowingHeader
GrowingCoreKit
GrowingAutoTrackKit
创建应用
配置Universal Link、应用宝微下载(可选项)