2017-06-27 91 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"); 
     } 
     } 
    } 
    } 
}