简体   繁体   English

Google Analytics API:使用 php 获取特定数据

[英]Google Analytics API: Get specific data using php

I've managed to get some data using:我设法使用以下方法获取了一些数据:

$ga->requestReportData(44030755,array('pagePath'),array('pageviews','uniquePageviews')); and iterating over it using foreach.并使用 foreach 对其进行迭代。

Here's what's returned:这是返回的内容:

    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. How can i get page views, and uniqpageviews from just using a custom page path ?如何仅使用自定义页面路径获得页面浏览量和 uniqpageviews something like $eachdata->path('/LVUstore') ;类似$eachdata->path('/LVUstore')东西; returns an array pageview 2, uniqpageview 1, etc返回数组 pageview 2、uniqpageview 1 等

  2. Are there any best practices?有没有最佳实践? eg caching the object etc例如缓存 object 等

Thanks,谢谢,

I think what you are looking for are filters.我认为您正在寻找的是过滤器。 You can use the filter parameter to limit your result set.您可以使用filter参数来限制您的结果集。 Google also says this is a good way to deal with large datasets.谷歌还表示这是处理大型数据集的好方法。 So, essentially you can just snag the one specific path that you want with a filter, or you can grab them all and organize them accordingly.因此,基本上您可以使用过滤器捕获您想要的一个特定路径,或者您可以将它们全部抓取并相应地组织它们。

$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]);
}

this returns an array formated as you want (if I had understood)这将返回一个您想要的数组(如果我理解的话)

 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))   

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM