概要

v1.0.0 から、無料の Statnive WordPress プラグインに専用の Revenue Report が同梱されました。WooCommerce の注文データを /wp-admin 内の CRO 重視のダッシュボードに変換します。セットアップ不要、有料プランも不要、サードパーティへのデータ転送もありません。すべてのデータは WordPress データベース内に保持されます。
この連携は WooCommerce 8.5+ Order Attribution を基盤としており、HPOS と Block Checkout に対応しています。さらに WooCommerce に対しては 読み取り専用 で動作し、Statnive は $order->get_*() ゲッターのみを使用し、WooCommerce のテーブルや投稿メタへ書き込みは一切行いません。
動作要件
- WordPress 6.2+(7.0 までテスト済み)
- PHP 8.1+(v0.4.13 で 8.0 から引き上げ)
- WooCommerce 8.5+(チャネル別アトリビューションには Order Attribution が必須)
- Action Scheduler(WooCommerce 5.4 以降に同梱)
Revenue Report の 5 つの KPI
| KPI | ソース | 備考 |
|---|---|---|
| 注文数 | processing + completed の COUNT(orders) | 返金された注文は返金合計として別途集計されます |
| Revenue (net) | net_total − refund_total | 税および送料を除外。下に補助表記として Gross: $X を表示 |
| 平均注文単価 | net_revenue / orders | WooCommerce ストアの通貨設定に従って小数点を正確に表示 |
| 返金合計 + 率 | refund_total、refund_rate = refunds / gross | 「Refund total · Rate: X%」として一つに表示 |
| 税 + 送料 | tax_total + shipping_total | 合算値で「Excluded from revenue」と明示的にラベル付け |
7 つのブレイクダウン
Revenue Report のページ上には 7 つのディメンションが描画され、11 のエンドポイント(wc-status、backfill、summary、timeseries、by-channel、by-utm、by-landing、products、funnel、refunds、coupons)はすべて REST API からも公開されます。
Revenue by Channel
Channel · 注文数 · 売上 · AOV をソート可能なテーブルで表示します。Statnive がトラフィックを分類する 8 つのチャネルは次のとおりです。
- Direct
- AI Assistants — 14 ホストに対応。ChatGPT(
chatgpt.com、chat.openai.com)、Claude(claude.ai)、Gemini(gemini.google.com、bard.google.com、notebooklm.google.com)、Copilot(copilot.microsoft.com)、Perplexity(perplexity.ai)、Meta AI(meta.ai)、Le Chat / Mistral(chat.mistral.ai)、DeepSeek(deepseek.com、chat.deepseek.com)、You(you.com)、iAsk(iask.ai)、Jasper(jasper.ai)、Writesonic(writesonic.com)。AI の検出は検索エンジンの分類より前に実行されるため、AI 経由の流入が Organic Search に誤って割り当てられることはありません。 - Organic Search
- Social Media
- Referral
- Paid Search(UTM の
mediumがcpc、ppc、paidsearch、paid_searchのもの) - Paid Social(UTM の
mediumがcpm、paid_socialのもの)
Top Products
デフォルトで上位 10 商品を表示(販売数または売上でソート可能、最大 100 件)。バリエーションは親商品の下にグループ化されます。返金は該当のラインアイテムに反映されます。
カートから購入までのファネル
WooCommerce のサーバーサイドから生成される 4 ステージのファネルです。追加の JavaScript をインストールする必要はありません。
- 商品閲覧 — イベント:
wc_product_view - カートに追加 — イベント:
wc_add_to_cart - チェックアウト開始 — イベント:
wc_checkout_start - 購入完了 — イベント:
wc_purchase
ステップ別のコンバージョン率(現ステップ/前ステップ)と全体のコンバージョン率(購入数/最上段のセッション数)が、セッション数と並べて表示されます。
v1.1.0 アップデート。 「全体 %」の分母が初段から最広段に変更され、ステップ別 UI は離脱率ではなくコンバージョン率を表示するようになりました。これは WooCommerce Analytics が WC 9.x で採用した方式に揃えたものです。
Revenue by UTM ソース/メディア/キャンペーン
アトリビューションされた注文で確認された utm_source、utm_medium、utm_campaign の値を、行ごとに注文数、売上、AOV と合わせてページネーション付きテーブルで表示します。
Revenue by Landing page
エントリーランディングページごとの注文数と売上を、ページネーション付きテーブルで表示します — 「実際にどのエントリー面が購入者を送り込んでいるか?」に答えます。
返金
期間内の返金率推移と、返金トップ商品のリストを表示します。返金はラインアイテムレベルで反映されます。
クーポン
クーポンの利用状況をページネーション付きテーブルで表示します:コード、利用回数、割引総額、割引後の純売上。
v1.1.0 の日付バケット化
注文は
COALESCE(date_paid_gmt, date_created_gmt)でバケット化されるため、サブスクリプションの更新や決済が遅延した注文(BACS、小切手、代金引換、Webhook の遅延完了など)は、注文を行った日ではなく支払いが完了した日に集計されます。v1.0.0 まではdate_created_gmtのみを使用していたため、更新の支払いが過去にずれて記録されていました。
ゼロタッチのバックフィル
WooCommerce サイトで v1.0.0 を有効化した後、初めて Revenue Report を開くと、Statnive は Action Scheduler 経由でバックグラウンドジョブをキューに入れ、過去の注文をインポートします。実行中はステータスが Revenue Report の上部に表示されます。
- チャンクサイズ: Action Scheduler フック(
statnive/wc/backfill/chunk)ごとに 500 件の注文 - 集計対象ステータス:
processingとcompleted。返金されたラインアイテムは、別ステータスとしてカウントされるのではなく、親注文のラインアイテム売上を減算します。 - 可視化: WooCommerce → ステータス → スケジュール済みアクション、
statnive/wc/backfill/chunkでフィルタリング
CLI による代替手段
バックフィルをコマンドラインから実行または監視したい場合は、以下を利用してください。
wp statnive woocommerce-backfill
このコマンドは冪等で、バックフィルの実行中に再実行すると 409 を返します。
データベーステーブル
v1.0.0 では dbDelta を介して新たに 5 つのテーブルが追加されます。0.4.x からのアップグレード時、既存の Statnive テーブルとデータはそのまま保持されます。
| テーブル | 用途 |
|---|---|
wp_statnive_orders | 注文メタデータ、アトリビューションのスナップショット、チャネル |
wp_statnive_order_attribution | チャネル、UTM パラメーター、リファラーホスト、ファネルステップ |
wp_statnive_order_items | ラインアイテム、商品、SKU、返金トラッキング |
wp_statnive_order_refunds | 返金イベント(金額と理由) |
wp_statnive_order_coupons | 注文ごとのクーポン使用状況と割引額 |
テーブルプレフィックスは WordPress の $wpdb->prefix に従います。
プライバシーと安全性の方針
- WooCommerce に対して読み取り専用。
$order->get_*()ゲッターのみを使用し、Statnive は WooCommerce のテーブルや投稿メタへ書き込みません。1,933 件の注文を持つサイトでCHECKSUM TABLEを実行前後に比較し、実証的に検証済みです。 - Cookie 不要。 訪問者識別のためにブラウザーストレージを一切使用しません。
- 日次でローテーションするソルト(CSPRNG で生成、48 時間のオーバーラップ期間)。同じ訪問者でも日ごとに異なるハッシュが生成されるため、日をまたいだ再識別は不可能です。
- 生の IP アドレスは保存しません。 IP はハッシュ化され、GeoIP ルックアップに使用された後ただちに破棄されます。IPv4 は最終オクテットをゼロに、IPv6 は最終 80 ビットをゼロにします。
- GPC と DNT をサーバーサイドで尊重します。
- WordPress プライバシー API のエクスポーターおよびイレイザーが、有効化時に登録されます。
- アンインストール時のデータ削除はオプトイン(デフォルトはオフ)。再インストール時にはアクセス解析と売上履歴が保持されます。
トップレベル管理画面ページ
v1.1.0 を有効化すると、Statnive の管理画面ナビゲーションには次のスコープ化されたページが用意されます。
- 概要(
/wp-admin/admin.php?page=statnive) — 訪問者数、セッション数、ページビュー、平均滞在時間に加え、Top Sources と Top Pages を表示 - Revenue Report(
/wp-admin/admin.php?page=statnive-revenue) — 上記の 5 つの KPI + 7 つのブレイクダウン - Ask me!(
/wp-admin/admin.php?page=statnive-ask) — 10 カテゴリーにわたるサイト運営者目線の質問 116 件、現在 63 件が即時応答(v1.1.0+) - 設定(
/wp-admin/admin.php?page=statnive-settings) — プライバシー、保持期間、除外設定、GeoIP
WooCommerce 専用の設定は不要です。WooCommerce がインストールされていれば、連携は常に有効になります。
0.4.x からのアップグレード
ドロップインでアップグレード可能です。dbDelta により 5 つの新テーブルが追加されますが、既存の 21 テーブルとそのデータには変更が加えられません。WooCommerce サイトでは、有効化後数分以内にゼロタッチのバックフィルにより Revenue Report が埋まります。コード変更は不要です。
詳細は v1.0.0 changelog のリリースノートを参照してください。