Skip to content

落地页 SDK ​

具体的事件上报参数说明,参考文档:Lark 链接 密码:@8228T56

下载 SDK ​

v2.0.0(新版,支持 encryptedConfig 密文注入链路):

下载落地页SDK v2.0.0

v1.1.1(旧版,仅支持 domain / endpoint 直连上报):

下载落地页SDK v1.1.1

版本区别:v2.0.0 新增 encryptedConfig 配置,通过 AES-GCM 加密配置串下发域名列表和事件白名单,走密文注入链路,可动态切换上报地址,无需发版升级。v1.1.1 仅支持 domain / endpoint 直接上报,上报地址在初始化时固定。


SDK 初始化说明 ​

当前工程已提供静态文件:

  • /sdk/landing/landing-sdk-v2.0.0.js(新版,支持 encryptedConfig)
  • /sdk/landing/landing-sdk-v1.1.1.js(旧版,仅 domain / endpoint)

配置 encryptedConfig 后走密文注入链路,优先级高于 domain 和 endpoint;不配置则默认走 domain / endpoint 直接上报事件。

注意:encryptedConfig 仅 v2.0.0 及以上版本支持,v1.1.1 及以下版本请使用 domain / endpoint。


环境说明 ​

接入文档中的配置服务环境如下:

环境域名
测试环境https://api.shuifeng.cc
正式环境https://ap.dc-report.cc

接入前提 ​

在接入前请确认:

  • [ ] 已获取 appId 和 channel(渠道码,必填,可填空字符串)

v2.0.0(encryptedConfig):上报地址由 SDK 通过密文注入内部解析,无需额外配置代理和上报地址。

v1.1.1(domain / endpoint):

  • [ ] 当上报地址中包含 /dcserv 路径时,已将该路径代理到 https://ap.dc-report.cc
  • [ ] 最终上报地址为 https://ap.dc-report.cc/api/eventTracking/report.json
接入方式上报地址规则说明
encryptedConfig密文注入,由 SDK 内部解析出上报地址和事件白名单优先级最高,配置后走密文注入链路(仅 v2.0.0+)
domaindomain + /dcserv/api/eventTracking/report.json推荐用于落地页同域代理接入;页面域名需将 /dcserv 代理到 https://ap.dc-report.cc
endpoint直接使用 endpoint 完整地址优先级高于 domain,适合需要显式指定完整上报地址的场景

如果开启批量上报(batch: true),接口路径会切换为 /dcserv/api/eventTracking/batchReport.json 或 endpoint 指定的完整地址。


基础接入方式 ​

推荐使用"占位队列 + 异步加载 SDK"的方式,确保 SDK 脚本尚未加载完成时调用的事件不会丢失。

html
<script>
  (function (i, s, o, g, r) {
    // 在 SDK 加载完成前,将所有调用暂存到占位队列(返回 Promise,保持调用方接口一致)
    i[r] =
      i[r] ||
      function () {
        var args = Array.prototype.slice.call(arguments);
        return new Promise(function (resolve, reject) {
          (i[r].q = i[r].q || []).push({
            args: args,
            resolve: resolve,
            reject: reject,
          });
        });
      };

    i[r].l = 1 * new Date();

    // 异步插入 SDK 脚本标签,不阻塞页面渲染
    var a = s.createElement(o);
    var m = s.getElementsByTagName(o)[0];
    a.async = 1;
    a.src = "/sdk/landing/landing-sdk-v1.1.1.js";
    m.parentNode.insertBefore(a, m);
  })(window, document, "script", "/sdk/landing/landing-sdk-v1.1.1.js", "tracker");

  var config = {
    appId: "your_app_id",
    domain: "https://ap.dc-report.cc",
    channel: "your_channel",
  };

  // 轮询等待 SDK 加载完成(每 30ms 检测一次)
  var timer = setInterval(function () {
    if (window.LandingSDK) {
      clearInterval(timer);
      window.LandingSDK.init(config);

      // 将占位队列中暂存的调用回放到真实 SDK
      var queued = (window.tracker && window.tracker.q) || [];
      var real = window.LandingSDK.track;

      real.q = [];
      window.tracker = real;

      queued.forEach(function (item) {
        real.apply(null, item.args).then(item.resolve).catch(item.reject);
      });
      queued.length = 0;
    }
  }, 30);
</script>

初始化配置 ​

javascript
LandingSDK.init({
  appId: "your_app_id",
  encryptedConfig: "jzzemX+UqICBr9/PIK62ENqIEXIa...", // 加密配置串(v2.0.0+ 支持),配置后走密文注入链路
  domain: "当前落地页域名",
  channel: "your_channel",
});
参数类型必填默认值说明
appIdstring是-应用 ID
encryptedConfigstring否-AES-GCM 加密配置串,包含域名列表和事件白名单;配置后走密文注入链路,优先级高于 domain 和 endpoint(仅 v2.0.0+ 支持)
domainstring否当前页面域名上报域名
endpointstring否-直接指定完整上报地址,优先级高于 domain
channelstring是-渠道码
appVersionstring否"1.0.0"业务应用版本号,随每条事件上报
batchboolean否false是否批量上报,默认 false
deviceIdstring否-自定义设备 ID,传入后覆盖本地生成的值

batch 会改变上报接口路径(false → report.json,true → batchReport.json),两种模式适用场景不同,详见 batch 参数说明。


上报地址说明 ​

最终上报地址按以下优先级确定:

  1. 初始化时配置的 encryptedConfig(密文注入,由 SDK 内部解析出上报地址和事件白名单;仅 v2.0.0+ 支持)
  2. 初始化时配置的 endpoint(完整地址)
  3. 初始化时配置的 domain(域名)
  4. 当前页面域名(兜底)

当代理链路中包含 /dcserv 时,需确保最终代理到 https://ap.dc-report.cc/api/eventTracking/report.json。


手动上报事件 ​

SDK 提供两个专用事件方法,event 字段由 SDK 内部自动设置,无需手动传入。

落地页展示:

javascript
LandingSDK.track.landingPageView({
  landing_page_id: "123",
});

落地页点击:

javascript
LandingSDK.track.landingPageClick({
  landing_page_id: "123",
  tab_key: "tab_001",
  tab_name: "登录",
  click_coordinates_x: 100,
  click_coordinates_y: 200,
  click_x_percent: 50,
  click_y_percent: 60,
  screen_width: 1920,
  screen_height: 1080,
  trace_id: "trace123",
});

完整参数说明请参见 API 说明。


接入验证 ​

接入完成后,可通过浏览器开发者工具验证事件是否成功上报:

  1. 打开 DevTools → Network 面板
  2. 触发页面展示或点击操作
  3. 过滤请求,找到包含 report.json 的请求
  4. 检查请求体是否包含对应事件字段(如 landing_page_id)
  5. 确认响应状态码为 200,且响应体包含成功标识