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

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

ただいまの
回答率

90.33%

  • Python 3.x

    7456questions

    Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

  • Google Analytics

    221questions

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

google analyticsでの特定データの抽出

解決済

回答 1

投稿 編集

  • 評価
  • クリップ 0
  • VIEW 197

naonao11

score 62

今回以下のようにgoogle analytics v4からデータを抽出したいのですが、うまいこといきません。。。

会員登録があった場合の時,出てきてほしいデータ
会員登録があった場合の時,出てきてほしいデータ
また会員登録があった場合については
https://hoge.com/event/complete と https://hoge.com/prime/succeed といったどちらかの画面にたどり着きます。

自分が書いたコードについて以下に示します。
関数に関するファイルになっております。

from apiclient.discovery import build
from oauth2client.service_account import ServiceAccountCredentials

import httplib2
from oauth2client import client
from oauth2client import file
from oauth2client import tools

SCOPES = ['https://www.googleapis.com/auth/analytics.readonly']
DISCOVERY_URI = ('https://analyticsreporting.googleapis.com/$discovery/rest')
KEY_FILE_LOCATION = r'C:\Users\hoge\AppData\Local\Programs\search\My Project-ab70df472487.json'
SERVICE_ACCOUNT_EMAIL = 'analyticsearch@focus-archway-99999.iam.gserviceaccount.com'
VIEW_ID = '99999999'

def initialize_analyticsreporting():
  credentials = ServiceAccountCredentials.from_json_keyfile_name(KEY_FILE_LOCATION, SCOPES)
  analytics = build('analyticsreporting', 'v4', credentials=credentials)
  return analytics


def get_report(analytics,body):
  return analytics.reports().batchGet(body=body).execute()


def print_response(response):
  for report in response.get('reports', []):
    columnHeader = report.get('columnHeader', {})
    dimensionHeaders = columnHeader.get('dimensions', [])
    metricHeaders = columnHeader.get('metricHeader', {}).get('metricHeaderEntries', [])

    for row in report.get('data', {}).get('rows', []):
      dimensions = row.get('dimensions', [])
      dateRangeValues = row.get('metrics', [])

      for header, dimension in zip(dimensionHeaders, dimensions):
        print (header + ': ' + dimension)

      for i, values in enumerate(dateRangeValues):
        for metricHeader, value in zip(metricHeaders, values.get('values')):
          print (metricHeader.get('name') + ': ' + value)

以下mainとなるファイルです。

import GoogleAnalyticsAPI4v

view_id = GoogleAnalyticsAPI4v.VIEW_ID
dateRanges = [{"startDate": "2018-05-01", "endDate": "2018-05-31"}]
dimensions = [{"name": "ga:region"},{"name": "ga:date"},{"name","ga:deviceCategory"}]
dimensionFilterClauses = [{"operator": "AND",
                           "filters":[{"dimensionName": "ga:country",
                                       "not": "false",
                                       "operator": "REGEXP",
                                       "expressions": ["Japan"],
                                       "caseSensitive": "false",}],
                           }]
metrics = [{"expression": "ga:users", "formattingType": "INTEGER"}]
pageSize = 10000

body = {"reportRequests": []}
body["reportRequests"].append({"viewId": view_id,
                                "dateRanges": dateRanges,
                                "dimensions": dimensions,
                                "dimensionFilterClauses": dimensionFilterClauses,
                                "metrics": metrics,
                                "pageSize": pageSize,
                               })


def main():
  analytics = GoogleAnalyticsAPI4v.initialize_analyticsreporting()
  response = GoogleAnalyticsAPI4v.get_report(analytics,body)
  GoogleAnalyticsAPI4v.print_response(response)

if __name__ == '__main__':
    main()

ほしいデータとしては
日時、ブラウザ、時間帯、デバイス、CV経路、キャンペーン、場所、検索クエリ
です。
dimensionFilterClausesの使い方がわかっていません・・・
ご助力よろしくお願いします…

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

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

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

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

回答 1

check解決した方法

0

dimensionsにデータ名,dimensionFilterClausesに条件を入れて行った場合うまく回りました。

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

同じタグがついた質問を見る

  • Python 3.x

    7456questions

    Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

  • Google Analytics

    221questions

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