Analytics Reporting API v4 入门:适用于服务账号的 Python 快速入门

本教程详细介绍了访问 Analytics Reporting API v4 所需的步骤。

1. 启用 API

要开始使用 Analytics Reporting API V4,需要先使用设置工具,该工具会引导您在 Google API 控制台中创建项目、启用 API 以及创建凭据。

创建凭据

  1. 打开服务账号页面。如果看到提示,请选择项目。
  2. 点击 创建服务账号,并输入服务账号的名称和说明。您可以使用默认服务账号 ID,也可以选择其他唯一的账号 ID。完成后,点击创建
  3. 后面的服务账号权限(可选)部分无需设置。点击继续
  4. 向用户授予访问此服务账号的权限屏幕上,向下滚动到创建密钥部分。点击 创建密钥
  5. 在随即显示的侧面板中,选择密钥的格式:建议使用 JSON
  6. 点击创建。您的新公钥/私钥对随后会生成并下载到您的计算机上;该密钥仅此一份。要了解如何安全地存储密钥,请参阅管理服务账号密钥
  7. 点击私钥已保存到您的计算机对话框中的关闭,然后点击完成以返回服务账号表格。

将服务账号添加到 Google Analytics(分析)账号

新创建的服务账号将拥有一个类似以下所示的电子邮件地址:

quickstart@PROJECT-ID.iam.gserviceaccount.com

使用此电子邮件地址向您要通过 API 访问的 Google Analytics(分析)数据视图添加用户。在本教程中,只需拥有阅读和分析权限。

2. 安装客户端库

建议使用 pipvenv 安装 Python 软件包:sudo -s apt-get install python3-venv python3 -m venv analytics-quickstart source analytics-quickstart/bin/activate pip install --upgrade google-api-python-client pip install --upgrade oauth2client

3. 设置示例

您需要创建一个名为 HelloAnalytics.py 的文件,其中将包含给定的示例代码。

  1. 将以下源代码复制或下载HelloAnalytics.py
  2. 将先前下载的 client_secrets.json 移到示例代码所在的目录中。
  3. KEY_FILE_LOCATION 的值替换为所下载 client_secrets.json 的相应路径。
  4. 替换 VIEW_ID 的值。您可以使用帐号浏览器查找数据视图 ID。
"""Hello Analytics Reporting API V4."""

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


SCOPES = ['https://www.googleapis.com/auth/analytics.readonly']
KEY_FILE_LOCATION = '<REPLACE_WITH_JSON_FILE>'
VIEW_ID = '<REPLACE_WITH_VIEW_ID>'


def initialize_analyticsreporting():
  """Initializes an Analytics Reporting API V4 service object.

  Returns:
    An authorized Analytics Reporting API V4 service object.
  """
  credentials = ServiceAccountCredentials.from_json_keyfile_name(
      KEY_FILE_LOCATION, SCOPES)

  # Build the service object.
  analytics = build('analyticsreporting', 'v4', credentials=credentials)

  return analytics


def get_report(analytics):
  """Queries the Analytics Reporting API V4.

  Args:
    analytics: An authorized Analytics Reporting API V4 service object.
  Returns:
    The Analytics Reporting API V4 response.
  """
  return analytics.reports().batchGet(
      body={
        'reportRequests': [
        {
          'viewId': VIEW_ID,
          'dateRanges': [{'startDate': '7daysAgo', 'endDate': 'today'}],
          'metrics': [{'expression': 'ga:sessions'}],
          'dimensions': [{'name': 'ga:country'}]
        }]
      }
  ).execute()


def print_response(response):
  """Parses and prints the Analytics Reporting API V4 response.

  Args:
    response: An Analytics Reporting API V4 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):
        print('Date range:', str(i))
        for metricHeader, value in zip(metricHeaders, values.get('values')):
          print(metricHeader.get('name') + ':', value)


def main():
  analytics = initialize_analyticsreporting()
  response = get_report(analytics)
  print_response(response)

if __name__ == '__main__':
  main()

4. 运行示例

使用以下文件运行示例应用:

python HelloAnalytics.py

当您完成这些步骤后,示例代码就会输出给定数据视图过去 7 天内的会话数。

问题排查

AttributeError:'Module_six_moves_urllib_parse' 对象没有 'urlparse' 属性

在 Mac OSX 中,当“six”模块(该库的依赖项)的默认安装先于 pip 安装的模块加载时,就会出现上述错误。要解决该问题,请将 pip 的安装位置添加到 PYTHONPATH 系统环境变量中:

  • 使用以下命令确定 pip 的安装位置:

    pip show six | grep "Location:" | cut -d " " -f2

  • 将以下代码行添加到 ~/.bashrc 文件中,并将 &lt;pip_install_path&gt; 替换为上面确定的值:

    export PYTHONPATH=$PYTHONPATH:<pip_install_path>

  • 使用以下命令,在任何已打开的终端窗口中重新加载 ~/.bashrc 文件:

    source ~/.bashrc