PHPでGoogleアナリティクスにトラッキング情報を送りたい

f:id:akase244:20170510094603j:plain

こんにちは、@akase244 です。

会員登録時に認証URLを発行してメール送信を行い、届いたメールに記載されているURLを踏んだ際に会員登録が完了するといった仕組みをみなさんも一度は作ったことがあるんじゃないでしょうか。

この「認証URLにアクセスした」という状態をコンバージョンとしてGoogleアナリティクスに計測させたいというのもよくある要望です。

今回はこのようにサーバー側からGoogleアナリティクスにトラッキング情報を送信する方法を説明します。

GoogleアナリティクスはSPA(Single Page Application)のようにURLに変化が無い状態で処理が完了する画面であったり、先述したメール認証機能のような画面を持たない場合には、「Measurement Protocol」というサーバー側からトラッキング情報を送信できる仕組みが提供されています。

使い方は簡単で、まずこのような関数を準備します。(このサンプルコードはLaravelのアプリケーションディレクトリ直下に関数ファイル(helpers.php)を配置し、その中でnotify_to_analyticsという通知用の関数を定義している例です)

gist.github.com

あとはトラッキング情報を送信したいタイミングで以下のように呼び出すだけです。

notify_to_analytics('activate_register');

通知がうまくいくとこんな感じにGoogleアナリティクスの画面で計測状態が確認できます。 f:id:akase244:20170509204053p:plain

トラッキング情報送信時のパラメータについてはリファレンスを見ていただくとよいかと思いますが、特徴的なのはcid(クライアントID)の部分でしょうか。

この値はリファレンスによると「ランダムな UUID(バージョン 4)である必要があります」とのことです。 今回はUUIDの部分を自力で書いてますが、こういったライブラリを使うのもありだと思います。

と、ここまで説明してきてアレですが、このような処理をラップしたtheiconic/php-ga-measurement-protocolのようなライブラリもあるので、自作は面倒だという方はcomposerでサッと入れちゃうという選択肢もあります。