跳转到主要内容
本指南解释了如何使用 Google Tag Manager (GTM) 将 OneSignal 与您的网站集成。它涵盖了 OneSignal 服务工作器设置、更新的初始化代码,并介绍了向 OneSignal 发送用户配置文件标签(属性)的新步骤。

设置您的 OneSignal 应用程序

遵循我们的 Web 推送设置 文档。当提示时,记下您的应用 ID,您将在下面的代码中替换它。

复制并更新 OneSignal 初始化代码

当您到达 添加代码到站点 步骤时,点击 复制代码

复制 OneSignal 仪表板中提供的代码。

您需要对代码进行一些调整以使其与 Google Tag Manager 配合使用,如下所示:
<script src="https://cdn.onesignal.com/sdks/web/v16/OneSignalSDK.page.js" defer></script>
<script>
  window.OneSignalDeferred = window.OneSignalDeferred || [];
  // remove async
  OneSignalDeferred.push( function(OneSignal) {
    // remove await
    OneSignal.init({
      // replace with YOUR_APP_ID
      appId: "YOUR_APP_ID",
    })
    // Add event to track OneSignal initialization if desired
      .then(function() {
        dataLayer.push({ event: 'OneSignalInitialized' });
      }).catch(function(e) {
        console.error("OneSignal initialization failed:", e);
    });
  });
</script>

设置 Google Tag Manager

登录您的 Google Tag Manager 账户并设置一个名为 OneSignal Init 的新标签。 标签配置/标签类型应该是 自定义 HTML 将 OneSignal 代码粘贴到 HTML 字段中。 高级设置 > 标签触发选项 下选择 每页一次
对于 触发,选择 初始化 - 所有页面
点击右上角的 保存 来保存您的标签。 回到您的工作区,您可以 发布提交 来部署更改。 确保您的容器安装在您希望 OneSignal 加载的站点的每个页面上,并且初始化标签按预期触发。
如果您需要额外的设置帮助,请参考 Google Tag Manager 帮助

测试

访问您的网站,您应该会根据您设置的提示设置收到订阅推送通知的提示。有关详细信息,请参阅 Web 权限提示 检查您的 OneSignal 仪表板 受众 > 订阅 来查看您的订阅。找到您的订阅并将其设置为测试订阅 然后转到 消息 > 新推送 来给自己发送通知。
如果遇到问题,请查看 Web 推送故障排除指南 以获取常见修复方法。
访问 Web 推送教程 以了解后续步骤,或继续下面的其他 GTM 选项。

添加数据标签

此步骤使用 OneSignal.User.addTags 方法从 GTM 向 OneSignal 发送自定义用户数据标签(属性)。 使用以下代码片段来设置标签。将 "TAG_1""VALUE_1" 替换为您希望的标签键和值:
<script>
window.OneSignalDeferred = window.OneSignalDeferred || [];
OneSignalDeferred.push(function(OneSignal) {
  OneSignal.User.addTags({
      "TAG_1": "VALUE_1"
  });
});
</script>
为了确保标签在正确条件下触发,配置一个组合以下内容的触发器组:
  • 触发器 1:一个在 OneSignalInitialized 事件上触发的自定义事件触发器(确保 OneSignal 已被初始化)。
  • 触发器 2:您想要使用的附加触发器(例如,页面查看或自定义用户事件)。
要创建触发器组:
  1. 在您的 GTM 工作区中,转到触发器并点击新建。
  2. 选择触发器组作为触发器类型。
  3. 命名触发器组(例如,“OS Tag – Initialized & Custom Trigger”)。
  4. 在配置触发器组下,添加以下触发器:
    1. 自定义事件触发器:
      1. 选择自定义事件作为触发器类型。
      2. 将事件名称设置为 OneSignalInitialized
    2. 附加触发器:
      1. 选择符合您条件的触发器(例如,所有页面,或自定义触发器,如用户登录后)。
  5. 保存触发器组。
  1. 在您的 GTM 工作区中,点击新建标签。
  2. 将标签配置设置为自定义 HTML,并粘贴步骤 5.1 中的代码片段。
  3. 在高级设置 > 标签触发选项下,选择每页一次(或根据您的需要进行调整)。
  4. 对于触发,选择您在步骤 5.2 中创建的触发器组。
  5. 保存标签。

发布更改

配置新标签及其触发器组后,发布您的容器以部署新的用户标签功能。

故障排除

使用 GTM 的预览和调试模式来确保初始化标签和用户配置文件标签标签都能正确触发。 检查浏览器控制台是否有与 OneSignal 相关的错误,并查看您的 OneSignal 仪表板是否有错误通知。 DataLayer 事件:确认事件(例如 OneSignalInitialized)按预期被推送到 dataLayer 中,以便在您的分析设置中进行进一步跟踪。 See Web SDK troubleshooting for more details.
通过这些更新,您的网站现在使用最新的 OneSignal 初始化,并使用 OneSignal.User.addTags 方法通过 GTM 发送自定义用户配置文件标签。添加的触发器组确保标签只在 OneSignal 初始化后且满足您选择的条件时才触发。
对于额外的自定义或高级跟踪,请查阅我们的 Web SDK 参考和 Google Tag Manager 文档。 如果您有任何问题或遇到问题,请参考 Web SDK 故障排除 或联系 OneSignal 支持。
I