2012-12-19 39 views
2

我是GA API的新手,所以我不知道如何在這種情況下提取結果的正確方法。Google AnalyticsAPI v3如何提取值?

例如我想基於來自GA過濾提取avgTimeOnPage值:PAGEPATH = ...

但是每一個返回上ga:pagePath一個單一的數字值..所以我想不被顯示ga:pagePathga:avgTimeOnPage結果正確。也許我沒有提取正確的方法。

任何人誰可以提供幫助將不勝感激。

$ids = 'ga:123456789'; 
// $start_date $end_date already defined 
$filter = 'ga:pagePath==/folder/somepage.html';  
$metrics = 'ga:avgTimeOnPage'; 
$optParams = array('dimensions' => 'ga:pagePath', 'filters' => $filter); 
$data = $service->data_ga-> 
    get($ids, $start_date, $end_date, $metrics, $optParams); 

foreach($data['totalsForAllResults'] as $rows) : 

    echo $rows['ga:pagePath']; // why returning a single digit value? 
    echo $rows['ga:avgTimeOnPage']; // also returns a single digit 
endforeach; 

回答

0

$data['totalsForAllResults']將返回一行即總行。你正在尋找的價值不是總數。所以你應該使用:

foreach ($data->getRows() as $row) : 

然後你可以爲每個單元迭代$行。

檢查這個完整的例子:

private printDataTable(&$results) { 
    if (count($results->getRows()) > 0) { 
    $table .= '<table>'; 

    // Print headers. 
    $table .= '<tr>'; 

    foreach ($results->getColumnHeaders() as $header) { 
     $table .= '<th>' . $header->name . '</th>'; 
    } 
    $table .= '</tr>'; 

    // Print table rows. 
    foreach ($results->getRows() as $row) { 
     $table .= '<tr>'; 
     foreach ($row as $cell) { 
      $table .= '<td>' 
       . htmlspecialchars($cell, ENT_NOQUOTES) 
       . '</td>'; 
     } 
     $table .= '</tr>'; 
    } 
    $table .= '</table>'; 

    } else { 
    $table .= '<p>No Results Found.</p>'; 
    } 
    print $table; 
} 

來源:https://developers.google.com/analytics/devguides/reporting/core/v3/coreDevguide#working

相關問題