Hybrid JS SDK

无埋点 SDK 自动注入此 SDK,无需集成。采集App内嵌H5的用户行为数据。

简介

集成Android 无埋点SDKiOS 无埋点SDK 后,原生无埋点SDK会自动在 WebView 加载的页面中注入 Hybrid JS SDK,不需要手动集成此 SDK。

Hybrid JS SDK 负责采集用户在 App 中内嵌 H5 页面中的用户行为数据。

如果内嵌 H5 页面只在移动端的 App 中投放,可直接使用移动端圈选查看移动端采集的数据。

如果内嵌 H5 页面不仅在移动端投放,还可在 Web 端浏览,需要另外集成 Web JS SDK 并使用 Web 圈选来查看Web端采集的数据。

如果同时存在 Web JS SDK 和 Hybrid JS SDK , 埋点调用代码只用写一遍,数据会自动发两份。

重要配置项

1. 在 App 中禁用 Web JS SDK

如果 H5 页面已经集成过 Web JS SDK,但不想在 App 中进行 Web JS SDK 的采集时,请将 window.webViewRequestSend的值为 false。

2. 在 App 中禁用 Hybrid JS SDK

如果不想在 App 中进行 Hybrid JS SDK 的采集,iOS SDK 可以配置 enableAllWebViews(全局)为 NO,或对于单个 webView,配置webView.growingAttributesDonotTrack为 YES;Android SDK 可以配置 setTrackWebView(全局)为 false,或对于单个 webView,GrowingIO.ignoredView(webView)为 true。

3. Touch 点击事件采集

Hybrid 支持基于 touch 事件实现的点击数据采集, 如果用户使用了类似 Zepto 等三方框架,需要采集 tap 事件时,请在初始化时配置window.hybridEnableTouch 的值为 true。

4. 埋点时机配置项

为了不影响用户 H5 页面的加载速度,我们优先加载用户的页面再注入Hybrid JS SDK ,保证用户页面先加载。这样就引出一个问题:用户的界面在加载过程中或者加载完成后立刻调用埋点方法会出现gio未定义,因为这时候Hybrid JS SDK 可能还没有完全注入成功。

如果用户需要在hybrid界面加载过程中或者加载完成后立刻调用埋点方法,需要在该H5页面的script标签最前端添加如下代码

(function(){
    window["gio"] = window["gio"] || function(){
        (window["gio"].q = window["gio"].q || []).push(arguments);
    }
    gio('init', 'fakeAccountID');
})()

自定义数据上传

SDK 版本支持:无埋点SDK>=2.2

在H5页面与原生应用无法进行联调的情况下,可手动在head标签中加入以下代码,上线时删除即可

<script

src="https://assets.giocdn.com/sdk/hybrid/2.0/gio_hybrid.min.js" >

</script>

原生无埋点 SDK 2.2 及以上支持。

1. 设置埋点事件和事件级变量

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

参数名称

参数类型

是否必须

说明

eventId

String

事件标识符

eventLevelVariables

JSON Object

包含事件级变量的JSON对象,暨事件发生时所伴随的维度信息。

// track API原型
gio('track', eventId, eventLevelVariables);
// track API调用示例一
gio('track', 'registerSuccess');
// track API调用示例二
gio('track', 'registerSuccess', {'gender':'male', 'age':21});

2. 设置页面级变量

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

参数名称

参数类型

是否必须

说明

key

String

页面级变量的标识符

value

String

页面级变量的值

pageLevelVariables

JSON Object

包含页面级变量的JSON对象,暨页面级别的信息

// page.set API原型
gio('page.set', key, value);gio('page.set', pageLevelVariables);
// page.set API调用示例一
gio('page.set', {'pageName': 'Home Page', 'author': 'Zhang San'});
// page.set API调用示例二
gio('page.set', 'author', 'Zhang San');

3. 设置转化变量

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

参数名称

参数类型

是否必须

说明

key

String

转化变量的标识符

Value

String

转化变量的值

conversionVariables

JSON Object

包含转化变量的JSON对象

// evar.set API原型
gio('evar.set', key, value);gio('evar.set', conversionVariables);
// evar.set API调用示例一
gio('evar.set', 'campaignId''1234567890');
// evar.set API调用示例二
gio('evar.set', {'campaignId': '1234567890', 'campaignOwner':'lisi'});

4. 设置用户级变量

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

参数名称

参数类型

是否必须

说明

key

String

用户变量的标识符

value

String

用户变量的值

customerVariables

JSON Object

包含用户变量的JSON对象

// people.set API原型
gio('people.set', key, value);gio('people.set', customerVariables);
// people.set API调用示例一
gio('people.set', 'gender', 'male');
//people.set API调用示例二
gio('people.set', {'gender':'male', 'age':'25'});

5. 设置用户登录用户ID

设置用户id 。

参数名称

参数类型

是否必须

说明

customerVariables

String

长度不可以大于1000,并且不可为Null

//调用示例
gio('hybridSetUserId', '1234567890');

6. 清除登录用户ID

//调用示例
gio('hybridClearUserId');

7. 设置访问用户变量

//调用示例
gio('hybridSetVisitor',{'testkey': 'testValue', 'testNumKey': 2333});

最后更新于