После появления на хабре странички с импортированной из Google Analytics статистикой, зародилась мысль сделать что-то похожее, но чтобы любой желающий мог более менее легко это использовать на своем сайте и настраивать под свои требования.

Update: Скрипт обновился и размещен на Google Code. Описание в статье Статистика на сайте.

Получение данных Google Analytics

К сожалению, для Google Analytics нет документированного API, поэтому информацию можно получить только экспериментальным путем или рассматривая соответствующие разработки. Я остановился на втором, за основу были взяты API Джо Тана для плагина WordPress Reports, и Google Analytics API для CakePHP. Второе не подходит в качестве базового решения, поскольку требует CakePHP знакомиться с которым пока желания нет, да и ставить фреймворк из-за простенького скрипта захочется не всем. В API от Джо я значительно упростил часть работающую непосредственно с GA, убрал лишние запросы и парсинг, которому в элементе отвечающем за загрузку делать нечего.

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

Подготовка отчетов

Самый простой способ получить необходимые данных из XML это использовать функцию SimpleXMLElement->xpath(). Вся работа по выборке данных возлагается на функцию parse($file, $xpath, $callbackFunction = ''). Значение параметра $file достаточно очевидно — это имя XML файла с данными GA, параметр $xpath должен содержать описание необходимых данных на языке XPath, $callbackFunction имя функции вызываемой для каждого полученного элемента, чтобы получить данные требуемого формата, например, для удаления лишних пробелов.

Отображение данных

Пользователь должен сам выбирать как отображать полученные отчеты, поэтому подключение модулей экспорта максимально упрощено и для начала реализовано два модуля на основе amCharts и Google Chart т.е. с флешем и без. Изображения Google Chart загружаются и хранятся на сервере, чтобы избежать модификации страницы статистики каждый день, хотя это возможно и не оптимальный вариант.

Результаты работы можно посмотреть на примере страницы со статистикой этого сайта (используется amCharts), которая совсем не блещет после того как он месяц пролежал, и на представленном ниже графике отображающем ту же статистику с помощью Google Chart. Обратите внимание на столь любимый всеми отчет о ссылающихся блоггерах (или как его назвать даже не знаю), теперь он будет обновляться каждый день, хотя временно размещен в iframe, опять таки, чтобы не работать с базой данных CMS. Только вот блоггеров выявлять все равно придется просматривая статистику GA и добавляя в config.php новые URL.




Установка

Установить скрипт достаточно просто, скопируйте папку ga в корневую директорию сайта. Укажите свои данные для аккаунта Google и профиль сайта в файле config.php. Создайте в CMS страницу и перейдя в режим редактирования HTML, внедрите в нее flash или img графики. Подробнее о внедрении графиков amCharts можно узнать на сайте разработчика в разделе документация, с графиками в формате img и так все понятно. Пример готовой страницы, есть в папке со скриптами. Настройки графиков amCharts хранятся в папке settings, настройки графиков Google Chart задаются в скрипте converter.php.Теперь чтобы загрузить и подготовить данные для отображения нужно запустить файл site-name/ga/ga.php, а чтобы не беспокоиться об этом каждый день нужно запускать его с помощью cron или заменяющих его сервисов.

Хотелось бы услышать ваше мнение, нужен ли подобный скрипт, какие возможности вы хотели бы в нем увидеть, как оградить его от посторонних вмешательств. За бортом осталась статистика FeedBurner которою можно сюда включить, если это кого-нибудь заинтересует. Все заинтересовавшиеся подписывайтесь на RSS и ждите обновлений.

Похожие статьи