在Google Analytics Reporting API V4中获得零结果?

时间:2016-05-10 20:53:42

标签: php google-analytics-api

使用PHP的v4 API,我注意到零结果不会在结果中显示为行。

在使用ga:avgSessionDuration指标和ga:date维度为1周的时间段内,平均会话持续时间为0的天数不会返回数据,因此我没有整整一周的图表。

根据文档,v3将返回0行,并且在查询资源管理器中,零值显示,因为它们使用的是v3 API。但似乎v4没有,至少没有其他配置,除非我错过了什么。

有没有其他人遇到过这个,有解决方案吗?

1 个答案:

答案 0 :(得分:1)

V3 include-empty-rows parameter对应于V4中的includeEmptyRows field。 V3参数默认为 true ,而在V4中,字段默认为 false 。如果您没有在V3中设置的值,则需要在V4中将值设置为true。

以下示例显示如何将includeEmptyRows设置为True:

PHP

// Create the Metrics object.
$avgsessionduration = new Google_Service_Analyticsreporting_Metric();
$avgsessionduration->setExpression("ga:avgSessionDuration");

//Create the Dimensions object.
$date = new Google_Service_Analyticsreporting_Dimension();
$date->setName("ga:date");

// Create the ReportRequest object.
$request = new Google_Service_Analyticsreporting_ReportRequest();
$request->setViewId("XXXX");
$request->setDimensions(array($date));
$request->setMetrics(array($avgsessionduration));
$request->setIncludeEmptyRows(true); // <-- Ensure this value to be true.

// Construct the request body.
$body = new Google_Service_Analyticsreporting_GetReportsRequest();
$body->setReportRequests( array( $request) );
return $analyticsreporting->reports->batchGet( $body );

JSON

{
  "reportRequests":[
  {
    "viewId":"XXXX",
    "metrics":[{"expression":"ga:avgSessionDuration"}],
    "dimensions": [{"name":"ga:date"}],
    "includeEmptyRows": "true"
  }]
}

有关从Core Reporting API V3迁移到Analytics Reporting API V4的详细信息,请参阅Migration guide