Google Analytics в Kohana

Речь пойдёт не об установке счётчика GA на сайт. Тут и писать нечего. Гораздо более интересно наблюдать за статистикой из своего движка.

С одной стороны я видел такую фишку когда разбирал PyroCMS и ещё пару других CMS на CodeIgniter. С другой стороны как раз один заказчик попросил такую штуку к себе на сайт.

Взял я исходники PyroCMS, присовокупил первоисходные примеры отсюда http://www.swis.nl/ga/ и поработал напильником. Получилось симпатичное поделие, которым и спешу поделиться.

Скачать тут (всего скачали раз)

Думал оформить файлы в виде модуля, но не решился. Уж больно мелко. Или стоит?

По приложенным файлам стоит дать небольшую справку


ga-kohana/config/ga.php
=================
Это настройки. Тут нужно прописать ваш пароль от Гугл-аналитикса. Шифрования нет, поэтому если есть вероятность утечки — вешайте аналитику на отдельную учётную запись, не связанную с другими сервисами Google.

Кроме логина/пароля нужно указать GA-профиль, а так же время жизни кеша в секундах. Кеш нужен, чтобы не дёргать GA каждые пять минут. Используется простой кеш, встроеный в ядро Kohana.

ga-kohana/classes/analytics.php
=================
Это главная библиотека, нужная для работы с GA. Она не моя, я её скачал с http://www.swis.nl/ga/. Правда исходная библиотека немного старая, и я её подновил.

Дело в том, что интерфейс GA незначительно поменялся. Для получения измерения «день» теперь нужно использовать ‘ga:date’, а не ‘ga:day’, как раньше. Это изменение уже есть в моём архиве, но пока нет в первоисточнике.

ga-kohana/classes/controller/ga.php
=================
Собственно контроллер. Содержит три метода —

  • action_index — собственно вывод результатов
  • graph — Вывод маленького графика, используется при построении представления
  • ga_query — собственно обращение к данным. Эта функция мне понадобилась, чтобы сохранять в кеш ответы от GA.

Не обошлось без говнокода. Ну не знаю я как лучше написать такой блок команд!

// Execute the query if ($ga_query==»getBrowsers») $result = $this->oAnalytics->getBrowsers(); if ($ga_query==»getReferrers») $result = $this->oAnalytics->getReferrers(); if ($ga_query==»getSearchWords») $result = $this->oAnalytics->getSearchWords(); if ($ga_query==»getScreenResolution») $result = $this->oAnalytics->getScreenResolution(); if ($ga_query==»getVisitors») $result = $this->oAnalytics->getVisitors(); if ($ga_query==»getPageviews») $result = $this->oAnalytics->getPageviews();

Есть предложения, как написать это красивее?

ga-kohana/view/ga.php
=================
Это представление. Вообще его можно делать на ваше усмотрение. Это просто более или менее удобный способ показа данных. И вообще интерфейс GA даёт очень много возможностей. Всё ограничено только вашей фантазией.

Внимание: В моём представлении используются jquery и jquery.flot. Явно я их в этом блоке не цепляю. Оставляю это вам.

Вместо заключения
=====================
Вообще этот код выглядит выдранным из контекста. Да так и есть. Так что наверное будет не так легко его использовать.

В любом случае, желаю удачи.

Оставить комментарий

Яндекс.Метрика