Google Analytics API. Сортировать результат в цикле - PullRequest
0 голосов
/ 17 июня 2011

Мне нужна помощь с классом Google Analytics gapi с php.(http://code.google.com/p/gapi-google-analytics-php-interface)

Я хочу вывести, сколько раз был просмотрен каждый элемент в каталоге. Страница для элемента генерируется с идентификатором, например:

  1. / item.php? Id= 1
  2. / item.php? Id = 2
  3. и т. Д.

Так что все идет хорошо с моим кодом, пока я не захочу сделать заказ по наиболее просматриваемому элементуТак как я использую цикл, для генерации случайных фильтров: $filter = "pagePath == /item.php?id=".$i++."";

Я не могу использовать сортировку в gapi «requestReportData».

С кодом, показанным ниже, каждый вывод прав, ноя не знаю, как все отсортировать, чтобы он показывал результаты от наиболее просматриваемого элемента до минимума.

Код:

$ga = new gapi(ga_email,ga_password);
$dimensions = array('pagePath');
$metrics   = array('pageviews');    
$termFrom = 2011-06-01;
$termUntil = 2011-06-30;
echo '<strong>ITEMS VIEW STATISTIC</strong><br />';
 for ( $i='1'; $i<'20';)
    {
      $filter = "pagePath == /item.php?id=".$i++."";
      $ga->requestReportData(table_id,$dimensions,$metrics,'-pageviews',$filter,   $termFrom, $termUntil);
        foreach($ga->getResults() as $result)
           { $j= $i-1; $b=$j-1;
              echo $z++.') Items which ID is:'.$j++.' and NAME is: '.$ItemsNamesArray[$b]['item_name'].' was viewed: '.$result->getpageviews() . ' times<br />';
            }
      }

Вывод:

СТАТИСТИКА ПРОСМОТРА ЭЛЕМЕНТОВ

  • 1) Элементы с идентификатором: 1 и ИМЯ: Книга была просмотрена: 9 раз
  • 2) Элементы с идентификатором: 2 иИМЯ: Поле: 1 раз
  • 3) Предметы с ID: 3 и ИМЯ: Таблица: 3 раза
  • 4) Предметы с ID: 4 и ИМЯ: Дом: 27раз

I ши выводим:

СТАТИСТИКА ПРОСМОТРА ЭЛЕМЕНТОВ

  • 1) Элементы с ID: 4 и ИМЯ: Дом был просмотрен: 27 раз
  • 2) Элементы с ID: 1 и ИМЯ: Книга была просмотрена: 9 раз
  • 3) Элементы с ИД: 3 и ИМЯ: Таблица была просмотрена: 3 раза
  • 4) Предметы с ID: 2 и ИМЯ: Поле было просмотрено: 1 раз

1 Ответ

1 голос
/ 17 июня 2011

Вы можете использовать регулярные выражения для фильтров, чтобы получить все свои двадцать элементов одновременно и заставить Google Analytics отсортировать их:

$ga             = new gapi(ga_email,ga_password);

$dimensions     = array('pagePath');
$metrics        = array('pageviews');    
$termFrom       = '2011-06-01';
$termUntil      = '2011-06-30';
$filter         = 'pagePath=~/item\.php\?id=[0-9]*' // Matches all item URLs
$sort           = '-pageviews'; // Sorted by desc. pageview count
$maxResults     = 20; // First 20 entries

$ga->requestReportData(table_id, $dimensions, $metrics, $sort, $filter, $termFrom, $termUntil, 1, $maxResults);

foreach($ga->getResults as $i => $result){
    // Do your magic for each item
}

Это не проверено, хотя регулярное выражение в фильтре должно совпадать правильно.

Я предполагаю, что вам нужны двадцать самых просматриваемых URL-адресов элементов.

...