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

カスタムイベントとは?

カスタムイベントとは、OneSignalに送信する名前付きのユーザーアクション(または非アクション)です。アプリ、ウェブサイト、または外部システムからイベントを送信することで、自動化のトリガー、Journeyフローの制御、リアルタイムでのユーザー体験のパーソナライズが可能になります。 例:
  • オンボーディング完了
  • 購入完了
  • カート放棄
  • サブスクリプションキャンセル
  • 新しいゲームレベル到達
OneSignalがカスタムイベントを受信すると、以下のことができます:
  • Journeyを開始する
  • Wait Untilステップでジャーニーを続行する
  • ユーザーをJourneyから退出させる
  • イベントプロパティを使用してメッセージをパーソナライズする
  • 行動に基づいてユーザーをセグメント化する(Early Access)

カスタムイベントを使用すべきタイミング

カスタムイベントを使用する場合:
  • リアルタイムのユーザー行動に応じてメッセージングを行う必要がある場合
  • データが(永続的な状態ではなく)発生した出来事を表す場合
  • パーソナライズやJourneyロジックにイベントプロパティが必要な場合
カスタムイベントを使用しない場合:
  • 長期的なユーザー属性を保存したい場合(代わりにタグを使用してください)
カスタムイベントは、特定の時点で発生した出来事を表します。タグとは異なり、ユーザーのプロファイルを永続的に更新するのではなく、行動を記録します。詳細な比較については、以下のタグとカスタムイベントの比較を参照してください。

カスタムイベントの構造

カスタムイベントには以下のフィールドが含まれます:
name
string
必須
イベント名。最大128文字。
properties
object
イベントを説明するオプションのパラメータ(例:プラン名、製品ID、価格)。パーソナライズやJourneyフロー制御に使用できます。
external_id
string
ユーザーのExternal ID。Create Custom Events APIを使用する場合、ユーザー識別子が必要です。external_idまたはonesignal_idのいずれかを指定する必要があります。
timestamp
string
イベントが発生した(または発生する)時刻。ISO 8601形式の文字列。Create Custom Events APIを参照してください。
idempotency_key
string
重複イベント処理を防止するための一意のUUID。Create Custom Events APIを参照してください。
イベントサイズの制限:
  • 最大イベントペイロード:2024バイト
  • 最大リクエストサイズ(複数イベント):1 MB

カスタムイベントをOneSignalに送信する

以下の方法でカスタムイベントを送信します:
すべてのイベントは、ソースに関係なく、課金目的では同じように扱われます。
カスタムイベントペイロードの例:
JSON
{
  "events": [
    {
      "name": "purchase",
      "properties": {
        "item": "T-shirt",
        "size": "small",
        "color": "blue",
        "price": 24.99
      },
      "external_id": "user_12345",
      "timestamp": "2025-10-21T19:09:32.263Z",
      "idempotency_key": "123e4567-e89b-12d3-a456-426614174000"
    }
  ]
}

イベントの受信を確認する

イベント送信後、Data > Custom EventsでOneSignalに到達していることを確認します。

Event Listタブ

Event Listタブは、アプリ内のすべてのカスタムイベントをイベント名ごとに整理した概要を提供します。 各イベントタイプについて、以下を確認できます:
  • 取り込まれたイベントの合計数
  • 最新のイベント(完全なJSONペイロードとプロパティ付き)
  • イベントソース(SDK、API、または統合)
  • 最終発生タイムスタンプ
イベントを選択すると詳細ビューが開き、保持期間の更新も可能です。 詳細ビューには以下が含まれます:
  • ソース内訳:ソース別に取り込まれたイベント数。展開すると、最新のイベントスキーマと最新イベントのタイムスタンプを確認できます。
  • アクティビティ:最新10件のイベント(ソースとタイムスタンプ付き)。各エントリを展開して完全なJSONペイロードを確認できます。
  • 使用状況:イベントが現在使用されている場所(Journeysまたはセグメント)。関連するJourneyやセグメントに直接クリックして設定を変更できます。

Event Activityタブ

Event Activityタブは、OneSignalアプリに取り込まれた最新のイベントのライブフィードを提供します。 以下の目的で使用します:
  • イベント名、ソース、またはExternal IDでフィルター
  • 完全なJSONペイロードの確認
  • 統合の問題のデバッグ
フィードは自動更新されません。新しいイベントを送信した後は手動で更新してください。

OneSignalでカスタムイベントを使用する

イベントがOneSignalに流入し始めたら、以下の方法で使用できます:

Journeyのエントリールールとエグジットルールをトリガーする

カスタムイベントをJourneyのエントリールールまたはエグジットルールとして設定し、イベント発生時にユーザーを即座に追加または削除します。 例:
  • signup_completed → オンボーディングを開始、またはトライアル促進Journeyから削除
  • purchase → 確認とクロスセルを送信、またはカート放棄Journeyから削除

Journeyの設定

カスタムイベントでユーザーをJourneyに追加します。

Journeyフローの制御(Wait Until)

Wait Untilステップを使用して、カスタムイベントが発生するまでユーザーを保留します。 例:
  • added_to_cartの後にpurchaseを待つ
有効期限ウィンドウを定義できます。ユーザーが時間内にイベントをトリガーしない場合、フォールバックメッセージを送信するかJourneyを終了できます。

JourneyのWait Untilステップ

カスタムイベントが発生するまでユーザーを保留します。

イベントプロパティでJourneyをパーソナライズする

JourneyテンプレートでLiquidを使用してイベントプロパティを参照します。 例:
Liquid
Thanks for purchasing {{ journey.first_event.properties.item }}!

カスタムイベントパーソナライゼーション

イベントプロパティを使用してJourneyをパーソナライズする完全ガイド。

カスタムイベントでユーザーをセグメント化する

カスタムイベントの発生に基づいてセグメントを作成します。
カスタムイベントセグメンテーションはEarly Accessです。アクセスをリクエストするには、以下の情報を添えてsupport@onesignal.comにメールしてください:
  • 会社名
  • OneSignal App ID(s)
現在の制限事項:
  • Email Warm UpおよびA/Bテストでは使用できません
  • Journeyを強化することはできません
  • 他のセグメントフィルターと組み合わせることはできません

セグメンテーション

セグメンテーションの完全ガイド。

プランの利用可能性と保持コスト

カスタムイベントは、すべての有料プランで利用できます。

課金に関するFAQ

イベントの保持と料金について。

タグとカスタムイベントの比較

TagsCustom Eventsは、どちらもユーザーにデータを追加する方法です。ただし、いくつかの重要な違いがあります:
機能TagsCustom Events
データ使用セグメンテーションとパーソナライゼーションセグメントなしでJourneysをトリガー、Wait Untilステップ、Journeys内で直接パーソナライゼーション
データ保持期間永久30日以上(永久ストレージが利用可能
データ形式キーバリューの文字列または数値JSON
データソースOneSignal SDK、API、または統合(制限あり)OneSignal SDK、API、または統合
データアクセスセグメンテーションとメッセージパーソナライゼーションJourneysとJourneyメッセージテンプレートのパーソナライゼーション、セグメンテーション(近日公開)
TagsとCustom Eventsの主な違いは、その深さとユースケースにあります。Tagsはユーザーのプロパティであり、名前、アカウントステータス、場所などです。Eventsはユーザーが行ったことであり、アイテムの購入、レベルの完了、友達の招待などです。tagsとeventsの両方は、セグメンテーションとパーソナライゼーションに使用できます。 実際には、両方を使用する可能性が高いです:
  • 静的であまり変更されないユーザープロパティにはTags
  • リアルタイムシナリオ、複雑なセグメンテーション、より洗練されたジャーニーワークフローにはCustom Events