277 人が現在オンライン
277 人が現在オンライン
Google アナリティクスの Google タグマネージャを含む計測の設定やトラブルシュートなどについて、ユーザー同士で意見交換ができます。解析を通して浮かんだ質問やアイディアを投げかけ合ってより知識を高めていきましょう。
ガイドを表示
star_border
返信

リロードされた閲覧を除外したい

[ 編集済み ]
中級者 ✭

いつもお世話になっております。

 

「閲覧数が少なくても滞在時間が長いページはユーザーにとって重要なページである」という仮説に基づいた運用をしたいという理由から、リロードされた閲覧の場合には、PVとして計測しないという要望が来ています。

 

 

そこで、今は、セッションのcookieを使って一つ前のURLを記録し、現在のURLと同一ならばreloadと判断し、pageviewとして送信しないようにしました。

 

しかし、ページによっては同一のURLであっても状態遷移で違うページと判断である場合もあり、URLだけではreloadされたと判断するのは無理があります。そこでdocumentのlenght長や、計算したhash値を前後で比較するといったアイディアも出てきています。

 

なにかもっとスマートな方法がありましたら、ご指南をいただきたいです。よろしくお願いいたします。

 

 

 

 

1 人のエキスパートが返信verified_user

受理された解決策
ベストアンサーのマーク済み.
解決策
トピック作成者べいたおさんが付与
火曜日

Re: リロードされた閲覧を除外したい

トップコントリビューター

HTML5では、「Navigation Timing API」という機能が存在します。この機能は、メインは「DNSの処理時間や、HTTPリクエスト/レスポンス時間などに要した時間を計測する」ものです。(ちなみに、Googleアナリティクスでも「ページの速度」レポートでは、この数値が使われています。)

 

この「Navigation Timing API」では、これらのパフォーマンス指標は、「ページを閲覧するときの流入要因によっても変化する」という考えから、流入タイプとして「リンクをクリックされたかURLを入力してページに移動してきた」「リロードしてページを表示した」「ブラウザの「進む」「戻る」ボタンでページを移動した」のどれであるかを分類することができるようになっています。

 

なので、このうちの「リロードしてページを表示した」ときにページビューを送信しなければ解決すると思われます。

 

「Navigation Timing API」の仕様は以前にQiitaに書いた記事があるので下記を参考にしてください。

https://qiita.com/1987yama3/items/3d9b63bc1abb622bb8c1

 

 

これを使って、シンプルに書くならば、下記のようにすることで、「リロード」をページビューの計測から対象外にすることができます(既にほとんどのブラウザがサポートしているはずですが、実際に利用する際には、非対応ブラウザを考慮した書き方にすることを推奨します)。

 

ga('create', 'UA-xxxxxxxx-y');
if (window.performance.navigation.type != 1) {
  ga('send', 'pageview');
}

 

元の投稿で解決策を見る


すべての返信
ベストアンサーのマーク済み.
解決策
トピック作成者べいたおさんが付与
火曜日

Re: リロードされた閲覧を除外したい

トップコントリビューター

HTML5では、「Navigation Timing API」という機能が存在します。この機能は、メインは「DNSの処理時間や、HTTPリクエスト/レスポンス時間などに要した時間を計測する」ものです。(ちなみに、Googleアナリティクスでも「ページの速度」レポートでは、この数値が使われています。)

 

この「Navigation Timing API」では、これらのパフォーマンス指標は、「ページを閲覧するときの流入要因によっても変化する」という考えから、流入タイプとして「リンクをクリックされたかURLを入力してページに移動してきた」「リロードしてページを表示した」「ブラウザの「進む」「戻る」ボタンでページを移動した」のどれであるかを分類することができるようになっています。

 

なので、このうちの「リロードしてページを表示した」ときにページビューを送信しなければ解決すると思われます。

 

「Navigation Timing API」の仕様は以前にQiitaに書いた記事があるので下記を参考にしてください。

https://qiita.com/1987yama3/items/3d9b63bc1abb622bb8c1

 

 

これを使って、シンプルに書くならば、下記のようにすることで、「リロード」をページビューの計測から対象外にすることができます(既にほとんどのブラウザがサポートしているはずですが、実際に利用する際には、非対応ブラウザを考慮した書き方にすることを推奨します)。

 

ga('create', 'UA-xxxxxxxx-y');
if (window.performance.navigation.type != 1) {
  ga('send', 'pageview');
}

 

Re: リロードされた閲覧を除外したい

中級者 ✭
サポート対象のブラウザで、動くことを確認しました。
こんな便利な機能があるとは...です。
いつもいつもありがとうございます。
このトピックのエキスパート
山田 良太