跳转到主要内容

Documentation Index

Fetch the complete documentation index at: https://documentation.onesignal.com/llms.txt

Use this file to discover all available pages before exploring further.

您可以根据用户在您的网站或应用中交互的页面,在 OneSignal 中为用户添加标签,然后将这些标签用于细分和有针对性的消息传递。本页面涵盖两种不同的模式——选择最符合您目标的模式,或同时运行两种模式。

选择您的模式

模式代码运行时机设置内容平台
按页面主题标记每次页面或屏幕访问时每个主题的计数标签(gaming = 5Web、Android、iOS
订阅时标记一次,当用户选择加入推送时归因标签(subscription_page = gaming仅 Web
按页面主题标记 构建随参与度增长的行为兴趣画像——适用于内容推荐、重新激活活动以及基于类别的细分,包括那些从未明确选择特定主题的用户。 订阅时标记 在选择加入时捕获单一时间点信号——适用于来源感知的欢迎消息和滴灌活动,其中用户订阅时所在的页面预测他们接下来想阅读的内容。

前提条件


按页面主题标记(每次访问)

为用户标记他们最常参与的主题,以便提供更个性化的消息——提高相关性、点击率和满意度。 示例用例:
  • 在时尚网站上,用户只对男士鞋子感兴趣——而不是女士连衣裙。
  • 在新闻应用中,用户一直访问财经和体育文章——但从不关注娱乐或政治。

1. 定义您的主题分类

首先确定要跟踪的内容类别或主题。这些可能是:
  • 广泛的垂直领域,如 sportsfinanceentertainment
  • 产品类型,如 laptopsaccessoriespremium
  • 作者或品牌
  • 从 3-8 个主题开始,保持管理简单。
  • 总体保持在 20 个主题以下,避免臃肿。

2. 添加代码跟踪主题访问

下面的示例执行三件事:
  • 跟踪每个页面或屏幕的一个或多个主题。
  • 每次查看主题时增加访问计数。
  • 每次查看时用更新的计数标记用户。
const topics = ["sports", "entertainment"]; // One or many

if (typeof localStorage !== "undefined" && Array.isArray(topics)) {
  topics.forEach(topic => {
    let count = parseInt(localStorage.getItem(topic), 10);
    count = isNaN(count) ? 1 : count + 1;
    localStorage.setItem(topic, count);
    OneSignal.User.addTag(topic, count.toString());
  });
}

3. 细分并发送个性化消息

一旦应用标签后,您可以使用以下方式定位用户:
  • 细分以构建基于规则的群组(例如 gaming >= 3 的用户)。
  • API 筛选器以在单个活动中动态包含用户。
示例用例:
  • 仅当用户访问相关页面 5 次或以上时,才就特定主题向用户发送消息。
  • 向阅读特定作者超过 3 篇文章的用户推广文章。
  • 向不断返回特定产品类别的购物者提供折扣。

最佳实践

建议:
  • 在启动活动之前,使用 console.log()(Web)或您平台的日志记录器测试标签逻辑。
  • 在所有页面上使用一致的主题命名约定。
  • 将主题列表保存在中央位置(配置文件或远程配置),以便无需修改每个页面即可调整。
避免:
  • 使用长或过于具体的标签键(完整的文章标题、长 URL)。
  • 超过 OneSignal 的标签限制
  • 使用个人身份信息(PII)进行标记。

订阅时标记(一次性,仅限 Web)

使用上下文数据(例如订阅者订阅时所在的页面主题或 URL 路径)为网页推送订阅者添加标签,以提供有针对性的后续活动。此模式检测选择加入、应用标签并为滴灌式消息提供细分。

1. 在选择加入时标记用户

当用户订阅推送通知时,使用 PushSubscription change 监听器检测选择加入,并应用包含有关其正在查看的页面的上下文数据的标签。
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),例如姓名或电子邮件地址。避免在整个网站中硬编码标签值——从页面上下文动态提取它们。

常见问题

我应该使用哪种模式?

使用按页面主题标记来构建随时间变化的行为兴趣画像。计数器随每次访问而增长,因此可以根据参与深度(gaming >= 5)调整细分。使用订阅时标记在选择加入时捕获单一时间点的归因,适用于来源感知的欢迎消息,您希望在用户拥有长访问历史之前就响应他们订阅的位置。两种模式可以在同一网站上并行运行——它们设置不同的标签并回答不同的问题。

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

不会。在 Web 上清除浏览器数据会创建新的订阅,存储在 localStorage 中的每个主题计数器也会一起重置。如果用户重新订阅(手动或通过自动重新订阅),change 监听器会再次触发并根据当前页面重新应用订阅标签,但访问计数器会从头开始。

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

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

我应该使用这些模式而不是消息事件筛选器吗?

它们用于不同的目的。当您希望按用户访问或订阅的页面细分时,使用本页面上的模式——即源自您的网站或应用的信号。当您希望按用户与哪些 OneSignal 消息交互(已送达、已点击等)细分时,使用消息事件筛选器。它们是互补的,而不是冗余的。

订阅来源模式在移动设备上有效吗?

不直接有效。PushSubscription.addEventListener("change", ...) API 是 Web 特定的。在 iOS 和 Android 上,您可以通过在选择加入流程内调用 addTag 来实现类似的归因——例如,在用户接受权限提示后立即用他们所在的屏幕或功能标记他们。

相关页面

标签

向用户添加自定义属性以进行个性化和细分。

细分

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

Web SDK 参考

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

移动 SDK 参考

OneSignal 移动 SDK 的完整参考,包括标签方法。

旅程

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