运行时API

运行时 API 可对 SDK 进行采集上报数据的控制。
GrowingIO SDK 为App提供了运行时调用的API,使用方法如下:
Java
Kotlin
// 得到 GrowingIO 实例后可以调用其中 API
GrowingIO gio = GrowingIO.getInstance();
gio.setUserId("登录用户ID");
val gio = GrowingIO.getInstance()
gio.userId = "登录用户ID"
GrowingIO SDK 所有 API 都需要在主线程调用。

基础配置API

API
说明
无埋点SDK版本支持
埋点SDK版本支持
setGeoLocation
设置经纬度,并在 vst 事件中发送,Android SDK 默认不获取GPS数据,如果您要采集GPS数据,需要在您的App每次获取完GPS数据之后,调用过该API。经纬度设置为(0,0),视为无效设置
ALL
ALL
clearGeoLocation
清空经纬度
ALL
ALL
setViewInfo
配置 view 的 Tag,标记 View ,并在 SDK 相关事件中发送 ,内容对应 xPath 中的 obj
例如:在商品ListView添加购物车的场景中,每个商品item都含有一个加入购物车按钮,这时无法区分商品item与将它加入购物车按钮的一对一关系,此时调用此方法增加描述。
注意:适用于原有v字段含义不大,只关注描述的场景,使用此接口后v字段将不采集
ALL
-
setViewContent
配置 view 的 Tag,标记 View ,并在 GrowingIO相关事件中发送,内容对应 xPath 中的 v
SDK默认不会采集ImageView的内容,为了能对不同的图片元素(ImageView)区分统计,需要对每个具有分析意义的图片元素(ImageView)添加描述。
ALL
-
setViewID
设置 View id ,配置之后对应 xPath 中的 view id,SDK将会使用Layout文件中的ID来识别一个元素。
如果部分元素在Layout文件中没有ID,建议在Layout文件中添加。
对于动态生成的元素,可以使用如下方法对它设置唯一的ID。
当您的应用界面改版时,可能会导致无法准确地统计已经圈选的元素。因此,对于应用中的主要流程涉及到的界面元素,建议您为它们设置固定的唯一ID,以保证数据的一致性。
  • ID 只能设置为字母、数字和下划线的组合
  • 如果在ViewGroup上设置ID的话,SDK会忽略他所有子元素的默认ID(就是写在xml文件里的)只会使用GrowingIO.setViewID设置的ID。
  • 对于已经集成过旧版SDK并圈选过的应用,对某个元素设置ID后再圈选它,指标数值会从零开始计算,类似初次集成SDK后发版的效果,但不影响之前圈选的其它指标数据。如果不希望出现这种情况,请不要使用这个方法
ALL
-
setChannel
  • <2.6.5 版本: 先设置渠道信息,再发送数据 能够保证所有数据都一定会带上渠道信息。
  • >=2.6.5 版本: 保留原有设置渠道信息的方法,新增在运行时设置渠道信息。新增的接口无法保证所有数据都一定会带上渠道信息(虽然我们会通过重发机制进行保证,但是无法做到100%)。
ALL
ALL

数据采集API

API
说明
无埋点SDK版本支持
埋点SDK版本支持
isDeeplinkUrl
校验链接URI是否满足GIO的格式,如"gio.ren"或".datayi.cn"结尾等
>=2.8.11
>=2.8.11
doDeeplinkByUrl
true 表示是GIO的deeplink链接,进行下一步判断, false 表示非GIO相关链接.参数callback不填则默认使用全局初始化时设置的callback
>=2.8.11
>=2.8.11
disableDataCollect
遵守欧洲联盟出台的通用数据保护条例,用户不授权,不采集用户数据
>=2.3.2
ALL
enableDataCollect
遵守欧洲联盟出台的通用数据保护条例,用户授权,采集用户数据
>=2.3.2
ALL
disable
GrowingIO停止采集
ALL
ALL
resume
GrowingIO恢复采集
ALL
ALL
stop
GrowingIO停止采集,可以不在主线程调用
ALL
ALL
setThrottle
是否节流发送(节流发送时imp不发送),内部实际调用 Configuration 中的同名方法,所以在初始化时候配置和运行时动态配置,效果一样。
ALL
-
setImp
imp事件开关,true 为打开
ALL
-
disableImpression
不发送imp
ALL
-
ignoredView
忽略配置的 View ,不采集用户数据。
如果您需要忽略某些特殊内容,比如倒计时元素或涉及隐私的内容,可以使用此接口。
ALL
-
ignoreFragment
不采集配置的 Fragment 页面浏览事件(page),不将Fragment视作一个页面,可以理解成当作为一个可点击的view。自动采集用户行为事件(clck、chng)和元素展示事件(imp)。
ALL
-
ignoreFragmentX
支持 AndroidX , 功能同 ignoreFragment。
>=2.6.6
-
ignoreViewImp
忽略配置的 View ,不采集用户元素浏览数据。
如果您需要忽略某些大量的 数据,比如弹幕,可以使用此接口。
>=2.6.7
-
setPageName
设置页面别名,有些时候,对于完成某个功能的页面,统计时可能需要进一步细分。 比如,对于展示商品列表的页面,需要区分衣物类商品,以及食品类商品的两种列表的访问量。
注意
  1. 1.
    必须在该ActivityonCreate方法中完成该属性的赋值操作。
  2. 2.
    页面别名只能设置为字母、数字和下划线的组合。
  3. 3.
    为查看数据方便,请尽量对iOS和安卓的同功能页面取不同的名称。
ALL
-
setPageNameX
支持 AndroidX , 功能同 setPageName。
>=2.6.6
-
getSessionId
得到 session id
ALL
ALL
getDeviceId
获取设备id,对应数据采集的u字段,又称为匿名用户id,用来定义一台设备,SDK 自动生成。
ALL
ALL
​trackBanner
设置所有广告图对应的广告内容描述,内容描述需要跟广告的顺序相同。
ALL
-
trackEditText
SDK 默认不采集用户输入框的内容,设置以后,采集除了密码以外的输入框文本内容。​​
当这个输入框失去焦点(包括应用退到后台),且输入框内容跟获取焦点前相比发生变化时,输入框内文字会被发送回GrowingIO。
注意:对于密码输入框,即便标记为需要采集,SDK也会忽略,不采集它的数据。
ALL
-
trackFragment
如果APP初始化时候,没有设置 trackAllFragment 即不采集全部 Fragment,可以选择性采集指定 Fragment,设置之后 sdk 将监听 Fragment 的各个生命周期, 采集相关用户行为数据。
请在 new Fragment 的时候调用此方法。
ALL
-
trackFragmentX
支持 AndroidX , 功能同 trackFragment。
请在 new Fragment 的时候调用此方法。
>=2.6.6
-
trackWebView
采集 WebView 事件,默认采集,您可以在不全量采集WebView的时候,定制采集某个WebView
>=2.8.22
-
trackX5WebView
采集 X5WebView 事件,默认采集
<2.6.0
-
setTabName
如果您有某些View动态添加到ViewTree中并且在父容器中的位置不固定(例如常见的多Fragment实现的Tab切换),请给每个View设置ID来辅助统计
ALL
-
setImeiEnable
设置为 false 则 SDK 不采集 imei,适用于海外应用市场上架的应用。
>=2.7.8
>=2.7.8
setAndroidIdEnable
设置为 false 则 SDK 不采集 androidId ,适用于海外应用市场上架的应用。
>=2.7.8
>=2.7.8
setGoogleAdIdEnable
设置为 false 则 SDK 不采集 GoogleAdId ,适用于海外应用市场上架的应用。
>=2.7.8
>=2.7.8
setOAIDEnable
国内移动安全联盟MSA 联合各大手机制造商推出了 OAID , 作为唯一广告标识符。Android 2.8.5 新增。
>=2.8.5
>=2.8.5
bridgeForWebView
提供原生的 WebView bridge供hybrid调用, 支持hybrid事件发送
-
>=2.9.0
bridgeForX5WebView
提供腾讯X5内核的WebView bridge供hybrid调用, 支持hybrid事件发送
-
>=2.9.0
bridgeForUcWebView
提供UC内核的WebView bridge供hybrid调用, 支持hybrid事件发送
>=2.9.13
>=2.9.13