Skip to main content

初始化配置

配置一览表

下表中列出了所有WebJS SDK的配置项,请按需设置。如您不确定是否需要,请咨询我们。

提示:所有的配置项均为非必填。
字段名参数取值默认值说明
appIdstring-指定打通的小程序appId
cookieDomainstring当前站点的一级域名自定义cookie存储的域
dataCollectbooleantrue是否开启数据采集
debugbooleanfalse是否开启调试模式
forceLoginbooleanfalse是否开启强制登录
idMappingbooleanfalse是否开启多用户身份上报
hashtagbooleanfalse是否开启hash解析
ignoreFieldsstring[][]上报忽略字段
impressionScalenumber0曝光比例(小数)
originalSourcebooleantrue访问事件是否使用原始进入数据
packageNamestring-指定打通的移动端包名
platform取值见表Web平台类型
requestTimeoutnumber5000请求超时时长(毫秒)
sendTypestringbeacon数据上报优先方式
serverUrlstringhttps://napi.growingio.com数据上报的服务端地址
storageTypecookie / localStoragecookieSDK信息的持久化存储的类型
trackBotbooleantrue是否采集爬虫环境数据
trackPagebooleantrue是否自动采集页面访问事件
versionstring1.0.0应用版本号

配置项详解

appId

当您的站点是作为一个H5内嵌在小程序中时,默认webview环境是互相隔离的。如果您想让H5页面作为小程序的一部分,即打通用户访问信息时,需要在配置项中指定打通的小程序appId供SDK判断切换模式。同时,您还需要确保集成了 gioEmbeddedAdapter 插件。具体使用方式请参考文档

cookieDomain

默认情况下,SDK的用户信息(deviceId、userId、sessionId等)都是存储在您站点的主域名下,子域名都集成SDK时会共享用户信息。但如果您需要进行区分,配置此项并指定为当前的子域名即可区分用户信息进行数据隔离。

例:您有a.growingio.comb.growingio.com两个或多个子域名,通常情况下都集成SDK访问时会共享用户信息,即视为同一个用户。如果您希望进行区分和数据隔离,指定cookieDomain为各自的完整子域名即可。

gdp('init', accountId, datasourceId, {
cookieDomain: 'test.growingio.com',
...其他配置项,
});

注意:使用多实例能力时,仅主实例设值生效,子实例设值无效且与主实例表现一致。

dataCollect

默认情况下,数据采集开关默认开启。如果您需要初始化时暂时关闭数据采集(例如隐私协议的场景),可以通过指定 dataCollect: false 关闭。 需要开启数据采集时再通过调用动态修改配置接口来修改它。参考文档

初始化关闭数据采集后,至您打开数据采集之前都不会采集数据和上报。

gdp('init', accountId, datasourceId, {
dataCollect: false,
...其他配置项,
});

隐私合规相关内容(隐私协议的实现)请参考文档

debug

在开发时设置 debug: true,打开开发者工具控制台,即可看到实时采集的数据。注意正式上线时关闭它,尤其是开启了数据加密时。

gdp('init', accountId, datasourceId, {
debug: true,
...其他配置项,
});

您也可以通过调用动态修改配置接口来修改它。参考文档

注意:使用多实例能力时,仅主实例设值生效,子实例设值无效且与主实例表现一致。

forceLogin

默认情况下,SDK 会自动生成访问用户 ID 来标识访问用户。如您是在微信公众号H5中集成且需要使用 openId 或 unionId 标识访问用户,可以通过指定 forceLogin: true 来打开强制登录模式。

gdp('init', accountId, dataSourceId, appId, {
forceLogin: true,
...其他配置项,
});

强制登录模式适用于打开站点就在公众号H5中调用网页授权 之后获取 openId 或 unionId 的微信公众号H5或内嵌页。 开启此模式并调用 identity 上报 openId 或 unionId,会将上报的 Id 作为访问用户 ID,有助于访问用户数据关联性分析。

设置forceLogintrue后,SDK 会暂停上报数据,待调用网页授权后获取 openId 或 unionId,调用 identify 方法后开始数据上报。调用 identify 会替换事件数据的 deviceId 为设定值(一般是 openId 或 unionId),包括调用identify之前触发的事件。

gdp('identify', openId / unionId);

注意:
1、非微信公众号H5的站点慎用,可能会导致你的站点没有数据上报。
2、使用多实例能力时,仅主实例设值生效,子实例设值无效且与主实例表现一致。当且仅当主实例调用 identify 后,所有实例才会开始发数。

idMapping

多用户身份上报,是否开启多用户身份上报,默认不开启。需要上报 userkey 时开启,开启后,调用设置登录用户ID接口时,设置 userKey,服务端调用用户身份融合API时,可将不同的登录用户ID识别为同一用户。开启多用户身份上报后,需要在设置登录用户ID时设置userKey。参考文档

gdp('init', accountId, datasourceId, {
idMapping: true,
...其他配置项,
});

hashtag

GrowingIO 默认不会把hash识别成页面URL的一部分。对于使用hash进行页面转跳的单页面网站应用来说,可以启用hashtag作为标识页面的一部分。

gdp('init', accountId, datasourceId, {
hashtag: true,
...其他配置项,
});

注意:使用多实例能力时,仅主实例设值生效,子实例设值无效且与主实例表现一致。

ignoreFields

默认情况下,SDK会上报设备的相关信息。如果您不需要这些数据,可以通过指定 ignoreFields: [xxx,xxx] 来忽略指定字段的上报。 您可以指定一项或多项字段,但均需为数组格式进行设置。支持字段如下:

screenHeight      屏幕高度
screenWidth 屏幕宽度
gdp('init', accountId, datasourceId, {
ignoreFields: ['screenHeight', 'screenWidth'],
...其他配置项,
});

impressionScale

设置曝光内容的曝光比例,与曝光插件结合使用。曝光比例是指当一个需要曝光的元素出现在屏幕可见范围的部分占据自身尺寸的比例。值为 0 表示只要出现(哪怕只有一条边)即产生曝光事件,若设为 1 则表示需要整个元素完整地出现在屏幕可见范围才产生曝光事件。配置全局生效,所有的曝光内容都会按此比例执行。使用该配置项时,应当确保已集成半自动埋点浏览插件参考文档

取值范围:0 ~ 1 之间的任意小数;默认 0。

gdp('init', accountId, dataSourceId, appId, {
impressionScale: 0.5, // 元素一半的面积出现在屏幕可见范围中才触发曝光事件
...其他配置项,
});

注意:SDK、插件版本 >= 4.2.3 支持。

originalSource

默认情况下,SDK发送访问事件(VISIT)时,会使用用户初始进入站点时的pathquery信息,以保证能正确上报utm参数等进入信息。但是需要注意的点是,当您的站点不是在用户进入的页面发送访问事件时,会导致VISIT事件和PAGE事件上报的path和query不一致,从而平台的页面跳出率数据会异常。

举例:如果您的站点在进入时关闭了数据采集,用户进入P1页面,操作后跳转进入P2页面,然后您打开了采集开关。此时,发送的VISIT事件中的path和query是P1页面的,而PAGE事件的path和query则是P2页面的,这就会导致跳出率异常。

如果您不是上述场景,维持默认值即可;如果您是上述场景,不考虑utm相关信息丢失的问题且想保证跳出率准确,那么可以关闭该配置项。

gdp('init', accountId, datasourceId, {
originalSource: false,
...其他配置项,
});

注意:使用多实例能力时,仅主实例设值生效,子实例设值无效且与主实例表现一致。

packageName

当您的站点是作为一个H5内嵌在移动端中时,默认webview环境是互相隔离的。如果您想让H5页面作为移动端的一部分,即打通用户访问信息时,需要在配置项中指定打通的移动端packageName供SDK判断切换模式。同时,您还需要确保集成了 gioHybridAdapter 插件。具体使用方式请参考文档

platform

默认情况下,SDK的平台取值为Web,当您的站点为微信内嵌页等其他场景时,可指定平台。

取值对应端取值对应端
WebPC/H5站点baidup百度小程序内嵌页
wxwv微信公众号内嵌页qqQQ小程序内嵌页
Android安卓内嵌页bytedance头条小程序内嵌页
iOSiOS内嵌页kuaishoup快手小程序内嵌页
Minp微信小程序内嵌页jdp京东小程序内嵌页
alip阿里(支付宝)小程序内嵌页
gdp('init', accountId, datasourceId, {
platform: 'wxwv',
...其他配置项,
});

requestTimeout

默认情况下,SDK的上报请求在XHR图片的形式下超时时长为 5000毫秒(即5秒),超时即自动失败。当您需要控制数据上报请求超时时长时可修改。

单位:毫秒;取值范围:整数大于0;默认值5000(即 5 秒)。

gdp('init', accountId, datasourceId, {
requestTimeout: '3000',
...其他配置项,
});

注意:该配置项仅在XHR图片请求时生效,beacon请求无法控制。

sendType

默认情况下,SDK上报数据的请求方式为自动判断,优先使用sendBeacon进行上报;当sendBeacon无法支持或队列繁忙无法继续使用时,会自动降级为XMLHttpRequest异步请求;当XMLHttpRequest遇到问题发送失败时,会自动降级为图片请求继续上报。

如果您的站点对某些请求方式有特殊限制或更愿意使用其中某种方式时,可指定优先上报的方式,失败时依然会按上述优先级自动降级。

配置项取值:beaconxhrimage,默认值beacon

注意:在您修改默认的优先上报方式之前,请在网络上查阅相关资料以充分了解3种发送方式的区别及优缺点。

gdp('init', accountId, datasourceId, {
sendType: 'xhr',
...其他配置项,
});

serverUrl

Saas客户忽略此项配置;OP私有部署客户请填写此项,否则您的服务将无法收获行为数据上报。支持域名和IP地址。

gdp('init', accountId, datasourceId, {
serverUrl: 'your server url',
...其他配置项,
});

您也可以通过调用动态修改配置接口来修改它。参考文档

注意:与3.x版本的SDK不同的是,您需要填写携带协议头的完整服务地址。

storageType

默认情况下,SDK使用 Cookie 来持久性地存储访问用户Id、SessionId等信息。但有的站点可能有较高的安全设置禁止使用 Cookie 或当前环境不支持 Cookie 时,可指定存储类型为 localStorage

gdp('init', accountId, datasourceId, {
storageType: 'localStorage',
...其他配置项,
});

注意:使用多实例能力时,仅主实例设值生效,子实例设值无效且与主实例表现一致。

trackBot

默认情况下,SDK会采集支持JavaScript的爬虫访问数据,包括会话信息和页面访问信息,但是不会收集页面的元素数据。你可以通过浏览器维度分辨出有多少是爬虫带来的数据,有多少是正常用户访问的数据。如果你希望不采集爬虫的数据,可关闭该配置项。

gdp('init', accountId, datasourceId, {
trackBot: false,
...其他配置项,
});

trackPage

默认情况下,SDK会采集页面访问事件,包括页面跳转、查询参数变更、hash变更等场景。可以在平台上查看到页面访问时长,页面跳出率等分析数据。如果您确认不需要采集,或配合设置页面属性等特殊场景时可关闭该配置项。

gdp('init', accountId, datasourceId, {
trackPage: false,
...其他配置项,
});

注意:关闭该配置项,会导致页面访问时长,页面跳出率等与页面相关的分析数据异常,请充分了解影响后操作。

version

该字段的含义为当前客户站点的版本号,建议填写,可用于分析不同版本之间数据的对比。如不填写,默认值则为1.0.0。

gdp('init', accountId, datasourceId, {
version: 'your website version',
...其他配置项,
});