10
6

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

Google Analyticsでシンプルにコンバージョンを計測し、slackに投稿する

Last updated at Posted at 2017-12-11

この記事はPORT Advent Calenderの11日目です。


PORT株式会社でエンジニアをしている@kehondaです。(Qiita初投稿)
ちょっとドキドキですがよろしくお願いします。

#前置き
私の所属しているチームは、Webサービスの保守・運用を行なっています。
例えば、日々の運用の中で

  • その機能は、ユーザに適切に利用されているのか
  • その機能は、収益を得られているのか

を知りたいとき、社内のディレクターやマーケターにデータ集計を任せてしまった事が多かったです。
しかしながら、ちょっとした調整や、エンジニア主導での機能実装などの場合には特に、エンジニアも計測したいですよね。

そんな経緯で、今まで何となくしか利用していなかったGoogle Analyticsを積極的に利用を試みることにしています。
その中でも、私が業務で実践している、Google Analyticsを用いたシンプルなコンバージョンの計測手法に関して紹介したいと思います。

#手段
今回は例として、対象のWebサービスをイベント申し込みサービスとします。

何を計測するか

マイページにある「イベント検索機能」からどれくらいのユーザがイベントを検索し、イベント申し込みまで行なっているのか

どこで計測するか

Google Analyticesで

どんな目的で計測するか

マイページのイベント検索機能の使用状況を知り、改善をしていきたいから

どうやって計測するか

Google Analyticsのセグメント(シーケンス)を利用してみる

誰が計測するか

チームメンバー全員が計測できるようにしたい

いつ計測するか

日次で計測したい

1. 計測

ユーザーサマリーなどを開いて、セグメントを追加

スクリーンショット 2017-12-11 21.13.32.png

新しいセグメントをクリック

スクリーンショット 2017-12-11 21.14.42.png

ここで色々な条件を指定してセグメントを行えます。
ここまではよくあるかと思いますが、今回利用するのはシーケンスです。
同一セッション内(もしくは同一ユーザ内)で、条件のステップを指定できます。
ここでは、マイページに訪れて->検索ページに遷移して->イベントに申し込んだ条件を指定してみます。

ここでonClickのイベントタグやディメンションを利用することでより精度の高い計測もできそうです。

スクリーンショット 2017-12-11 21.26.15.png

今回シーケンスをセッションとしていますが、アナリティクスでのウェブ セッションの算出方法を見る限り、デフォルトは30分、もしくは他のキャンペーンからの流入(google検索なども別キャンペーンとなる)は別セッションになるので、精度は悪くなさそうです。

そして名前をつけて保存。

スクリーンショット 2017-12-11 21.26.35.png

これで新しいセグメントができました。

あとはこのセグメントを使用するだけで、事前にマーケティングタグの設置や目標設定を行わずに、条件に合致したユーザがどれくらい存在するかを知る事ができました。

#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つめのタブにレポートが出力されるのでグラフを作っておきましょう。

スクリーンショット 2017-12-11 22.28.08.png

※数値はフィクションです
スクリーンショット 2017-12-11 22.28.24.png

最後に、このレポーティングが自動で取得される様にスケジューリングをします。
スクリーンショット 2017-12-11 22.27.42.png

GoogleAppsScript

出力されたグラフをslackに投稿するスクリプトをGoogleAppsScriptで実装します。

sample.js
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番目のグラフ
  • tokenBots作成時に取得できるtoken

また、毎日朝9~10時に実行する様にします。

スクリーンショット 2017-12-11 21.53.28.png

#3. 結果
slackに通知されるようになりました。これでチームメンバーもwatchしてくれますね。

スクリーンショット 2017-12-11 22.00.46.png

まとめ

いたって簡単で、目新しくもない方法を紹介してしまいましたが、この方法を応用してセグメントの条件を細かく設定したり、eコマースとの連動をすることによって、知りたい情報をより直感的に得ることができ、Webサービスの改善をするモチベーションを上げられそうですね。

次回のGoogle Analyticsのネタは目標到達プロセスあたりを深めて共有できればと思います。


最後になりますが、PORT株式会社では自社サービスを支えてくれる優秀なRubyエンジニアを募集しています(Rubyエンジニア以外も)。
もくもく会も行なっていますので、ぜひ一緒にもくもくしましょう!
PORTもくもく会

PORT Advent Calendarはまだまだ続きます。乞うご期待!

10
6
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
10
6

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?