GA4学習

GA4で出した結論が、翌日の国別チェックでひっくり返った話

月次でGA4のレポートをまとめているが、Directの数字や全体の傾向をそのまま信じてしまっている、という方に向けて書く。サイト公開から1ヶ月分のデータを振り返って一度は結論を出したのに、翌日その結論がまるごと覆るという経験をした。何が起きたのかを記録することで、自分も同じような思い込みをしていないか、点検するきっかけにしてもらえたらと思う。

サイト公開1ヶ月、GA4を振り返った

ai-weblab.netを公開してから1ヶ月が経った。区切りとして、GA4の数字を一度ちゃんと振り返っておくことにした。目的は2つ。ひとつはサイト全体の実績を数字で把握すること、もうひとつは自分で設計したイベント(LP・記事・TOPのクリックなど、事前に決めておいた計測ポイント)が想定通り動いているかを確認することだった。

セッション数141、アクティブユーザー125人。エンゲージメント率は15.6%で、感覚的に低い数字だと感じた。まずはこの「低い」という感覚を、具体的にどこが低いのか分解して見ていくことにした。

気になったのは「TOPページの6秒離脱」

流入経路別に見ると、Direct(直接流入)が全体の93%を占め、そのエンゲージメント率だけが12.21%と低かった。一方でX経由などのソーシャル流入は66.67%と対照的に高い。ボリュームの大半を占めるDirectの質の低さが、全体の数字を引き下げていた形だった。

ページ別に見ると、原因はもっとはっきり見えてきた。TOPページだけ平均滞在時間が6秒と極端に短い。記事やLP、実験ログなど、一歩奥に進んだページは1分〜2分半としっかり読まれていたので、コンテンツ自体の質が悪いわけではなさそうだった。課題は「TOPで最初の数秒に興味を引けているか」という入り口部分にある、と考えた。

このTOPの構成は、そもそもコンテンツ量がまだ少ない立ち上げ期を前提に、記事を前出しせず、ブログ・実験LP・実験ログという各コンテンツの入り口だけを並べる形にしていた。ある程度は離脱が増えることも見込んだうえでの設計だったが、実際にどれくらいの数字になるのかを確認したのは今回が初めてだった。

クリックデータを見たら、仮説がずれていた

最初は「TOPからその先に進んでもらえるかどうかが課題」だと考えていた。CTAやカードのクリック数を集計すると合計22件。遷移先の到達ユーザー数ともほぼ一致していたので、クリックした人は問題なく目的地にたどり着けている。

ただ、この22件という数字を来訪者108人と照らし合わせると、クリックした人は全体の約20%にとどまる。裏を返すと、約80%は一度もクリックせず、平均6秒で離脱していたことになる。ここで最初の仮説を修正した。ボトルネックは「クリックした後」ではなく、「クリックする前、最初の数秒」の方だった。

ここまでが、レポートを最初にまとめた段階での結論だった。

前から気になっていた「海外流入が多いのはなぜか」を調べた

ただ、レポートを書き終えた後も、ずっと引っかかっていたことがあった。GA4の「ユーザー」画面をなんとなく眺めていると、アクティブユーザーの大半が海外からのアクセスに見えていた。日本語オンリーの専門サイトなのに、なぜこんなに海外からの流入が多いのだろう、という違和感があった。

この違和感を放置せず、翌日「レポート」→「ユーザー獲得」に「国」の項目を追加して、Directチャネルの中身を国別に分解した。

国別に分解したら、日本はわずか14.4%だった

結果は次の通りだった。

ユーザー数平均エンゲージメント時間イベント数(シェア)
United States49人(39.2%)0秒163件(14.5%)
日本18人(14.4%)2分25秒740件(66.0%)
Poland18人(14.4%)0秒57件(5.1%)
Canada7人(5.6%)3秒25件(2.2%)
Germany6人(4.8%)0秒23件(2.1%)

日本語オンリーのサイトなのに、日本のユーザーは全体のわずか14.4%。しかも日本以外の国は軒並みエンゲージメント時間がほぼ0秒。人がページを開いて少しでも興味を持てば、多少なりとも滞在時間が出てくると考えられるが、きっちり0秒に近い数字が並ぶのは、人間の行動としては不自然に感じた。これはボットやクローラーによる機械的なアクセスの特徴だと考えた。

一方、日本の18人(全体のわずか14.4%)だけで、サイト全体のイベント数の66%を占めている。ユーザー数としては少数派なのに、実際に動いているデータの大半はこの18人によるものだった。

結論を撤回した:TOPの見せ方の問題ではなかった

ここまでの数字を踏まえて、最初にまとめた「TOPページの見せ方に課題がある」「クリックする前の数秒がボトルネック」という結論は撤回することにした。

TOPページの平均滞在時間6秒・到達率86.4%(来訪者125人中108人がTOPに到達していた計算になる)という数字は、ボットが機械的にTOPへアクセスして即座に離脱している構図で考えるとつじつまが合う。逆に、記事やLP、実験ログといった深い階層で滞在時間が1分〜2分半としっかり出ていたのは、そこに到達しているのが実際の人間、主に日本の18人だったからだと考える方が自然だった。

今月の実質的な訪問者は、日本からの18人程度と見るのが実態に近い。残り8割超は、ボットによる水増しだったとみている。せっかく立てた仮説が、まる1日で覆ることになった。

ちなみに、TOPページを「記事を前出しせず、各コンテンツの入り口だけ並べる」構成にしたこと自体は、良かったのか悪かったのかを今回のデータで判断することはできない。母数のほとんどがボットだった以上、この設計を評価するにはボットを除外したうえで改めて数字を見る必要がある。

ボットとは無関係に、もう一つ見つけていたこと

今回の振り返りの中では、ボットとは関係なく見つけていたこともうひとつある。

クリックの合計数だけでなく、「実験ログのどのカードがクリックされたか」「外部Web担当者向けLPのどのセクションまで読まれたか」という、もう一歩細かい内訳も見たかった。イベントにはpost_idcard_positionsection_idといった内訳を判別するためのパラメータをあらかじめ仕込んでいた(これを見るには、実はもうひと手間必要だったと後から分かる)。

ところがGA4のレポート画面でこれらのパラメータを軸に集計しようとすると、(not set)という表示ばかりで、内訳がまったく復元できなかった。外部LPのセクション到達イベントだけで80件分のデータがあったのに、その中身は一切見えない状態だった。

調べてみると、GA4にはイベントのパラメータを仕込むだけでなく、それを「カスタムディメンション」として登録する作業がもうひとつ必要だと分かった。カスタムディメンションというのは、イベントに仕込んだパラメータを、GA4のレポート上で分析の軸として使えるようにするための登録作業だと理解した。

さらに厄介だったのは、このカスタムディメンションは登録した時点より前に集まったデータには遡って反映されない、という仕様だった。つまりパラメータ自体は正しく発火・収集できていたのに、登録が漏れていたせいで、今月分のデータは内訳を見られないまま残ってしまったことになる。「パラメータを仕込む」ことと「そのパラメータを集計できる状態にする」ことは、別の作業だった。

ついでに見つかった、もうひとつの数字のノイズ

ちなみに、フォーム送信の完了イベントが3件記録されているが、これは全て自分自身によるテスト送信で、実際の問い合わせ完了は今月0件だった。

自己テストが数字に混ざるのはよくある話なので、今回は深追いしなかった。ただ除外の方法としては、送信のたびに手動で記録しておく以外に、GA4側の設定であらかじめ自動的に除く方法もある。内部トラフィックの除外ルールや、自分のIPアドレスを除外する設定(GA4の管理画面にある「データフィルタ」機能)を組んでおけば、ページ閲覧については自動で切り分けられる。ただし、この除外設定は対象範囲が限定されていて、今回はページ閲覧には適用済みだったが、フォーム送信のような重いコンバージョンイベントまでは捕捉しきれていなかった、というのが実際のところだった。

来月からのルールを2つ変えた

今回の一連の件を踏まえて、運用ルールを2つ変えることにした。

ひとつは、新しいイベントを設計するときはパラメータを仕込むタイミングでカスタムディメンションの登録も同時に行うというルール。自分用の計測設計メモにも追記した。

もうひとつは今回新しく加えたルールで、全体の数字が想定外に良い・悪いと感じたときは、必ず国・地域別に分解してボット混入を疑う、というものだ。チャネル別の内訳だけでは見抜けなかった問題だったので、次回以降の振り返りの型に組み込んでおくことにした。

まとめ

サイト公開1ヶ月の振り返りで、観察して分かったことを残しておく。

  • 「TOPの見せ方に課題がある」という結論は、翌日の国別データ確認でまるごと撤回することになった
  • 全体の数字が想定外のときは、チャネル別だけでなく国・地域別まで分解しないと、ボットの混入を見抜けないことがある
  • パラメータを仕込むことと、それを集計できる状態にすることは別の作業で、後者を忘れると今月分のデータごと失われる

レポートは一度出したら終わりではなく、翌日にはもう前提が変わっていることもある。来月以降も、同じやり方で振り返りを続けて、気づいたことをまた記録していきたい。

こうした気づきは、X(@AO_weblab)でも短く共有している。気になったら覗いてもらえたら嬉しい。