GA Analytics Reporting API对于许多指标返回0,但界面显示数据

时间:2019-03-06 17:17:58

标签: google-analytics google-analytics-api google-analytics-v4

我们代表许多在我们网站上进行认证的用户查询Google Analytics(分析)数据。在许多情况下,即使用户可以在GA UI中看到数据,对于用户来说,所有请求的指标也都显示为0。

我们正在使用Python客户端库通过以下代码检索数据:

def traffic_report(profile_id, oauth_cred, start_date=None, end_date=None):
    return _report(profile_id,
               oauth_cred,
               start_date=start_date,
               end_date=end_date,
               metrics=[
                   'ga:users',
                   'ga:sessions',
                   'ga:newUsers',
                   'ga:sessionDuration',
                   'ga:avgSessionDuration',
                   'ga:percentNewSessions',
                   'ga:bounceRate',
                   'ga:pageviews',
                   'ga:pageviewsPerSession',
                   'ga:uniquePageviews',
               ])


def _report(profile_id, oauth_cred, start_date=None, end_date=None, metrics=None, dimensions=None):
    import httplib2
    http = httplib2.Http()
    http = oauth_cred.authorize(http)
    from apiclient.discovery import build
    analytics = build(ANALYTICS_API_SERVICE_NAME,
                      ANALYTICS_REPORTING_API_VERSION,
                      http=http,
                      discoveryServiceUrl=ANALYTICS_DISCOVERY_URI)
    metrics_request = [{'expression': metric} for metric in (metrics or [])]
    dimensions_request = [{'name': dimension} for dimension in (dimensions or [])]
    response = analytics.reports().batchGet(
        body={
            'reportRequests': [{
                'viewId': profile_id,
                'dateRanges': [{
                    'startDate': start_date.strftime('%Y-%m-%d'),
                    'endDate': end_date.strftime('%Y-%m-%d'),
                }],
                'metrics': metrics_request,
            }]
        }
    ).execute()
    return response['reports'][0]

有人知道这可能是什么吗?我已经问过Google了,但他们没有太大帮助。

1 个答案:

答案 0 :(得分:1)

我碰到了这一点,检查了属性中的数据保留设置,认为该问题可能与数据保留设置有关,并且维度组合恰好是非标准的GA报告汇总。

https://support.google.com/analytics/answer/7667196?hl=en

我恰好丢失了50个月的数据,结果证明用户和事件数据保留设置被设置为在50个月后过期。

对于50个月之前的日期以及维度组合比普通GA报告无法处理的日期复杂的情况,API请求将为所有指标返回0。