Webサービスじゃない普通のWebサイトの構築でもPjaxを使用する機会が増えてきている気がします。
そういったサイトにアクセス解析を導入する際にちょっと気をつけた方が良さそうな事象に遭遇していたのでメモしておこうかと思います。
GAはsendを使いますが…
GAで普通のアクセスじゃなく動的にアクセスを送信する場合には、下記のようなシンプルなコマンドを実行するわけですが、Pjaxを用いている場合にはもうちょっとプロパティを設定しないと意図した動作にならないことがあります。
ga('create', 'UA-ユニークID-Y', 'auto'); ga('send', 'pageview');
僕が遭遇したのはPjaxでページ遷移してもタイトルが更新されない、というものでした。
PjaxでURLは変えていたのでタイトルはそのURLを元に引っ張ってくるだろうと思っていましたが、どうやらそうではなくsendでは”送信されたhtmlのtitleタグ”がデフォルトで送信されているらしいです。
この状態のままだと、タイトル名とURLが一致しない情報がGAに蓄積されてしまいます。
僕が遭遇したシーンはちょっと特殊でtitleタグの書き換えまでしてなかったから問題になりましたが、titleタグが書き換えられるタイプのPjaxプラグインを使っていれば特に気にしなくてもいいとは思います。
で、これを解決するためには下記のようにちゃんとプロパティを設定してやればOKでした。
ga('send', { hitType: 'pageview', title: 'テストタイトル', page: '送信するページのURL' });
コマンドの挙動は推測を当てにせずちゃんと検証しなきゃな…と反省しました。