スタートアップのための「お金と時間がかからない」ログ分析基盤

Housmart高松です。

「ログ分析基盤」というと、すでにかなり大きいサービスでの事例がSlideShareなどで共有されているのをよく目にしますが、 立ち上がったばかりのサービスに適用するには”too much”な内容となっていることが多いかと思います。

そこで今回は、まだユーザが少ないフェーズでも 「お金と時間をあまりかけずに」 導入できるログ分析基盤について、カウルでの事例をご紹介いたします。

小規模のサービスであってもログをしっかりと収集・分析してサービスの改善に役立てていくことは非常に大切なことです。
一方で、データ収集のためのJavascriptの開発やWebサーバの構築と管理、データストアやデータ処理基盤の選定や設定などに専属で人を割くことができないのもスタートアップの実情ではないでしょうか。

そこでカウルでは 安価に利用できるSaaSをいくつか組み合わせることで、簡単に始められて、かつ要求を十分にみたせる環境を構築 しています。


前提

カウルは中古マンションをお得に購入・売却できるWeb不動産サービスを運営しています。
現状としては、サービス開始から3ヶ月で登録ユーザ数が1000人弱、日々<100ユーザがアクティブにサイトに訪れています。

また、今回の選定にあたっては前職での知見をもとにデータの具体的な利用用途やシステムの運用コストまで考慮に入れるよう心がけました。
(前職では国内大手のECサイトでログデータの広告利用を主な業務としていました。過去データを使った広告クリック率の予測、レコメンドロジックを用いたパーソナライズド広告、その他データマーケティング活動の支援など)


全体概要

カウルではユーザ獲得の流れとして

  • 自社メディア or 広告経由でランディングページに集客する
  • ランディングページからトライアルユーザになってもらい
  • 2週間の無料トライアル期間を提供し
  • トライアル期間後、料金プランを選択してもらい本登録ユーザになってもらう

というステップを作っています。

なのでログ分析基盤もそれに合わせて

  1. 集客からトライアルユーザになるまで
  2. トライアルユーザになってから本登録ユーザになるまで

の大きく2つに分けて別々のサービスを利用しています。


1. 集客からトライアルユーザになるまで

このステップでは主に以下の切り口でデータを見ています。

  • 日々のアクセス数とコンバージョン数のトラッキング
  • 検索からの流入数とコンバージョンの計測
  • ランディングページの改善(ユーザの滞在時間、ランディングページがどこまで読まれているか、コンバージョン率の計測)
  • 自社メディア(マンションジャーナルカウルライブラリー)からの流入とコンバージョンの計測
  • 広告施策の効果測定

ここではツールとしてi Google Analytics(GA) を用いています。

検索や広告からの流入の効果計測を網羅的かつ簡単に計測するという点でやはりGAは優れたツールなので、カウルでも積極的に活用しています。
基本的に すべて無料で利用できる 点、画面から アカウント設定をしてページにタグを埋めるだけで利用開始できる 点も利用者としては非常に嬉しいです。

GAは利用している方も多いと思うので詳細な説明は割愛しますが、中でもおすすめしたい設定をいくつか挙げてみます。

Google Tag Manager(GTM)の利用

GTMはGoogleが提供する無料のタグコンテナツール(タグを一元管理でき、色々な条件に合わせてタグを出し分けてくれるツール)です。
無料にもかかわらずタグのプレビュー機能やバージョン管理もついており、頻繁にコードを書き換えるスタートアップの環境においてアプリケーションと各種トラッキングタグを非同期にメンテナンスできることは大きなメリットだといえるでしょう。
GAのタグに変数を渡す際に「data layer」という層を経由するなど、若干特殊な知識が必要になりますが、広告も含めたトラッキングタグ管理全体としての見通しも良くなるので是非導入をおすすめします。

参考)
Google タグマネージャヘルプ - Google タグマネージャの概要
GoogleタグマネージャでGoogleアナリティクスのタグを管理する方法!

カスタムキャンペーンパラメータの利用

各種広告の効果測定をキャンペーンごとに切り分けるためにGoogle Analyticsが公式でサポートしているパラメータです。
通常は広告キャンペーンの効果測定に使うように説明されていますが、カウルでは自社メディアからの流入の切り分けにもこのパラメータを使用しています。
公式でサポートされているパラメータなので、遷移元のURLに一度設定しておくと、特にレポートのカスタムをすることなくPV数やコンバージョン数を流入元ごとに切り分けることができます。
この機能を用いて自社メディアのどんな記事がコンバージョンにつながりやすいかなど、記事ごとの分析に役立てています。

参考)
Google アナリティクスヘルプ - カスタム キャンペーン
Google アナリティクスで広告からのアクセスを計測する方法

ランディングページのスクロールの計測

カウルでは扱う商品が高額であるということもあり、ランディングページでより多くの情報を提供して安心してトライアルユーザになってもらうために、かなり縦長のランディングページを用意しています。
縦長のランディングページの効果測定と改善においては、どのセクションにどのくらいユーザが滞在したか、どこまでスクロールして見てもらえたかが重要な指標となってきます。
そこでカウルではscrolldepthというJavascriptライブラリをGA/GTMと組み合わせて利用しています。

参考)
http://scrolldepth.parsnip.io/
How to install Scroll Depth Tracking with Google Tag Manager [動画]

クロスデバイスビューの設定

トライアル期間中のユーザに対する深い分析は、後半で記載する別のSaaSを利用して行っているのですが、大まかな傾向を見るのにはGoogle Analyticsのクロスデバイスビューも有効です。
GTMのdata layerを経由してGAにシステム内のユーザIDを連携し、クロスデバイスでのユーザトラッキングを可能にします(同一のユーザがPCとスマホでアクセスした場合にも同一ユーザとみなしてレポートが見られます)。
また、私自身はまだ試せていないのですが、ユーザIDごとに時系列でユーザの行動を見れる「ユーザエクスプローラ」という機能が2016年春からβ版で公開されており、こちらの機能も期待できそうです。

参考)
Google アナリティクスヘルプ - User ID 機能について
【Googleアナリティクス】ユーザーエクスプローラーの使い方

GAまわりのドキュメントは日本語でたくさんあるのですが、内容が古いものも散見されるため、おかしいなと思ったら公式のドキュメントを参照することをおすすめします。


2. トライアルユーザになってから本登録ユーザになるまで

続いて、トライアルユーザが本ユーザになるまでのデータ収集と活用について説明します。
このステップでは主に以下の内容でデータを分析しています。

  • ユーザ一人ひとりのサイト上での行動の定性的・定量的な評価
  • サイトからの通知(メール、メッセンジャー)に対する反応の評価
  • 有料会員化したユーザの行動パターン分析
  • ユーザがどこでサイトの利用をやめてしまうかの分析

ここでは keen.ioというログ収集基盤を提供しているSaaS を、周辺のツールと組み合わせて使用しています。

keen.ioとは

2011年に創業されたシリコンバレーにある企業のプロダクトで、UnityやAdobe、O’REILLYなど有名企業も複数使っているようです。

使い方は簡単で、keen.ioが公開しているAPIにログの書き込みリクエストを送るだけで、データの記録とストアを行ってくれます。自社でのWebサーバやストレージの管理は不要です。
keen.ioのサイトからアカウント作成後、CommonWebというkeen.io公式のログ収集用Javascriptライブラリをサイトに導入し(このときバックエンドにkeen.ioのSaaSを指定します)、APIキーを設定するだけで導入は完了です。

CommonWebの基本的な機能として、PageView・Click・FormSubmissionをすべて記録できるので、サイト内の行動トラッキングとしては一旦はこれで十分かと思います。

貯まったデータに対して専用のUIからクエリングができるほか、API経由でもクエリングや生ログのCSVダウンロード・S3へのロードをサポートしています。
手元のPythonなどで処理する場合はCSVダウンロードしたものを処理するようにしています。
将来的にデータが大きくなったとしてもkeen.io→S3→EMR(もしくはBigQuery)の流れで処理できると予想しています。

また、APIのクライアントも各種言語(CURL / JS / RUBY / PYTHON / PHP / JAVA / .NET)でサポートされているため、自社のRailsアプリからログを記録したり、JavascriptとHTMLで自作のダッシュボードも簡単に作成することができます。
(APIドキュメントはこちら

keen.ioを採用した理由

以下の(わがままな)要求や要件をすべてクリアしていたのがkeen.ioを採用した理由です。

  • サイト上のユーザ行動をすべてトラッキングしたい
  • サイト上のユーザ行動だけでなく、サイトからの通知(メール、メッセンジャー、プッシュ通知)のログも一元管理したい
  • 溜まったデータに対して簡単な集計クエリを投げたい(KPIダッシュボードのデータストアとしても使いたい)
  • 整形された生データをダウンロードしてきて機械学習などの入力としたい
  • サイト上のユーザ行動データ収集用のJavascriptを書くのが面倒
  • ログを記録するためのWebサーバの構築・管理もやりたくない
  • とにかく楽に作りたい
  • とはいえお金はあまり掛けられない

他にも代替案はあるかと思いますが、基本的には、
– タグを入れるだけで導入が簡単にできる一方で、生ログへのクエリングやダウンロードには対応していない「マーケター」用のツール(Mixpanelなど)を採用するか
– fluentdなどのOSSを利用しつつ足りないツールやコードを内製で作りながらBigQueryやS3にデータを流し込むか
の2択になるかと思います。

前者だと要件が満たせず、後者だと構築や運用に手間がかかってしまうという点が懸念となり、今回はkeen.ioを採用しました。

(TreasureDataは上記をほとんどクリアしていて非常に魅力的なのですが、立ち上げたばかりのサービスで導入するには料金が少々お高いようでしたので今回の採用は見送りました。)

費用について

気になるお値段ですが、一ヶ月あたりに記録するイベント数により料金が決まる仕組みになっており、サポートが無いプランであれば 月間5万イベントまでは無料 で利用できます。

無料枠を超えても10万イベント/月までは月額$20、100万イベント/月までは月額$125と安価で、クエリングに対しての課金は発生しないなど、自前でサーバを構えることを考えると導入するコストメリットは十分にあるのではないかと思います。
(料金について詳しくはこちら

Sendgrid(メール配信SaaS)との連携

もう一つおすすめしたい機能はSendgridとの連携です。
Sendgridはメールの配信から開封・クリックの計測までを一括して行ってくれるSaaSです。加えてメールがスパム判定されていないかを確認する機能や、ユーザごとのメール配信停止機能を提供しています。

カウルでもメール配信にSendgridを使用しているのですが、keen.ioとSendgridは効果測定の機能がインテグレーションされているため、 設定を一つ入れるだけでメール関連のイベントもすべてkeen.ioのデータストアに集約することができます
参考)SendGrid Integration

この機能のおかげで、どのユーザにいつどんな内容のメールを送って、その結果ユーザがどのような行動を取ったか を簡単なシェルコマンド一つで抽出することが可能になっています。

USER_ID=123 && sort \
  <(jq -r '.result[] | [.keen.timestamp, "pageview", .page_url] | @tsv' \
    <(curl "https://api.keen.io/3.0/projects/${PRJ_ID}/queries/extraction" -H "Authorization:${API_KEY}" -H 'Content-Type: application/json' -d "{\"event_collection\":\"pageviews\",\"timeframe\":\"this_14_days\",\"filters\":[{\"property_name\":\"user_id\",\"operator\":\"eq\",\"property_value\":${USER_ID}}]}")) \
  <(jq -r '.result[] | [.keen.timestamp, .event, .category] | @tsv' \
    <(curl "https://api.keen.io/3.0/projects/${PRJ_ID}/queries/extraction" -H "Authorization:${API_KEY}" -H 'Content-Type: application/json' -d "{\"event_collection\":\"Sendgrid Email Events\",\"timeframe\":\"this_14_days\",\"filters\":[{\"property_name\":\"user_id\",\"operator\":\"eq\",\"property_value\":${USER_ID}}]}"))

# 出力結果サンプル
2016-04-06T09:37:34.000Z        processed       【カウル】メールアドレスの認証を行ってください
2016-04-06T09:37:39.000Z        delivered       【カウル】メールアドレスの認証を行ってください
2016-04-06T09:37:46.000Z        open    【カウル】メールアドレスの認証を行ってください
2016-04-06T09:37:49.000Z        click   【カウル】メールアドレスの認証を行ってください
2016-04-06T09:37:52.287Z        pageview        https://kawlu.com/market/profile/new
2016-04-06T09:38:16.594Z        pageview        https://kawlu.com/market/requirements/new
2016-04-06T09:38:28.107Z        pageview        https://kawlu.com/market/subscription/thankyou?course_id=2
2016-04-06T09:39:35.410Z        pageview        https://kawlu.com/market
2016-04-06T09:39:47.010Z        pageview        https://kawlu.com/market/messages
2016-04-06T09:39:51.971Z        pageview        https://kawlu.com/market/conds/manage
2016-04-06T09:39:53.867Z        pageview        https://kawlu.com/market/conds/new
2016-04-06T09:40:17.000Z        processed       【カウル】新しいマンションの紹介があります
2016-04-06T09:40:20.000Z        delivered       【カウル】新しいマンションの紹介があります
2016-04-06T09:40:54.000Z        pageview        https://kawlu.com/market/messages
2016-04-06T09:40:57.619Z        pageview        https://kawlu.com/market
2016-04-06T09:40:59.388Z        pageview        https://kawlu.com/market/wishlists
2016-04-06T09:41:04.784Z        pageview        https://kawlu.com/library


まとめ

今回は立ち上げたばかりのサービスでも導入できるログ分析基盤についてご紹介いたしました。
新規ユーザ獲得までの分析にはマーケティング方面に強いGoogle Analyticsを、無料ユーザを有料会員化するためのより深い分析にはkeen.ioを導入しています。

実際の導入には実働で丸4日程度(上記の調査も全て含めた稼働日数)、利用料金は今のところGoogle Analytics・keen.ioともに無料で使えています。

実際に導入してからまだ2ヶ月弱なのですが、現時点ではかなり快適に使えています。
運用していく中での知見などあればまた書きます。


REALITY - 不動産売買市場をディスラプトするHousmart、不動産を買いたい人が本当にハッピーになるサービス 「カウル」をローンチ。

【カウル】仲介手数料無料の中古マンション売買サービス