2017-06-27 60 views
1

在谷歌Analytics(分析)报告API为PHP的V4,国家支持的文档已经添加了一个请求指定两个日期范围:谷歌分析报告中使用,两个日期范围

的请求可以有一个最大的2日期范围

但是我没有看到如何添加两个日期范围的任何实例,而无需手动创建整个请求JSON(即我使用谷歌的quick start guide概述的功能的方法)。在指南中,日期范围是由:

$dateRange = new Google_Service_AnalyticsReporting_DateRange(); 
$dateRange->setStartDate("STARTING_DATE"); 
$dateRange->setEndDate("ENDING_DATE"); 

在许多功能,增加一个额外的值设置,您只需创建一个数组,所以我尝试以下,但它是无效的:

$dateRange = new Google_Service_AnalyticsReporting_DateRange(); 
$dateRange->setStartDate(array("START_ONE", "START_TWO")); 
$dateRange->setEndDate(array("END_ONE", "END_TWO")); 

作为最后的努力,我试图将值作为一个JSON符合创建的JSON请求对象的格式,但仍然无效:

$dateRange = new Google_Service_AnalyticsReporting_DateRange(); 
$dateRange->setStartDate("{startDate: START_ONE, startDate: START_TWO}"); 
$dateRange->setEndDate("{endDate: END_ONE, endDate: END_TWO}"); 

如果有人能指出我在哪里出错或者如果通过使用这些功能甚至可以使用两个日期范围,这将是非常有帮助的。

回答

1

multiple date ranges sample

// Create DateRange objects. 
$march = new Google_Service_AnalyticsReporting_DateRange(); 
$march->setStartDate("2015-03-01"); 
$march->setEndDate("2015-03-31"); 

$january = new Google_Service_AnalyticsReporting_DateRange(); 
$january->setStartDate("2015-01-01"); 
$january->setEndDate("2015-01-31"); 

... 

// Create the ReportRequest object. 
$request = new Google_Service_AnalyticsReporting_ReportRequest(); 
$request->setViewId("XXXX"); 
$request->setDateRanges(array($march, $january)); 
$request->setDimensions(array($browser)); 
$request->setMetrics(array($sessions)); 

注意不打算使用多个日期范围与ga:date创建两个日期范围的对象。要读取结果,您需要访问响应中的两个字段:

function printResults(&$reports) { 
    for ($reportIndex = 0; $reportIndex < count($reports); $reportIndex++) { 
    $report = $reports[ $reportIndex ]; 
    $header = $report->getColumnHeader(); 
    $dimensionHeaders = $header->getDimensions(); 
    $metricHeaders = $header->getMetricHeader()->getMetricHeaderEntries(); 
    $rows = $report->getData()->getRows(); 

    for ($rowIndex = 0; $rowIndex < count($rows); $rowIndex++) { 
     $row = $rows[ $rowIndex ]; 
     $dimensions = $row->getDimensions(); 
     $metrics = $row->getMetrics(); 
     for ($i = 0; $i < count($dimensionHeaders) && $i < count($dimensions); $i++) { 
     print($dimensionHeaders[$i] . ": " . $dimensions[$i] . "\n"); 
     } 

     for ($j = 0; $j < count($metrics); $j++) { 
     $values = $metrics[$j]->getValues(); 
     for ($k = 0; $k < count($values); $k++) { 
      $entry = $metricHeaders[$k]; 
      print($entry->getName() . ": " . $values[$k] . "\n"); 
     } 
     } 
    } 
    } 
}