メインコンテンツへスキップ

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でユーザーにタグ付けし、それらのタグをターゲットメッセージング用にセグメント化できます。このページでは2つの異なるパターンを取り上げます — 目標に合うものを選ぶか、両方を並行して実行できます。

パターンを選択

パターンコードの実行タイミング設定内容プラットフォーム
ページトピック別タグ付けページまたは画面の訪問ごとトピックごとのカウンタータグ(gaming = 5Web、Android、iOS
サブスクリプション時にタグ付けユーザーがプッシュにオプトインしたとき1回アトリビューションタグ(subscription_page = gamingWebのみ
ページトピック別タグ付けは、エンゲージメントとともに成長する行動関心プロファイルを構築します — コンテンツ推薦、再エンゲージメントキャンペーン、カテゴリベースのセグメンテーションに有用で、トピックに明示的にオプトインしないユーザーにも適用できます。 サブスクリプション時にタグ付けは、オプトイン時の単一時点のシグナルをキャプチャします — ユーザーがサブスクライブしたページが次に読みたいコンテンツを予測する、ソース対応のウェルカムメッセージングおよびドリップキャンペーンに有用です。

前提条件


ページトピック別タグ付け(毎回の訪問)

ユーザーが最も多くエンゲージするトピックでタグ付けして、よりパーソナライズされたメッセージングを提供し、関連性、クリック率、満足度を向上させます。 ユースケースの例:
  • ファッションサイトでは、ユーザーは男性用の靴にのみ興味があり、女性用のドレスには興味がありません。
  • ニュースアプリでは、ユーザーは金融とスポーツの記事を常に訪れますが、エンターテイメントや政治には興味がありません。

1. トピック分類を定義する

追跡したいコンテンツカテゴリまたはトピックを特定することから始めます。これらには以下が含まれる可能性があります:
  • sportsfinanceentertainmentなどの広範な分野
  • laptopsaccessoriespremiumなどの製品タイプ
  • 著者またはブランド
  • 管理をシンプルに保つために、3〜8つのトピックから始めてください。
  • 肥大化を避けるため、全体で20トピック未満に抑えてください。

2. トピック訪問を追跡するコードを追加する

以下の例では3つのことを行います:
  • ページまたは画面ごとに1つ以上のトピックを追跡します。
  • トピックが表示されるたびに訪問カウントを増やします。
  • 各ビューで更新されたカウントでユーザーにタグ付けします。
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パスなどのコンテキストデータでWebプッシュサブスクライバーにタグ付けし、ターゲットを絞ったフォローアップキャンペーンを提供します。このパターンは、オプトインの検出、タグの適用、ドリップスタイルメッセージング用のセグメントへのフィードを行います。

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. セグメントをメッセージテンプレートと組み合わせる

セグメントが作成されたら:
  • キャンペーンの各段階(イントロ、リマインダー、プロモーション)用のテンプレートを構築します。
  • ユーザーが適切なセグメントに入ったときに、Journeysを使用してこれらのメッセージを送信します。
メッセージアイデアの例:
  • ゲームコミュニティまたはソーシャルグループへの招待。
  • トピックに関連するトレンド記事の推薦。
  • 独占オファーまたは割引コードの送信。

ベストプラクティス

  • 実際のユーザーの意図を反映する意味のあるタグ名と値を使用する。
  • 可能な限りページメタデータからタグ値を動的に抽出する。
  • 最初のオプトイン時にのみタグ付けする——上記のリスナー例では、状態変化のたびに再タグ付けされないよう !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 の完全リファレンス。

Journeys

セグメント進入またはカスタムイベントによってトリガーされるマルチステップメッセージワークフローを構築します。