mcpField
E
exploring-live-traffic

exploring-live-traffic

github.com/posthogデータ・データベース95209 回インストール今日更新
リポジトリ

exploring-live-traffic について

exploring-live-trafficは、Web analyticsのLiveタブを読み解き、トラフィックの各カードを長期間のTrendsインサイトに置き換えるスキルです。現在の訪問者やボット、期間比較に関する依頼に対応します。

主な機能

  1. 01Liveタブのカードと期間の説明
  2. 02ホストによるライブデータの絞り込み
  3. 03名前付きボットのトラフィック検出
  4. 04カードをTrendsクエリのパターンに対応
  5. 05未対応のフィルターと制約の説明

活用シーン

  1. 01現在の訪問者とページ活動の確認
  2. 02サイトを巡回するボットの調査
  3. 037日間のボットトラフィック分析の作成
  4. 04ライブ指標と長期間のデータの比較

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/posthog/ai-plugin --skill exploring-live-traffic

インストール後、Claude Code で/exploring-live-trafficを入力して読み込まれたか確認します。

詳細

Web 分析のライブトラフィックを確認する

Web 分析のライブタブ(/web/live)には、30 分間のスライディングウィンドウでのリアルタイムアクティビティと、60 秒間の「オンラインユーザー」数が表示されます。「今、自分のサイトで何が起きているか?」を確認する場所です。ページビュー、名前が付いたボット、デバイス、地域、上位のパス、上位のリファラー、ライブイベントフィードを確認できます。

このスキルでは、エージェントが次の方法を学びます。

  • ライブタブで確認するべきリクエストを見分ける
  • タイルのモデルを読み取る(各カードに表示される内容とデータの取得元)
  • 唯一存在するフィルター(ホスト)を操作する
  • ユーザーがライブウィンドウより長い期間や詳しい内訳を求める場合に、ライブタイルに対応するプロダクト分析のインサイトを作成する

ライブタブは HogQL のプレイグラウンドではありません。データは、短時間の HogQL バックフィルを利用するライブストリームから取得されます。ユーザーが HogQL で「今」のデータをクエリしたい場合はライブタブを案内し、過去の内訳を求める場合は、以下のパターンを使ってインサイトを作成してください。

このスキルを使用する場面

次のような場合にこのスキルを使用してください。

  • 「今、サイトには誰がいますか?」「ライブで何が起きていますか?」「ライブトラフィックを表示してください」と尋ねられた場合
  • 「ライブ」タブ、「ライブダッシュボード」、またはライブページ(/web/live)について言及された場合
  • ライブのボットトラフィックについて尋ねられた場合(「どのボットがクロールしていますか?」「GPTBot にスクレイピングされていますか?」)
  • ドメイン/ホストでライブトラフィックを絞り込みたい場合
  • ライブタブの表示内容をより長い期間と比較したい場合。たとえば、「ライブタブには GPTBot が大量にアクセスしていると表示されます。過去 7 日間のグラフを作成してもらえますか?」

リアルタイムではない Web 分析の作業にはこのスキルを使用しないでください。その場合は、標準の Web 分析タブ(/web)を使用してください。

タブの構成

URL:/web/live

タブには、2 つのフィルター操作とタイルのグリッドがあります。「オンラインユーザー」を除き、日付範囲はすべて固定で、30 分間のスライディングウィンドウです(「オンラインユーザー」は直近 60 秒間)。

フィルター

ライブタブのフィルターは、ホスト(ドメイン)セレクターの 1 つだけです。

  • webAnalyticsFilterLogic.selectedHost から取得されます。
  • Web 分析の他の部分と共有されるため、/web で変更すると /web/live に反映され、その逆も同様です。
  • 機能フラグ WEB_ANALYTICS_LIVE_DOMAIN_FILTER によって制御されます。フラグがオフの場合、ホストフィルターの UI は表示されず、すべてのタイルにすべてのドメインのデータが表示されます。
  • ホストフィルターを設定すると、SSE ストリーム、HogQL のバックフィルクエリ(最初の 30 分間もホストで絞り込まれます)、および「オンラインユーザー」数が絞り込まれます。
  • ライブタブには、日付ピッカー、比較コントロール、プロパティフィルター、テストアカウントフィルターはありません。存在しない操作をユーザーに約束しないでください。

ユーザーから「ドメイン <host> でライブトラフィックを絞り込んで」と求められた場合は、ライブタブ上部のドメインセレクターを案内してください。直接設定する URL パラメーターはありません。webAnalyticsFilterLogic を介して localStorage に保存されます。

統計カード(上部の列)
カード内容期間
オンラインユーザー直近 60 秒間に確認された一意のデバイス ID 数60s
ユニークビジター直近 30 分間の一意のデバイス ID 数30m
ページビュー直近 30 分間の $pageview 数30m
コンテンツカード
カード内容備考
1 分あたりのアクティブユーザー数新規訪問者とリピーターを比較する棒グラフ直近 30 分
人気のページアニメーション付きランキング、$pathname とビュー数上位 10 件、30 分
人気のリファラーアニメーション付きランキング、$referring_domain上位 10 件、30 分
デバイス内訳を示す棒グラフ、$device_type上位 6 件+その他
ブラウザーロゴ付きの内訳を示す棒グラフ、$browser上位 6 件+その他
人気の国内訳を示す棒グラフ、$geoip_country_code上位 6 件+その他。WEB_ANALYTICS_LIVE_CITY_BREAKDOWN が有効な場合は、国/都市のタブカードに置き換わります
1 分あたりのボットリクエスト数1 分あたりのボットイベントを示す棒グラフフラグ WEB_ANALYTICS_BOT_ANALYSIS
ボットトラフィックイベント共有率順に並べた名前付きボットとカテゴリタグフラグ WEB_ANALYTICS_BOT_ANALYSIS。行をクリックすると、そのボット固有のインサイトが開きます
国(世界地図)SVG 世界地図のヒートマップフラグ WEB_ANALYTICS_LIVE_MAP
ライブイベントイベントフィード(イベント、人物、URL、タイムスタンプ)直近 50 件

ライブイベントフィードと世界地図を除くすべてのタイルには、「新しいインサイトとして開く」ボタンがあります。このボタンを押すと、プロダクト分析で 7 日間のトレンドクエリが開きます。ボットトラフィックタイルの行もそれぞれクリック可能で、クリックすると単一ボットのトレンドが開きます。

ボット検出モデル

ボットはサーバーサイドで検出されます。イベントが ClickHouse に保存される前に、次の 3 つの仮想プロパティがイベントに付与されます。

  • $virt_is_bot — ブール値。ボットとして分類された場合は true
  • $virt_bot_name — 文字列。ボットの表示名(例:Googlebot、GPTBot、 Claude、Lighthouse、HeadlessChrome)
  • $virt_traffic_category — 文字列。カテゴリキー: ai_crawler、ai_search、ai_assistant、search_crawler、seo_crawler、 social_crawler、monitoring、http_client、headless_browser、no_user_agent、 regular

ライブのボットタイルでは、「ボット対象」イベントとして $pageview、$pageleave、$screen、 $http_log、$autocapture が集計されます。ほとんどのボットは JS のページビューではなくサーバーサイドの HTTP ログを生成するため、$http_log が含まれています。

Live タブに対応するプロダクト分析クエリの作成

ユーザーがより長い期間、保存済みインサイト、ダッシュボードタイル、または Live タブの表示内容の共有を希望する場合は、トレンドインサイトを作成します。UI の「新しいインサイトとして開く」ボタンでは、次のレシピがそのまま使用されます。

ボットトラフィックの内訳(ボットタイルのヘッダーに対応)

すべてのボットの推移を名前ごとに分類して表示する単一のグラフです。これは「何が自分をクロールしているのか?」を確認するための標準的なビューです。

{
  "kind": "TrendsQuery",
  "interval": "hour",
  "dateRange": { "date_from": "-7d" },
  "series": [
    {
      "kind": "GroupNode",
      "custom_name": "Requests",
      "operator": "OR",
      "math": "total",
      "nodes": [
        { "kind": "EventsNode", "event": "$pageview", "math": "total" },
        { "kind": "EventsNode", "event": "$pageleave", "math": "total" },
        { "kind": "EventsNode", "event": "$screen", "math": "total" },
        { "kind": "EventsNode", "event": "$http_log", "math": "total" },
        { "kind": "EventsNode", "event": "$autocapture", "math": "total" }
      ]
    }
  ],
  "properties": [{ "key": "$virt_is_bot", "value": ["true"], "operator": "exact", "type": "event" }],
  "breakdownFilter": {
    "breakdown": "$virt_bot_name",
    "breakdown_type": "event",
    "breakdown_limit": 25
  },
  "trendsFilter": { "display": "ActionsBarValue" }
}
単一ボットの詳細表示(クリックしたボット行に対応)
{
  "kind": "TrendsQuery",
  "interval": "hour",
  "dateRange": { "date_from": "-7d" },
  "series": [
    /* same combined "Requests" GroupNode as above */
  ],
  "properties": [
    { "key": "$virt_is_bot", "value": ["true"], "operator": "exact", "type": "event" },
    { "key": "$virt_bot_name", "value": ["GPTBot"], "operator": "exact", "type": "event" },
    { "key": "$virt_traffic_category", "value": ["ai_crawler"], "operator": "exact", "type": "event" }
  ],
  "trendsFilter": { "display": "ActionsLineGraph" }
}

カテゴリフィルターは任意です。ユーザーが特定のボットとカテゴリの組み合わせ(Lighthouse · headless_browser は Lighthouse · monitoring とは異なるシグナルです)について尋ねた場合に追加してください。

ボットのカテゴリ別内訳(ボットイベントのグラフタイルに対応)

ユーザーがボットごとの行ではなく「AI クローラー、SEO クローラー、その他すべて」の内訳を知りたい場合は、$virt_bot_name ではなく $virt_traffic_category で内訳を表示します。

上位ページ/参照元/デバイス/ブラウザー/国

ボット以外のタイルでは、$pageview を使用し、math: unique_users を設定して、基になるプロパティで内訳を表示します。

タイル内訳プロパティ表示
上位ページ$pathnameActionsBarValue
上位参照元$referring_domainActionsBarValue
デバイス$device_typeActionsPie
ブラウザー$browserActionsPie
国$geoip_country_codeWorldMap

特定のドメインについて質問された場合は、常にライブタブのホストフィルターを引き継ぎ、properties に { "key": "$host", "value": ["<host>"], "operator": "exact", "type": "event" } を追加します。

使用するデフォルト値
  • dateRange.date_from:ユーザーが期間を指定しない限り -7d を使用します。ライブビュー自体は 30 分ですが、インサイト版を求める場合、ユーザーはほぼ常により長い期間について質問しています。
  • interval:7 日間の期間には hour、1 日未満の期間に限り minute、14 日を超える期間には day を使用します。
  • ライブタブにホストフィルターが設定されている場合は、常にそれを引き継ぎます。黙って削除しないでください。回答が変わってしまいます。

よくあるリクエストと適切な対応

ユーザーの発言適切な対応
「今、サイトで何が起きていますか?」/web/live に案内します
「ライブトラフィックを example.com に絞り込んで」/web/live の上部にあるドメインセレクターを使用します
「過去 30 分間にサイトをクロールしているボットを表示して」/web/live → ボットトラフィックタイル
「今週、サイトをクロールしているボットを表示して」上記の「ボットトラフィックの内訳」インサイトを作成し、date_from: -7d を設定します
「GPTBot にどれくらいアクセスされていますか?」「単一ボットの詳細分析」インサイトを作成し、$virt_bot_name に GPTBot を設定します
「ライブタブには X と表示されるのに、ダッシュボードには Y と表示されるのはなぜですか?」ライブタブはイベントの直近 30 分間のスライディングウィンドウを表示し、ダッシュボードは選択した期間を集計します。直近 30 分間を除き、両者を直接比較することはできません。
「ライブタブに日付範囲を追加して」ライブタブには日付ピッカーがありません。期間を指定するには、上記のパターンを使ってトレンドインサイトを作成します
「ライブトラフィックをブラウザー/デバイス/国で絞り込んで」サポートされていません。ホストフィルターのみ使用できます。代わりに、関連する内訳とフィルターを使ってトレンドインサイトを作成します

注意点

  • ボットの仮想プロパティ($virt_*)は、ボットの分類ステップで処理されたイベントにのみ存在します。過去には遡って適用されないため、分類機能のリリース前のイベントには含まれません。ボットの結果を確実に得るには、dateRange.date_from を直近数か月以内に設定してください。
  • $http_log イベントは、posthog-js ではなく、サーバー側のログキャプチャから送信されます。プロジェクトが $http_log を出力しない場合、JS を実行しないボット(ほとんどのクローラー)はボットタイルに表示されません。
  • 30 分のウィンドウは、ブラウザー内のメモリバッファを使ったスライディング集計です。ページを更新すると、SSE ストリームではなくバックフィルの HogQL が再生されます。ページ読み込み直後に一時的に「0」と表示されても、実際に数が減少したと解釈しないでください。
  • ホストフィルターではプロトコルが除去されます。https://example.com ではなく、example.com を指定してください。
  • タイルの順序は、チームごとに localStorage(フィーチャーフラグ WEB_ANALYTICS_LIVE_EDIT_LAYOUT のもと)に保存されます。ユーザーのレイアウトが自分のものと異なっていても、不具合ではありません。

コメント