Google AnalyticsAPI:使用php获取特定数据

时间:2011-05-01 06:31:17

标签: php google-analytics fetch google-analytics-api

我设法使用以下方法获取一些数据:

$ga->requestReportData(44030755,array('pagePath'),array('pageviews','uniquePageviews')); 并使用foreach迭代它。

这是返回的内容:

    object(gapiReportEntry)[7]
  private 'metrics' => 
    array
      'pageviews' => int 1
      'uniquePageviews' => int 1
  private 'dimensions' => 
    array
      'pagePath' => string '//?@faktanyaadalah=' (length=19)

object(gapiReportEntry)[12]
  private 'metrics' => 
    array
      'pageviews' => int 1
      'uniquePageviews' => int 1
  private 'dimensions' => 
    array
      'pagePath' => string '//?facebookwww-static/assets/images/highlight.png=' (length=50)

object(gapiReportEntry)[8]
  private 'metrics' => 
    array
      'pageviews' => int 1
      'uniquePageviews' => int 1
  private 'dimensions' => 
    array
      'pagePath' => string '//?faktanyaadalah=&fb_xd_fragment=' (length=34)

object(gapiReportEntry)[13]
  private 'metrics' => 
    array
      'pageviews' => int 1
      'uniquePageviews' => int 1
  private 'dimensions' => 
    array
      'pagePath' => string '//?faktanyadalah=' (length=17)

object(gapiReportEntry)[15]
  private 'metrics' => 
    array
      'pageviews' => int 1
      'uniquePageviews' => int 1
  private 'dimensions' => 
    array
      'pagePath' => string '//?uniqpost=&fb_xd_fragment=' (length=28)

object(gapiReportEntry)[14]
  private 'metrics' => 
    array
      'pageviews' => int 1
      'uniquePageviews' => int 1
  private 'dimensions' => 
    array
      'pagePath' => string '/adamramadhan?offset=0' (length=22)

object(gapiReportEntry)[16]
  private 'metrics' => 
    array
      'pageviews' => int 1
      'uniquePageviews' => int 1
  private 'dimensions' => 
    array
      'pagePath' => string '/adamramadhan?offset=2' (length=22)

object(gapiReportEntry)[18]
  private 'metrics' => 
    array
      'pageviews' => int 1
      'uniquePageviews' => int 1
  private 'dimensions' => 
    array
      'pagePath' => string '/adamramadhan?offset=3' (length=22)

object(gapiReportEntry)[19]
  private 'metrics' => 
    array
      'pageviews' => int 1
      'uniquePageviews' => int 1
  private 'dimensions' => 
    array
      'pagePath' => string '/adamramadhan?offset=4' (length=22)

object(gapiReportEntry)[20]
  private 'metrics' => 
    array
      'pageviews' => int 1
      'uniquePageviews' => int 1
  private 'dimensions' => 
    array
      'pagePath' => string '/admin/blog?e=2' (length=15)

object(gapiReportEntry)[21]
  private 'metrics' => 
    array
      'pageviews' => int 1
      'uniquePageviews' => int 1
  private 'dimensions' => 
    array
      'pagePath' => string '/admin/blog?e=4' (length=15)

object(gapiReportEntry)[22]
  private 'metrics' => 
    array
      'pageviews' => int 1
      'uniquePageviews' => int 1
  private 'dimensions' => 
    array
      'pagePath' => string '/admin/blog?e=5' (length=15)

object(gapiReportEntry)[23]
  private 'metrics' => 
    array
      'pageviews' => int 1
      'uniquePageviews' => int 1
  private 'dimensions' => 
    array
      'pagePath' => string '/blog?id=23' (length=11)

object(gapiReportEntry)[24]
  private 'metrics' => 
    array
      'pageviews' => int 1
      'uniquePageviews' => int 1
  private 'dimensions' => 
    array
      'pagePath' => string '/gembelabis' (length=11)

object(gapiReportEntry)[25]
  private 'metrics' => 
    array
      'pageviews' => int 1
      'uniquePageviews' => int 1
  private 'dimensions' => 
    array
      'pagePath' => string '/messages?id=7' (length=14)

object(gapiReportEntry)[26]
  private 'metrics' => 
    array
      'pageviews' => int 1
      'uniquePageviews' => int 1
  private 'dimensions' => 
    array
      'pagePath' => string '/messages?id=9' (length=14)

object(gapiReportEntry)[27]
  private 'metrics' => 
    array
      'pageviews' => int 1
      'uniquePageviews' => int 1
  private 'dimensions' => 
    array
      'pagePath' => string '/messages?mid=15' (length=16)

object(gapiReportEntry)[28]
  private 'metrics' => 
    array
      'pageviews' => int 1
      'uniquePageviews' => int 1
  private 'dimensions' => 
    array
      'pagePath' => string '/messages?mid=17' (length=16)

object(gapiReportEntry)[29]
  private 'metrics' => 
    array
      'pageviews' => int 1
      'uniquePageviews' => int 1
  private 'dimensions' => 
    array
      'pagePath' => string '/messages?mid=18' (length=16)

object(gapiReportEntry)[30]
  private 'metrics' => 
    array
      'pageviews' => int 1
      'uniquePageviews' => int 1
  private 'dimensions' => 
    array
      'pagePath' => string '/product?id=16' (length=14)

object(gapiReportEntry)[31]
  private 'metrics' => 
    array
      'pageviews' => int 1
      'uniquePageviews' => int 1
  private 'dimensions' => 
    array
      'pagePath' => string '/product?id=18' (length=14)

object(gapiReportEntry)[32]
  private 'metrics' => 
    array
      'pageviews' => int 1
      'uniquePageviews' => int 1
  private 'dimensions' => 
    array
      'pagePath' => string '/product?id=2' (length=13)

object(gapiReportEntry)[33]
  private 'metrics' => 
    array
      'pageviews' => int 1
      'uniquePageviews' => int 1
  private 'dimensions' => 
    array
      'pagePath' => string '/product?id=44' (length=14)

object(gapiReportEntry)[34]
  private 'metrics' => 
    array
      'pageviews' => int 1
      'uniquePageviews' => int 1
  private 'dimensions' => 
    array
      'pagePath' => string '/products?tag=hosting' (length=21)

object(gapiReportEntry)[35]
  private 'metrics' => 
    array
      'pageviews' => int 1
      'uniquePageviews' => int 1
  private 'dimensions' => 
    array
      'pagePath' => string '/verify/adamramadhan' (length=20)

object(gapiReportEntry)[36]
  private 'metrics' => 
    array
      'pageviews' => int 1
      'uniquePageviews' => int 1
  private 'dimensions' => 
    array
      'pagePath' => string '/verify/uniqpost' (length=16)

object(gapiReportEntry)[37]
  private 'metrics' => 
    array
      'pageviews' => int 2
      'uniquePageviews' => int 1
  private 'dimensions' => 
    array
      'pagePath' => string '//?facebookwww-static/assets/images/highlight-1.png=' (length=52)

object(gapiReportEntry)[38]
  private 'metrics' => 
    array
      'pageviews' => int 2
      'uniquePageviews' => int 1
  private 'dimensions' => 
    array
      'pagePath' => string '/LVUStore' (length=9)

object(gapiReportEntry)[39]
  private 'metrics' => 
    array
      'pageviews' => int 2
      'uniquePageviews' => int 1
  private 'dimensions' => 
    array
      'pagePath' => string '/adamramadhan?offset=1' (length=22)

object(gapiReportEntry)[40]
  private 'metrics' => 
    array
      'pageviews' => int 2
      'uniquePageviews' => int 1
  private 'dimensions' => 
    array
      'pagePath' => string '/product?id=22' (length=14)
  1. 如何使用自定义页面路径获取网页浏览量和uniqpageviews ?类似于$eachdata->path('/LVUstore');返回数组pageview 2,uniqpageview 1等

  2. 有最佳做法吗?例如缓存对象等

  3. 谢谢,

2 个答案:

答案 0 :(得分:4)

我认为您正在寻找的是过滤器。您可以使用filter参数来限制结果集。谷歌还表示,这是处理大型数据集的好方法。所以,基本上你可以用过滤器来阻止你想要的一个特定路径,或者你可以抓住它们并相应地组织它们。

$path = "/path-goes-here";

/*
 * if you only want to get one path, use a filter:
 */

$filter = "pagePath == '$path'";

$ga->requestReportData(ga_profile_id,array('pagePath'),
   array('pageviews','uniquePageviews'),'',$filter);

$result = $ga->getResults();
if (count($result)) {
   $result = array('pageviews' => $result[0]->getPageviews(), 
       'unique_pageviews' => $result[0]->getUniquePageviews()
    );
}
print_r($result);

/* 
 * of if you want to get them all and then grab one specific:
 */

$ga->requestReportData(ga_profile_id,array('pagePath'),array('pageviews','uniquePageviews'));

$results = array();
foreach($ga->getResults() as $result) {
    $results[$result->getPagePath()] = array('pageviews' => $result->getPageviews(), 
      'unique_pageviews' => $result->getUniquePageviews() );
}

if(array_key_exists($path,$results)) {
print_r($results[$path]);
}

答案 1 :(得分:0)

这会返回一个格式化你想要的数组(如果我理解的话)

 function cleanTheData($what){
   $ret = array();
   foreach($what as $one){
      $ret[$uno->dimensions['pagePath']] = array(
           'pageviews'       => $uno->metrics['pageviews'],
           'uniquePageviews' => $uno->metrics['uniquePageviews']
       );
   }
   return $ret;
 }

 print_r(cleanTheData($initialArray))