GoogleAnalyticsでアプリのバージョン別にセグメントする
【おことわり】
ここで紹介しているアプリ向けのGoogleAnalyticsはすでに終了していますが、正規表現を使ってバージョン情報によってセグメントする手法自体はどこかで何かの役に立つかもしれないので記事はそのまま残しています。あしからずご了承下さい
EAPにはGoogleAnalyticsによる計測が標準で入っている、という話は最近ちょいちょいブログに書いているのでもう聞き飽きた感あると思いますが、今回はそのGoogleAnalyticsのTIPS話です。
モバイルアプリ用のGoogleAnalyticsには、標準でアプリのバージョン別のレポートを表示するビューがあります。アプリ側でちゃんと実装してくれていれば、GoogleAnalyticsの計測値にはこの情報が紐付けられて記録されています。
このバージョン情報はセカンダリディメンションとして利用することもできるので、バージョンごとの数値比較も簡単にできます。
が、GoogleAnalyticsでアプリの分析する場合って「バージョン1.3.0以降ぜんぶ」とか、普通はそういう分類をしたくなるんじゃないかと思います。そういう場合はGoogleAnalyticsのセグメント機能を使うわけですが、「バージョン1.3.0以降」みたいなセグメント設定を作るのって意外と大変です。
力技で作ってみる
まず思いつくのは「1.3.0」以降のバージョンを全てセグメント情報として列挙するというものです。こんな感じ。
しかし、これはもう見るからにスジが悪そう。今後新しいバージョンが出るたびにこのセグメント設定を追加していかないといけない。
これは多少マシ。「1.3.」を含むみたいに、最後に「.」を書くことで「1.1.3」とかが引っかからないようになっててステキ。バージョン1.x系はずらずら書かないといけないけど、2.x系になったら先頭一致で「2.」って書いちゃえば手間も一気に削減! まあ、「1.3」とかも全部先頭一致で書けばよくない? という気もあとからしてきましたが…
でも新しいバージョンが出るたびにセグメント設定を書き換えないといけないのは同じ。根本的に何かがダメな感じします。
ちなみにこのバージョン情報は数値ではないので、「>」とか使って「1.3.0 より大きい」みたいなセグメント設定は作れないです。
正規表現でスマートに
こんな時に便利なのが正規表現。GoogleAnalyticsはセグメント設定するときに正規表現を使うことができます。正規表現については本を読んで勉強しましょう。1つめの本は300ページ、2つめは500ページくらいあります。一家に1冊、ぜひ。
…というのはウソで、一応サンプル用意します。まあ、正規表現のリファレンス本は1冊あると便利ですけどね。
バージョン1.3.0以上でセグメントする正規表現
…をサンプルとして作ってみました。そういえばバージョンがやたら具体的ですが、とある案件でバージョン1.3.0からアプリがリニューアルしてセグメントしないとGoogleAnalyticsの計測値がぐちゃぐちゃで困ってしまったという事例があったわけではありません(白目)
^1\.([3-9]|[1-9][0-9]+)\.([0-9]+)|^([2-9]|[1-9][0-9]+)\.([0-9]+)\.([0-9]+)
これをGoogleAnalyticsのセグメント作る画面で、こんなふうに設定します。正規表現が長すぎて入りきってないですが。
一応解説すると、この正規表現はちょうど真ん中あたりにある「|^」のあたりで場合分けされてます。「|」が前半と後半の区切り、「^」が後半の始まりって感じかと。
前半はバージョン1.3.0以上を表現するために「頭の文字は1.」を決め打ちにして、その次の数字を「3〜9のどれか、または10以上」を指定。その後「. 」の後ろに「0以上の数値」という内容です。
でもこれだけだとバージョンが2.0.0以上になったときに当てはまらなくなるので後半はそれを書いてます。頭の文字は「2〜9のどれか、または10以上のどれか」として、その後は「. 」の後ろに「0以上の数値」を2回繰り返してます。
「0以上の数値」として「00」とか「001」とかも入ってきちゃいますが、ここはまあ目をつぶっても影響は無いかと。あと「10以上の数値」が[1-9][0-9]+としちゃってホントにいいか、普段は正規表現とか全然使ってないのでやや心配です。変だったらどなたかご指摘を。
Regulexという正規表現を可視化してくれる便利なサイトにかけてみるとこんな感じに。多少は理解の助けになりますかね。もっと詳しく知りたい人は書籍とか見てください。正規表現は奥が深すぎて僕ではとても解説できないです。技術的な本もありますし。
追記
早速社内から「こんなんできまっせ」と、もっといい感じのものが。バージョンが「1.3」だったり「2」だったり多少の表記揺れがあっても大丈夫になってたりします。短いのに高性能。
^(1\.([1-9][0-9]+|[3-9][0-9]*)|[2-9][0-9]*|[1-9][0-9]+)(\.[0-9]+)*
さすがすぎるサンプルを作ってくれたやままさんの篠キチ個人的オススメ記事ははこちら
おまけ:本番用アプリと開発用アプリをセグメントする
モバイルアプリ用のGoogleAnalyticsはアプリのバージョン情報と同様に「アプリケーションID」という項目でアプリのバンドルIDとかが取れます。GoogleAnalyticsのトラッキングIDが本番用アプリと開発用アプリで同じ場合でも、バンドルIDが別ならこの情報使ってセグメントすることができたりします。
TOPの画像はぱくたそさんのフリー素材を使わせていただきました。
約3年半にわたり君臨したランチェスター最年長の座を譲り、今はただの猫・鉄道・Perfume好きな不惑おじさん。好きなスタバオーダーはクワットロベンティノーホイップソイホワイトモカ。
TAG
- Android
- AWS
- Bitrise
- CodePipeline
- Firebase
- HTML
- iOS
- IoT
- JavaScript
- KPI
- Linux
- Mac
- Memcached
- MGRe
- MGReのゆるガチエンジニアブログ
- MySQL
- PHP
- PICK UP
- PR
- Python
- Ruby
- Ruby on Rails
- SEO
- Swift
- TIPS
- UI/UX
- VirtualBox
- Wantedly
- Windows
- アクセス解析
- イベントレポート
- エンジニアブログ
- ガジェット
- カスタマーサクセス
- サーバ技術
- サービス
- セキュリティ
- セミナー・展示会
- テクノロジー
- デザイン
- プレスリリース
- マーケティング施策
- マネジメント
- ラボ
- リーンスタートアップ
- 企画
- 会社紹介
- 会社紹介資料
- 勉強会
- 実績紹介
- 拡張性
- 採用
- 日常
- 書籍紹介
- 歓迎会
- 社内イベント
- 社員インタビュー
- 社長ブログ
- 視察
- 開発環境