Все, кто вариться в Интернет в виде создателя или админа сайтов знает, что Google Analytics это круто. Но одно дело, если вы фрилансер, и клиенту можно показывать статистику сайта прямо в Google Analytics, и совершенно другое, если Вы компания. Компании показывать статистику на Google Analytics как минимум не солидно, да и попробуйте объяснить клиенту зачем ему аккаунт на гугле.
Выходом для компаний всегда были какие-то сторонние решения (на подобии CNStats). Минусом таких систем является недостаточная развернутость данных, платность (хоть и не всегда), несовершенство кода, необходимость тратить свои серверные мощности.
С недавнего времени есть другой выход. Не так давно компания Google запустила открытый для получения данных Google Analytics сторонними разработчиками.
Работа с Google Analytics API предельно проста. Для того, что-бы вы могли использовать его в своем приложении Вам будут необходимы следующие вещи:
- Логин и пароль для доступа к тому аккаунту, через который Вы будете получать данные. Рекомендую для каждого клиента создавать отдельный гугл-аккаунт с доступом только на чтение.
- ID аккаунта. Обращаю внимание, что это не ID счетчика, который мы привыкли видеть (вида UA-00000000-0), а именно ID профиля. Найти его можно на странице настройки профиля:

- Немного смекалки
В качестве примера Гугл дает вот такой код:
1 2 3 4 5 6 7 8 9 10 | $ga = new gapi('email@yourdomain.com','password'); $ga->requestReportData(145141242,array('browser','browserVersion'),array('pageviews','visits')); foreach($ga->getResults() as $result) { echo '<strong>'.$result.'</strong><br />'; echo 'Pageviews: ' . $result->getPageviews() . ' '; echo 'Visits: ' . $result->getVisits() . '<br />'; } |
Объясню подробнее по частям.
1 | $ga = new gapi('email@yourdomain.com','password'); |
Авторизирует Ваш скрипт на Google Analytics API. Вместо «email@yourdomain.com» и «password» – логин и пароль на аккаунт, у которого есть доступ к аккаунтам Google Analytics.
3 | $ga->requestReportData(145141242,array('browser','browserVersion'),array('pageviews','visits')); |
Передает запрос на Google Analytics API, получая данные. В данном случае скрипт запрашивает просмотры страниц и посещения по браузерам и их версиям.
Стоит заметить, что для того, что-бы ваши скрипты смогли «общаться» с Google Analytics API, на сервере должна быть включена библиотека open_ssl и либо curl либо опция allow_url_fopen.
Строки с 5 по 10 занимаются, собственно, выборкой данных: 8я – просмотры страниц, 9я – посещения. В переменной $result будут лежать получаемые параметры (в данном случае название и версия браузера).
Я немного доделал процедуру получения данных и у меня получило вот так:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | function get_ga_data($dimantion,$metrics,$sort=null, $filter=null, $start_date=null, $end_date=null, $start_index=1, $max_results=100) { $ga = new gapi('google_login','google_password'); $ga->requestReportData('google_profile_id',$dimantion,$metrics,$sort,$filter,$start_date,$end_date,$start_index,$max_results); $data = array(); foreach($ga->getResults() as $result) { $a = ''.iconv('UTF-8','WINDOWS-1251',urldecode($result)).''; $data[$a] = array(); foreach ($metrics as $m) { eval('$data["'.$a.'"]["'.$m.'"] = $result->get'.$m.'();'); } } return $data; } |
По сути эта функция с такими же параметрами, как и функция класса возвращает уже непосредственно массив с данными, где ключами будут запрошенные метрики. Также сразу производятся необходимые операции по переводу данных их UTF-8 и декодирование строк через urldecode.
Кстати, что касается дименшенов и метрик, а также о несовместимости некоторых из них, можно почитать вот .
Еще хочу обратить внимание на что, что например, страны, гугл отдает на английском – тут еще можно завязать Google Translate API.
Что касается запросов к аналитику, хочу привести некоторые примеры.
Для получения количества посещений, новых посетителей и количества посетителей:
1 | $data = get_ga_data(array('date'),array('visits','newVisits','visitors'),array('date')); |
Для получения стран:
1 | $data = get_ga_data(array('country'),array('visits'),array('-visits')); |
Для получения версий браузера FireFox и посещений с них:
1 | $data = get_ga_data(array('browserVersion'),array('visits'),array('-visits'),"browser==Firefox"); |
Для получения сайтов-источников переходов:
1 | $data = get_ga_data(array('source'),array('visits'),array('-visits'),'medium==organic'); |
Для получения ключевых слов, по которым были переходы на Ваш сайт:
1 | $data = get_ga_data(array('keyword'),array('visits'),array('-visits'),'medium==organic'); |
Используя эту информацию, мануал Гугла и AmCharts (о них я расскажу чуть позднее) можно сделать довольно приличный интерфейс. Вот, что получилось у меня, на примере данных этого блога:




Метки: google analytics, google analytics api, описание google analytics api, пример работы с google analytics api