【问题标题】:Fetch user data from google analytics with python using userActivity.search使用 userActivity.search 使用 python 从谷歌分析中获取用户数据
【发布时间】:2019-12-09 13:13:21
【问题描述】:

我正在尝试使用以下谷歌 python api 从谷歌分析中获取用户数据:

https://developers.google.com/analytics/devguides/reporting/core/v4/quickstart/service-py

在所示示例中,函数“get_report”如下所示:

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()

这种语法效果很好,但为了获取用户数据,我认为我必须遵守以下手册:

https://developers.google.com/analytics/devguides/reporting/core/v4/rest/v4/userActivity/search

为了更清楚,我想从这里运行示例:

https://developers.google.com/analytics/devguides/reporting/core/v4/user-reporting

示例如下所示:

{
    "viewId": "9999999",
    "user": {
        "type": "CLIENT_ID",
        "userId": "1034600000.76425000000"
    },
    "dateRange": {
        "startDate": "2018-01-01",
        "endDate": "2018-12-31",
    }
}

但是这个例子没有说明如何从上面定义函数“get_report”。 据我了解,“get_reports”中使用的“分析”参数有一个名为“userActivity”的方法或类。但是根据上面的第二个链接,它还应该有一个名为“搜索”的方法,它没有!那么如何获取/访问“搜索”方法?初始化“userActivity”类时是否必须初始化?

目前我的语法如下:

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.userActivity().search(
      {
    "viewId": VIEW_ID,
    "user": {
        "type": "CLIENT_ID",
        "userId": "310383817.1547668323"
    },
    "dateRange": {
        "startDate": "2019-01-30",
        "endDate": "2019-02-01",
    }
}
  ).execute()

但是这种语法有效!错误消息说:

method() 接受 1 个位置参数,但给出了 2 个

感谢您的帮助!

【问题讨论】:

    标签: python google-apis-explorer


    【解决方案1】:

    我刚刚找到了答案...
    您只需要将搜索方法的参数放入名为body 的变量中。它应该是这样的:

    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.userActivity().search(
            body = {
                "viewId": VIEW_ID,
                "user": {
                    "type": "CLIENT_ID",
                    "userId": "310383817.1547668323"
                },
                "dateRange": {
                    "startDate": "2019-01-30",
                    "endDate": "2019-02-01",
                }
            }
        ).execute()
    

    【讨论】:

    • 我有一个类似但不同的问题。将所有网站的所有用户放到一个表中......我被谷歌分析的难度惊呆了......我在哪里可以获得所有用户的列表?
    • 从哪里获取用户 ID 以传递到请求正文?
    • @0004:我从谷歌分析本身中获取了客户端 ID。我可以在谷歌分析中解析整个数据并查看所有用户,包括他们的用户 ID。在那里,我得到了一个客户端 ID。在这里使用这个 API 我只是想获取数据并在 Python 中使用它。
    • @the_economist 那么你用什么替换了"userId": "310383817.1547668323"?如果是的话,它是您从 Google Analytics API 中提取的值吗?
    • @the_economist 捕获client_id 的文档将我发送到analytics.js 文档developers.google.com/analytics/devguides/collection/…,尽管事实上它已链接到我正在处理的python 文档
    猜你喜欢
    • 2022-08-03
    • 2017-03-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多