自分のアクセスをアクセス解析から除外する方法――「海外アクセスが伸びた!」の横で自分のブラウザが日本代表をやっていた話

読書機能の使い方

聴く:本文を読み上げます。速読:語句を順に表示し、速さを調整できます。語学練習:別の言語版と対訳を読み比べます。保存:このブラウザーにブックマークし、プレイヤーの保存済み一覧から開けます。

この記事をシェア
広告
広告

多言語サイトのアクセスを見ていると、ある日こんな違和感が出ることがある。

「日本語のアクセス、減ってない?」 「その代わり英語や中国語や他言語が増えてない?」 「……というか、日本語の数字に自分が混ざってない?」

ここで面白いのは、3つとも同時に成立しうることだ。

外国語の流入は本当に伸びている。 日本語の外部流入は少し弱くなっている。 その一方で、運営者本人が新記事を確認し、リンクを踏み、トップへ戻り、また記事を開くため、日本語側だけ「謎の熱心な読者」が常駐している。

その読者、だいたい自分である。

この記事では、自分の閲覧をアクセス解析から除外する方法、localStorageとCookieの違い、「ページを開いただけで登録されたのか?」問題、過去データがどうなるか、多言語サイトの伸びをどう読むべきかまでまとめる。

1. 最初に見るべきは「総PV」ではなく、外部着地と内部回遊の分離

日本語ページを運営者本人がよく確認するサイトでは、総PVだけ見ると日本語が必要以上に強く見える。

特に混ざりやすいのは次の行動だ。

  • 公開確認で記事を直接開く
  • トップから記事へ移動する
  • 関連記事リンクを踏む
  • スマホとPCの両方で見る
  • 修正後に何度もリロードする
  • 「本番どうなった?」と1時間後にまた見る

普通の読者なら一回読んで帰るところを、運営者はQA担当・編集者・読者・監視員を一人で兼任している。

だから多言語サイトでは、少なくとも「外部から最初に来た閲覧」と「サイト内を回遊した閲覧」を分けて見るとよい。

外国語ページの外部着地が伸び、日本語だけ内部回遊が多いなら、「日本語人気が圧倒的」というより「運営者が日本語UIでよく巡回している」が混ざっている可能性がある。

2. 「開いた。登録された?」――何も実装していなければ、されていない

ここは重要だ。

「このブラウザを管理者として除外したい」と決めたあと、サイトを一度開いた。

では、その時点でブラウザは管理者として登録されたのか。

答えは、コードが何も書き込んでいなければNOである。

ブラウザは空気を読んで、

「この人、たぶん運営者ですね。以後PVから消しておきます」

とはならない。

管理者ブラウザとして扱うには、実際に次のような処理が必要だ。

  • localStorageへ owner フラグを書き込む
  • Cookieへ owner フラグを書き込む
  • ログイン済み管理画面から除外フラグを付ける
  • サーバー側で特定の内部トラフィックとして判定する

つまり「開く」は訪問であって、「登録」は書き込み処理である。

ここを混同すると、管理者除外を設定したつもりで、その後も自分が元気にPVを育て続ける。

3. localStorageとCookie、どっちを使えばいい?

ブラウザ単位で自分を識別する代表的な方法はlocalStorageとCookieだ。

localStorage

localStorageは、そのサイトのoriginごとにブラウザ内へ値を保存できる。

例えば開発者ツールのコンソールで次のように設定できる。

localStorage.setItem("analytics_owner", "1");

クライアント側の計測コードなら、

if (localStorage.getItem("analytics_owner") === "1") {
  return;
}

のように、イベント送信そのものを止められる。

長所は簡単なこと。 短所は、サーバーやEdge Workerが最初のHTTPリクエストを受け取った時点ではlocalStorageの値が見えないことだ。

Cookie

Cookieは条件が一致するHTTPリクエストに付いてサーバーへ送られる。

例えばブラウザから設定するなら、概念的にはこうなる。

document.cookie =
  "analytics_owner=1; Path=/; Max-Age=31536000; SameSite=Lax; Secure";

サーバーやEdge Worker側でCookieを確認し、ownerならPVカウンターへ入れない。

サーバー側でアクセスを数えているなら、こちらの方が相性がよい。

もっときれいにするなら、ログイン済み管理画面や非公開の設定ルートからSet-Cookieを返し、JavaScriptから触る必要がなければHttpOnlyも検討できる。

ただし、このフラグは「アクセス解析から除外する目印」にすぎない。

管理者権限そのものに使ってはいけない。 自分で書けるCookieやlocalStorageを認証に使ったら、家の表札に「社長」と書けば社長室へ入れる会社になる。

4. Edge・サーバー計測ならCookie、ブラウザイベントだけならlocalStorage

選び方はかなり単純だ。

クライアント側だけでイベントを送っている

localStorageで十分。

ページ表示後にJavaScriptが発火し、そこでanalyticsイベントを送る方式なら、送信前にowner判定すればいい。

CDN、Edge Worker、サーバー、アクセスログ側でPVを数えている

Cookieが向いている。

なぜなら、サーバーが数えるタイミングはブラウザJavaScriptが動く前だからだ。

localStorageはブラウザの中にしかない。 Workerからは「その人のlocalStorageに1が入っているか」は見えない。

一方Cookieなら、対象リクエストに付いてくるので、集計処理より前に除外できる。

「自分のアクセスを除外したい」という同じ目的でも、計測場所が違えば最適な道具も違う。

5. 一人運営なら「秘密の一回設定」で十分

大規模企業なら社内IPや認証アカウントで内部トラフィックを分類する。

一人運営の小さなサイトなら、もっと雑でよい。

例えば、

  1. 自分だけが知っている設定画面を開く
  2. owner Cookieを1年間セットする
  3. 以後、そのCookieがあるリクエストは集計しない
  4. 解除ボタンでCookieを消せるようにする

これでかなり楽になる。

ただしブラウザ単位なので、

  • PCのChrome
  • スマホのSafari
  • 別ブラウザ
  • 別プロファイル
  • シークレットモード

はそれぞれ別物だ。

一台で設定したから全宇宙の自分が消えるわけではない。

スマホで確認したら、そのスマホの自分は普通に一票を投じる。

6. 過去のカウントは勝手に減らない

owner除外を今日入れても、昨日までのPVが自動で引かれるわけではない。

これはかなり大事だ。

実装後にできることは、基本的に「これから混ぜない」ことだ。

過去分を直すなら、

  • 生ログからownerを再判定する
  • 対象イベントを再集計する
  • 既存集計を補正する

といった別作業になる。

アクセスがまだ小さい初期サイトで、過去の数十PVを完璧に洗い直すために半日使うのは、たいてい割に合わない。

「昔は自分が少し混ざっている。ここから先は除外済み」

と境界線を引くだけでも十分だ。

データ分析は歴史修正競技ではない。

7. GA4の内部トラフィック除外と、ブラウザCookie方式は別物

Google Analytics 4には、IPアドレスを使って内部トラフィックを定義し、データフィルタで除外する公式機能がある。

会社の固定回線やオフィスなら使いやすい。

一方、一人運営で、

  • 自宅
  • モバイル回線
  • 旅行先
  • テザリング
  • VPN

のように接続元が変わるなら、IPだけで追うのは面倒になる。

そこで独自のファーストパーティ分析なら、ブラウザCookieやログイン状態でownerを示す方が扱いやすいことがある。

ただしGA4の公式フィルタと独自Cookie除外は同じ機能ではない。

GA4を使っているならGA4のテストフィルタを先に確認する。 独自分析なら独自分析の収集点で除外する。

「アクセス解析」という言葉だけで全部同じ箱に入れない方がいい。

8. 多言語サイトの伸びは「自分除外後の外部着地」で見る

自分の閲覧が混ざっていると、多言語サイトの成長判断も歪む。

例えば総PVだけ見て、

「日本語70、外国語30。まだ日本語が圧倒的だな」

と思っていたとする。

しかし日本語70のうち、

  • 自分の確認閲覧が20
  • サイト内回遊が20
  • 外部着地が30

で、外国語30がほぼ全部外部着地なら、話はかなり変わる。

新規需要を見るなら比較したいのは、

「日本語の外部着地」対「外国語の外部着地」

である。

さらに日別データが取れるなら、ローリング7日合計だけではなく日ごとの増減も見る。

ローリング指標は古い日が窓から落ちるだけでも数字が減るため、「今日読者が減った」とは限らない。

9. 最低限のテスト手順

owner除外を入れたら、感覚で「たぶん効いた」にしない。

最低限これだけ確認する。

  1. ownerフラグが本当にブラウザへ保存されたか
  2. 通常ページを1回開く
  3. 計測イベントが送信されない、またはownerとして捨てられることを確認する
  4. 別ブラウザでは通常どおり計測されることを確認する
  5. ownerフラグを削除すると再び計測されることを確認する

localStorageなら開発者ツールのApplication/Storageで確認できる。 Cookieも同様にブラウザのストレージ画面やHTTPリクエストで確認できる。

「設定ページを開いたから登録されたはず」はテストではない。

コンピューターは察してくれない。 察するのは人間だけで十分である。

10. まとめ――世界進出の前に、自分を母集団から退場させる

多言語サイトで外国語アクセスが増え始めると、かなり楽しい。

しかし日本語側には、運営者本人という最強の固定客が住み着きやすい。

だから、

  • 外部着地と内部回遊を分ける
  • ownerブラウザを明示的に登録する
  • ブラウザイベントだけならlocalStorage
  • サーバー・Edge計測ならCookie
  • 開いただけでは登録されない
  • 過去データは原則そのまま
  • 新規需要はowner除外後の外部着地で見る

という形にすると、数字の意味がかなりきれいになる。

「海外から読まれ始めた!」

その横で自分が日本語PVを100回押していたら、国際化の比較相手として強すぎる。

まず自分をランキングから外そう。

参考資料(3件)


この記事が役に立ったら、応援できます。 応援する

広告

もう1個、なんか面白いのない?

読み終わったついでに。近い話と、ぜんぜん違うけど面白い話を少しずつ。

  1. 近い話全員ほぼ0歳なのにデカくてペラペラキメラアントの完成品出産、女王の食いすぎ、ポンズと銃の悲劇
  2. 日本語記事 10一人で作るアプリが増えると、更新や確認が大変になる
  3. ぜんぜん違うけどクロロはなぜ「自分が人を殺す理由」を考えていなかったのか
  4. キルアはなぜラモットを一瞬で殺せたのか「ころすよ」が気持ちいい理由
  5. HUNTER×HUNTERの強さ議論が、なぜ1,400万約定の市場検証へつながったのか
  6. ゲームが上手い人はなぜ3手先まで見えているのか?熟達化を最速で起こす練習法

今日これ読んで

この記事を読んだ人の次の疑問に、それぞれ答える記事です。

すべての記事から探す「テクノロジー」の記事をもっと見る

他の記事を探す

すべての記事

めんどいちゃん

このサイトの運営者

めんどいちゃん

仕事や日常の「めんどい」を構造化して、次に動きやすくする記事を書いています。