如何从google analytics API获取少数(10)个网页的网页浏览量?
$requests = [];
foreach($urls as $url) {
$dateRange = new Google_Service_AnalyticsReporting_DateRange();
$dateRange->setStartDate($start_date);
$dateRange->setEndDate($end_date);
$sessions = new Google_Service_AnalyticsReporting_Metric();
$sessions->setExpression("ga:pageviews");
$sessions->setAlias("pageviews");
$dimensionFilter = new Google_Service_AnalyticsReporting_DimensionFilter();
$dimensionFilter->setDimensionName('ga:pagePath');
$dimensionFilter->setOperator('BEGINS_WITH');
$dimensionFilter->setExpressions([$url]);
$dimensionFilterClause = new Google_Service_AnalyticsReporting_DimensionFilterClause();
$dimensionFilterClause->setFilters([$dimensionFilter]);
$request = new Google_Service_AnalyticsReporting_ReportRequest();
$request->setViewId($this->view_id);
$request->setDateRanges($dateRange);
$request->setMetrics([$sessions]);
$request->setDimensionFilterClauses([$dimensionFilterClause]);
$requests[] = $request;
}
// Finally, we perform one large query for every URL address mentioned
$body = new Google_Service_AnalyticsReporting_GetReportsRequest();
$body->setReportRequests([$requests]);
$reports = $this->analytics->reports->batchGet( $body );
如果URL计数超过5,则抛出异常并显示消息:
批处理请求中的请求太多。允许的最大值为5
我怎么做? GA API版本4。
答案 0 :(得分:2)
答案:每批最多可以有5个报告。无法在单个批处理请求中发送10个报告。
reportRequests[] object(ReportRequest)请求,每个请求 将有一个单独的回应。可以有最多5个请求。 所有请求都应具有相同的dateRanges,viewId,segments, samplingLevel和cohortGroup。
可能的工作比比皆是:
这意味着如果您有10个,您可能需要将其拆分为两个请求。您可以查看过滤器表达式,我可以在那里添加多个过滤器表达式。 (提示:添加ga:pagepath维度,以便您可以将数据响应映射到它在过滤器中命中的页面)
要匹配的字符串或正则表达式。只有第一个值 除非运算符是IN_LIST,否则列表用于比较。如果 IN_LIST运算符,然后整个列表用于过滤 尺寸,如IN_LIST运算符的说明中所述。
注意:我实际上没有测试多个过滤器,但我认为它应该可行。