質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Google Analytics

Google AnalyticsはGoogleが開発した無料のウェブ分析のソリューションです。複数のクライアント側のAPIとデータをエクスポートし管理するREST APIも格納されています。

Google API

Googleは多種多様なAPIを提供していて、その多くはウェブ開発者向けのAPIです。それらのAPIは消費者に人気なGoogleのサービス(Google Maps, Google Earth, AdSense, Adwords, Google Apps,YouTube等)に基づいています。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

Q&A

解決済

1回答

502閲覧

google analyticsのデータ収集

naonao11

総合スコア97

Google Analytics

Google AnalyticsはGoogleが開発した無料のウェブ分析のソリューションです。複数のクライアント側のAPIとデータをエクスポートし管理するREST APIも格納されています。

Google API

Googleは多種多様なAPIを提供していて、その多くはウェブ開発者向けのAPIです。それらのAPIは消費者に人気なGoogleのサービス(Google Maps, Google Earth, AdSense, Adwords, Google Apps,YouTube等)に基づいています。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

0グッド

0クリップ

投稿2018/06/27 06:47

【行いたいこと】
google analyticsから自動でほしいデータを収集する。

【現状】
・google APIを作成し、そのサービスアカウントIDをgoogle analyticsの管理者として「表示と収集」のみを付与
・コマンドプロンプトにて以下を書き込み

pip install --upgrade google-api-python-client

・googleが提供しているHelloAnalytics.pyを追加(KEY_FILE_LOCATION,VIEW_IDにはgoogle APIのカギ、google analyticsのview ID)

php

1"""Hello Analytics Reporting API V4.""" 2 3from apiclient.discovery import build 4from oauth2client.service_account import ServiceAccountCredentials 5 6 7SCOPES = ['https://www.googleapis.com/auth/analytics.readonly'] 8KEY_FILE_LOCATION = 'path' 9VIEW_ID = 'path' 10 11 12def initialize_analyticsreporting(): 13 """Initializes an Analytics Reporting API V4 service object. 14 15 Returns: 16 An authorized Analytics Reporting API V4 service object. 17 """ 18 credentials = ServiceAccountCredentials.from_json_keyfile_name( 19 KEY_FILE_LOCATION, SCOPES) 20 21 # Build the service object. 22 analytics = build('analyticsreporting', 'v4', credentials=credentials) 23 24 return analytics 25 26 27def get_report(analytics): 28 """Queries the Analytics Reporting API V4. 29 30 Args: 31 analytics: An authorized Analytics Reporting API V4 service object. 32 Returns: 33 The Analytics Reporting API V4 response. 34 """ 35 return analytics.reports().batchGet( 36 body={ 37 'reportRequests': [ 38 { 39 'viewId': VIEW_ID, 40 'dateRanges': [{'startDate': '7daysAgo', 'endDate': 'today'}], 41 'metrics': [{'expression': 'ga:sessions'}], 42 'dimensions': [{'name': 'ga:country'}] 43 }] 44 } 45 ).execute() 46 47 48def print_response(response): 49 """Parses and prints the Analytics Reporting API V4 response. 50 51 Args: 52 response: An Analytics Reporting API V4 response. 53 """ 54 for report in response.get('reports', []): 55 columnHeader = report.get('columnHeader', {}) 56 dimensionHeaders = columnHeader.get('dimensions', []) 57 metricHeaders = columnHeader.get('metricHeader', {}).get('metricHeaderEntries', []) 58 59 for row in report.get('data', {}).get('rows', []): 60 dimensions = row.get('dimensions', []) 61 dateRangeValues = row.get('metrics', []) 62 63 for header, dimension in zip(dimensionHeaders, dimensions): 64 print (header + ': ' + dimension) 65 66 for i, values in enumerate(dateRangeValues): 67 print ('Date range: ' + str(i)) 68 for metricHeader, value in zip(metricHeaders, values.get('values')): 69 print (metricHeader.get('name') + ': ' + value) 70 71 72def main(): 73 analytics = initialize_analyticsreporting() 74 response = get_report(analytics) 75 print_response(response) 76 77if __name__ == '__main__': 78 main() 79

しかし、これを行った場合以下のようなエラーが出ます。。。(filepathについては省かしていただきます)

Traceback (most recent call last): File "HelloAnalytics.py", line 78, in <module> main() File "HelloAnalytics.py", line 73, in main analytics = initialize_analyticsreporting() File "HelloAnalytics.py", line 19, in initialize_analyticsreporting KEY_FILE_LOCATION, SCOPES) File "service_account.py", line 219, in from_json_keyfile_name with open(filename, 'r') as file_obj: FileNotFoundError: [Errno 2] No such file or directory:

ご助力をいただけたらと思います。。。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

hayataka2049

2018/06/27 07:19 編集

このままだとほぼ答えようがないので、KEY_FILE_LOCATIONのところ晒してくれませんか。個人情報(ユーザ名等)は伏せ字にして構いませんので。これはキーのファイルの絶対パスかなにかですよね? 然るべき部分を伏せ字にすれば、晒してもセキュリティ上のリスクはないと思いますが(中身を晒したらダメですが)
naonao11

2018/06/27 07:24

ありがとうございます!正直どこをさらしても大丈夫なのかからわかっていません。。。
guest

回答1

0

ベストアンサー

KEY_FILE_LOCATIONが正しく指定されていない公算が大です。
問題になり得る点は、

  • そもそもミスってる(相対パスで指定しようとして失敗してるとか)
  • バックスラッシュのエスケープ

こんなのです。

python

1>>> print("\taro") # tabに化ける 2 aro 3>>> print("\taro") # エスケープしてあげれば大丈夫 4\taro 5>>> print(r"\taro") # raw stringにしても大丈夫 6\taro
  • 日本語パス。もしかしたらエンコード絡み。windows+python2とかだとありえなくはない
  • パスの中にスペース(これはあまり関係ないかも)

あたりだと思いますが、見れないとなんとも・・・

投稿2018/06/27 07:25

hayataka2049

総合スコア30933

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

naonao11

2018/06/27 07:29 編集

なるほど・・・
naonao11

2018/06/27 07:34

jsonファイルではなく、でしょうか。。?
hayataka2049

2018/06/27 07:40

やるべきことは、 ・同一ディレクトリにjsonファイルを置く ・jsonのファイル名をKEY_FILE_LOCATIONに代入するようにする ・VIEW_IDもアカウントエクスプローラから確認して書く で良いんじゃないでしょうかー
naonao11

2018/06/27 07:46

うまくいきました、本当につたない私の言葉を汲んでいただきありがとうごいます!!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問