Skip to main content

小程序内嵌页打通

简介(gioEmbeddedAdapter)

当您的H5页面作为小程序内嵌页使用,且有需要打通用户信息,将H5访问视为小程序访问的一部分,合并采集数据至小程序项目分析时使用的插件。

打通逻辑(规则)

为方便描述,下文中来自小程序SDKgetGioInfo获取的URL参数(参数详情参考文档)称 小程序参数;WebJS SDK初始化配置的参数 称 H5参数

H5参数的appIdaccountId分别与小程序参数的值(小程序参数中称为gioappidgioprojectid)对应一致,即视为打通数据。

集成

全量集成SDK时无需再次集成此插件,已内置小程序内嵌页打通功能,直接进行第3步修改初始化代码即可。

1、引入

CDN集成引入

<script src="https://assets.giocdn.com/sdk/webjs/plugins/gioEmbeddedAdapter.js"></script>

提示: 上述地址中的SDK插件默认使用umd格式进行打包,若您的站点需要使用esm格式的SDK插件;或者如果您希望不受 CDN(内容分发网络)影响,请下载至本地集成,并修改引用为您本地项目的相对地址。

WebJS SDK 插件下载:https://github.com/growingio/growingio-sdk-webjs-autotracker/releases

注意github上的SDK产物为了方便模块化开发,默认是esm格式,如需引用umd格式的SDK,请到包内名为umd的文件内查找引用。

npm集成引入

import gioEmbeddedAdapter from "gio-webjs-sdk/plugins/gioEmbeddedAdapter"

2、注册

gdp('registerPlugins', [gioEmbeddedAdapter]);
gdp('init', xxxx);

3、修改初始化代码

在init方法中传入主体小程序的 accountIdappId 字段

gdp('init', 'your miniprogram accountId', 'your dataSourceId', {
appId: 'your miniprogram appId',
serverUrl: 'your server url',
version: 'your website version'
});

打通影响

1、H5内嵌页中的 setUserId、clearUserId 方法调用将无效,只能使用从小程序继承来的登录用户ID。

2、H5内嵌页上报事件字段值的变化如下:

deviceId     ->   小程序的 deviceId
sessionId -> 小程序的 sessionId
userId -> 小程序的 userId
userKey -> 小程序的 userKey
dataSourceId -> 小程序的 dataSourceId
platform -> 小程序的 platform
domain -> 小程序的 appId

除了以上字段,如果小程序SDK初始化时设置了 extraParams 参考文档 ,其中的参数也会在H5内嵌页事件中进行上报。

注意

1、使用时确保相同 appId 的主体小程序在 webviewsrc 中已拼接 getGioInfo 的地址参数。参考文档

2、打通时小程序参数会携带小程序是否采集数据的状态。因此小程序的数据采集开关也能 一次性 地控制H5的数据上报。

3、数据打通后,WebJS SDK会自动无感知地删除地址参数中携带的Gio参数,如果您需要在H5页面中获取Gio参数,请在WebJS SDK初始化之前或从cookie中获取。

4、由于微信小程序中的webview与微信内浏览器共用存储,因此如果您的H5站点需要同时允许在小程序内嵌和微信浏览器中打开时,注意判断当前环境以决定是否注册本插件。在小程序中注册打通插件,在浏览器环境下不要注册插件。否则很可能因为共用存储导致浏览器环境下的数据被SDK误认为打通了小程序而出现数据错乱。微信官方参考文档