こんにちはオズビジョンの卜部です。
Web サービスを運用されているのであれば、KPIなどで、各種指標を調べるために Google Analitycs を使っている企業は多いのではないでしょうか。
今回、ハピタスのヘルプで表示しているハピタスのテスト時のメインのOSバージョン、ブラウザの算出をできるかぎり簡単に出したいという(俺のw)要求があり、 Re:dash を使うことで満たせたので、紹介します。
算出をするためのサンプルコードも gist に用意したので、よければ加工するなりして、使ってみてください。
要求
- 今まで以下のような手順で、PCのテストブラウザ, iOS, Android のテスト対象のOSを算出するのに、GA から CSV でダウンロードして、スプレッドシートで加工して、算出していた。この算出を Re:dash に算出させる。いつでも誰でも正しい情報が出せるようにする。
要件詳細
PC テスト環境
- PC 画面のアクセスに iOS, Andorid が混ざっているが除外する
- PC サポートブラウザで上位95% 以上となるブラウザをサポート対象とする
- 過去30日前から昨日分までの期間を対象に結果を出す
SP OS テスト環境
- iOS, Andorid はそれぞれ分ける (これら以外の OS のユーザ数は僅かであるため除外)
- バージョン表記は
10.0.0 (A.B.C)
のようになっているが、 そのうち、A. メジャーバージョン
,B. マイナーバージョン
で丸め込み集計する。C. メンテナンスバージョン
までは見ない - 過去30日前から昨日分までの期間を対象に結果を出す
前提
- Re:dash のバージョン 5 以上
- データソースに Google Analytics, Python が選べるバージョンである
- Python が軽くさわれる
- 環境と権限
- A
- GCP のサービスアカウントを作成できる権限、Google Analitics API を有効にできる権限がある
- Google Analytics で上記 GCPサービスアカウントをユーザとして追加できる権限がある
- Re:dash の権限で データソースを作成でき、作成したサービスアカウントの json キーファイルを登録できること
- B
- 権限がなくても、上記設定が適用された環境がそろっていること
- A
- Re:dash 上で Re:dash のドキュメントに沿って、Google Analitics のデータソースを追加していること
- Re:dash 上で Python データソースを有効にし、 re (正規表現モジュール) を少なくとも有効にしておくこと
説明しないこと
- Re:dash の環境の構築
- Google Analytics の設定
- データソースの Google Analitics、 Python の設定
作った
PC サポートブラウザ
https://gist.github.com/oz-urabe/e8e7abf5fdd748a8a2394ac6d17f503b
これを、Python のデータソースを選択し、クエリを作成します。
この内、先頭にある json 形式のクエリですが、 ids の ga:66453283
のまま記載すると動かないです。みなさんの GA の id を記載してください。
query = '''
{
"ids": "ga:66453283",
"start_date": "30daysAgo",
"end_date": "yesterday",
"metrics": "ga:users",
"dimensions": "ga:operatingSystem,ga:browser",
"sort": "-ga:users"
}
'''
また以下のように記載していますが、ハピタスではデータソース名を Google Analytics
としているので、このように記載していますが、使われている Re:dash のデータソース名が人によっては GA
だったりすると思うので、それに合わせてもらえればOKです。
data = execute_query('Google Analytics', query)
SP OS バージョンシェア
https://gist.github.com/oz-urabe/795ae3189c4115e14dad038cfa6e3b49
これを、Python のデータソースを選択し、クエリを作成します。
ids のところと、データソース名を環境に合わせて修正していただくのは同じです。
追加で "filters": "ga:OperatingSystem=~iOS"
とありますが、これは OS 名での絞り込みです。 Android で集計する場合は "filters": "ga:OperatingSystem=~Android"
とします。
query = '''
{
"ids": "ga:201135853",
"start_date": "30daysAgo",
"end_date": "yesterday",
"metrics": "ga:users",
"dimensions": "ga:operatingSystemVersion",
"sort": "-ga:users",
"filters": "ga:OperatingSystem=~iOS"
}
'''
実行結果
これらのクエリを登録し、実行した結果は以下のようなイメージになります。(ダッシュボード化しました)
協力者
@terra_yucco さんには GA 用のクエリ作成を手伝っていただきました。ありがとうございました!