首页 > 解决方案 > 如果昨天在日期范围内,是否可以从 Google Analytics Reporting API v4 请求 clientId?

问题描述

当我从谷歌分析报告 api 请求数据时,请求包含

1) 尺寸ga:clientId

2) 日期范围内的昨天日期

我发现无论日期范围如何,响应都会始终返回 10,001 个数据行。下面是一个应该重新创建结果的示例请求。我已经在四个不同的谷歌账户和这些账户中的多个视图中尝试过这个,我得到了相同的行为。这是预期的行为吗?

关于这个问题的一些进一步细节:

1)我在 2020 年 3 月 24 日发布此内容,因此,以下请求中的结束日期是昨天(2020 年 3 月 23 日)。

2) 需要从 api 返回超过 10,000 行才能出现此问题。如果有问题的视图存在少于 10,000 行,则 api 按预期返回所有数据。

3) 如果请求在所讨论的日期(2020 年 3 月 24 日)在大约下午 3 点之前运行,这只是一个问题,如果在大约下午 3 点之后运行,似乎昨天对于 API 来说已经足够历史了预期的。

request = {
    'view_id': '123456789', 
    'dateRanges': [{'startDate': '2020-03-20', 'endDate': '2020-03-23'}], 
    'metrics': [
        {'expression': 'ga:users'}, 
        {'expression': 'ga:visitors'}, 
        {'expression': 'ga:newVisits'}, 
        {'expression': 'ga:sessions'}], 
    'dimensions': [
        {'name': 'ga:campaign'}, 
        {'name': 'ga:channelGrouping'}, 
        {'name': 'ga:sourceMedium'}, 
        {'name': 'ga:dateHourMinute'}, 
        {'name': 'ga:country'}, 
        {'name': 'ga:adGroup'}, 
        {'name': 'ga:clientId'}], 
    'segments': [], 
    'samplingLevel': 'LARGE', 
    'pageSize': 100000
}

这个请求是这样调用的:

self.batch_get_api(body={"reportRequests": [request]}).execute()

其中 batch_get_api 是可调用的:

self.reporting.reports().batchGet

self.reporting 定义为:

self.reporting = self._build_resource("analyticsreporting", "v4", credentials)
def _build_resource(service_name: str, version: str, credentials: Credentials):
    return build(
        service_name,
        version,
        http=google_auth_httplib2.AuthorizedHttp(
            credentials,
            http=Http(timeout=REQUEST_TIMEOUT.total_seconds())),
            cache_discovery=False,
        )

标签: google-analyticsrequestgoogle-analytics-apidimensionclientid

解决方案


推荐阅读