帮助文档(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
  • API概览
  • 接口定义
  • 1. 设置登录用户ID(setUserId)
  • 2. 清除登录用户ID(clearUserId)
  • 3. 设置登录用户变量(setPeopleVariable)
  • 4. 设置访问用户变量(setVisitor)
  • 5. 设置页面级变量(setPageVariable)
  • 6. 设置转化变量(setEvar)
  • 7. 设置自定义事件和事件级变量(track)

Was this helpful?

  1. 开发者文档
  2. SDK集成
  3. 原生Android SDK
  4. Android SDK API

自定义数据上传API

自定义数据常用作打通业务逻辑

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

GrowingIO所有运行时API需要在主线程调用。

API概览

// 发送自定义事件 API
GrowingIO gio = GrowingIO.getInstance();
gio.track(String eventId);
gio.track(String eventId, JSONObject eventLevelVariables);
​
// 发送页面级变量 API
GrowingIO gio = GrowingIO.getInstance();
gio.setPageVariable(Activity activity, String key, String value);
gio.setPageVariable(Activity activity, String key, Number value);
gio.setPageVariable(Activity activity, String key, Boolean value);
gio.setPageVariable(Activity activity, JSONObject pageLevelVariables);
​
gio.setPageVariable(Fragment fragment, String key, String value);
gio.setPageVariable(Fragment fragment, String key, Number value);
gio.setPageVariable(Fragment fragment, String key, Boolean value);
gio.setPageVariable(Fragment fragment, JSONObject pageLevelVariables);
​
// 发送转化变量 API
GrowingIO gio = GrowingIO.getInstance();
gio.setEvar(String key, String value);
gio.setEvar(String key, Number value);
gio.setEvar(String key, Boolean value);
gio.setEvar(JSONObject conversionVariables);
​
// 发送用户变量 API
GrowingIO gio = GrowingIO.getInstance();
gio.setPeopleVariable(String key, String value);
gio.setPeopleVariable(String key, Number value);
gio.setPeopleVariable(String key, Boolean value);
gio.setPeopleVariable(JSONObject peopleVariables);
​
// 设置登录用户ID API
GrowingIO.getInstance().setUserId(String userId);
​
// 清除登录用户ID API
GrowingIO.getInstance().clearUserId();
​
// 设置访问用户变量,或者设置 A/B 测试标签
GrowingIO.getInstance().setVisitor(JSONObject visitorVariable);

接口定义

1. 设置登录用户ID(setUserId)

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

//setuserid API原型
GrowingIO.getInstance().setUserId(String userId);

参数说明

参数名称

类型

是否必须

说明

userId

string

是

登录用户Id,长度限制小于等于1000;

如果值为空则清空了登录用户变量,不建议这么用,

请使用 clearUserId 清除登录用户变量。

示例代码

//setUserId API调用示例
GrowingIO.getInstance().setUserId("1234567890");

如果您的App每次用户升级版本时无需重新登录的话,为防止用户本地缓存被清除导致的无法被识别为登录用户,建议在用户每次升级App版本后初次访问时重新调用上述setUserId方法。

2. 清除登录用户ID(clearUserId)

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

示例代码

//clearUserId API原型和调用示例
GrowingIO.getInstance().clearUserId();

3. 设置登录用户变量(setPeopleVariable)

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

// setPeopleVariable API原型
GrowingIO gio = GrowingIO.getInstance();
gio.setPeopleVariable(String key, String value);
gio.setPeopleVariable(String key, Number value);
gio.setPeopleVariable(String key, Boolean value);
gio.setPeopleVariable(JSONObject peopleVariables);

参数名称

类型

是否必须

说明

key

string

否

用户变量的标识符。

限制:非空,长度限制小于等于50。

value

string

否

用户变量的值。

限制:非空,长度限制小于等于1000。

peopleVariables

JSONObject

否

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

限制:非空,长度限制小于等于100(peopleVariables.length()<=100);

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

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

示例代码

// setPeopleVariable API调用示例一
GrowingIO gio = GrowingIO.getInstance();
gio.setPeopleVariable("gender", "male");
// setPeopleVariable API调用示例二
GrowingIO gio = GrowingIO.getInstance();
jsonObject.put("gender", "male");
jsonObject.put("age", "21");
gio.setPeopleVariable(jsonObject);

检验数据发送日志示例:

注意 t 等于ppl字段,表示用户变量发送成功,只需注意 var字段,其它字段无需仔细验证。

{
    "s":"a35872af-13df-4479-90bc-25558d12328e",
    // t 为事件类型, pvar 为发送用户变量事件
    "t":"ppl",
    "tm":1532339208991,
    "d":"com.growingio.android.test",
    "cs1":"GrowingIO",
    // 用户变量
    "var":{
        "gender":"male",
        "age":"21"
    },
    "gesid":311,
    "esid":0
} 

4. 设置访问用户变量(setVisitor)

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

版本支持:>=2.4.0

//setVisitor API原型
GrowingIO.getInstance().setVisitor(JSONObject visitorVar)

参数说明

参数说明

类型

是否必填

说明

visitorVar

JSONObject

是

不可使用嵌套的JSONObject对象,即为JSONObject中不可以放入JSONObject或者JSONArray;

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

示例代码

//setVisitor API调用示例
GrowingIO gio = GrowingIO.getInstance();
jsonObject.put("gender", "male");
jsonObject.put("age", "21");
gio.setVisitor(jsonObject);

检验数据发送日志示例

注意 t 等于vstr字段,表示访问用户变量发送成功,其它字段无需仔细验证。

{
    "s":"d334b4a1-57eb-4bf4-b426-64c1cce5a5c0",
    // t 为事件类型, vstr 为发送访问用户变量事件
    "t":"vstr",
    "tm":1532341259134,
    "d":"com.growingio.android.test",
    "cs1":"GrowingIO",
    //访问用户变量
    "var":{
        "gender":"male",
        "age":"21"
    },
    "gesid":322,
    "esid":0
}

5. 设置页面级变量(setPageVariable)

使用限制:适用于无埋点SDK。

发送页面级别的信息,在添加代码之前必须在打点管理界面上声明页面级变量。

// setPageVariable API原型
GrowingIO gio = GrowingIO.getInstance();
gio.setPageVariable(Activity activity, String key, String value);
gio.setPageVariable(Activity activity, String key, Number value);
gio.setPageVariable(Activity activity, String key, Boolean value);
gio.setPageVariable(Activity activity, JSONObject pageLevelVariables);
​
gio.setPageVariable(Fragment fragment, String key, String value);
gio.setPageVariable(Fragment fragment, String key, Number value);
gio.setPageVariable(Fragment fragment, String key, Boolean value);
gio.setPageVariable(Fragment fragment, JSONObject pageLevelVariables);
​
// SDK 2.6.6 以上支持 androidx, 增加接口:
gio.setPageVariableX(Fragment fragment, String key, String value);
gio.setPageVariableX(Fragment fragment, String key, Number value);
gio.setPageVariableX(Fragment fragment, String key, Boolean value);
gio.setPageVariableX(Fragment fragment, JSONObject pageLevelVariables);

参数选择是当前被识别的页面对象,可能是 Activity 或 Fragment,可以使用 Mobile Debugger 或debug日志确认。

参数名称

类型

是否必须

说明

activity

Activity

是

当前页面访问事件(page事件)发送的页面

fragment

Fragment

是

当前页面访问事件(page事件)发送的页面

key

string

否

页面级变量的标识符

限制:非空,长度限制小于等于50

value

string

否

页面级变量的值

限制:非空,长度限制小于等于1000

pageLevelvariables

JSONObject

否

页面级变的信息

限制:非null,长度限制小于等于100(pageLevelVariable.length()<=100);

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

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

SDK 2.4.0 以上能够在 Log 日志中查看对应报错,之下版本无提示信息。调用后请关注日志,查看数据发送是否成功,事件类型t为pvar。

SDK 2.6.7 将页面级变量pageLevelVariables与该页面对象绑定,设置不同的值将会合并,如果想要清空,需要传 null 。

示例代码

// setPageVariable API调用示例
GrowingIO gio = GrowingIO.getInstance();
JSONObject jsonObject = new JSONObject();
jsonObject.put("gender", "male");
jsonObject.put("age", "21");
gio.setPageVariable(myActivity, jsonObject);

检验数据发送日志示例:

注意 t 等于pvar字段,表示自定义事件发送成功,只需注意 var字段,其它字段无需仔细验证。

{
    "s":"0a7e8150-c409-45d4-96ed-b5781fe652cb",
    // t 为事件类型,pvar 页面级事件
    "t":"pvar",
    "tm":1532337448255,
    "d":"com.growingio.android.test",
    "cs1":"GrowingIO",
    "p":"SetUserIdFragment1",
    "ptm":1532337448255,
    //页面级变量
    "var":{
        "gender":"male",
        "age":"21"
    },
    "gesid":292,
    "esid":0
}

6. 设置转化变量(setEvar)

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

// setEvar API原型
GrowingIO gio = GrowingIO.getInstance();
gio.setEvar(String key, String value);
gio.setEvar(String key, Number value);
gio.setEvar(String key, Boolean value);
gio.setEvar(JSONObject conversionVariables);

参数说明

参数名称

类型

是否必须

说明

key

string

否

转化变量的标识符

限制:非空,长度限制小于等于50

value

string

否

转化变量的值

限制:非空,长度限制小于等于1000

conversionVariables

JSONObject

否

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

限制:非空,长度限制小于等于100(conversionVariables.length()<=100);

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

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

// setEvar API调用示例一
GrowingIO gio = GrowingIO.getInstance();
gio.setEvar("campaignId", "1234567890");
// setEvar API调用示例二
GrowingIO gio = GrowingIO.getInstance();
JSONObject jsonObject = new JSONObject();
jsonObject.put("campaignId", "1234567890");
jsonObject.put("campaignOwner", "Li Si");
gio.setEvar(jsonObject);

检验数据发送日志示例:

注意 t 等于evar字段,表示转化事件发送成功,只需注意 var字段,其它字段无需仔细验证。

{
    "s":"e1c48845-dd60-4cf2-b1a5-a8e529d2188d",
    // t 为事件类型, evar 为转化事件
    "t":"evar",
    "tm":1532338526083,
    "d":"com.growingio.android.test",
    "cs1":"GrowingIO",
    // 转化变量
    "var":{
        "evarTest":111,
        "campaignId":"1234567890",
        "campaignOwner":"Li Si"
    },
    "gesid":300,
    "esid":22
}

7. 设置自定义事件和事件级变量(track)

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

// track API原型
GrowingIO gio = GrowingIO.getInstance();
gio.track(String eventId);
gio.track(String eventId, JSONObject eventLevelVariables);

参数名称

类型

是否必须

说明

eventId

string

是

事件标识符。

eventLevelVariable

JSONObject

否

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

限制:非空,键值对个数限制小于等于100(eventLevelVariable.length()<=100);eventLevelVariable内部不允许含有JSONObject或者JSONArray;

key长度限制小于等于50,value长度限制小于等于200,值不能为空字符串,也就是“”。

SDK 2.4.0以上能够在Log日志中查看对应报错,之下版本无提示信息。调用后请关注日志,查看数据发送是否成功,事件类型t为cstm。

示例代码

// track API调用示例一
GrowingIO gio = GrowingIO.getInstance();
gio.track("registerSuccess");
// track API调用示例二
GrowingIO gio = GrowingIO.getInstance();
JSONObject jsonObject = new JSONObject();
jsonObject.put("gender", "male");
jsonObject.put("age", "21");
gio.track("registerSuccess", jsonObject);

检验数据发送日志示例

注意 t 等于 cstm 字段,表示自定义事件发送成功,只需注意 var、n 字段,其它字段无需仔细验证。

//展示 track 接口调用示例三日志内容
{
    "s":"31e3aa14-5241-490c-821c-a741e9bf0f87",
    // t 为事件类型, track 接口调用发送的事件类型为 cstm
    "t":"cstm",
    "tm":1532085495251,
    "d":"com.growingio.android.test",
    // n 为 eventId 参数携带的值
    "n":"loanAmount",
    // var 为 eventLevelVariable 参数携带的值
    "var":{
        "gender":"male",
        "age":"21"
    },
    "ptm":0,
    "gesid":18,
    "esid":0,
    "u":"b6247b01-a31a-3bc6-a391-4c456888c1ee"
}
Previous运行时APINextAndroid半自动采集浏览事件

Last updated 5 years ago

Was this helpful?

推荐您使用,我们为您列举了应用场景和验证示例,请参考:>。

注意确认当前页面,通过圈选方式最快定位当前页面,在当前页面埋点最稳定可靠,如果页面未确认,可能在Activity和Fragment嵌套的场景下埋点失败。如未能成功发送自定义页面变量,请参考”Android SDK集成FAQ > “

推荐您使用,我们为您列举了应用场景和验证示例,请参考:>。

推荐您使用,我们为您列举了应用场景和验证示例,请参考:>。

推荐您使用,我们为您列举了应用场景和验证示例,请参考:>。

Mobile Debugger
验证埋点事件
ppl(用户变量)事件
Mobile Debugger
验证埋点事件
pvar(页面级变量)事件
Mobile Debugger
验证埋点事件
evar(转化变量)事件
Mobile Debugger
验证埋点事件
cstm(事件以及关联的事件级变量)事件
无埋点API使用问题