Translate

2017-01-24

Google Analytics API / PythonでGAのレポートを取得する

Google AnalyticsのReporting APIを使って、Pythonでアナリティクスのデータを取得してみます。
Googleの準備しているページを参考にして作業を進めます。

はじめてのアナリティクス Reporting API V4: サービス アカウント向け Python クイックスタート
https://developers.google.com/analytics/devguides/reporting/core/v4/quickstart/service-py?hl=ja

作業フロー

  1. anacondaで仮想環境を作る 
  2. 必要なライブラリ(モジュール)をインストールする 
  3. サービスアカウントを作成する(認証情報を作成する) 
  4. GoogleAnalyticsの管理画面でサービスアカウントの追加 
  5. サンプルコードを作成する(修正する) 
  6. 実行

#1 anacondaで仮想環境を作る

最初にanacondaでpythonの仮想環境を作ります。私は最初python3.5の環境を作ったのですが、Googleが準備しているサンプルコードは2.x系で書かれていたようで、失敗しました。…ということでpython2.7の環境を準備します。
> conda create --name gaapi27 python=2.7

作成できたかどうかの確認
> conda info -e

# conda environments:
#
gaapi27                  //anaconda/envs/gaapi27
test_a35                 //anaconda/envs/test_a35
root                  *  //anaconda

仮想環境の有効化
> source activate gaapi27

#2 必要なライブラリをインストールする

クライアントライブラリをインストールします。もし、手動でインストールする場合はこちらからダウンロードしてインストールします。
今回はpipを使ってインストールします。
sudo pip install --upgrade google-api-python-client

次に、、、、これは、Googleのクイックスタートには書いてありませんが、上記で作ったanacondaの環境では実行時に次のようなエラーが出ます。普通のopensslパッケージではダメなようです。

NotImplementedError:
This library only implements PKCS#12 support via the pyOpenSSL library.
Either install pyOpenSSL, or please convert the .p12 file
to .pem format:
    $ cat key.p12 | \
    >   openssl pkcs12 -nodes -nocerts -passin pass:notasecret | \
    >   openssl rsa > key.pem
.p12ファイルには対応していないと言っています。これは、後に作成しダウンロードする.p12ファイルを読み込ませる際に困るので、まずこのパッケージをインストールしておきましょう。
pip install pyopenssl

#3 サービスアカウントを作成する

サービスアカウントを作成する前に、Googleのディベロッパーコンソールでプロジェクトを作成しておく必要があります。
https://console.cloud.google.com/home/dashboard
環境によって表示が違うのでダッシュボードの中から [プロジェクトを作成] を選んでください。
https://console.developers.google.com/iam-admin/
ここで作成したプロジェクトの中でサービスアカウントを作成します。
プロジェクトを選択 > +サービスアカウントを作成
サービスアカウント名を入力するとサービスアカウントIDが付与されます。(書き換え可能)@(アットマーク)以降はプロジェクト名などがあるので書き換え不可です。
新しい秘密鍵の提供 > P12を選択作成ボタン
すると、自動的に.p12ファイルがダウンロードされます。後ほど使いますので大切に保管してください。
画面のリストには新しく作成したサービスアカウントIDがあるはずです。メールアドレスの形式になっています。

#4 サービスアカウントの追加

GoogleAnalyticsの管理画面でサービスアカウントの追加を行います。プロジェクトとGAをサービスアカウントを通じて繋げる作業です。
こちらを参考にしてユーザーを追加してください。
連携したいGAのビューを選択します。VIEW_IDを確認しておいてください。
※権限を付与するユーザーのところには先ほどのサービスアカウントIDを入力します。今回の権限には【読み取りおよび分析】を選択しておきます。

#5 サンプルコードを作成する

今回はGoogleのサイトからソースコードをダウンロードして使用します。
ファイル形式が.pyになっていない場合は.pyに書き換えます。
好きな場所にディレクトリを作成し、その中にダウンロードしたHelloAnalytics.pyファイルと.p12ファイルを移動します。同じディレクトリ階層にします。

HelloAnalytics.pyの編集

SERVICE_ACCOUNT_EMAIL / KEY_FILE_LOCATION / VIEW_ID
をテキストエディタなどを使って#3,#4で取得した値に書き換えます。
KEY_FILE_LOCATIONは、ファイルパスを指定します。
…… = '<書き換え箇所>'

"""Hello Analytics Reporting API V4."""
…
…
…
SCOPES = ['https://www.googleapis.com/auth/analytics.readonly']
DISCOVERY_URI = ('https://analyticsreporting.googleapis.com/$discovery/rest')
KEY_FILE_LOCATION = ''
SERVICE_ACCOUNT_EMAIL = ''
VIEW_ID = '' 

#6 実行

コマンドプロンプトでファイルのあるディレクトリに移動して下記を叩いて実行します。
python HelloAnalytics.py

実行結果

プロンプト内にテキストで表示されます。今回のサンプルコードではga:sessions:を指定してあるのでセッション数が表示されているはずです。
期間や指標などを変更してどのように動作するのか試行錯誤してみましょう。