Php 使用GAPI创建具有页面视图和唯一访问者的报告

Php 使用GAPI创建具有页面视图和唯一访问者的报告,php,api,google-analytics,Php,Api,Google Analytics,我正在使用GAPI尝试从我们的谷歌分析数据创建简单的报告。 我的内部客户希望看到每页有两个字段的概述:页面浏览量和唯一访问者。 我的页面浏览部分正常工作,但我无法让“唯一访问者”部分正常工作。 这是我当前的代码。过滤器是一个他们可以更改的参数,但目前已硬编码: require 'gapi.class.php'; $ga = new gapi(ga_email,ga_password); $filter = 'pagepath =~ ^/home$'; $ga->requestRepor

我正在使用GAPI尝试从我们的谷歌分析数据创建简单的报告。 我的内部客户希望看到每页有两个字段的概述:页面浏览量和唯一访问者。 我的页面浏览部分正常工作,但我无法让“唯一访问者”部分正常工作。 这是我当前的代码。过滤器是一个他们可以更改的参数,但目前已硬编码:

require 'gapi.class.php';

$ga = new gapi(ga_email,ga_password);

$filter = 'pagepath =~ ^/home$';
$ga->requestReportData(ga_profile_id,
                        array('pagepath'),
                        array('pageviews'),
                       'pageviews',
                       $filter,
                       '2010-10-01',
                       '2010-10-31');
然后是一些代码来显示结果,这些结果在这里并不相关。 如前所述,这是可行的,但如果我将“访客”添加到指标中,如下所示:

$ga->requestReportData(ga_profile_id,
                       array('pagepath'),
                       array('pageviews','visitors'),
                       '-pageviews',
                       $filter,
                      '2010-10-01',
                      '2010-10-31');
然后我得到这个错误:

PHP Fatal error:  Uncaught exception 'Exception' with message 'GAPI: Failed to request report data. Error: "Illegal combination of dimensions and metrics"' in gapi.class.php:218

Stack trace:
#0example.filter.php(24): gapi->requestReportData('30296235', Array, Array, '-pageviews', 'pagepath =~ ^/h...', '2010-10-01', '2010-10-31')
#1 {main}
thrown in gapi.class.php on line 218

Google Analytics API限制了它可以显示的组合。具体而言,
访客
(不要与
访客
混淆)在可用于哪些指标方面受到严格限制<代码>访客和
小时
是您可以在Google Analytics中查询的两个最严格限制的指标和维度。所以,你尝试的上述组合是无效的,谷歌拒绝计算它。只要将它切换到
访问
,它就会工作

请注意,在本页上,几乎所有的指标都限制了
访问者

其原因可能是
访问者
的计算成本要高得多,有时无法计算,老实说,也不是特别有用
visitor
Visitions
的集合,但受限于一个特定的cookie集,而一次访问只是访问者的一个特定会话。它也不太有用,因为
访问者
不会将1:1映射到人。例如,我在家里和工作电脑上以及在iPhone上通过Safari、Chrome和Firefox访问StackOverflow。所以把我看成7个访客!这不是跟踪用户的有用方法。通过对其提供的内容进行更有限的访问,可以提供更好的视图


此外,由于访问者跨越多个会话,因此您不能为他们提供一个
pagePath

将维度更改为“userDefinedValue”

$ga->requestReportData(ga_profile_id,
                        array('userDefinedValue'),
                        array('pageviews'),
                       'pageviews',
                       $filter,
                       '2010-10-01',
                       '2010-10-31');