2

私はGAAPIの初心者なので、この場合、結果を正しい方法で抽出する方法がわかりません。

たとえば、ga:pagePath=..からのフィルタリングに基づいてavgTimeOnPage値を抽出しようとしています。

しかし、それぞれが..で1桁の値を返しているので、結果が正しく表示されていないと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;
4

1 に答える 1

0

$data['totalsForAllResults']合計行である単一の行を返します。合計ではなく値を探しています。したがって、次を使用する必要があります。

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

そして、すべてのセルに対して $rows を繰り返すことができます。

この完全な例を確認してください:

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

于 2012-12-20T22:33:55.857 に答える