运行时API

运行时 API 可对 SDK 进行采集上报数据的控制。

GrowingIO为App提供运行时随意调用的API,使用方法如下:

Java
Kotlin
Java
// 得到 GrowingIO 实例后可以调用其中 API
GrowingIO gio = GrowingIO.getInstance();
gio.setUserId("张溪梦");
Kotlin
val gio = GrowingIO.getInstance()
gio.userId = "张溪梦"

GrowingIO所有API都需要在主线程调用。

基础配置API

API

说明

无埋点SDK版本支持

埋点SDK版本支持

setGeoLocation

设置经纬度,并在 vst 事件中发送,Android SDK 暂时没办法自动获取GPS数据,如果您要采集GPS数据,需要在您的App每次获取完GPS数据之后,通过该API告知 SDK。如果您不设置,我们默认使用用户IPLocation。

ALL

ALL

clearGeoLocation

清空经纬度

ALL

ALL

setViewInfo

配置 view 的 Tag,标记 View ,并在 GrowingIO 相关事件中发送 ,内容对应 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

-

### 数据采集API

API

说明

无埋点SDK版本支持

埋点SDK版本支持

isDeeplinkUrl

校验链接URI是否满足GIO的格式,如"gio.ren"或".datayi.cn"结尾等

>=2.8.11

-

doDeeplinkByUrl

true 表示是GIO的deeplink链接,进行下一步判断, false 表示非GIO相关链接.参数callback不填则默认使用全局初始化时设置的callback

>=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. 必须在该ActivityonCreate方法中完成该属性的赋值操作。

  2. 页面别名只能设置为字母、数字和下划线的组合。

  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

-

setAndroidIdEnable

设置为 false 则 SDK 不采集 androidId ,适用于海外应用市场上架的应用。

>=2.7.8

-

setGoogleAdIdEnable

设置为 false 则 SDK 不采集 GoogleAdId ,适用于海外应用市场上架的应用。

>=2.7.8

-

setOAIDEnable

国内移动安全联盟MSA 联合各大手机制造商推出了 OAID , 作为唯一广告标识符。Android 2.8.5 新增。

>=2.8.5

-

bridgeForWebView

提供原生的 WebView bridge供hybrid调用, 支持hybrid事件发送

-

>=2.9.0

bridgeForX5WebView

提供腾讯X5内核的WebView bridge供hybrid调用, 支持hybrid事件发送

-

>=2.9.0