2015-04-10 5 views
4

Мне нужно сделать виджет/плагин для моей организации с помощью Piwik, но я немного потерялся. Мы посылаем пользовательские события в Piwik, такие как:Количество запросов конкретного события в Piwik

Category: Staff 
Action: Login 

Как бы я запрос Piwik внутри виджета/плагин, чтобы получить # событий, которые соответствуют этой конкретной категории/действия?

+0

Я уточнил свой ответ, чтобы лучше соответствовать тому, что вы просили. –

ответ

3

Вот документация относительно Events API.

Есть 2 способа, которые могут вас заинтересовать:

  • Events.getCategory
  • Events.getAction

Они возвращают список действий/категорий, отображенных в nb_uniq_visitors, nb_visits и nb_events.

Возможно, nb_events может использоваться для получения количества событий для каждой категории или действия. Ниже приведен пример запроса для списка категорий событий:

http://demo.piwik.org/?module=API&method=Events.getCategory&idSite=7&period=day&date=today&format=xml&token_auth=anonymous

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


Edit: вы хотите знать, как получить этот список внутри пользовательского Piwik плагин.

Посмотрите на документацию Calling APIs of other plugins. В вашем случае вы должны вызвать событие API, как это:

$table = \Piwik\API\Request::processRequest('Events.getCategory', array(
    'idSite' => $idSite, 
    'period' => $period, 
    'date' => $date, 
)); 

После того, как у вас есть таблица, вы можете найти строку, которая вас интересует:

$row = $table->getRowFromLabel('Staff'); 

Затем получить количество событий в период:

$numberOfEvents = $row->getColumn('nb_events'); 

Обратите внимание, что вы можете также оптимизировать вызов к API для фильтрации и получить только этикетку вы ищите, а столбец вы используете:

$table = \Piwik\API\Request::processRequest('Events.getCategory', array(
    'idSite'  => $idSite, 
    'period'  => $period, 
    'date'  => $date, 
    'label'  => 'Staff', 
    'showColumns' => 'nb_events', 
)); 
+0

Спасибо за действительно подробное объяснение! –