WordPressで会員サイトなどを活用しているときに、登録ユーザ毎のトラッキングを行う方法をご紹介します。
User ID機能を使ってユーザの動きをトラッキングする(WordPress登録済みユーザの追跡)
WordPressのプラグインであるBuddyPress
を活用して会員サイト(みたいなもの)を作っているのですが、ユーザごとの行動をトラッキングしたいという要望がありました。
BuddyPress
やWP Security Audit Log
でもログイン履歴や編集履歴などは取得できるのですが、どのページにアクセスしたかという粒度でログ取りできるものが見当たらなかったのでGoogleアナリティクスのUser-ID機能
を使うことにしました。
【Googleアナリティクス User-ID機能】
User-ID とは、個々のユーザーに永続 ID を付与し、そのユーザーのエンゲージメント データを、セッションやデバイスをまたいで識別する仕組みです。解析ソリューションが一意のユーザー ID によってユーザーを判別できるため、レポートに表示されるユーザー数の精度が向上します。
(Googleアナリティクス ヘルプページより抜粋)
今回はWordPressのユーザごとに割り振られているユーザIDを識別子として、各ユーザのアクセス履歴を管理できる状況を目指します。
WordPressのUser-IDを指定
ということで、GoogleアナリティクスのUser-ID機能を利用していくわけですが、基本的には以下のページを参考に致しました。下記の手順に従って、まずはUser-IDを識別してログ取りできるところまでご調整をお願いいたします。
【WordPressのユーザIDを指定する】
その上で、WordPressのヘッダーファイルのの直上に以下を埋め込んでいます。
<!-- For Track User Log -->
<script>
window.dataLayer = window.dataLayer || [];
dataLayer.push({
'uid' : <?php echo get_current_user_id(); ?>
});
</script>
<!-- Google Tag Manager -->
<script>(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start':
new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0],
j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src=
'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f);
})(window,document,'script','dataLayer','★コンテナスニペットを埋める★');</script>
<!-- End Google Tag Manager -->
#14行目にはご自身のGoogleタグマネージャーのスニペットを指定してください。
5行目の’uid’ : <?php echo get_current_user_id(); ?>
の部分にて、変数uidに対してページアクセスしているユーザのWordPress上のユーザIDを渡すようにしています。
無事に設定が終えたあと、[オーディエンス] → [ユーザエクスプローラ]を選択すると、以下のようにユーザID毎のログが出力されるようになります。
ユーザエクスプローラへのログ反映はほぼタイムラグもないため、数分立ってもログが出力されない場合は設定が間違っている可能性が高いので見直しを行ってください。
なお、それぞれのIDのリンクをクリックすると、ユーザごとに履歴をトラッキングすることができます。
(参考)デバッグ用ツール
Chromeの拡張機能である、Tag Assistant (by Google) をブラウザに入れておくと、User IDが意図するとおりに取得できているかなど確認できるので作業が捗るかもしれません。行き詰まったらまず入れてみてください。