dpbv85276 2016-11-26 06:40
浏览 29
已采纳

使用PHP获取Google Analytics中的特定页面查看次数

I have following code and its working fine.

<?php

require_once __DIR__ . '/vendor/autoload.php';

$analytics = initializeAnalytics();
$response = getReport($analytics);

printResults($response);

function initializeAnalytics()
{

  $KEY_FILE_LOCATION = __DIR__ . '/Student-a2aeba87a13b.json';


  $client = new Google_Client();
  $client->setApplicationName("Hello Analytics Reporting");
  $client->setAuthConfig($KEY_FILE_LOCATION);
  $client->setScopes(['https://www.googleapis.com/auth/analytics.readonly']);
  $analytics = new Google_Service_AnalyticsReporting($client);

  return $analytics;
}

function getReport($analytics) {


  $VIEW_ID = "107034574";


  $dateRange = new Google_Service_AnalyticsReporting_DateRange();
  $dateRange->setStartDate("30daysAgo");
  $dateRange->setEndDate("today");


  $sessions = new Google_Service_AnalyticsReporting_Metric();

 $sessions->setExpression("ga:pageviews");
  $sessions->setAlias("hits");
  echo "<pre>";

  $browser = new Google_Service_AnalyticsReporting_Dimension();
$browser->setName("ga:pagePathLevel1");
  $request = new Google_Service_AnalyticsReporting_ReportRequest();


  $request->setViewId($VIEW_ID);
  $request->setDateRanges($dateRange);

 $request->setMetrics(array($sessions));

  //Create the Dimensions object.

  /* $sessions->setExpression("ga:users"); --get total users
  /$browser->setName("ga:userType");
  $sessions->setExpression("ga:percentNewSessions"); ---new user session percentage
  *  $sessions->setExpression("ga:newUsers");
  $sessions->setExpression("ga:sessions");
  $sessions->setExpression("ga:bounceRate");--bounce tare
  $sessions->setExpression("ga:pageviews"); //total page view
  $sessions->setExpression("ga:visits");
  *
  */


  $body = new Google_Service_AnalyticsReporting_GetReportsRequest();
  $body->setReportRequests( array( $request) );
   echo "<pre>";
//  print_r($body);
  return $analytics->reports->batchGet( $body );
}

function printResults($reports) {
  for ( $reportIndex = 0; $reportIndex < count( $reports ); $reportIndex++ ) {
    $report = $reports[ $reportIndex ];
    $header = $report->getColumnHeader();
    $dimensionHeaders = $header->getDimensions();
    $metricHeaders = $header->getMetricHeader()->getMetricHeaderEntries();
    $rows = $report->getData()->getRows();
echo "<pre>";
 // print_r($rows);
    for ( $rowIndex = 0; $rowIndex < count($rows); $rowIndex++) {
      $row = $rows[ $rowIndex ];
      $dimensions = $row->getDimensions();
      $metrics = $row->getMetrics();
      for ($i = 0; $i < count($dimensionHeaders) && $i < count($dimensions); $i++) {
        print($dimensionHeaders[$i] . ": " . $dimensions[$i] . "
");
      }

      for ($j = 0; $j < count( $metricHeaders ) && $j < count( $metrics ); $j++) {
        $entry = $metricHeaders[$j];
        $values = $metrics[$j];
        print("Metric type: " . $entry->getType() . "
" );
        for ( $valueIndex = 0; $valueIndex < count( $values->getValues() ); $valueIndex++ ) {
          $value = $values->getValues()[ $valueIndex ];
          print($entry->getName() . ": " . $value . "
");
        }
      }
    }
  }
}

Now i am getting all page count and unique page count.Now my problem is i need to get particular page view count for example login page signup page etc.Can any one help me how to get particular page count.Thanks

  • 写回答

1条回答 默认 最新

  • duandange7480 2016-11-27 17:15
    关注

    In order to get data for each page path you will need to add ga:pagePath as a dimension. i.e.

    $pagePath = new Google_Service_AnalyticsReporting_Dimension();
    $pagePath->setName("ga:browser");
    
    // Later on
    
    $request->setDimensions(array($pagePath));
    

    You can also filter your data by dimension so you only see results that fit a criteria. For example, only show data for your signup page by adding the filter as follows:

    // Create the DimensionFilter.
    $dimensionFilter = new Google_Service_AnalyticsReporting_DimensionFilter();
    $dimensionFilter->setDimensionName('ga:pagePath');
    $dimensionFilter->setOperator('EXACT');
    $dimensionFilter->setExpressions(array('/signup'));
    
    // Create the DimensionFilterClauses
    $dimensionFilterClause = new Google_Service_AnalyticsReporting_DimensionFilterClause();
    $dimensionFilterClause->setFilters(array($dimensionFilter));
    
    //Later on
    
    $request->setDimensionFilterClauses(array($dimensionFilterClause));
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥15 飞机曲面部件如机翼,壁板等具体的孔位模型
  • ¥15 vs2019中数据导出问题
  • ¥20 云服务Linux系统TCP-MSS值修改?
  • ¥20 关于#单片机#的问题:项目:使用模拟iic与ov2640通讯环境:F407问题:读取的ID号总是0xff,自己调了调发现在读从机数据时,SDA线上并未有信号变化(语言-c语言)
  • ¥20 怎么在stm32门禁成品上增加查询记录功能
  • ¥15 Source insight编写代码后使用CCS5.2版本import之后,代码跳到注释行里面
  • ¥50 NT4.0系统 STOP:0X0000007B
  • ¥15 想问一下stata17中这段代码哪里有问题呀
  • ¥15 flink cdc无法实时同步mysql数据
  • ¥100 有人会搭建GPT-J-6B框架吗?有偿