ライブイベントリファレンス
このページは、Social Stream Ninjaが主要プラットフォーム向けに送信する標準イベントペイロードを説明します。新しいソースの接続、連携のトラブル対処、UIラベルの統一の際に、共通の基準として使ってください。利用側向けの短い一覧はこちら: イベントとアラートの互換性.
このページの内容
共通フィールドのルール、各プラットフォームの実装、末尾付近の互換性の補足へ移動できます。
重要: イベントの可用性はソース、権限、取り込み設定によって異なります。ドックや注目表示オーバーレイでイベント付き行を隠すには、次を追加します: &hideevents または &hideallevents。特定のイベントを隠すには次を使います: &filterevents=subscription_gift,new_follower,gifted。これらのフィルターは、次の値を持つ有料行も隠す場合があります: event。イベントマーカーのない通常の寄付行はイベントフィルターに一致しません。他のメッセージフィルターは引き続き適用されます。
取り込み方法を選びます: YouTube、Twitch、Kickでは、 WebSocketモード は通常、より幅広いイベントに対応します。標準DOM取り込みは、ページに実際に表示された行とカードを読み取ります。YouTubeのSuper Chat、Super Sticker、Jewelギフトには両モードで取り込み経路があります。他のギフト、投げ銭、メンバーシップイベントはソースによって異なります。対応経路と必要な設定は各プラットフォームの表を確認してください。
自動化を作りますか? こちらをご覧ください:
Event Flowガイド を参照すると、カスタムトリガー、アラート、ワークフローでこれらのイベントペイロードを使用する方法を確認できます。ガイドには次が含まれます:
テンプレート変数リファレンス をテキストの書式設定に使います。
ペイロードの形式: 寄付形式のチャット行では次を使ってください: hasDonation 、任意の donoValue。次の値は設定しないでください: event: "donation" を、通常のチャット・投げ銭行に金額があるという理由だけで設定しないでください。固有のイベント名は、実際のプラットフォーム操作や有料アイテム種類にだけ使います。例: superchat, supersticker, gift、または jeweldonation。使う項目: meta は、受信側が実際に必要とし、既存フィールドで表せない追加の構造化データにだけ使ってください。
機能対応の早見表
この表で、各取り込み方法が現在どの種類のアラートを提供するか確認できます。詳しいペイロードの補足は後述します。
専用のMulti-Stream Alert Boxは、ライブイベントを6つの基本アラートカテゴリに分類します: Follow, Subscription/Member, Donation, Bits/Cheers, Raid/Host、および Purchaseに加え、任意で有効にする2カテゴリ(Auction および Hype Train)をURLパラメーターで有効にします。これらのカテゴリは既存の次の値から導出します: event, membership, subtitle, hasDonation、および meta のフィールドはここに記載しています。別のペイロード形式は不要です。
| ソース |
新しいサブスク・メンバー |
新しいフォロワー |
寄付 |
件数と追加情報 |
| YouTube(Data APIブリッジ) |
メンバーシップの加入・更新・ギフト |
個別の登録通知* + 合計 |
Super ChatとSuper Sticker |
視聴者、登録者、視聴回数の合計(定期取得) |
| Twitch – DOM取り込み |
ギフトまとめ買いの行と受取通知 |
- |
Bitsの判定元: hasDonation |
視聴者数、報酬カード、コミュニティハイライトカード |
| Twitch – EventSub・WebSocket |
即時のサブスク・更新・ギフト通知 |
即時フォロー通知 + フォロワー合計 |
Cheer、Power-up、チャンネルポイント交換 |
視聴者・サブスク・フォロワー合計、配信状態、広告通知 |
| TikTok Live |
- |
フォローカード(TikTokが表示する場合) |
ギフトをコイン合計に換算 |
視聴者数、参加アラート、いいねのまとまり |
| YouNow |
- |
ファンと視聴者の活動 |
- |
ライブ視聴者パネルの視聴者数 |
| Favorited Studio |
- |
- |
- |
ライブ視聴者タブの視聴者数 |
| Whatnot |
- |
- |
- |
視聴者数、参加アラート、ライブオークションのメタデータ、商品・プレゼント企画のスナップショット |
| eBay Live |
- |
- |
- |
視聴者数、フォロワー数、ライブイベントカードのスナップショット、オークションフッターのメタデータ(公開されている場合)、ハートのリアクション、今後のイベントのメタデータ |
| Streamlabs Alert Box |
サブスク、ギフト、スポンサー、フォロー |
Cheer・Bits、寄付(通貨付き) |
Cheer・Bits、寄付(hasDonation) |
アラートボックスが開いている間。次の方法でも利用できます: sources/websocket/streamlabs.html ソケットトークン |
| OBS Flow Actions |
- |
- |
- |
Event Flow向けのOBS出力、シーン、リプレイバッファ、メディア終了イベント。条件: actions.html がOBS WebSocketに接続されている場合 |
| Kick – DOM |
- |
- |
- |
視聴者数と基本的な報酬・ギフトのシステム通知。より豊富なアラートにはKickブリッジを使ってください |
| Kick – WebSocket・ブリッジ |
新規サブスク、更新、ギフト |
フォロー通知 + フォロワー合計 |
支援・投げ銭イベント(金額 + 通貨) |
配信状態、報酬交換、プロフィールのメタデータ |
| Facebook Live |
- |
- |
DOMに表示されたStars |
チャット行、Stars、視聴者数の定期取得 |
| Rumble – DOM取り込み |
- |
- |
表示されるRantの価格 |
チャット、受信レイド、視聴者数の定期取得 |
| Rumble – WebSocket/API URL |
新規サブスクとサブスクギフト |
フォロー通知 + フォロワー合計 |
Rant・投げ銭(金額 + 通貨) |
視聴者合計、登録者合計、ライブ状態、チャットフィード |
| Streamplace |
- |
- |
- |
視聴者数に加え、チャットの名前、色、バッジ、返信、リンク |
| WorldsWave |
- |
- |
寄付ラベルがある場合 |
描画されたライブチャットと、任意で有効化する視聴者数更新 |
| CHZZK |
- |
- |
表示されるチーズ寄付行 |
チャット行、バッジ画像、エモート、視聴者数の定期取得 |
| BEAM |
- |
- |
- |
チャット専用ページが視聴者カウンターを公開している場合、チャット行と視聴者数を定期取得 |
| Seal Team Sloth |
- |
- |
- |
描画されたポップアウトチャット行に加え、 viewer_update 視聴者数が有効な場合にポーリングします |
| Castyr |
- |
- |
- |
描画されたポップアウトチャット行と、任意で有効化する視聴者数更新 |
| RPLAY |
- |
- |
- |
ログイン済みの /live/chat/box/ ポップアウト: type: "rplay" のチャット、アバター、ティアバッジ画像、エモートを扱います。コインの投げ銭は、元の金額・単位を次に保持します: hasDonation を共通の米ドル換算に使い、寄付イベントは付けません。任意の viewer_update 投票では整数を使用します: meta をRPLAYの公開配信エンドポイントから取得します。転送されたTwitch行は除外します。 |
| FLEX TV |
- |
- |
- |
名前、投稿者の色、バッジ画像、メンバーのメタデータを持つ、描画済みチャット行 |
*YouTubeのチャンネル登録通知は定期取得されるため、遅れたり欠けたりする場合があります。APIリファレンスでは、固定の4時間以内の配信は保証していません。参照先: 公式サブスクリプションAPIの制限.
フィールドの概要
data はここではメッセージオブジェクトを意味し、追加するラッパーではありません。チャット行とメタデータのみのイベントは形式が異なります。カウンターや状態スナップショットでは、次を省略する場合があります: chatname/chatmessage。プラットフォームの表では、 メッセージ は通常のチャット行を表し、文字どおりの次のイベントではありません: event: "message".
| フィールド |
形式 |
用途 |
data.type |
文字列 |
オーバーレイ、フィルター、Event Flowが使うソース識別子。Instagramのライブチャットは次のままにします: instagramlive 、ライブ以外のコメントは次として扱います: instagram。参照先: ソース種類ガイド に派生形、汎用ソース、送信先経路を記載しています。 |
data.chatname |
文字列 |
メッセージ処理やオーバーレイ以外の出力が使う、ソース提供の表示名。設定したユーザー表示名の別名は、コピーされたドック・オーバーレイ通信ペイロード内だけでこの値を置き換えられます。 |
data.username |
文字列 |
取得可能な場合のソース上のユーザー名。別名を適用したドック・オーバーレイペイロードでは、元の次の値を保持するため、このフィールドを追加する場合があります: chatname をユーザー操作に使います。標準メッセージ自体は変えません。 |
data.userid |
文字列 |
プラットフォーム固有のユーザー識別子。ユーザー操作では、次よりこの値を優先します: username および chatname. |
data.platform | 文字列(任意) | 一部の連携では、次と併せて含めます: type。多くのソースアダプターは省略するため、次を使ってください: type をソースの経路指定に使います。 |
data.id | 文字列 | 数値(任意) | メッセージまたはイベントの識別子。意味はソースと通信経路によるため、常にプラットフォーム固有のモデレーションIDだと考えないでください。使う値: meta.messageId アダプターが削除同期用に公開している場合。 |
data.donoValue | 数値(任意) | ソースが提供する数値の米ドル相当額。推定値を含みます。有効な値は0も含めてcurrency.jsの換算より優先します。なければ受信側でhasDonationとソースの文脈から米ドル額を見積もります。元の金額と単位はhasDonationおよび既存のプロバイダーメタデータに保持します。 |
data.chatbadges | 配列 | 文字列(任意) | バッジ画像URLまたはバッジオブジェクト(type: "img" 付随する値: src, type: "svg" 付随する値: html、または type: "text" 付随する値: text)。転送では、テキストバッジのラベル文字列を任意の次の欄に保持します: rawText から、エスケープ済みの次の値を生成します: text を古いオーバーレイ向けに使います。その後の転送時には、次を再生成してください: text 取得元: rawText。次をエスケープしないでください: text を再度処理しないでください。現在のレンダラーの表示対象: rawText がある場合は文字どおりに扱い、それ以外では従来のエンコード済みテキスト処理を維持します。これは表現形式のフィールドであり、HTML描画の許可ではありません。古いソースは配列の代わりに単一HTML文字列を送る場合があります。バッジ表示オーバーレイは両形式を受け付け、古い拡張機能からの送信でもバッジのHTML・URLをローカルでサニタイズします。不正なバッジがあっても、チャットやメンバーシップメッセージの表示を妨げてはいけません。 |
data.event |
文字列 | 真偽値 |
システム活動の識別子(例: viewer_update, subscription_gift, giftpurchase)。通常のチャットでは空またはfalseにし、オーバーレイがシステム通知と会話文を区別できるようにします。 |
data.chatmessage |
文字列 |
メッセージ本文。サニタイズ済みで描画可能なHTMLを含められるのは、次の場合だけです: data.textonly はfalseです。 |
data.textonly |
真偽値 |
適用対象は次だけです: data.chatmessage. true の意味は、次を描画することです: chatmessage をプレーンテキストとして扱い、タグや実体参照のような文字列をそのまま保持します。本文をデコードしたり、HTMLサニタイズしたり、書式タグを追加したりしないでください。イベントのスタイルは表示要素に適用します。 false の意味: chatmessage にはサニタイズ済みで描画可能なHTMLを含められます。フラグのない古いメッセージも、そのHTML動作を保ちます。他の通常フィールドはプレーンテキストですが、次のようなメディアフィールドは例外です: chatimg および contentimg。プレーンテキストのフィールドは次で表示します: textContent、またはHTMLテンプレートを組み立てる際に1回だけエスケープします。内容を削除したり、繰り返しデコードしたりしないでください。 |
data.contentimg |
文字列(任意) |
コンテンツ画像または対応メディアのURL。拡張機能とデスクトップアプリでは、任意で有効にする次の設定: allowExternalGifs 設定は、メッセージ本文またはHTMLリンク内の最初の直接HTTP(S) GIFリンクを、空のフィールドに設定します。URLのパスは次で終わる必要があります: .gif (大文字・小文字を区別しない)。クエリパラメーターとフラグメントは保持されます。APIキーは不要で、次を保持します: chatmessage と既存の添付を保持し、次に従います: removeContentImage。任意の hideExternalGifUrl 設定で次が追加されます: meta.hideExternalGifUrl: true。ドックと注目表示オーバーレイは、画像を読み込んでから一致するGIFリンクだけを隠し、前後のテキストと元のペイロードは保持します。画像の読み込み失敗やタイムアウト時は添付領域を閉じ、リンクを残します。GIF専用オーバーレイは、画像データの取得に失敗すると直接画像表示を試みます。アニメーション時間がわからない場合は設定された表示時間を使い、読み込みが失敗・停止したらキューを進めます。次の値は追加しません: event またはソースの次の値を変更します: type。外部画像の内容はフィルタリングしません。ホストが埋め込みを禁止していると読み込めない場合があります。 |
data.membership |
文字列 |
読みやすいメンバーシップ状態。例: MEMBERSHIP, new_sponsor, gift_recipient。各画面はバッジ、フィルター、お知らせに使います。 |
data.subtitle |
文字列 |
補足説明(メンバー継続期間、ティアのアップグレード、ギフトの贈り主など)。オーバーレイで表示名の下に入れられるよう、短いプレーンテキストにしてください。 |
data.hasDonation |
文字列 |
金銭または仮想ギフトの金額($5.00, 500 bits, 300 coins)。次の場合でも設定します: data.event は空欄にし、寄付オーバーレイで検出できるようにします。 |
data.meta |
数値 | オブジェクト | 文字列(旧形式) |
単一のカウンター(視聴者、フォロワー、登録者)には単純な整数を、詳細な文脈にはオブジェクトを使ってください。Twitch DOMの次のイベントなど、一部の古いイベントは community_highlightは文字列を持ちます。オブジェクトのプロパティを読む前に、イベント固有の形式を確認してください。新しい構造化情報はオブジェクトに格納します。 |
data.firsttime |
真偽値 |
設定する値: true 初回チャットの検出とローカルデータベースが有効で、そのユーザー/ソースについて保存される最初のチャットメッセージである場合。ドックはこれを初回チャットの強調表示と初回の通知音フィルターに使用します。任意の初回バッジ設定を有効にすると、葉のバッジが次の先頭に追加されます: chatbadges. |
data.lastactivity |
数値 |
初回チャット検出とローカルデータベースが有効な場合の、そのユーザーについて前回保存したチャット活動のUnixタイムスタンプ(秒)。完全な新規ユーザーでは省略します。 |
SOOP - プレイヤーDOM取り込み
実装: sources/sooplive.js。統一された次の機能に対応します: play.sooplive.com プレイヤーと従来の play.sooplive.co.kr のURLに対応します。従来のグローバルチャットレイアウトも、表示される場合は認識します。
公開チャットが送信する値: type/platform: "sooplive"、プレーンテキストの chatname/userid, nameColor、サニタイズ済みの chatmessage。既存の行、重複するメッセージID、翻訳コピー、非公開のささやきは除外します。エモートは安全な画像になり、テキスト専用モードでは代替テキストになります。
次の設定では: showviewercount または hypemode が有効な場合、 viewer_update が持つ整数値: meta をプレイヤーの次の欄から取得します: #nAllViewer。チャットだけのポップアウトでは、この人数が取得できない場合があります。現在のSOOPポップアウトは元のウィンドウに依存するため、SSAppが独立したポップアップを開くときは完全なプレイヤーを使います。
Gosh - チャンネルチャット取り込み
実装: sources/gosh.js。開く項目: https://gosh.com/USERNAME でチャットを表示するか、そのURLをSSAppの「その他のソースを追加(Add other source)」に貼り付けてください。チャットのポップアウトは不要です。
新しいチャット行が送信する値: type/platform: "gosh"、プレーンテキストの chatname, nameColor、サニタイズ済みの chatmessage。インライン画像とGIFは安全なHTTP(S) URLを保持します。次の設定では: textonlymode、画像は代替テキストまたは [image] 代替テキストがない場合。キャプチャした行にアバター、バッジ、寄付、メンバーシップがない場合、これらは空のままです。
仮想化されたチャットは、最新メッセージまでスクロールした状態にしてください。既存の履歴、再描画された行、投稿者のないシステム通知は除外します。描画インデックスは内部だけで使い、ネイティブのメッセージIDとして送信しません。フォロー、寄付、視聴者数、モデレーションのイベントを推測しません。
Livacha - チャットルーム取り込み
実装: sources/livacha.js。開く項目: https://livacha.com/chat/ROOM でチャットを表示するか、ルームのURLをSSAppの「その他のソースを追加(Add other source)」に貼り付けてください。
新しいチャット行が送信する値: type/platform: "livacha"、プレーンテキストの chatname, chatimg, nameColor、サニタイズ済みの chatmessage。相対指定のアバター・インライン画像URLは、絶対HTTP(S) URLに変換します。段落、改行、リストは1つのチャットメッセージにまとめます。次の設定では: textonlymode、画像は代替テキストまたは [image].
メッセージIDを内部で使い、編集や再配置された行の再取り込みを防ぎます。初期履歴と先頭に追加された古いメッセージは除外し、タイムスタンプとリアクションメニューは本文に含めません。寄付、メンバーシップ、モデレーション、視聴者数イベントは推測しません。
Stream.space - 実験的なDOM取り込み
実装: sources/streamspace.js。一致するのは次だけです: https://beta.stream.space/chat-popup.php?channel=USERNAME と、それに相当する https://stream.space ポップアップ。
新しく表示されたチャット行が送信する値: type: "streamspace", platform: "streamspace"、プレーンテキストの chatname/userid, chatmessage、アバター chatimg、画像形式のレベル chatbadges、および nameColor。インラインエモートは安全な画像として再構築し、次の場合は代替テキストにします: textonlymode が有効な場合です。既存の履歴、歓迎通知、返信プレビュー、重複するピン留めは除外します。
viewer_update が持つ整数値: meta 読み取り元: #popupViewersNum 条件: showviewercount または hypemode が有効な場合です。寄付、メンバーシップ、モデレーションイベントは推測しません。
実験的:確認時、ベータ版ポップアップはLoadingのままでした。SSAppではポップアップを読み込み、視聴者数の更新を取得できましたが、ライブチャットの配信と本番ポップアップは未検証です。サイトに表示されないメッセージをSSNで取り込むことはできません。
w.tvとPrime - DOMキャプチャ
実装: sources/wtv.js で https://w.tv/USERNAME/chat および sources/prime.js で https://prime.gs/USERNAME?chat_popout=1.
新しいチャット行が使う値: type/platform の wtv または prime、プレーンテキストの chatname, nameColor、サニタイズ済みの chatmessage。インラインエモートは安全な画像になり、テキスト専用モードでは代替テキストになります。Primeでは行の次の値も含めます: userid に対応し、ログイン済みのプロフィールリンクとログアウト時のユーザー名ラベルの両方を使えます。検証済みの行構造にないアバターやバッジは空欄にします。
初期履歴、ピン留めカード、返信プレビューは除外します。w.tvはチャットを仮想化しているため、取り込み中は最新メッセージの位置を表示してください。DOMのテストIDは描画インデックスであり、ネイティブのメッセージIDではありません。Primeは、初期メッセージより上に読み込まれた古い履歴と、無視したユーザーのプレースホルダーを除外します。
どちらのポップアップも検証済みの配信視聴者数を公開していないため、これらのアダプターは視聴者更新を送信せず、寄付・サブスク・モデレーションイベントを推測しません。
対応範囲と互換性の制限
このリファレンスは実装済みのペイロードを説明するもので、すべてのプラットフォームがすべてのイベントを配信する保証ではありません。空の hasDonation がソースに設定されていても、寄付対応の証明にはなりません。受信内容は引き続き、DOMの表示、アカウント権限、取り込みスイッチ、APIの可用性で決まります。削除の転送はソースごとに異なるため、すべてでモデレーション同期できると考えないでください。
記録している不一致と未対応箇所
| 組み合わせ / 対象 |
確認された不一致 / 未対応 |
影響 |
| Twitch:標準とWebSocketの比較 |
共通: reward, subscription_gift, viewer_update, hype_train、任意で有効化する watch_streak。Standardのみ: giftpurchase, knock, community_highlight。WebSocketのみ: new_subscriber, resub, cheer, powerup, raid, new_follower, follower_update, subscriber_update. |
channel_points は現在、Twitchの報酬交換用の非推奨の旧別名です。新しい連携では次を基準にしてください: reward. |
| Kick:標準とWebSocketの比較 |
標準モードが送信する軽量なマーカー(gift, reward、真偽値の true, viewer_update)。WebSocketでは、公式のフォロー、サブスク、ギフト、報酬交換、KICKs、モデレーション、配信状態イベントを追加します。従来の次の形式への互換処理も保持します: raid のペイロードですが、Kickは現在、公式のレイド・ホスト購読を提供していません。 |
WebSocketモードはより多機能です。標準モード専用のイベント名を使う自動化は、切り替え時に見直してください。Kickのレイドイベントを必須にしないでください。 |
| YouTube:標準とWebSocketの比較 |
共通: superchat, supersticker, jeweldonation, sponsorship, resub, giftpurchase, giftredemption, viewer_update。Standardのみ: thankyou, redirect。WebSocketのみ: membermilestone, new_follower, subscriber_update, view_update, likes_update (任意で有効化)。 |
基本のメンバー・イベント名は両方でそろっています。Super Chat、Super Sticker、Jewelsが使う値: hasDonation。一方、メンバーシップギフトの購入・受け取りではそうしません。 |
| すべての画面 |
多くのソースが設定する値: hasDonation 次を設定せずに: data.event. |
これは正しい動作です。寄付の表示判断に使う値: hasDonation。付随する値: data.event はシステム/イベントの意味付け用に予約されています。 |
ソース固有の別名と旧名称
これらの対応関係は、記載されたソース・文脈に固有であり、全体の置き換えではありません。受信側の別名対応はページによって異なります。現在のTikTok DOM・TikFinityソースは、引き続き次を送信します: followed。Veloraが使う値: subscription および channel_points、Streamlabsが使う値は subscription。一致するすべてのイベントを改名するのではなく、現在のソース仕様と関連する旧形式の別名を受け付けてください。
| 別名 / 旧名称 |
標準の置き換え先 |
文脈 |
subscription | new_subscriber | Twitch・Kickの新規サブスク |
subgift | subscription_gift | Twitchのサブスクギフト |
membership | sponsorship | YouTubeの新規メンバー(汎用) |
new_member | sponsorship | YouTubeの新規メンバー |
new_membership | sponsorship | YouTubeの新規メンバー |
newmember | sponsorship | YouTubeの新規メンバー |
new-membership | sponsorship | YouTube DOMスクレイパー(ハイフン形式) |
upgraded_membership | resub | YouTubeのティアアップグレード |
upgraded-membership | resub | YouTube DOMスクレイパー(ハイフン形式) |
membership_upgrade | resub | YouTubeのティアアップグレード |
membership_milestone | membermilestone | YouTubeのマイルストーンチャット |
member_milestone | membermilestone | YouTubeのマイルストーンチャット(アンダースコア形式) |
gift_membership | giftpurchase | YouTubeのギフトまとめ買い |
membership_gift | giftpurchase | YouTubeのギフトまとめ買い |
giftmemberships | giftpurchase | YouTubeのギフトまとめ買い(複数形) |
gifted_membership | giftredemption | YouTubeのギフト受け取り |
gifted_memberships | giftpurchase | YouTubeのギフトまとめ買い(複数形) |
community_gift | giftpurchase | コミュニティギフトのまとめ買い |
channel_points | reward | Twitch WebSocketの報酬交換(旧別名) |
followed | new_follower | 現在のTikTok DOM・TikFinityの出力。TikTokの取り込みモードを組み合わせる場合は、両方の名前を受け付けてください。 |
このリファレンスの使い方
- 新しいイベントを追加する場合は、既存の語彙を再利用してください(
subscription_gift, viewer_updateなど)を可能な限り使ってください。どうしても異なる形式が必要なら、その理由とともにここへ記載します。
- 次の項目は維持します:
data.meta 予測しやすい構造にしてください。フラットなキーを優先し、文字列に異なる種類のデータを詰め込まず、必ず単位を含めます(currency, bits, duration).
- ペイロードを変更したら、このページも更新してください。エージェント向けの指示は、共通の開発ルールが変わった場合だけ更新します。
- ペイロードの変更は、送信元ソースと、受信するオーバーレイまたはEvent Flowトリガーの両方で検証してください。
- 取り込みはソースの対応状況と設定によります。ドックや注目表示オーバーレイでイベント付き行を隠すには、次を追加します:
&hideevents または &hideallevents。特定のイベントを隠すには次を使います: &filterevents=subscription_gift,new_follower,gifted.
- YouTube、Twitch、Kickでは、次を有効にします: WebSocketモード で、各プラットフォーム固有のイベントを最も幅広く利用できます。YouTubeのギフト・寄付取り込み(ギフトやSuper Chatを含む)は標準・WebSocketの両方で使え、WebSocketではさらにイベント種類が増えます。正確な対応範囲はプラットフォーム、アカウントの役割、付与されたスコープによります。
ページの先頭へ
収益化オーバーレイ
NinjaBackerの投げ銭が使う値: platform: "ninjabacker", type: "ninjabacker", chatname、プレーンテキストの chatmessage, textonly: true、ソースの接頭辞を付けた id、整形済みの hasDonation、数値の donoValue。これらは通常の寄付形式の行で、次はありません: event で上書きします。 meta.ninjabacker にISO形式の次の値を格納します: currency 、通貨の主単位の amount。匿名の投げ銭は表示名Anonymousを使います。ソースはライブSSE(再送なし)、または明示的に有効にするSSN API上の署名付きWebhook受信機(最大7日間の配信待ち)を使います。確実な配信では安定した次の値を使います: ninjabacker:delivery:DELIVERY_ID IDを使います。どちらのモードも返金・異議申し立てによる取り消しは受信しません。受信認証情報や署名シークレットはイベントペイロードに含めません。呼び出し側が指定するcallbackIdは支払い識別子ではなく、転送しません。ダッシュボードのテスト投げ銭は寄付行から除外し、次を送信します: event: "monetization_test" 付随する値: meta.ninjabackerTest にidとat(Unix時刻、ミリ秒)を格納します。専用プレビューアラートにだけ使います。
event: "monetization_update" は次からのメタデータのみのスナップショットです: type/platform: "socialstream". meta.monetization.wishlist にはenabled、qr、position、rank、total、公開url、現在の商品(name、amount、currency、image、公開url)、またはnullを格納します。 meta.monetization.ninja にはenabled、qr、position、username、公開の投げ銭urlを格納します。非公開のTip IDは一切含みません。 meta.monetization.ebay にはenabled、qr、position、display(cycle/cheapest/first)、seconds、任意のお知らせ設定、公開itemsを格納します。各項目はid、name、amount、currency、image、url、auction、startingBid、endsAt、available、bought、updatedAtを持ちます。時刻はUnixミリ秒です。出品者の認証情報や購入者識別情報は含みません。
配信者が確認したウィッシュリスト購入には、次も含めます: meta.wishlistPurchase にはid、name、任意のsupporter、およびat(Unixミリ秒)が含まれます。これはホストによる確認であり、Amazonの支払い通知ではなく、金銭的な寄付として数えられません。オーバーレイではidで重複を排除し、古い購入通知を無視してください。
Shopifyの支払い済み注文
任意の署名付きShopify受信機が送信する値: platform/type: "shopify" および event: "purchase" 対象は次だけです: orders/paid 付随する値: financial_status: "paid"、正の合計値、 test: false、キャンセルされていないこと、署名付き本文の更新日時が現在のものであることを確認します。テスト、未払い、古い通知、キャンセル、返金通知では購入アクションを発生させません。ギフト目的であるとは推測しません。
chatname はAnonymousです。顧客フィールド、非公開メモ、注文URLは除外します。 chatmessage はプレーンテキストで、次を伴います: textonly: true; subtitle に公開商品タイトルを最大3件格納します。 meta.commerce に含まれる値: orderTotal および currency はショップの通貨で表し、次も含みます: quantity 有効な完全な個数が分かる場合。受信者と物理/デジタルの用途は未設定のままです。次は設定されません: hasDonation または donoValue を設定します。 id はShopifyの接頭辞を持ち、ストア・注文単位の安定した不透明なハッシュです。生の注文識別子ではありません。
購入は既存のアクティビティ、Multi-AlertsのPurchaseカテゴリ、Event Flowの経路を使います。商品紹介では既存の次の機能を使います: meta.monetization.commerce のカタログを使います。商品のインポートや紹介用ラベルをGiftにする操作では、購入・ギフトイベントは発生しません。 Shopifyの設定と配信の制限.
ギフトとコマース
使う項目: event: "gift" をギフトに使い、 giftcontribution をギフトへの有料支援に使い、 giftfunded を資金達成に使い、 purchase を商品販売に使います。これらの名前はプロバイダーや、現物・デジタルといった商品種類によらず共通です。従来の次の名前は用途を限定してください: giftpurchase イベントはメンバーシップギフト用です。Throneは以前この名前を誤用していましたが、現在は次を送信します: gift。既存のメンバーシップ生成元は変わりません。Throneの独自イベント名フィルターは、次へ切り替えてください: gift。寄付フィルターの変更は不要です。
hasDonation は有料サポートを示す互換性用の値として残り、 donoValue に、提供された、または見積もった米ドル額を格納します。ギフトと支援ではこれらのフィールドを保持します。資金達成では支援の二重計上を防ぐため両方を省略します。通常の商品販売は既定で省略し、eBayの仕様を保ちます。ストア、ウィッシュリストURL、現物商品からギフト目的を推測しないでください。購入者自身や他の受取人向けの購入は、ソースがクリエイターへのギフトと明示しない限り販売のままです。
任意の共有 meta.commerce のフィールド: recipient (creator、buyer、other)、 itemType (physical、digital、service)、 quantity (正の商品数)、 currency (ISO通貨)、 goalAmount (通貨の主単位による資金目標。新たな収入ではない)と orderTotal (判明している、通貨の主単位による支払い済み注文の合計。寄付収入ではなく商取引)。不明な情報は省略します。商品名の格納先: subtitle、画像の格納先: contentimg、支援者のテキストは chatmessage。既存のプロバイダーメタデータは引き続き利用できます。Throneは受取人と通貨、完了時にはgoalAmountも提供し、eBayは数量を提供します。どちらも商品種類を推測したり、受取人の非公開情報を公開したりしません。
アクティビティフィードは、支援者のテキストがなくてもこれらのイベントを表示します。Multi-Alertsはギフトと支援に寄付の表示形式を使い、金額を持たない独立したGift Fully Funded通知も含みます。購入には別のPurchaseカテゴリがあり、既定で有効です。設定する値: purchasestyle, purchasesound, purchaseaccent、および disablepurchases のURL設定を使います。購入アラートは寄付合計を変更しません。
Event FlowはEvent TypeとOther Eventトリガーで、これらのイベント名を提供します。Donationトリガーは引き続き次を調べます: hasDonation。Gift Subトリガーはメンバーシップの意味を保持します。Compare Propertyには次のようなネストしたパスを指定できます: meta.commerce.recipient。アクションテンプレートで使える値: {meta.commerce.quantity} および {meta.commerce.currency}に加え、既存の {donation}, {subtitle}、および {meta}。ネストしたパスでは大文字・小文字を区別し、値がない場合は空にし、プロトタイプの探索は禁止します。
クリエイターコマースのWebhookと商品紹介オーバーレイ
Ko-fiの公開Donation支払いは次を保持します: hasDonation 、米ドル換算の次の値を付けます: donoValue。サブスクリプションの支払いが使う値: new_subscriber または resub。ティアの格納先: membership。Shop OrderとCommissionが使う値: purchase 寄付金額は含まれません。非公開のKo-fiイベントは引き続き除外されます。フォーム形式でエンコードされたJSONは一度だけデコードされ、名前とメッセージはプレーンテキストです。
Buy Me a Coffee donation.created 金銭的なサポートの情報を保持します。 extra_purchase.created および commission_order.created は次になります: purchase. wishlist_payment.created は次になります: giftcontribution その支払い金額のみを使用します。 meta.commerce.completed 新たな金額付きの行を出力せず、プロバイダーの完了フラグを記録します。 membership.started は次になります: new_subscriber ティアの格納先: membershipとなり、次の値を誤用しなくなりました: hasDonation をティア名に使います。サブスクリプション開始時の金額は、独立した支払い済み請求として扱いません。テスト、返金済み、失敗、未対応の更新・ライフサイクルイベントでは有料アラートを生成しません。非公開の支援者メモは省略します。
FourthwallはORDER_PLACED(purchase)、GIFT_PURCHASE(gift、受取人が他者)、DONATION(通常の寄付行)、SUBSCRIPTION_PURCHASED(new_subscriber)。既存の注文合計では次を保持します: hasDonation を後方互換性のために使い、次の印を付けます: meta.commerce.legacyDonationValue: true。これは新しい商品販売の既定ルールに対する明示的な例外です。ギフトカード適用の注文は、寄付額を含まない購入アラートを送信します。注文合計から新たな請求額を確実に推測できず、ギフト購入はすでに計上済みのためです。請求先の名前やメールアドレスを公開の識別情報に使いません。ダッシュボードのテストイベントや注文更新で有料アラートは生成しません。
これらのアダプターは、既存の転送、ボット操作、Event Flow、宛先経路を保持し、次を使います: meta.webhookId による重複除外を使います。公開名、プレーンテキストのメッセージ、判明している商品名を次で提供します: subtitle、ISOの meta.commerce.currency を、該当する場合は数値の寄付額と併せて含めます。返金の会計処理や新しい受信認証は追加しません。プロバイダーの既存の設定済みWebhook経路を使ってください。
meta.monetization.commerce 格納先: monetization_update にはenabled、qr、position、display(first/cycle)、seconds、公開items配列を格納します。各項目はname、url、image、任意のamount(不明ならnull)、currency、purpose(shop/gift/support/membership)を持ちます。これらは配信者が入力した紹介情報であり、支払い証拠ではありません。追加・編集で寄付・購入イベントは発生しません。汎用オーバーレイが使う値: mode=commerce; view=both|showcase|card|alerts はプロモーションとアクティビティを分離します。任意のURLパラメーターstyle、scale、cardevery、cardfor、onlytypeで表示を制御します。既存のプロバイダーモードでも、viewとスケジュールの制御を使用できます。参照: 設定ガイド.
Throneのギフトイベント
任意のMonetization連携は、署名付きThroneイベントを次の値で転送します: platform および type 設定する値: throne。3つとも、安定した配信識別子を使います: id、プレーンテキストの chatname, chatmessage 付随する値: textonly: true、商品名の格納先: subtitle、任意のHTTPSサムネイルは contentimg.
| イベント | 意味 | 寄付額 / 順位 |
|---|
gift | 購入されたギフト | hasDonation 、米ドルの donoValue。ギフト順位を+1: |
giftcontribution | ギフトへの支援 | 支援額のみ。順位は上げません |
giftfunded | 共同購入ギフトの達成 | 不要 hasDonation または donoValueで以前の支援の二重計上を避け、ギフト順位を+1します: |
meta.throne に含まれる値: itemName, creator (公開ユーザー名)、 completed, currency 、通貨の主単位の amount。対象: giftfundedでは、金額は目標を表し、新たな収入ではありません。匿名のギフト送信者は引き続き Anonymous。完了したコミュニティギフトが使う値: Community。非公開の支払い・配送フィールドは一切転送しません。
monetization_update スナップショットにはさらに次が含まれます: meta.monetization.throne: enabled, username, url, qr, position, rank、および gifts。これらのスナップショットにはWebhook URLや受信認証情報は含まれません。
配信者の音声コマンド(デスクトップのプレビュー版)
Event Flowの この言葉を話したとき… トリガーは、SSAppから信頼されたローカルマイクのコマンドを受け取ります。その内部アクションコンテキストでは次を使用します: chatname: "Host", type: "hostvoice"、認識したフレーズの格納先: chatmessage、および textonly: true。これはプラットフォームからの受信イベントでも、新しいチャットの通信方式でもありません。チャット経由でこれらのフィールドを送っても、音声トリガーは起動しません。
更新済みのデスクトップ版、マイクの明示的な開始、テストモード後のアクション有効化が必要です。参照先: プレビューの設定と検証状況.
商品表示の操作
既存の monetization_update スナップショットには次が含まれる場合があります: meta.monetization.commerce.live:保存済みスケジュールならnull、または {mode: "show" | "hide", url?: "https://...", until: 0 | epochMilliseconds}。Showは保存済み商品URLと完全一致で照合し、商品がなければカードを表示しません。untilが正の値なら期限後に保存済みスケジュールへ戻り、0なら変更またはSSNの再起動まで続きます。Hideは商品紹介を隠すだけで、有料アクティビティのアラートは抑止しません。
commerce.viewerURL は公開された読み取り専用ショップURL、または空文字列です。ある場合、紹介用QRコードはそこへリンクします。SSNのセッションや公開キーは含みません。商品は引き続き次に保持します: commerce.items。表示操作、インポート、公開によって寄付・購入イベントは発生しません。参照先: 商品操作 をEvent FlowとリモートAPIで使います。
Event Flowの commerceControl アクションは、直接またはChromeからの応答を最大8秒待ちます。通常のイベントペイロードではイベントを保持し、次を追加します: meta.commerceControlResult: {success: true, commerce: controlState} または {success: false, error: "..."}。既存の値が数値、配列、その他のオブジェクト以外の形式の場合: metaの場合はメタデータを変更せず、診断情報を次として返します: commerceControlResult を代わりにアクション結果へ格納します。操作が失敗すると、元の支払いイベントは抑止せず、その連鎖の後続アクションを止めます。タイムアウトは操作が適用されなかった証明ではありません。Nextなどの相対操作を再試行する前に状態を確認してください。成功はローカルの選択・非表示・スケジュール状態を確認するもので、OBSでの表示や公開ページとの同期は確認しません。
名前付きのStream Deck・APIワークフロー
対象の 名前付きワークフロートリガー は、次を含む内部Event Flowメッセージを作成します: type: "api", event: "workflow_trigger", chatname: "Stream Deck / API"、空の chatmessage、および textonly: true。その meta.workflow オブジェクトにはトリガー名と、呼び出し側が指定するJSONの次の値を含めます: data オブジェクトです。次のようなテンプレートで値を読み取ります: {meta.workflow.data.minutes}。そのトリガーに明示的に一致する、保存済みで有効なフローだけを評価します。これは受信する視聴者・チャットイベントではなく、チャットとして配信しません。これらのフィールドをチャットにコピーしても、名前付きトリガーは起動しません。
NinjaChatter視聴者機能の試験導入
実験的なペアリング済み拡張機能コネクターは、表示専用の行を次の値付きで送信します: type: socialstreamchat, platform: ninjachatter、および textonly: true. meta.ninjachatter が持つ値: origin: audience、説明用の provider、公開の room IDを使います。これらの行はプラットフォームへの返信、ボット、Event Flowトリガー、ポイント処理を通りません。プロバイダーが表示されていても、認証済みという意味ではありません。従来のNinjaChatterソース取り込みに含まれる値: meta.ninjachatter.room をルームごとの重複抑止に使います。
Cheerは独立した認証付きの要求・結果経路を使い、特別なチャットコマンドは使いません。固定プリセットが送信する既存のActionsオーバーレイイベント: show_text メッセージを3秒間表示します。受信は通信として受け付けたことを示し、OBSでの表示確認ではありません。視聴者のペイロードから任意のアクションを選ぶことはできません。NinjaChatterでは試験機能は既定で無効です。Electronは、新しい非公開ペアリングの境界を検証できるまで既存の転送を維持します。
コマースの枠ボードと最近の売上
既存の monetization_update イベント(type/platform: socialstream)には次も含まれます: meta.monetization.boards。その board に含まれる値: title, style (spots/teams)、 columns (1–20), visible、最大120件の spots。各枠には文字列の次の値があります: id、プレーンテキストの label, status (available/claimed/revealed)と result (プレーンテキスト。公開するまで空欄)。確保や公開は配信者が入力する表示状態であり、購入の証明やランダムな割り当てではありません。
boards.sales に最近の記録を最大100件格納します: id, title、任意の amount (不明な場合はnull)、 currency, quantity, source、および at (記録時点のUnix時刻、ミリ秒)。 automatic で収集を有効にし、 salesVisible で表示と次を制御します: revision は変更時に増加します。自動収集で受け付けるのは次だけです: purchase イベントをShopify、eBay出品者、Fourthwall、Ko-fi、Buy Me a Coffeeから受信します。非公開・テストイベントは除外します。オークションのメタデータ、投げ銭、ギフト、枠の確保を購入として扱いません。自動記録は注文合計、出品価格、寄付額を商品価格に代用しません。手動記録が使う値: source: "Host confirmed".
状態はこのインストール環境の非公開収益化ストレージに保持します。公開スナップショットには配信重複除外ID、購入者識別情報、シークレットを含めません。明示的に表示する売上は、削除用のイベントIDを保持します。返金分は配信者による削除が必要です。重複購入IDは別に最大2,000件記憶し、表示履歴の消去後も残します。既存の getCommerceState 応答には次が含まれます: commerce.boards; commerceControl は、次のガイドにあるボード・売上コマンドを受け付けます: ボードガイド。手動編集は更新した状態を配信しますが、購入イベント、寄付合計、有料報酬は作成しません。ホストのスナップショットが35秒間届かないと、オーバーレイは非表示になります。
出品者向け手順の追加: commerce.boards.board.id でボードの世代を識別します。手動の saleAdd が提供する場合のある値: boardId および spotId を使用して、販売の記録と枠の確保を一括で行います。最近の履歴に残っている、関連付け済みの重複した販売は拒否されます。 saleRemove 付随する値: reopenSpot: true ボードの世代がまだ一致している場合に限り、その枠を解放します。公開される販売情報には、これらの操作用の関連付けフィールドは含まれません。任意の platform を手動売上に設定すると、フィルタリング用のソースを保持します。一方、 source: "Host confirmed" で確認方法を識別します。 amount は項目の合計で、次を含みます: quantity。eBayの支払い済み注文アダプターの meta.ebayPurchase.quantity は保持されます。
salesSettings.auctionSource でWhatnotまたはeBay Liveの商品ヘルパーを有効にします。制御応答の commerce.auction には、最後に取り込んだ次のイベントのsource、title、priceText、status、atだけを格納します: auction_update、またはnullです。5分で期限切れになり、ソース変更、アイドル状態のスナップショット、再起動時に消去します。ヘルパーは操作担当者専用で、永続保存も視聴者への配信への追加も行いません。入札者・落札者の識別情報は破棄します。ソーススクリプトとオークションイベントのペイロードは変わりません。下書きをコピーしても、支払いの確認や売上の作成は行いません。