Web SDK 集成指南

本文是 MA Web SDK 标准的集成指南文档。

产品说明

MA Web SDK 提供数据采集上报功能,用于 EUID 生成、用户属性设置、事件上报等场景

集成选择

MA Web SDK 支持 2 种接入方式,同时使用 WebPush 或者仅单独使用 MA Web SDK

  • 同时使用 WebPush:集成 EngageLab WebPush 模块时设置开启 MA 功能,将自动加载 MA SDK
  • 仅单独使用 MA Web SDK:单独将 MA SDK 地址集成到网站中使用,无 WebPush 功能

同时使用 WebPush

集成前准备

  • 需要同时集成 WebPush 模块
  • 准备一个能访问的 https web 服务域名,集成后的页面需在该域名下进行测试与调试。web 离线推送不支持本地调试、不支持 http。
  • 访问 Engagelab WebPush,在【集成设定】-【 网站域名】页面,填写 https web 服务域名。

截屏2022-11-29 11.08.16.png

获取应用信息

需要在 WebPush 控制台上创建应用,创建成功后自动生成 AppKey 用以标识该应用,详情参考 应用设置文档。

MA 数据源配置

在 MA 项目-数据来源-添加数据来源-Web,选择「同时使用 WebPush」,下拉选择在 WebPush 创建好的应用,并保存 alt text

SDK 接入

进入 控制台,下载 SDK,在每个页面接入 js:

<script type="text/javascript" src="./WebSDK.3.3.4.js"></script>
              
              <script type="text/javascript" src="./WebSDK.3.3.4.js"></script>

            
此代码块在浮窗中显示

tips

引入该 js 后,传入 maOpen 为 true 属性开启 MA 配置,就可以使用 MA 的相关 API 和功能

SDK 初始化

// 初始化(开启MA) MTpushInterface.init({ appkey: "", // 必填,详见上文获取应用信息 user_str: "adminDemo", // 必填,用户识别符,用来标识用户 swUrl: "url", //默认 "/sw.min." + sdkEnv.version + ".js"。该配置项为server worker文件地址,域名必须为当前域名,且路径决定server worker作用域。 debugMode: true,// 设置是否开启 debug 模式。true 则会打印更多的日志信息。设置 false 则只会输出 w、e 级别的日志。 channel: "default-channel",// 渠道名称,默认值为:default-channel appName: "string",// 用于设置网站名称,用于上报 maOpen: true, //打开开关,开启使用 MA 功能 userIdentity: { user_id: "1234567890", anonymous_id: "anonymous123" },//在初始化MA的同时设置用户标识,从 3.3.4 版本开始支持,适用于仅面向登录会员提供MA服务的企业 maCompletion: (code, msg) => {//MA初始化回调 if (code === 0) { console.log("✅MA SDK 初始化成功!"); } else { console.error("❌MA SDK 初始化失败:", msg); } } });
              
                  //  初始化(开启MA)
  MTpushInterface.init({
    appkey: "", // 必填,详见上文获取应用信息
    user_str: "adminDemo", // 必填,用户识别符,用来标识用户
    swUrl: "url", //默认 "/sw.min." + sdkEnv.version + ".js"。该配置项为server worker文件地址,域名必须为当前域名,且路径决定server worker作用域。
    debugMode: true,// 设置是否开启 debug 模式。true 则会打印更多的日志信息。设置 false 则只会输出 w、e 级别的日志。
    channel: "default-channel",// 渠道名称,默认值为:default-channel
    appName: "string",// 用于设置网站名称,用于上报
    maOpen: true, //打开开关,开启使用 MA 功能
    userIdentity: { user_id: "1234567890", anonymous_id: "anonymous123" },//在初始化MA的同时设置用户标识,从 3.3.4 版本开始支持,适用于仅面向登录会员提供MA服务的企业
    maCompletion: (code, msg) => {//MA初始化回调
                if (code === 0) {
                    console.log("✅MA SDK 初始化成功!");
                } else {
                    console.error("❌MA SDK 初始化失败:", msg);
                }
    }
  });

            
此代码块在浮窗中显示

单独使用 MA Web SDK

MA 数据源配置

在 MA 项目-数据来源-添加数据来源-Web,在「是否同时使用 WebPush」中选择「不使用」,输入数据源的名称和网站域名,保存后即可得到 Web 数据源的 Appkey 信息

  • 请准备一个能访问的 https web 服务域名,集成后的页面需在该域名下进行测试与调试。

alt text

SDK 接入

每个页面接入下面 js:

<script type="text/javascript" src="https://websdk-res.engagelab.com/lib/ma-web.min.js"></script>
              
              <script type="text/javascript" src="https://websdk-res.engagelab.com/lib/ma-web.min.js"></script>
        

            
此代码块在浮窗中显示

引入该 JS 后,就可以使用 Window 上的全局对象 MAInterface。

特别提示:请直接使用此链接,不要将此文件下载到您项目中,否则,在我们更新数据结构或 API 接口后有可能会导致统计失效。

SDK 初始化

window.MAInterface.init({ appKey: "7ccf93e0950b5e22f4ca2124", // 必填,详见上文获取应用信息 debugMode: true, channel: "default-channel22",// 渠道名称,默认值为:default-channel appName: "EngageLab-MA test-appName", //网址名称,用于设置设备属性和事件上报中的app_name userIdentity: { user_id: "1234567890", anonymous_id: "anonymous123", email: "user@example.com", phone: "+8613800000000" }, //在初始化MA的同时设置用户标识,支持 user_id、anonymous_id、email、phone completion: (code, msg) => { if (code === 0) { console.log("✅ SDK 初始化成功!"); } else { console.error("❌ SDK 初始化失败:", msg); } } })
              
                window.MAInterface.init({
    appKey: "7ccf93e0950b5e22f4ca2124",  // 必填,详见上文获取应用信息
    debugMode: true,
    channel: "default-channel22",// 渠道名称,默认值为:default-channel
    appName: "EngageLab-MA test-appName", //网址名称,用于设置设备属性和事件上报中的app_name
    userIdentity: { user_id: "1234567890", anonymous_id: "anonymous123", email: "user@example.com", phone: "+8613800000000" }, //在初始化MA的同时设置用户标识,支持 user_id、anonymous_id、email、phone
      completion: (code, msg) => {
        if (code === 0) {
            console.log("✅ SDK 初始化成功!");
        } else {
            console.error("❌ SDK 初始化失败:", msg);
        }
    }
  })
        

            
此代码块在浮窗中显示

用户标识说明

  • userIdentity 支持 user_id、anonymous_id、email、phone 4 类用户标识(email、phone 从 2.1.0 版本开始支持),至少提供一个,各字段规则详见 设置用户标识。
  • 初始化时不符合规则的字段会被忽略并在控制台打印告警,其余合法字段继续生效。
  • email、phone 用于用户身份匹配,不是联系方式;触达用的邮箱、手机号请使用「设置用户联系方式」(setUserContact)接口设置。

重复初始化与切换 AppKey

开始支持的版本:2.1.0

SDK 初始化后,可以再次调用 init,无需刷新页面:

  • 传入相同的 AppKey:SDK 会重新获取 EUID。同时传入新的 userIdentity 时,SDK 使用新的用户标识重新获取 EUID,适用于同一页面内退出登录后切换账号的场景。
  • 传入不同的 AppKey:SDK 切换到新 AppKey 对应的 MA 数据源,之后的数据上报到新数据源;切换前产生的数据仍上报到原数据源。
  • 多次调用 init 会按调用顺序依次执行,每次调用都会通过 completion 返回结果,请以本次回调结果为准。
  • 仅单独使用 MA Web SDK 时支持切换 AppKey,「同时使用 WebPush」的接入方式不支持。
// 切换到另一个 MA 数据源 window.MAInterface.init({ appKey: "另一个数据源的 AppKey", completion: (code, msg) => { console.log(code, msg) } })
              
                // 切换到另一个 MA 数据源
  window.MAInterface.init({
    appKey: "另一个数据源的 AppKey",
    completion: (code, msg) => {
      console.log(code, msg)
    }
  })

            
此代码块在浮窗中显示

设置通道联系ID

开始支持的版本:2.1.0

如需为 WebPush 或第三方 Push 通道设置 RID 或 Token,请在 SDK 初始化成功后调用:

window.MAInterface.setChannelValue(136, ["push rid or token"], (code, message) => { })
              
                window.MAInterface.setChannelValue(136, ["push rid or token"], (code, message) => { })

            
此代码块在浮窗中显示
  • channelId:MA 控制台中配置的 Push 通道 ID,必须大于 0。
  • values:RID 或 Token 数组,数组及元素均不能为空;RID 或 Token 变化后,需要再次调用接口更新。

详细说明见 设置通道联系ID。

更多 API 接口

其他 API 的使用方法请参考接口文档:Web SDK API。

Icon Solid Transparent White Qiyu
联系销售