Google analytics 从Google Analytics Reporting API筛选结果

Google analytics 从Google Analytics Reporting API筛选结果,google-analytics,google-analytics-api,Google Analytics,Google Analytics Api,我正在使用ReportingAPI(版本4)和PHP客户端库成功地从Google Analytics下载结果。但我还没有弄清楚如何正确过滤这些结果 我通过cURL看到了这是如何工作的,但不是通过客户端库。我浏览了客户端库代码,发现有一个类方法: apiclient-services/Google/Service/AnalyticsReporting/ReportRequest.php: public function setMetricFilterClauses($metricFilterCla

我正在使用ReportingAPI(版本4)和PHP客户端库成功地从Google Analytics下载结果。但我还没有弄清楚如何正确过滤这些结果

我通过cURL看到了这是如何工作的,但不是通过客户端库。我浏览了客户端库代码,发现有一个类方法:

apiclient-services/Google/Service/AnalyticsReporting/ReportRequest.php:
public function setMetricFilterClauses($metricFilterClauses)
我没有看到相关get方法的任何文档或用法:

public function getMetricFilterClauses()
是否有通过PHP客户端库使用过滤器的示例

背景 将从生成。并且为资源的每个属性生成
setProperty
getProperty

分析报告API V4 作者极力描述了API。给出了客户端库将生成的基础JSON示例:

POST https://analyticsreporting.googleapis.com/v4/reports:batchGet
{
  "reportRequests":
  [
    {
      "viewId": "XXXX",
      "dateRanges": [
        {"endDate": "2014-11-30", "startDate": "2014-11-01"}
      ],
      "metrics": [
        {"expression": "ga:pageviews"},
        {"expression": "ga:sessions"}
      ],
      "dimensions": [{"name": "ga:browser"}, {"name": "ga:country"}],
      "dimensionFilterClauses": [
        {
          "filters": [
            {
              "dimensionName": "ga:browser",
              "operator": "EXACT",
              "expressions": ["Chrome"]
            }
          ]
        }
      ]
    }
  ]
}
并且给出了许多Python、Java、PHP和JavaScript中的请求示例,这将使您很好地了解如何使用各个客户端库。但是你是对的,没有一个明确的PHP使用过滤器的例子

PHP过滤器示例 以下是与上述请求相同的示例:

// Create the DateRange object.
$dateRange = new Google_Service_AnalyticsReporting_DateRange();
$dateRange->setStartDate("2014-11-01");
$dateRange->setEndDate("2014-11-30");

// Create the Metrics object.
$pageviews = new Google_Service_AnalyticsReporting_Metric();
$pageviews->setExpression("ga:pageviews");

$sessions = new Google_Service_AnalyticsReporting_Metric();
$sessions->setExpression("ga:sessions");

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

$country = new Google_Service_AnalyticsReporting_Dimension();
$country->setName("ga:country");

// Create the DimensionFilter.
$dimensionFilter = new Google_Service_AnalyticsReporting_DimensionFilter();
$dimensionFilter->setDimensionName('ga:browser');
$dimensionFilter->setOperator('EXACT');
$dimensionFilter->setExpressions(array('Chrome'));

// Create the DimensionFilterClauses
$dimensionFilterClause = new Google_Service_AnalyticsReporting_DimensionFilterClause();
$dimensionFilterClause->setFilters(array($dimensionFilter));

// Create the ReportRequest object.
$request = new Google_Service_AnalyticsReporting_ReportRequest();
$request->setViewId("XXXX");
$request->setDateRanges($dateRange);
$request->setDimensions(array($browser, $country));
$request->setDimensionFilterClauses(array($dimensionFilterClause));
$request->setMetrics(array($pageviews, $sessions));

$body = new Google_Service_AnalyticsReporting_GetReportsRequest();
$body->setReportRequests( array( $request) );
return $analyticsreporting->reports->batchGet( $body );
正如您可能注意到的,我从未使用过
$object->getProperty()
。基本上,它所能做的就是给我它的当前值。调用API时,只需
$object->setProperty($value)因此,我向您介绍了生成客户机库的背景

结论
Analytics Reporting API本身很复杂,有许多客户端库语言。在每种可能的客户机库语言中,并不总是能够给出API的每种可能用法的示例。这就是为什么有必要了解如何查看参考文档,以及如何从所描述的结构生成客户端库

上面的脚本中的DimensionFilter()类存在问题,我得到一个错误,它没有定义,但我已将其更改为Google\u Service\u Analytics Reporting\u DimensionFilter()类,现在它正在工作,希望能对某人有所帮助。

您应该使用注释对答案进行注释,以防有人怀疑Google_服务上的“精确”字符串报告_DimensionFilterClause$dimensionFilter->setOperator(“精确”);这里是一个可能的选项列表:我很难找到它。非常感谢这个URL@DenisUyeda。真的很难找到!