跳转到主要内容
使用上下文数据(例如订阅者订阅时所在的页面主题或 URL 路径)为网页推送订阅者添加标签,以提供有针对性的后续活动。本教程涵盖检测选择加入、应用标签、构建细分和自动化消息。 前提条件:

设置

1. 使用页面特定元数据标记用户

当用户订阅推送通知时,使用 PushSubscription.addEventListener 监听器检测选择加入,并应用包含有关其正在查看的页面的上下文数据的标签。
function pushSubscriptionChangeListener(event) {
  if (event.current.optedIn && !event.previous.optedIn) {
    // User just opted in — tag with subscription context
    var pathSegment = window.location.pathname.split('/')[1] || 'home';
    var pageTopic = document.querySelector('meta[name="article-topic"]')?.content || 'general';

    OneSignal.User.addTags({
      subscription_page: pathSegment,
      subscription_page_topic: pageTopic,
    });
  }
}

OneSignalDeferred.push(function(OneSignal) {
  OneSignal.User.PushSubscription.addEventListener("change", pushSubscriptionChangeListener);
});
工作原理:
  • 当用户的推送订阅状态发生变化时(选择加入、选择退出、令牌刷新),change 事件触发。
  • 当用户有活跃订阅时,event.current.optedIntrue。检查 !event.previous.optedIn 确保标签仅在初始选择加入时应用,而不是每次状态变化时。
  • window.location.pathname.split('/')[1] 将路径的第一个段捕获为订阅上下文。例如,如果 URL 是 https://example.com/gaming/article-123,则 subscription_page 标签设置为 gaming
  • pageTopic<meta> 标签提取,回退到 'general'。根据您网站的元数据结构进行调整。

2. 按标签细分用户

一旦应用标签,使用细分API 筛选器根据这些标签定位用户。 例如:
  • subscription_pagegaming 的用户发送活动
  • 基于标签值和时机创建动态细分(例如,距首次会话的小时数)

3. 自动化后续消息

构建滴灌式活动,根据用户订阅的时间和订阅的内容触发消息。 示例:游戏订阅者滴灌活动
细分名称筛选器描述
Gaming 1subscription_page = gaming AND First Session > 2h AND < 24h订阅后 2–24 小时内联系
Gaming 2subscription_page = gaming AND First Session > 24h AND < 48h1 天后跟进
Gaming 3subscription_page = gaming AND First Session > 72h AND < 96h3 天后最终检查
使用上限时间限制(<)以防止用户在消息窗口过去后仍停留在细分中。

4. 将细分与消息模板结合

一旦创建了细分:
  • 为活动的每个阶段构建模板(例如,介绍、提醒、促销)。
  • 使用旅程在用户进入适当的细分时发送这些消息。
示例消息想法:
  • 邀请加入游戏社区或社交群组
  • 推荐与其主题相关的热门文章
  • 发送独家优惠或折扣码

最佳实践

  • 使用反映实际用户意图的有意义的标签名称和值。
  • 尽可能从页面元数据动态提取标签值。
  • 仅在初始选择加入时标记——上面的监听器示例检查 !event.previous.optedIn 以避免在每次状态变化时重新标记。
不要在标签值中包含个人身份信息(PII),例如姓名或电子邮件地址。避免在整个网站中硬编码标签值——从页面上下文动态提取它们。

常见问题

如果用户清除浏览器数据,标签会持久化吗?

不会。清除浏览器数据会创建新的订阅。如果用户重新订阅(手动或通过自动重新订阅),change 监听器会再次触发并根据当前页面重新应用标签。

我可以在初始订阅后更新标签吗?

可以。您可以随时调用 OneSignal.User.addTags() 来添加或更新标签。订阅监听器对初始上下文很有用,但您也可以根据持续行为标记用户。

相关页面

标签

根据事件或属性为用户设置自定义键值对。

Web SDK 参考

OneSignal Web SDK 的完整参考,包括订阅监听器和标签方法。

细分

按属性、标签和行为对用户进行分组,以进行有针对性的消息传递。

旅程

构建由细分进入或自定义事件触发的多步骤消息工作流。