iPhoneのSafariのクリックをGAのイベントで計測する方法:メモ

悩み
悩み

iPhoneのSafariでクリックを計測する際のメモ。Androidの4.2などの他のスマートフォンでも確認はしていますが、一応メインはiPhoneのSafariです。計測はGoogle Analyticsで行います。

いろいろ情報を探していましたが、とりあえずこの記事の書いた方法で落ち着きました。

似たような情報は日本語でもあったのですが、内容が古かったり、動作しなかったり(動かないのは私の記述ミスだとは思いますが)で、結局海外のサイトに頼った次第です。

なお、この記事は2015年1月現在の情報です。この記事のご覧いただいた日付や年度によっては役に立たない可能性がありますから、その場合は違うサイトを探されることをお勧めします。

[2015.10.26追記]
別の記事で書きましたが、この記事の方法を用いた場合にiOS9ではリンクが動作しなくなることがわかりました。
バグなのかもしれませんが、onclick系でスパムサイトに飛ばされるのを防ぐために、こういったリンク移動前に処理を行う類いのものを使えなくしているという話も目にしましのたで、今後もこのままでは使えないかもしれません。
aタグによるリンクを殺してから、計測後に無理矢理推移させる形が良いのかどうなのか。

[2016.8.3追記]
現状では計測漏れもあまりなさそうな方法がわかりましたので、「タグマネージャーを利用する」を追加。

[新版]タグマネージャーを利用する

以前はjsのonclickやontouchstartをリンクに設定してクリックを計測しようとしていましたが、現在はGoogleのタグマネージャーを利用しています。

iPhone実機で確認したところ、テストでは100%計測ができました。

調査としては試行回数が少ないので、実際には漏れが存在する可能性を考慮しましても、現状ではかなりいい精度だと期待できそうです。

タグマネージャーはあまり使い慣れていないので試行錯誤中ですが、aタグにクラスを振って「ClickClasses」の値を取得すれば、各ナビの利用実態は計測できます。

ページ内のリンク(例えば記事中のテキストリンク)を個別に場所が分かるように計測するためには、今の所は個別にクラスを付与していくしかないのかなと思っています。

jsでaタグに連番クラスを振るのが楽ですしソースを汚さないで済みますが、サイトの表示速度と計測の必要性と手動で振る場合のコストを比較して検討したほうが良さそうです。

[旧版]iPhoneのSafariでクリック(タッチ)を計測する方法

いきなり結論ですが、以下の方法で計測しています。


onclick="var href = this.href; ga('send','event','subnav','click', this.href, {'hitCallback': function(){document.location = href;}}); return false;"

上記の記述をaタグの中に書けば動作します。
これは、以下のサイトを参照しています。

上記のページの「How do you use hitCallback?」の段落に前述のことが書かれています。

基本的にはhitCallbackを新GAで使いつつ、URLをthisで取得していちいち記載する手間を省く、という方法です。

onclick内でいろいろ書けるものなのですね…。

スマートフォンでのイベントラッキング

今回やっと実現できましたが、ここに至るまでにかなりの時間を要しました。

  • onclickのみではほとんど計測できない
  • hitCallbackとontouchstartの組み合わせでは、触れただけでページ推移してしまい計測できない
  • hitCallbackとontouchendの組み合わせでも、指を離したらページ推移してしまい計測できない

その時々で妥協的に試していましたが、いずれも害があったり計測漏れがはげしかったりであまり役に立ちませんでした。

GAに関する記事は多いのですが古いものしか検索にかからなかったりで、それを元にしたカスタムも上手くいかず、という有様です。PC用の情報は多くありますが、スマートフォンのクリック計測に関してはどうも微妙な印象です。

結び

イベントトラッキングは解析の基本の1つでもありますし、すんなりできないことが情けないやら悔しいやら…。
同じスマートフォンでもブラウザやOSで動いたり動かなかったりしますが、せめて各スマートフォンのデフォルトブラウザぐらいは簡単に計測できて欲しいものです。

自分以外は皆できている、という状態だと思います。この記事は他に方にはあまり意味はないでしょう。より良い方法をご存知の方もいるでしょうし、どこかでそういう記事があるかもしれませんし。

とはいえ、そこに辿り着けずより良い方法も分からずなので、とりあえず現時点ではこの方法が精一杯という感じです。

1人がこの記事を評価

役に立ったよという方は上の「記事を評価する」ボタンをクリックしてもらえると嬉しいです。

連投防止のためにCookie使用。SNSへの投稿など他サービスとの連動は一切ありません。

コメント欄