Notice: Function _load_textdomain_just_in_time was called incorrectly. Translation loading for the all-in-one-wp-security-and-firewall domain was triggered too early. This is usually an indicator for some code in the plugin or theme running too early. Translations should be loaded at the init action or later. Please see Debugging in WordPress for more information. (This message was added in version 6.7.0.) in /home/meaningfree/www/analytics/wp-includes/functions.php on line 6114
【GA】Firefoxでブラウザバックした時にGoogleアナリティクスのGIFリクエストが飛ばない – meaningfree.analytics
木. 11月 21st, 2024

GoogleアナリティクスはGIFリクエストごとにユニークなIDを振って、ブラウザバックしたときにもGIFリクエストを飛ばすというのは多くの方がご存知かと思いますが、どうもFiddlerでGIFリクエストを追っていると、FirefoxだけブラウザバックしてもGIFリクエストが飛ばないときがあるんですよ。

InternetExplorerやChromeはブラウザバックで必ずGIFリクエストが飛びますが、Firefoxはかなり高い確率で飛ばないです。

GIFリクエストが飛ぶ・飛ばないの条件は明確ではないのですが、ページを移動してから少し時間を置いて(15秒ぐらい?)ブラウザバックすると飛ぶのですが、ページを移動してすぐに戻るとほぼ飛ばないです。

挙動的にはブラウザバックしたときにJavaScript自体が実行されていない印象です。これはFirefoxの仕様なのでしょうか。知っている方がいたら教えて欲しいです・・・。

————————————————–

4月9日追記

コメント欄にて情報をいただきました。マロマゴさま、ありがとうございました。

やはりFirefoxの仕様だったようです。

https://developer.mozilla.org/En/Using_Firefox_1.5_caching

表示速度向上のため、JavaScriptのステータスもキャッシュされると書かれていますので、既に実行済みの処理はブラウザの戻る/進むでは再度実行されないようになっているようです。

対応方法はいくつか記載されていますが、

the page uses an unload or beforeunload handler

という記載の通り、unloadイベントを使用する方法が一番簡単で良い方法です。具体的にはonUnloadで空の(何の処理も書かれていない)関数を実行しておきます。記述を書く場所は</head>の直前でも</body>の直前でも外部JSファイルでもどこでも大丈夫だと思いますが、GAのトラッキングコード付近に書いておくのがスマートな気がします。

[javascript title=”参考ソース” highlight=”13″]
<script type="text/javascript">

var _gaq = _gaq || [];
_gaq.push([‘_setAccount’, ‘あなたのWebプロパティID’]);
_gaq.push([‘_trackPageview’]);

(function() {
var ga = document.createElement(‘script’); ga.type = ‘text/javascript’; ga.async = true;
ga.src = (‘https:’ == document.location.protocol ? ‘https://ssl’ : ‘http://www’) + ‘.google-analytics.com/ga.js’;
var s = document.getElementsByTagName(‘script’)[0]; s.parentNode.insertBefore(ga, s);
})();

window.onunload = function(){}; // FirefoxのJavaScriptキャッシュ対策

</script>
[/javascript]

こんな形です。
これはGoogleアナリティクスで解析を行う場合、必ず対応しておいた方がよさそうです。

4 thoughts on “【GA】Firefoxでブラウザバックした時にGoogleアナリティクスのGIFリクエストが飛ばない”
  1. >衣袋さま
    GAフォーラムでご紹介いただき、ありがとうございます。
    まさかこのブログがGAフォーラムで紹介されるとは思っていなかったので驚きました。

    >マロマゴさま
    情報ありがとうございます。間違いなくFireFoxの仕様ですね。
    unloadイベントを使う方法を試してみたところ、見事に解決しました。
    これはGoogleアナリティクスで解析を行う場合、標準で対応しておく必要がありますね。

    できればga.js内に記述しておいてもらえるとありがたいですが・・・。
    (Googleさん、どうかよろしくお願いいたします。)

    ブログ記事にも対応方法を追記させていただきます。
    ありがとうございました。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です