这就是我使用 GAPI 的方式:
$ga->requestReportData('van tatán tó?', array('date','medium'),array('visits'), null, null, null,null, 1, 60000);
foreach ($ga->getResults() as $result)
{
switch ($result->getMedium())
{
case 'referral' : $visitTypes['referral'] = $visitTypes['referral'] + $result->getVisits(); break;
case '(none)' : $visitTypes['direct'] = $visitTypes['direct'] + $result->getVisits(); break;
case 'organic' : $visitTypes['organic'] = $visitTypes['organic'] + $result->getVisits(); break;
}
}
现在它返回良好的数字,根据谷歌分析的百分比是好的 - 但它不精确。有了这个,我得到 [191, 336, 74],而 GA 返回 [197, 341, 79]。
我在这里看到 2 个问题:
-
"max_results"不能大于 1000,因此您可能没有收到所有记录。(还有另一个地方说10 000,但我再也找不到链接了)。您的限制是 60,000,但您仍然没有超过允许的最大值。您可能需要多个请求才能提取所有记录。http://code.google.com/p/gapi-google-analytics-php-interface/wiki/GAPIDocumentation
-
您使用的是 2 个维度:"日期"和"媒介",这可能会产生很多结果(请参阅上面的第 1 点)。我没有看到正在使用的"日期"维度。
例如,为了检索自然访问,我使用了:
$dimensions = array('medium');
$metrics = array('visits');
$filters = 'medium==organic';
$ga->requestReportData('my_profile_id',$dimensions,$metrics,'',$filters,$startDate = 'some_start_date',$endDate = 'some_end_date',$start_index=1,$max_results=1);
echo $ga->getVisits();
我使用了 $ga->getVisits(),因为它检索总数,我不必遍历所有结果并对其进行排序。
将"my_profile_id"、"some_start_date"和"some_end_date"替换为您自己的值。
我希望这有帮助