帮助文档
  • What's new
  • 增长平台全景图
  • 文档使用指南
  • 产品简介
    • 产品概述
    • 数据模型
      • 用户模型
        • 访问用户
        • 登录用户
        • 用户属性
      • 事件模型
        • 什么是事件
        • 无埋点事件
          • 概述
          • 访问事件及变量
          • 页面事件及变量
          • 元素事件及变量
        • 埋点事件
      • 统计模型
        • 指标-事件的度量
        • 维度-事件的属性
        • 预定义指标
        • 预定义维度
    • 数据定义
      • 用户变量
        • 登录用户变量
        • 访问用户变量
      • 页面级变量
      • 埋点事件及变量
        • 埋点事件和事件级变量
        • 转化变量
    • 数据安全
  • 开发者文档
    • SDK 集成
      • SDK 简介
      • 合规指南
        • Android SDK合规说明
        • iOS SDK合规说明
        • HarmonyOS SDK合规说明
        • Web JS SDK 合规说明
        • 小程序 SDK 合规说明
      • SDK 使用流程
      • Web JS SDK
        • Web JS SDK 更新日志
        • 概述
        • 集成最新SDK
        • SDK 版本1.x升级2.x指导
        • Web JS SDK API
          • API 2.x
        • Web半自动采集浏览事件
        • 常见问题
          • 为什么网站要允许iframe加载?
          • 为什么网站不能复写 window 对象?
          • 页面内部嵌入的 iframe 元素如何加载 SDK?
          • 同时集成了web sdk 和 hybrid sdk 会怎么处理?
          • 同时集成了web sdk 1.x 和web sdk 2.x会怎么处理?
          • 元素没有元素浏览量怎么处理?
          • display:none 的元素,其子元素中的a/button只采集一次浏览量,想每次曝光都采集怎么处理?
          • 设置了 growing-ignore 之后,其子元素也不采集怎么处理?
      • 原生 Android SDK
        • Android SDK更新日志
        • 无埋点 SDK 集成
        • 埋点 SDK 集成
        • Android SDK API
          • Gradle配置API
          • 初始化配置项API
          • 运行时API
          • 自定义数据上传API
        • Android半自动采集浏览事件
        • 1.x Android SDK 升级指导
        • 常见问题
          • 无埋点数据采集问题
          • 无埋点SDK中埋点API使用问题
          • SDK性能问题
          • 圈选问题
          • Gradle 常见问题
          • App内嵌H5页面常见问题
      • 原生 iOS SDK
        • iOS SDK 更新日志
        • 无埋点 SDK集成
        • 埋点 SDK集成
        • iOS SDK API
          • 初始化配置项API
          • 埋点SDK支持的其他接口
          • 动态添加属性说明
          • 自定义数据上传API
        • iOS半自动采集浏览事件
        • iOS SDK升级指导
        • 常见问题
        • 用户运营iOS SDK地址
      • 移动端第三方框架 SDK
        • React Native无埋点SDK
        • React Native埋点SDK
        • Flutter埋点SDK
        • Cordova埋点SDK
        • Weex埋点SDK
        • API Cloud埋点SDK
        • AppCan埋点SDK
        • uniapp 埋点SDK
        • Unity 埋点 SDK
        • 鸿蒙原生埋点 SDK
      • 小程序 SDK
        • 3.7及以下
          • 更新日志
          • 集成
            • 微信小程序
            • 支付宝小程序
            • 百度小程序
            • QQ小程序
            • 字节跳动小程序
            • 快应用
          • 数据采集API
          • 无埋点采集逻辑和高级配置
        • 3.8
          • 更新日志
          • 集成
            • 微信小程序
            • 阿里(支付宝)小程序
            • 百度小程序
            • 字节(抖音头条)小程序
            • QQ小程序
            • 快应用
          • 初始化配置
          • 数据采集API
          • 无埋点采集逻辑和高级配置
          • 旧版本与3.8对比
          • 旧版本升级到3.8
      • Hybrid JS SDK
      • 小程序和微信公众号H5 内嵌页 SDK
        • 更新日志
      • 微信小游戏 SDK
        • 更新日志
      • 服务端埋点SDK
        • Java埋点SDK
        • PHP埋点SDK
        • 常见问题
      • 仅集成埋点SDK的Hybrid JS SDK
    • SDK调试
      • 概述
      • Web Debugger
      • Mobile Debugger
      • 小程序&内嵌页Debugger
      • 验证埋点事件
        • 概述
        • 对 cstm(事件以及关联的事件级变量)上报进行验证
        • 对 pvar(页面级变量)进行验证
        • 对 evar(转化变量)进行验证
        • 对 ppl(用户变量)上报验证
    • API参考
      • 公共请求参数
      • 原始数据导出API V2
        • 概述
        • 事件表字段说明
          • 事件表关联
          • 无埋点事件字段
          • 埋点事件与变量字段
          • 广告相关字段
        • 接口定义
          • 获取不同类型原始数据下载链接
          • 获取全部事件类型原始数据的下载链接
        • 升级说明
        • 导出数据处理建议
      • 原始数据导出API V1
        • 概述
        • 字段说明
          • 事件类型
          • 无埋点事件字段
          • 埋点事件与变量字段
          • 广告相关字段
        • 接口定义
          • 获取原始数据下载链接
          • 来源管理数据导出 -- [接口下线 2020.11.02]
        • 导出数据处理建议
      • 统计数据导出API V3
        • V3接口概述
        • 接口定义
          • 获取事件分析数据
          • 获取漏斗分析数据
          • 获取留存分析数据
          • 获取分布分析数据
          • 获取用户分群的下载链接
          • 获取用户标签的下载链接
      • 统计数据导出API
        • 概述
        • 接口定义
          • 获取看板列表
          • 获取看板中的图表信息
          • 获取事件分析数据
          • 获取漏斗分析数据
          • 获取留存分析数据
          • 获取分群列表
          • 获取特定分群的用户列表
          • 获取圈选元素定义
      • 用户分群更新API
      • 广告监测链接创建API
        • 概述
        • 接口定义
          • 查询应用ID
          • 新建推广活动
          • 查询推广活动ID
          • 新建推广渠道
          • 查询推广渠道ID
          • 新建监测链接(吸引用户直接打开App)
          • 查询监测链接(吸引用户直接打开App)
          • 新建监测链接(增加APP下载量-同时推广iOS和Android)
          • 查询监测链接(增加APP下载量-同时推广iOS和Android)
          • 新建监测链接(增加App下载量-推广iOS或Android单个平台)
          • 查询监测链接(增加App下载量-推广iOS或Android单个平台)
          • 新建监测链接(推广网页)
          • 查询监测链接(推广网页)
          • 新建监测链接(微信小程序)
          • 查询监测链接(微信小程序)
      • 埋点数据上传API
      • 登录用户变量上传API
        • 登录用户变量上传
        • 维度分类上传
        • 既有登录用户ID上传
        • (旧)接口定义
          • 用户变量上传
          • 维度分类上传
      • 项目管理API
        • 概述
        • 从项目内移除成员
        • 获取埋点事件列表
        • 创建埋点事件
        • 更新埋点事件
        • 删除埋点事件
        • 获取事件级变量
        • 创建事件级变量
        • 获取页面级变量
        • 创建页面级变量
        • 获取登录用户变量
        • 创建登录用户变量
        • 获取访问用户变量
        • 获取埋点数量限额
      • 数据管理API(GDPR)
        • 数据保护
        • 删除原始数据
  • 产品使用文档
    • 产品分析
      • 数据监测
        • 概览
        • 实时
        • 分析看板
        • KPI看板
        • 小程序看数助手
      • 分析工具
        • 事件分析
          • 什么是事件分析
          • 创建事件分析
          • 视图介绍
        • 漏斗分析
          • 什么是漏斗分析
          • 创建漏斗分析
          • 漏斗分析结果解读
          • 案例解读
        • 留存分析
          • 什么是留存分析
          • 创建留存分析
          • 留存分析结果解读
          • 视图介绍
          • 应用场景
          • 常见问题
        • 分布分析
          • 什么是分布分析
          • 使用场景
          • 创建分布分析
        • 热图分析
          • 什么是热图分析
          • Web端热图
          • App热图
        • 事件流分析
      • 业务场景
        • 分享分析
        • 留存魔法师
    • 智能运营
    • 获客分析
      • 首页
        • 应用级数据
        • 数据指标说明
      • 分析
        • 渠道价值分析
        • 渠道归因分析
        • 落地页分析
        • 活动页分析
      • 获客追踪
        • 监测链接
          • 推广App
          • 推广网页
          • 推广小程序(微信)
            • 推广链接的投放和设置指南
            • 小程序码管理
        • 深度链接
        • 结合产品数据深度分析
      • 产品配置
        • 广告活动管理
        • 推广渠道管理
        • 深度链接配置
        • 广告数据权限控制
        • 日志数据导出
        • 维度配置(链接扩展维度)
        • 归因配置
      • 渠道配置指南
        • 苹果广告投放
        • 华为应用商oCPD
        • HUAWEI Ads
        • 腾讯社交广告(Marking API)
        • 今日头条(巨量纵横)
        • 百度原生信息流
        • 百度搜索_ocpc
        • 微信广告平台
        • 微博超级粉丝通
        • 爱奇艺
        • InMobi
        • 快手平台
        • 凤羽广告平台
        • bilibili(B站)
        • VIVO营销平台
      • 相关知识
        • UTM参数使用指南
        • 移动端转化归因
        • 默认的渠道来源跟踪
        • DeepLink启用新域名
      • 常见问题
    • 用户库
      • 用户分群
        • 用户分群
          • 什么是用户分群
          • 创建用户分群
            • 规则分群
          • 更新用户分群
          • 查看分群详情页
          • 常见问题
        • 用户细查
          • 什么是用户细查
          • 细查用户
          • 应用场景
          • 常见问题
      • 用户标签 - Beta
        • 创建标签
        • 标签模型使用
          • 基础指标值
          • 最大值 / 最小值
          • 最初 / 最终
          • 分层标签
      • 用戶分析
        • 活跃用户分析
          • 什么是活跃用户分析
          • 分析活跃用户
      • 业务场景
        • 微信应用用户分析
    • 数据中心
      • 数据管理
        • 无埋点事件
          • 概述
          • Web端数据定义
            • Web圈选
            • Chrome插件圈选
            • Chrome插件安装步骤
          • App端数据定义
          • App端数据定义(App圈选)
          • 小程序数据定义
          • 微信内嵌页数据定义
        • 埋点事件
        • 事件级变量
        • 页面级变量
        • 用户变量
          • 登录用户变量
          • 访问用戶变量
        • 转化变量
        • 业务标签管理
        • 批量操作
        • 自定义指标管理
          • 计算指标
          • 合并事件
        • 预定义维度
        • 预定义指标
      • 数据规划
        • 电商行业数据规划
      • 数据校验
        • 移动端数据校验
        • 小程序数据校验
        • Mobile Debugger
        • Web Debugger
      • 数据集成
        • 微信公众号集成
    • 项目管理
      • 如何进入项目管理?
      • 项目概览
      • 应用管理
      • 成员管理
      • 角色管理
        • 典型角色应用场景
        • 系统角色功能权限列表
      • 小组管理
      • 数据权限
      • 项目配置
        • IP及域名数据过滤
        • 爬虫预防
        • UTM映射管理
        • API Token管理
        • 获取项目UID
    • 组织管理
      • 组织概览
      • 组织项目
      • 组织成员
      • 费用中心(计费方案)
    • 个人中心
      • 个人信息
      • 安全设置
    • 学习平台
    • 工单管理
      • 提交工单
      • 查看进度
      • 邀请技术支持
    • 术语解释
  • 常见问题与解决
    • 基本问题
    • SDK集成
    • 圈选问题
    • 指标和维度
    • 数据安全
    • 产品使用
    • 数据统计差异
    • 如何删除不要的项目?
    • 为何收不到GIO的邮件?
    • 无效指标清理说明
    • 产品维护计划通告
由 GitBook 提供支持
在本页
  • 特性版本适配
  • 旧版全自动浏览事件介绍
  • 新版半自动浏览事件介绍
  • 1. 标记View并设置自定义事件和变量
  • 2. 元素的浏览事件相对于旧版更准
  • 3. 提升用户浏览事件采集的性能
  • 重要配置
  • 标记半自动化采集View元素
  • 自动采集元素内容
  • 设置半自动浏览View的可见比例
  • 常用控件代码示例
  • 1. 追踪实例 testLabel 的元素展示事件
  • 2. 追踪列表元素的展示事件,只追踪第一行
  • 3. 追踪列表元素的展示事件,追踪全部行

这有帮助吗?

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

iOS半自动采集浏览事件

特性版本适配

请升级最新版本的SDK。

无埋点SDK版本

特性

2.8.5

添加配置当 View 可见的比例则自动触发埋点事件

2.8.4

支持自动采集元素内容

2.8.2

支持 imp 半自动埋点

React Native 无埋点 SDK目前不支持配置。

旧版全自动浏览事件介绍

集成无埋点 SDK 后,GIO 使用事件类型 imp(impression)采集用户浏览事件。

它的采集逻辑为 View 采集初始化完毕后在当前页面上可见,将发送 imp 事件。

注:

  1. SDK标记的可见与否是针对于 View 对象的可见,所以对于列表的元素复用 View 对象的情况,不会再次发送 imp 。

  2. 标记的是对象是否可见,没有将View 是否滚动出屏幕再次出现在屏幕上的情况计算在内。一个可见的 View 对象,只会发送一次 imp 事件,滚动出屏幕再次滚动出现,不会重复发送。

  3. View 对象和页面强关联,如果两个页面共享一个 View 对象,会认为是两个元素,发送两次 imp 事件。

综上, 虽然 SDK 能够自动采集每个 View 对象的浏览事件,但是有以下弊端:

  • 在实际用户场景中并不能真正代表用户对于某个 View 的浏览次数

  • 想自定义添加一些自定义变量,无法添加。

新版半自动浏览事件介绍

新版方案:用户标记一个 View 并提供自定义事件和变量,SDK 负责监控,当此 View 对象可见时发送用户配置的自定义事件和变量。

新版用户浏览事件半自动究竟指什么?

  1. 不再全量采集所有 View 的浏览事件,改为只采集用户主动标记 view 。事件类型使用自定义事件类型 cstm (custom),不再使用 imp (impression)。需要用户在代码中埋点并且在官网配置自定义事件和变量。

  2. 半自动指:用户提供 View 的自定义事件和变量内容,SDK 根据当前 view 对象是否在屏幕上可见,自动发送一个自定义事件。即:需要用户标记 View 并且提供自定义事件和变量,SDK 在 View 对象出现在屏幕上时自动发送,不同于 track 接口发送的 cstm 事件,调用即发送。

下面我们将从三个方面介绍此方案。

1. 标记View并设置自定义事件和变量

在旧版无埋点 SDK 中,如果想查看某个广告位的具体某个商品的曝光次数,通过圈选广告位的 view 元素的 imp 事件是无法做到的,仍需要您埋点自定义事件。

在埋点元素曝光时,开发人员需要对 View 在当前屏幕上的可见性做逻辑判断,需要监控 View 对象是否在当前可见或者是否再次出现在屏幕上,有一定代码实施难度。

此方案将监控 View 的可见和埋点的触发时机交给 GIO SDK , 开发者只需要将自定义事件的变量传递给 SDK 即可。

2. 元素的浏览事件相对于旧版更准

对于用户主动标记 imp 采集的元素,相对于旧版本自动采集会更加准确,我们举例以下两个场景来说明。

场景1 : 不同的页面共享同一个元素

底部的导航栏在 Tab 页面中是共享元素,即切换 Tab ,底部的导航栏持续可见,在不同的 Tab 页面中是共享元素。

旧版本:

导航栏的 imp 事件会分别在对应的四个页面中发送,切换 Tab 页面时虽然底部导航栏持续可见,但是会重复发送。

为什么旧版本会这么统计呢? 因为 imp 事件的归因和 page 事件强关联,切换了页面,就认为导航栏是这个页面中的元素,不支持多个页面共享元素的情况。

新版本:

在用户标记导航栏需要采集后,无论切换 ab 多少次,我们只会在用户第一次可见导航栏,发一次元素浏览事件。

可以认为新版本方案只关心当前元素对于用户是否可见,和页面访问事件 page 无关联。更贴近实际场景,相对旧版本更准。​

场景2 : 列表元素的展现统计

旧版本:

GIO 推荐广告位在 ScrollView 的最底部,需要用户滑动才能看到,但是页面初始化的时候绘制,只是当前屏幕不可见。

旧版本中只会发送一次 imp 事件,无论随着用户的滑动元素是否再次可见,只有在页面初始化的时候发送此元素的 imp 事件。

新版本:

随着用户的滑动手势,元素进入屏幕则触发自动埋点事件,滑动出屏幕后,再滚动回来 View 再次可见依然会发送自动埋点事件。

即为元素对于用户可见几次则发送几次事件。

新版本浏览事件采集的列表,内部的元素展现次数的统计更加准确,更符合业务场景。

3. 提升用户浏览事件采集的性能

旧版本中,无埋点 SDK 将自动采集所有 View 的信息,最终分析时不会分析所有 APP 中的 View,在APP的性能、用户流量上都是一种浪费。

新版本中,SDK 非全量采集所有列表中的元素,只采集用户配置的元素,性能有较大提升。

重要配置

注意事项

  • 注意参数是否合法,和埋点 API 一样,eventID 和事件级变量 JSONObject 都有参数限制要求。

  • 在元素展示前调用GIO API,GIO 负责监听元素展示并触发事件,半自动化 IMP 方案 SDK 上传的数据类型为 cstm ,和自定义事件是同种类型,所以需要您在官网新建对应的事件类型和变量,并且强烈建议使用数据校验工具验证埋点事件。

  • 触发 SDK 自动采集时机: 元素从当前屏幕上不可见到可见。

  • 对于被追踪元素上方有其它元素遮挡的情况 ,GrowingIO 仍可能发送该元素的展示事件 (适配这种case会消耗巨大性能,暂时不兼容)。

标记半自动化采集View元素

growingImpTrack

参数

是否必填

说明

eventId

是

NSString: 自定义事件标识符;

非空,长度<=50;

SDK 2.4.0以下版本不支持中文,仅支持 0 到 9、a 到 z 以及下划线,并且不能以数字开头

variable

否

NSDictionary: 事件发生时所伴随的维度(变量)信息。

非空,长度<=100(eventLevelVariable.length()<=100);

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

key 长度<=50,value 长度<=1000,值不能为空串,也就是""

growingStopImpTrack

已经标记的View对象,通知GIO停止标记跟踪View的可见性。通常应用于列表中的重用元素。

例如您只想追踪列表中的第一行元素的展示,但当第四行出现时重用了第一行的元素,此时您可调用此函数避免事件触发。

自动采集元素内容

iOS 无埋点 SDK 2.8.4 及以上支持。

设置半自动浏览View的可见比例

iOS 无埋点 SDK 2.8.5 及以上支持。

对单独元素设置可见比例

@interface UIView(GrowingImpression)

// 设置该节点被认定为可见的比例
// 节点在屏幕中展示的面积 >= 节点面积 * scale 则判定该节点可见,反之不可见
// scale 比例因子,范围[0-1];默认值0,这里0的意义可以理解为无限接近于0
// 如需要指定scale 请在API growingImpTrack 调用之前调用
@property (nonatomic, assign) double growingImpScale;

@end

全局设置可见比例

@interface Growing(AutoTrackKit)
/**
 imp半自动打点scale全局配置项
 设置全局节点被认定为可见的比例
 设置后对所有节点的imp scale生效,但优先级低于单独对节点设置imp scale
 节点在屏幕中展示的面积 >= 节点面积 * scale 则判定该节点可见,反之不可见
 !!! 请在main函数之前调用 !!!
 @param scale 比例因子,范围[0-1];默认值为0,这里0的意义可理解为无限接近于0
*/
+ (void)setGlobalImpScale:(double)scale;
+ (double)globalImpScale;

代码示例

// 对单独元素设置可见比例
// 比例为0.5
UILabel *label = [[UILable alloc] init];label.growingImpScale = 0.5;
// 全局设置可见比例
// 全局比例为0.5
int main(int argc, char * argv[]) {
    @autoreleasepool {
        [Growing setGlobalImpScale:0.5];
        return UIApplicationMain(argc, argv, nil, NSStringFromClass([AppDelegate class]));
    }
}

常用控件代码示例

1. 追踪实例 testLabel 的元素展示事件

- (void)viewDidLoad {
    [super viewDidLoad];
    self.testLabel = [[UILabel alloc] initWithFrame:CGRectMake(0, 0, 50, 100)];
    self.testLabel.text = @"test";
    [self.testLabel growingImpTrack:@"您的eventId"];
    [self.view addSubview:self.testLabel];
    // Do any additional setup after loading the view.
}

2. 追踪列表元素的展示事件,只追踪第一行

- (UICollectionViewCell *)collectionView:(UICollectionView *)collectionView cellForItemAtIndexPath:(NSIndexPath *)indexPath {
    TestCell *cell = [collectionView dequeueReusableCellWithReuseIdentifier:@"testCell" forIndexPath:indexPath];

    if (indexPath.item == 0) {
        [cell growingImpTrack:@"您的eventId"];
    } else {
        [cell growingStopImpTrack];
    }
    return cell;
}

3. 追踪列表元素的展示事件,追踪全部行

- (UICollectionViewCell *)collectionView:(UICollectionView *)collectionView cellForItemAtIndexPath:(NSIndexPath *)indexPath {
    TestCell *cell = [collectionView dequeueReusableCellWithReuseIdentifier:@"testCell" forIndexPath:indexPath];

    [cell growingImpTrack:@"您的eventId" withVariable:@{由您来指定}];

    return cell;
}
上一页自定义数据上传API下一页iOS SDK升级指导

最后更新于3年前

这有帮助吗?

SDK 将 View 对象在当前屏幕是否可见,是否滚动出屏幕又再次出现纳入采集发送策略,并取消浏览事件与页面的关联。即:共享 View 对象的不同页面不会重复发送,并且 view 对象不在当前屏幕又再次滑入会再次发送。后文详细举例说明,见:。

imp场景1
imp场景2
场景1