0

我正在尝试在 (Cake)PHP 中为 Google Analytics 编写一个自定义 API 查询,该查询将为一组(可能很多)页面取回过去 12 个月的页面视图。

这是我到目前为止所得到的:

$metrics = "ga:pageviews";

$params = array(
    'dimensions'=>'ga:date',
    'filters'=>'ga:pagePath==/enquires/add/200,ga:pagePath==/enquires/add/201',
    'sort'=>'ga:date',
    'max-results'=>366
);

$startDate = date('Y-m-d', time()-60*60*24*365);
$endDate = date('Y-m-d', time());

$data = $this->service->data_ga->get('ga:' . $profileId, $startDate, $endDate, $metrics, $params);

...适用于几个 pagePath 过滤器,但不幸的是,我用来过滤我想要的页面的过滤器参数限制为最多 128 个字符。

如果我有很多要在报告中使用的网址(比如 50 个,但可能更多),我如何让谷歌分析来过滤它们?

我试过想出一个正则表达式,但这仍然太长了。

我考虑过询问每一页(或正则表达式 /enquires/add/* ),然后过滤掉我正在寻找的那些,但这感觉像是错误的做事方式。

如何将一长串过滤器传递给 Google Analytics API?还是有其他方法?

(顺便说一句,这是针对房产网站的,这些报告是供业主查看房产被查看的频率,因此需要仅限于他们的房产页面网址)

4

1 回答 1

1

我不太喜欢 Google Analytics API,但如果该 API 不起作用,这将是我解决问题的方法:

  • 如果财产所有者的数量“有限”,最简单的解决方案是将他们作为用户添加到他们应该有权访问的 Google Analytics 资产中——根本不需要编程。
  • 也许您应该重新考虑您的 Google Analytics(分析)资产的布局方式。例如,您可以为每个业主创建一个唯一的跟踪代码,从而有效地摆脱过滤。

如果这些方法对您不起作用,我只需提取所有可用数据,以最适合生成输出的格式将它们存储在本地,然后过滤该本地数据集。根据您想要使其复杂程度,您可以查看 ETL 工具以简化导入和预处理/过滤。

于 2012-11-27T17:32:39.567 回答