【问题标题】:Google Analytics Reporting Use Two Date Ranges谷歌分析报告使用两个日期范围
【发布时间】:2017-06-27 16:54:39
【问题描述】:

在用于 php 的 Google Analytics Reporting API v4 中,文档状态已添加支持在一个请求中指定两个日期范围:

请求最多可以有 2 个日期范围

但是,我没有看到任何关于如何添加两个日期范围的示例,而无需手动创建整个请求 JSON(即,我使用的是 Google 的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}");

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

【问题讨论】:

    标签: php google-analytics


    【解决方案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");
            }
          }
        }
      }
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多