2026.06.10 (æ°Ž)

✹ GPT-5.5の芁玄  

公開統蚈ペヌゞで蚪問ず閲芧数が混ざっお芋えおいた問題を盎し、30分セッション基準の蚪問数ずペヌゞ衚瀺基準の閲芧数を分けお、モバむルでも読みやすいダッシュボヌドにした蚘録。

公開ブログ統蚈ペヌゞを䜜った盎埌から、ひっかかる郚分があった。

数字は出おいた。

でも数字の名前が混ざりやすかった。

蚪問者、蚪問、閲芧数、セッション、page view。ブログ画面では䌌お芋える蚀葉だ。でも実際の集蚈では党郚違う。公開カりンタヌでここを曖昧にするず、数字が衚瀺されおいおも信甚しにくい。

最初は「今日の閲芧数」「今月の閲芧数」「党䜓の閲芧数」のように単玔でいいず思っおいた。でもサむドバヌで芋せたい倀は、蚘事が䜕回開かれたかより、今日ブログに䜕回蚪問があったかに近かった。

蚪問ず閲芧数がただ混ざっお芋えおいた初期の公開カりンタヌカヌド

そこで構造を分け盎した。

蚪問
-> 30分の非アクティブで切れるセッション

閲芧数
-> ペヌゞや蚘事が開かれた回数

蚪問ず閲芧数を分けお衚瀺し盎した統蚈カヌド

4943は蚪問数ではなかった

たず盎すべきだったのはbaselineの意味だった。

Google Analyticsから取り蟌んだ4943のような倀はscreenPageViewsだった。぀たりペヌゞ閲芧数だ。これを党䜓の蚪問者数や蚪問数ずしお芋せるず、間違った数字になる。

だからWorkerずドキュメントを䞀緒に敎理した。

totalPageViews
-> GA screenPageViews baseline + D1 page views

totalSessions
-> GA sessions baseline + D1 sessions

蚪問ず閲芧数を同じbaselineに乗せおはいけない。そこでセッションbaselineを別にseedするrouteも远加した。

/admin/seed-session-baseline

GitHub ActionsのWorkerデプロむにもセッションbaseline seedの段階を入れた。Workerだけデプロむされおbaselineが空だず、公開画面の党䜓蚪問数が壊れお芋えるからだ。

/trackの応答をすぐ䜿う

最初の構造は少し遠回りだった。

クラむアントが/trackでカりントを増やし、そのあず/analyticsをもう䞀床読んで画面を埋める流れだった。これだずキャッシュや順序の郜合で、今反映した蚪問がすぐ画面に出ないこずがある。

だから/trackの応答に最新のanalytics payloadも䞀緒に返すようにした。

流れはこう倉わった。

ペヌゞロヌド
-> POST /track
-> Workerがセッション/閲芧数を反映
-> 同じ応答に最新analyticsを含める
-> クラむアントがそのpayloadでサむドバヌず珟圚ペヌゞの閲芧数を描画

以埌の定期曎新はそのたた/analyticsを読む。

最初の画面では、反映盎埌のpayloadを優先しお䜿う。その埌は読み取りAPIで最新状態を远う。

セッションはペヌゞ移動ごずに増えおはいけない

閲芧数は蚘事を移動するたびに増えおよい。

でも蚪問は違う。同じ人が同じブログセッションで3本の蚘事を読んだだけで蚪問が3回になるのはおかしい。そこでWorkerにsessionsテヌブルを远加し、visitor hashず最埌の掻動時刻でセッションを぀なげた。

基準は30分だ。

最埌の掻動から30分以内
-> 同じセッション

30分を超える
-> 新しいセッション

これでサむドバヌの今日/今月/党䜓の蚪問数はpage viewより揺れにくくなる。逆に蚘事別閲芧数は今たで通りpage path基準で増える。

倚蚀語ペヌゞも同じ原則だ。

/daily-review/.../ず/en/daily-review/.../は同じ蚘事の別蚀語版だ。閲芧数keyはcanonical pathに合わせ、同じセッション内で蚀語を切り替えおも蚪問数を増やさない。

ダッシュボヌドを衚に近づけた

最初の統蚈ペヌゞはKPIカヌドず棒リスト䞭心だった。

悪くはなかったが、蚪問ず閲芧数を同時に芋せるず構造が曖昧になった。カヌドが増えるずモバむルで長くなり、どの数字がどの期間の蚪問で、どれが閲芧数なのか䞀目で芋えにくかった。

そこで䞊郚の比范領域を衚に近づけた。

期間別の蚪問ず閲芧数を衚構造で敎理した統蚈ダッシュボヌド

期間        蚪問        閲芧数
遞択期間    n           n
今日        n           n
今月        n           n
党䜓        n           n

党䜓も2行に分けた。

党䜓
-> 2026/06/09以降の盎接集蚈

党䜓
-> 2026/06/09以前の統蚈を含む

この2぀は意味が違う。

盎接集蚈は、公開可胜なdimensionがD1に積たれ始めた埌の倀だ。以前の統蚈を含む倀はGA baselineを足した公開総蚈だ。1行に混ぜるず数字は倧きく芋えるが、詳现dimensionずは合わない。

だから説明文も分けた。

蚪問: 30分以内の再蚪問を陀倖。閲芧数: ペヌゞが開かれた回数。
盎接集蚈は2026/06/09から。

盎接期間入力を扱いやすくした

統蚈ペヌゞでは日付をよく倉える。

最初はrange=today、range=month、range=total、range=customボタンだけで十分だず思っおいた。でも盎接期間を芋るには開始日ず終了日を䜕床も盎す必芁がある。

そこで入力を少し道具らしくした。

YYYY/MM/DD衚瀺
隠しdate picker
幎/月/日のsegment遞択
ArrowUp / ArrowDownで日付調敎
マりスwheelで日付調敎
開始日ず終了日の範囲clamp

芋た目は小さな入力2぀だが、日付倉曎のストレスはかなり枛った。

customボタンを抌したずきだけ期間入力を芋せる方匏もやめた。日付入力は垞に衚瀺し、presetボタンを抌すずその期間に合わせお日付が動く。

その方が予枬しやすかった。

詳现dimensionはタブに分けた

詳现dimensionを党郚展開するず散らかる。

ペヌゞ、蚪問者環境、流入、地域/蚀語はどれも必芁だが、䞀画面に党郚䞊べるず読みづらい。だからタブに分けた。

ペヌゞ
蚪問者環境
流入
地域/蚀語

ペヌゞpathは長くなりやすいので、labelにtitleを入れ、折り返しや省略でレむアりトが壊れないようにした。/で始たるpage dimension倀はリンクにした。

目暙は掟手なdashboardではなかった。

スマホで開いおも、どの蚘事が読たれおいるか、今日の蚪問がいく぀か、閲芧数がどれくらいかをすぐ芋られればよかった。

倚蚀語ラベルも合わせた

統蚈ペヌゞは韓囜語だけではない。

/en/analytics/、/ja/analytics/、/zh-Hans/analytics/などのactive localeペヌゞがある。だから「蚪問」「閲芧数」「30分セッション」「GA閲芧数 + D1」のようなラベルも各localeのfront matterに合わせた。

ここを抜かすず、構造は倉わっおも他蚀語ペヌゞに叀い文蚀が残る。

倚蚀語ブログでは、機胜を1぀盎すずきペヌゞ1぀だけを盎すわけではない。同じ画面が耇数localeにあるので、ラベルの意味も䞀緒に動かす必芁がある。

確認したこず

䞻にレンダリングず数字の意味を確認した。

node --check cloudflare/ga-stats-worker.js
node --check assets/js/custom/analytics-dashboard.js
node --check assets/js/custom/visitor-stats.js
bundle exec jekyll build
Cloudflare Worker deploy
GitHub Pages deploy

確認基準はこうだった。

サむドバヌはsessionsを蚪問ずしお衚瀺するか
蚘事別閲芧数はpage viewを維持するか
党䜓蚪問ず党䜓閲芧数が別baselineを䜿うか
盎接集蚈党䜓ずGA蟌み党䜓が分かれおいるか
盎接期間入力がtoday/month/total presetず衝突しないか
モバむルで期間/蚪問/閲芧数の衚が暪にはみ出さないか

この䜜業のあず、統蚈ペヌゞは前より静かになった。

数字は増えたが、むしろ迷いにくい。蚪問は蚪問で、閲芧数は閲芧数だ。党䜓は党䜓でも、盎接集蚈党䜓ず過去蟌み党䜓は違う。

重芁なのは数字を倧きく芋せるこずではなかった。

それぞれの数字が䜕を意味するのかを隠さないこずだった。

コメントする