この記事はPORT Advent Calenderの11日目です。
PORT株式会社でエンジニアをしている@kehondaです。(Qiita初投稿)
ちょっとドキドキですがよろしくお願いします。
#前置き
私の所属しているチームは、Webサービスの保守・運用を行なっています。
例えば、日々の運用の中で
- その機能は、ユーザに適切に利用されているのか
- その機能は、収益を得られているのか
を知りたいとき、社内のディレクターやマーケターにデータ集計を任せてしまった事が多かったです。
しかしながら、ちょっとした調整や、エンジニア主導での機能実装などの場合には特に、エンジニアも計測したいですよね。
そんな経緯で、今まで何となくしか利用していなかったGoogle Analyticsを積極的に利用を試みることにしています。
その中でも、私が業務で実践している、Google Analyticsを用いたシンプルなコンバージョンの計測手法に関して紹介したいと思います。
#手段
今回は例として、対象のWebサービスをイベント申し込みサービス
とします。
何を計測するか
マイページにある「イベント検索機能」からどれくらいのユーザがイベントを検索し、イベント申し込みまで行なっているのか
どこで計測するか
Google Analyticesで
どんな目的で計測するか
マイページのイベント検索機能の使用状況を知り、改善をしていきたいから
どうやって計測するか
Google Analyticsのセグメント(シーケンス)
を利用してみる
誰が計測するか
チームメンバー全員が計測できるようにしたい
いつ計測するか
日次で計測したい
1. 計測
ユーザーサマリーなどを開いて、セグメントを追加
新しいセグメント
をクリック
ここで色々な条件を指定してセグメントを行えます。
ここまではよくあるかと思いますが、今回利用するのはシーケンス
です。
同一セッション内(もしくは同一ユーザ内)で、条件のステップを指定できます。
ここでは、マイページに訪れて
->検索ページに遷移して
->イベントに申し込んだ
条件を指定してみます。
ここでonClickのイベントタグやディメンションを利用することでより精度の高い計測もできそうです。
今回シーケンスをセッション
としていますが、アナリティクスでのウェブ セッションの算出方法を見る限り、デフォルトは30分、もしくは他のキャンペーンからの流入(google検索なども別キャンペーンとなる)は別セッションになるので、精度は悪くなさそうです。
そして名前をつけて保存。
これで新しいセグメントができました。
あとはこのセグメントを使用するだけで、事前にマーケティングタグの設置や目標設定を行わずに、条件に合致したユーザがどれくらい存在するかを知る事ができました。
#2. 可視化
毎日googleアナリティクスを見に行くのは面倒で続かないので、
集計できた情報を測定してグラフ化し、Slack
のチャンネルに日次で投稿してみます。
GoogleスプレッドシートとGoogleAppsScriptを利用します。
Googleスプレッドシート
Google Analyticsアドオンを使用します。詳しい設定方法は割愛します。
Create New Report
を実行すると、Report Configuration
が生成されるので、そこでの設定例を記載します。
Configuration Options | Your Google Analytics Reports |
---|---|
Report Name | マイページの検索からコンバージョンしたユーザ |
Type | core |
View (Profile) ID / ids | ga:< id > |
Start Date | 10daysAgo |
End Date | yesterday |
Last N Days | |
Metrics | ga:sessions |
Dimensions | ga:Date |
Sort | |
Filters | |
Segment | gaid::< hogehoge > |
Sampling Level | |
Start Index | |
Max Results | |
Spreadsheet URL |
Metricsにga:sessions
、Dimensionsにga:Date
、またSegmentにgaid::< hogehoge >
を設定してみます。
設定するパラメータは、特にSegment等はgaidとかでよくわからないんで、ここで見ると補完してくれて便利でした。
https://ga-dev-tools.appspot.com/query-explorer/
完了したら、一度レポートを作成します。2つめのタブにレポートが出力されるのでグラフを作っておきましょう。
最後に、このレポーティングが自動で取得される様にスケジューリングをします。
GoogleAppsScript
出力されたグラフをslackに投稿するスクリプトをGoogleAppsScriptで実装します。
function myFunction() {
var mySheet = SpreadsheetApp.openById('< ID >').getSheets()[1];
var chartImage = mySheet.getCharts()[0].getBlob().getAs('image/png').setName("chart.png");
var filesUpload = 'https://slack.com/api/files.upload';
var payload = {
'token' : '< token >',
'channels': 'sample_channel',
'file': chartImage,
'filename': 'chart.png',
'initial_comment':'マイページの検索からコンバージョンしたユーザ'
};
var params = {
'method' : 'post',
'payload' : payload
};
var response = UrlFetchApp.fetch(filesUpload, params);
}
-
openById
の引数はhttps://docs.google.com/spreadsheets/d/!これ!/edit
-
.getSheets()[1]
は前から2番目のタブ -
getCharts()[0]
は1番目のグラフ -
token
はBots作成時に取得できるtoken
また、毎日朝9~10時に実行する様にします。
#3. 結果
slackに通知されるようになりました。これでチームメンバーもwatchしてくれますね。
まとめ
いたって簡単で、目新しくもない方法を紹介してしまいましたが、この方法を応用してセグメントの条件を細かく設定したり、eコマースとの連動をすることによって、知りたい情報をより直感的に得ることができ、Webサービスの改善をするモチベーションを上げられそうですね。
次回のGoogle Analyticsのネタは目標到達プロセス
あたりを深めて共有できればと思います。
最後になりますが、PORT株式会社では自社サービスを支えてくれる優秀なRubyエンジニアを募集しています(Rubyエンジニア以外も)。
もくもく会も行なっていますので、ぜひ一緒にもくもくしましょう!
PORTもくもく会
PORT Advent Calendarはまだまだ続きます。乞うご期待!