なぜCookieが問題になったか

Cookieはウェブアクセス解析の基盤として20年以上機能してきました。訪問者のブラウザにCookieを設定し、次の訪問時に読み取り、セッションを紐づける——シンプルで効果的な仕組みです。しかし現在、この仕組みは法的・技術的な2つの圧力を同時に受けています。

法的側面では、EUのePrivacy指令(いわゆる「Cookie法」)とGDPRが組み合わさることで、同意なしに非必須Cookieを設置することは法的違反になります。アクセス解析Cookieは定義上「非必須」であるため、Cookie同意バナーが必要となり、各種調査では欧州の訪問者の40〜60%がアクセス解析Cookieを拒否することが示されています。

日本においても、改正電気通信事業法(2023年6月施行)が外部送信規制を設け、第三者が取得できる形でのCookie等の送信に対して通知・公表または同意取得を求めています。規制の波は国内サイト運営者にも直接影響します。

技術的側面では、Safari・Firefox・BraveなどのブラウザがITP(Intelligent Tracking Prevention)や強化型トラッキング防止機能によりサードパーティCookieの有効期間を大幅に短縮するか完全にブロックするようになっており、Cookieに依存した解析ツールではデータの精度そのものが低下しています。

Cookieフリー計測はこの問題を根本から解決します。ブラウザCookieに依存するのではなく、同意要件の対象外となる技術を使うことで、すべての訪問者を正確に計測できます。

従来のCookie解析とFPAIの違い——図解で比較

まず、従来のCookieベース解析とFPAIのファーストパーティ計測が技術的にどう異なるかを図で整理します。最大の違いはデータの行き先ブラウザへの痕跡の2点です。

【従来のCookie解析フロー】 訪問者のブラウザ │ ├─ Cookie設置(_ga, _gid など)← ブラウザに長期保存 │ ↓ 次回訪問時に読み取り → 訪問者IDを識別 │ └─ 外部計測スクリプト(例:ga.js) │ ▼ 第三者サーバー(Google / Adobe など)← データが外部へ │ ▼ 外部管理画面でレポート閲覧 ⚠ 問題点: – 同意バナーが必要(拒否率 40〜60%) – データは第三者サーバーに蓄積される – ITP等でCookieが短命化・無効化される – ブラウザに長期間の痕跡(Cookie)が残る 【FPAIのファーストパーティ計測フロー】 訪問者のブラウザ │ ├─ localStorage(セッションIDのみ)← Cookieは一切なし │ └─ 通常のHTTPリクエスト(ページ読み込み) │ ▼ あなたのWordPressサーバー ├─ IPをSHA-256でハッシュ化 → 生IPを即時破棄 ├─ UAを解析 → デバイス/ブラウザ情報を抽出 → 生UA破棄 └─ ハッシュ値・セッション情報・ページ情報を記録 │ ▼ 自社WordPressデータベース(wp_fpai_*)← データが外部へ出ない │ ▼ FPAIダッシュボード(WordPress管理画面) ✓ メリット: – 同意バナー不要 – データは自社サーバーのみに蓄積 – ブラウザ規制(ITP等)の影響を受けない – 100%の訪問者を計測可能

表にまとめると、従来解析ではCookieをブラウザに設置し外部サーバーへデータを送信するのに対し、FPAIはCookieを設置せず、データは一切外部に送りません。この構造的な違いが、同意バナー不要というメリットを生み出しています。

FPAIの2つの識別メカニズム

FPAIは2つの補完的なメカニズムを使います。プライバシーに配慮した訪問者識別のためのハッシュ化IPアドレスと、ブラウザ内のセッション継続性のためのlocalStorageです。

メカニズム1:IPアドレスのハッシュ化(サーバーサイド)

訪問者がサイトに来ると、FPAIのサーバーサイドコードがHTTPリクエストからIPアドレスを読み取ります。生のIPアドレスは一切保存しません。代わりに、あなたのWordPressサイトのシークレットソルトと組み合わせたSHA-256ハッシュを即座に適用します。

# 概念的な処理フロー(簡略化) raw_ip = “203.0.113.42” ← ディスクに書き込まない salt = wordpress_secret_key ← サイト固有の秘密鍵 visitor_id = sha256(raw_ip + salt) ← これだけをDBに保存 = “a3f9b2c1d4e8f7a6b5c4d3e2…” ← 64文字、逆算不可能

SHA-256は一方向関数です。保存されたハッシュから元のIPアドレスを復元する方法はありません。データベースにアクセスできたとしても、visitor_idから個人を特定することはできません。さらに、WordPressのシークレットキー(ソルト)を使うことで、あなたのデータベースのvisitor_idを他サイトのハッシュIDと照合することも技術的に不可能になっています。

メカニズム2:セッション継続のためのlocalStorage

IPアドレスだけでは、同じルーターを共有している複数の人(オフィス・家族・カフェ)が同じIPを持ち、1人の訪問者に見えてしまう問題があります。これに対処するため、FPAIはCookieとは別のブラウザストレージ機構であるlocalStorageを使います。

訪問者の最初のページビュー時に、FPAIはランダムなセッションIDを生成し、あなたのドメインのlocalStorageに一時保存します。同じセッションの後続ページではこのIDを読み取ってページビューをセッションに紐づけます。localStorageはユーザーがブラウザのストレージをクリアすることで完全に消去できます。

localStorageとCookieの法的区別について

ePrivacy指令はCookieおよびそれに類するトラッキング技術を規制していますが、規制当局や法学者の多くは、自社ドメインのサーバーにのみデータを送信し第三者に共有しないファーストパーティ解析のlocalStorage使用は、特にIPハッシュ化のようなプライバシー保護設計と組み合わせた場合、同意要件の対象外と見なしています。それでも、プライバシーポリシーにアクセス解析のアプローチを開示することを強くおすすめします。

データはどのサーバーに保存されるか——フロー図で確認

「データがどこに行くか」はプライバシーとデータ主権の観点から非常に重要です。以下のフロー図でFPAIのデータ経路を詳しく確認してください。

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 訪問者のブラウザ(Chrome / Safari / Firefox など) ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ │ │ ① ページリクエスト(通常のHTTP/HTTPSアクセス) │ ② localStorage 読み書き(セッションIDのみ) │ ※ Cookieの読み書きは一切発生しない │ ▼ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ あなたのWordPressホスティングサーバー (さくらインターネット / Xserver / ConoHa WING など) ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ │ ├─ ③ IPアドレス取得 → SHA-256ハッシュ化 → 生IP即時破棄 ├─ ④ User-Agent解析 → デバイス/OS/ブラウザ抽出 → 生UA即時破棄 └─ ⑤ ページURL・参照元・UTMパラメータ・セッション情報を記録 │ ▼ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ あなたのWordPressデータベース(MySQL)  wp_fpai_sessions テーブル(セッション単位のデータ)  wp_fpai_pageviews テーブル(ページ単位のデータ) ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ │ ▼ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ FPAIダッシュボード(WordPress管理画面 → 解析メニュー) ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ ✗ データが送信されない場所: – Google サーバー(Analyticsとは無関係) – Adobe / Matomo / その他クラウド解析サーバー – FPAIプラグイン開発者のサーバー – その他いかなる第三者サーバーも使用しない

特に重要なのはステップ③と④です。生のIPアドレスとUser-Agent文字列はWordPressサーバーのメモリ上でのみ処理され、ハッシュ化・解析の完了と同時に即時破棄されます。データベースに永続化される時点では、個人を特定できる情報は一切含まれていません。また、FPAIプラグインの開発者もあなたのサイトの訪問者データにはアクセスできません——データは完全にあなた自身のサーバーとデータベースの中にのみ存在します。

ブラウザ側で何も保存されないことを確認する方法

「本当にCookieが設定されていないか」「不審なデータがブラウザに残っていないか」——口頭の説明だけでなく、自分で実際に確認することが重要です。以下のハンズオン手順で、FPAIが動作しているサイトにおいてブラウザに何が保存されているかを検証できます。

ステップ1:Chrome DevToolsでCookieを確認する

FPAIをインストールしたWordPressサイトを開き、以下の手順を実行します。

  • F12キー(Macの場合はCmd+Option+I)でChrome DevToolsを開く
  • 上部タブから 「Application」 を選択する
  • 左サイドバーの 「Storage」→「Cookies」→「現在のサイトURL」 をクリック
  • 右側のリストに fpai_ や _ga_ などFPAI由来のCookieが存在しないことを確認する
Chrome DevTools → Application タブで確認する箇所: ▼ Application ▼ Storage ▼ Cookies └─ https://yoursite.com ← ここを開いてリストを確認 (FPAIに関するCookieは一切表示されない) ▼ Local Storage └─ https://yoursite.com ← ここも確認 fpai_session_id: “xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx” (セッション識別用のランダムUUIDのみ。個人情報を含まない)

ステップ2:localStorageの内容を検証する

同じApplicationタブで 「Local Storage」→「現在のサイトURL」 を開くと、FPAIが保存しているlocalStorageのキーと値を確認できます。fpai_session_id のようなランダムなUUID文字列のみが存在するはずです。これはIPアドレス・氏名・メールアドレスなどの個人情報を一切含まない、セッション識別のためだけのランダム値です。ブラウザのストレージをクリアすれば即座に消去されます。

ステップ3:ネットワークリクエストを確認する

DevToolsの 「Network」タブでページを再読み込みすると、FPAIがどのサーバーにリクエストを送っているかをリアルタイムで確認できます。

  • Networkタブを開いた状態でF5キー(またはCmd+R)を押してページを再読み込みする
  • リクエスト一覧をスクロールし、google-analytics.com・googletagmanager.com・外部ドメインへのリクエストがないことを確認する
  • FPAIのリクエストは すべて自サイトのドメイン宛て(/wp-admin/admin-ajax.php など)のみであることを確認する
Firefox・Safariでも同様に確認できます

Firefox:F12キー → 「ストレージ」タブ → Cookie / ローカルストレージの項目を確認

Safari:環境設定 → 詳細タブ →「メニューバーに”開発”メニューを表示」を有効化 → 開発メニュー → Webインスペクタを表示 → ストレージタブを確認

FPAIが収集するデータの範囲

各訪問者セッションについて、FPAIは以下を収集します。

  • ハッシュ化訪問者ID——IP+ソルトから導出、逆算不可能
  • セッションID——セッションごとに新規生成されるランダムUUID
  • デバイス種別——モバイル・タブレット・デスクトップ(User-Agentから導出、生UA破棄)
  • ブラウザとOS——Chrome・Safari・Firefoxなど(User-Agentから導出)
  • 参照元ドメイン——訪問者がどこから来たか(例:google.com、twitter.com)
  • UTMパラメータ——URLに付加されたキャンペーントラッキング値
  • セッション開始時刻・滞在時間・閲覧ページ数——セッションの進行とともに更新
  • 直帰フラグ——1ページのみで終了したセッションを直帰としてフラグ付け

セッション内の各ページビューについては以下を記録します。

  • ページURLとタイトル
  • スクロール深度(Proプラン)——訪問者がページをどこまでスクロールしたか
  • ページ滞在時間(Proプラン)

生のIPアドレスはディスクに書き込まれません。User-Agent文字列はデバイス・ブラウザ・OS情報の解析後に破棄されます——導出された値のみが永続化されます。

FPAIがしないこと(明示)

プライバシーの境界を明確にするため、FPAIが行わないことを具体的に列挙します。

  • FPAIは訪問者のブラウザにCookieを設定しない
  • FPAIは生IPアドレスをデータベースに保存しない
  • FPAIは第三者サーバーにデータを送信しない——すべてのデータは自社WordPressデータベースにのみ保存される
  • FPAIはブラウザフィンガープリントを使わない(canvasフィンガープリント・フォント検出・WebGL検出など)
  • FPAIは異なるウェブサイト間で訪問者をトラッキングしない
  • FPAIは広告プロファイルを作成・送信しない
  • FPAIの開発者はあなたのサイトの訪問者データにアクセスできない——データはあなたのサーバー上にのみ存在する

Cookieフリー計測の現実的な限界

Cookieフリー計測はよりプライバシーに配慮していますが、理解しておくべき現実的な制限もあります。正直に説明します。

セッションをまたいだユーザー識別は近似値になる

ユーザーがIPを変えた場合(自宅→モバイル回線→職場)、同じ人が複数セッションで別の「訪問者」として記録されることがあります。セッションレベルのデータ(直帰率・ページ数・滞在時間)は正確ですが、「リピート訪問者」のカウントは近似値になります。これはCookieフリー設計に内在するトレードオフです。

共有ネットワーク環境の影響

オフィス・学校・キャリアグレードNAT環境では複数のユーザーが同じIPを共有するため、同じハッシュ化訪問者IDが生成されます。FPAIのlocalStorageメカニズムがブラウザレベルで部分的に補正しますが、完全な解決策ではありません。

クロスドメイントラッキング非対応

ファネルが複数のドメインにまたがる場合、FPAIは追加設定なしにドメインをまたいでセッションを紐づけることはできません。これはCookieフリーのあらゆるソリューションに共通する制限です。

プライバシーポリシーへの記載例

Cookieを使わない場合でも、アクセス解析のアプローチをプライバシーポリシーで開示することをおすすめします。以下はシンプルな開示文のサンプルです。

プライバシーポリシー記載サンプル

「このサイトはWordPress向けファーストパーティ計測プラグイン『FPAI』を使用しています。FPAIはIPアドレスの一方向ハッシュ・ブラウザ種別・デバイス種別・閲覧ページ・参照元・UTMパラメータを含む匿名化された訪問者データを収集します。Cookieは設定されません。すべてのデータは自社サーバーにのみ保存され、第三者と共有されることはありません。このアクセス解析のアプローチはCookie同意バナーを必要としません。」

この文言はあなたの状況に合わせて適宜修正してください。規制対象の業種や地域で事業を展開している場合は、法律の専門家によるレビューを受けることをおすすめします。

まとめ

Cookieはセッション識別に必須ではありません。ハッシュ化IPとlocalStorageを組み合わせることで、プライバシー規制の同意要件を満たしながらすべての訪問者を計測できます。生IPは保存されず、第三者にデータは送信されず、ブラウザに長期Cookieも残りません。

従来Cookie解析との比較図とデータフロー図で確認したとおり、FPAIはデータの収集・処理・保存をすべてあなたのWordPressサーバー内で完結させます。そしてChrome DevToolsを使えば、Cookieが一切設定されていないこと・localStorageにはランダムなセッションIDのみが存在すること・外部サーバーへのリクエストがゼロであることを、あなた自身の目で数分以内に検証できます。

Cookieフリー計測に完全な精度はありません——複数セッションにまたがるユーザー識別は近似値になります。しかしそのトレードオフを受け入れることで、同意バナーを必要とせず、欧州の訪問者40〜60%のデータ欠損もなく、完全なアクセスデータを自社データベースに蓄積できます。データ主権もあなた自身にあります。


FPAI(First Party AI Analytics)はCookieを一切使わないファーストパーティ計測をWordPressに追加する無料プラグインです。訪問者データはあなた自身のサーバーにのみ保存され、第三者には送信されません。WordPress.orgから無料でインストールする → / 機能詳細・レビューはプラグイン公式ページ(WordPress.org)をご覧ください。