—»     —»   Извлекаем пользовательские данные Google Analytics при помощи PHP
  Раздел: Скрипты и коды, Статистика   Комментариев: 1  

Извлекаем пользовательские данные Google Analytics при помощи PHP



Google ведёт очень строгую медиа-кампанию в интернете, которая предлагает пользователям различные ресурсы и инструменты. Google Docs представляет собой отличный инструмент для коллективной работы над тем или иным документом. Gmail – яркий пример того, как именно должен выглядеть сервис электронной почты. А функционал главной страницы поисковика, конечно же, вообще не имеет конкурентов.

Извлекаем пользовательские данные Google Analytics при помощи PHP

Когда речь заходит о поддержании веб-сайта, его анализа и улучшения, Google также предлагает мощнейший инструмент Google Analytics – бесплатная утилита, которая в автоматическом режиме отслеживает данные о посетителях любого сайта на ваш выбор. А с помощью предложенного API вы можете напрямую извлекать данные о вашем аккаунте, и использовать его в веб-приложении. Кажется, что возможности безграничны!

Сегодня мы займемся разработкой небольшой таблицы данных с извлечением значений просмотров страницы на сайте. Таблица будет сортировать посетителей на основе используемого браузера (Firefox/Safari) и операционной системы (Windows/Macintosh/iPhone). Внутри скрипта есть опции настроек, посредством которых можно изменить отображение на более старые даты, пропустить 1 неделю или изменить доменные имена. Понять разработку API не так сложно, но для этого нужно иметь хотя бы рудиментарное понимание методов разработки на PHP.

Извлекаем пользовательские данные Google Analytics при помощи PHP

Демо | Скачать
Внимание! У вас нет прав для просмотра скрытого текста.


Примечание: Загрузка демо будет немного медленной, так как системе нужно извлечь данные из Google Analytics.

Настраиваем наш сервер тестирования

Сначала мы будем работать с основной библиотекой PHP-оболочки. Это означает, что вместо разработки нашей собственной библиотеки для подключения к Google Analytics и извлечения данных, мы можем воспользоваться уже готовой. Electric Toolbox – это блог о разработке, который предлагает нам надежную PHP-оболочку для извлечения данных из Analytics. Если вам не охота читать, то просто скачайте то, что нам нужно для работы.

Теперь, перед тем, как мы распакуем файлы, важно удостовериться в том, что ваша среда разработки способна управлять событиями cURL. Здесь все просто: cURL – это плагин-дополнение к PHP-библиотеке, которая предлагает набор функций, использованных для извлечения удаленных данных. Другими словами, cURL вытащит данные HTTP из API Analytics без дополнительной работы. Как говорится: «Зачем изобретать велосипед?».

Здесь мы не использовали настройщик MAMP, поэтому мы не совсем уверены в поэтапном включении cURL. Но если вы работаете в Windows, то мы рекомендуем вам использовать WAMP в качестве серверного пакета «все-в-одном», и тогда есть вероятность того, что MAMP будет функционировать по тому же принципу. После установки, запустите сервер, и вы, вероятно, заметите небольшую иконку в виде измерительного прибора в вашем трее. Кликните по ней левой кнопкой мышки и выберите пункт PHP -> PHP Extensions -> php_curl (пункт должен быть активен). Если он не активен, кликните по нему и перезапустите сервер для того, чтобы применить изменения. Используя заранее подготовленный серверный пакет, вы экономите много времени.

На этом мы заканчиваем данную работу. Для того чтобы начать работу с PHP, у нас должно быть все подготовлено. Итак, распакуйте набор библиотек PHP-оболочек, которую вы скачивали с блога ранее. Скопируйте файл analytics_api.php и переместите его в новую директорию в корневом каталоге сервера. Мы назвали эту папку «analytics».

Устанавливаем PHP-оболочку

Откройте любой текстовый редактор, который вы предпочитаете использовать для написания кода. Создайте новую PHP-страницу и сохраните её в ту же директорию, куда вы только что скопировали файл analytics_api.php. Вы можете как угодно назвать этот новый файл. Но мы, все же, предпочли назвать его index.php, дабы не отходить от стандартов.

Вы можете скачать исходный код всего проекта, что значительно облегчит вашу работу. Здесь же мы расскажем по-отдельности про каждый кусочек кода, чтобы вы максимально точно поняли суть. Для начала у нас есть 2 строки, одна из которых загружает дополнение, а вторая – заголовок Content-Type.

require_once('analytics_api.php');
header('Content-Type: text/html');

Сюда нам нужно включить файл analytics_api.php, чтобы у нас был доступ к библиотеке API. Внутри этого файла есть все нужным нам функции для извлечения данных о просмотрах страниц, настройках, аккаунтах и т.д. Заголовок Content-Type просто сообщает браузерам, что мы ищем выходной текст в чистом HTML-коде. Эта часть не так захватывает, поэтому давайте перейдем к настройкам.

Переменные настроек

Большую часть настроек мы разместили над выходным контентом. Они используются для контроля над данными в аккаунте Analytics и над тем, какой тип информации вы хотите извлекать. Для начала вам нужно внести 3 важные настройки. $login должен содержать в себе логин вашего аккаунта в электронной почте Gmail, а также в следующее ниже поле должен быть введен пароль.

// Config info
$login = ''; // youraccount@gmail.com
$password = '';
$id = ''; // example - ga:1234567

$startdate = strtotime('2011-06-28');
$enddate = strtotime('-1 day');

$filters = array();
$filters['Firefox'] = 'ga:browser=@Firefox';
$filters['Safari'] = 'ga:browser=@Safari';
$filters['Windows'] = 'ga:operatingSystem=@Windows';
$filters['Macintosh'] = 'ga:operatingSystem=@Macintosh';
$filters['iPhone'] = 'ga:operatingSystem=@iPhone';
$metric = 'ga:pageviews'; // alternatively use 'ga:visits' for uniques

Далее вы увидите переменную под названием $id. Она будет содержать ваш ID в системе Google Analytics в формате ga:xxxxxxxxxx. Для того чтобы узнать свой ID, вам нужно пройти в аккаунт Analytics, и найти там веб-сайт, с которого вы хотите извлекать данные. Кликните по надписи «View Report» (посмотреть отчет) и вверху, в адресной строке вы сможете найти этот номер. Добавьте его после «ga:». Всё это пойдет дальше в переменную $id.

Извлекаем пользовательские данные Google Analytics при помощи PHP

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

Теперь наши фильтры будут использованы для извлечения уникальных данных с серверов Google. Список очень обширный и включает в себя гораздо больше информации, нежели данные о браузерах и ОС. В нашем эксперименте мы будем тестировать 5 переменных массивов, установленных в примере. Вы можете изучить больше информации об API от Google Code в интернете.

И, наконец, параметр $metric будет устанавливать, какой тип чисел будет извлечен для получения данных о трафике. Опции включают просмотры страниц, уникальные посещения, рейтинги отказа, количество кликов, время, проведенное на сайте – короче, все, что может дать какую-либо статистику. Ознакомьтесь с полным списком метрик в Google для того, чтобы понять суть данных опций. Мы работаем с просмотрами страниц, так как эти данные могут дать нам реальную статистику о популярности браузеров или ОС.

Зацикливаем данные

Если вы рассматривали код, приведенный в примере, то должны были заметить некоторые основы CSS и другие опции стилизации. Но мы пропустим это все, и перейдем прямо к логическому ядру нашего PHP-приложения. В следующем отрывке кода мы будем создавать новую инстанцию API от Analytics, которая будет извлекать данные об аккаунте, а затем выводить то, что нам нужно, в HTML.

$api = new analytics_api();
if($api->login($login, $password)) {
if (strlen($id) == 0) {
$api->load_accounts();
exit;
} else {
$api->load_accounts();
$last = count($api->accounts) - 1;
foreach ($api->accounts as $i => $row) {
$isFirst = ($i == 0);
$isLast = ($i == $last);

if($id == $row['tableId']) { echo '<h3>Account Name: ' . $row['title'] . '</h3>'; }
}
}

Первое действие, которое мы совершим, это установим $api в качестве нового объекта. Это инициирует наш класс Analytics, и теперь у нас будет доступ ко всем внутренним функциям. Имея это в виду, мы теперь можем использовать if/else для проверки введенной информации о логине. Мы вызываем функцию $api->login() и вводим туда имя пользователя и пароль от почтового аккаунта. Предположим, что здесь все в порядке, и мы можем переходить к следующему этапу – логике if/else.

Если мы можем авторизоваться, но не можем найти какой-либо ID (что означает, что у вас нет данных из Analytics), то мы просто выходим из приложения с подгруженными данными об аккаунте. В другом случае, мы продолжаем загружать данные аккаунта, но теперь мы можем пройтись по профилям в Analytics для того, чтобы обнаружить, какой из ID подходит к вашим настройкам. Как только мы нашли совпадение, дата заголовка, облаченная в тэги h3, выводится на страницу.

Если вы были внимательны, то вероятно заметили, что наш исходный условный if{} еще не закрыт. Это происходит потому, что мы еще продолжаем логику посредством авторизации в аккаунт. Если в первый раз с авторизацией все проходит успешно, то нам выводится заголовок профиля в Analytics. Но далее нам надо вывести небольшую таблицу, содержащую данные о просмотрах страницы для каждого фильтра. Нижеприведенный код представляет собой завершенный блок кода, представленный выше, содержащийся в финальном пункте else{}, который позволяет нам выводить сообщение об ошибке, если авторизация прошла неудачно.

$from = $startdate;
$n = 0;
echo '<table id="analytics">';
while (true) {
$till = strtotime('+2 days', $from); // update number here for amount of days skipped for each pull
if ($till > $enddate) break;
$n++;

if($n%2 == 0) { echo '<tr class="first">'; }
else { echo '<tr class="second">'; }
echo '<td class="strong">' . date('Y-m-d', $from) . '</td>';
foreach ($filters as $filter) {
$data = $api->data($id, '', $metric, false, date('Y-m-d', $from), date('Y-m-d', $till), 10, 1, urlencode($filter));
$mainfilteritem = explode("=@", $filter);

echo '<td>';
echo $mainfilteritem[1] . ' - ';
echo ((int)$data[$metric]);

echo '</td>';
}
echo "</tr>";
$from = strtotime('+1 day', $till);
}
echo '</table>';
} else {
echo "login failed.";

Наша переменная $from предназначена для установки стартовой даты. $n установлена на 0, так что мы можем извлекать цикл while{}, отображенный в каждой строке таблицы и обновляющийся каждые 3 дня. Это можно видеть прямо после нашей команды while, где установлена функция strtotime(). Вы можете обновить значение с +2 дня на любое количество дней. Если вы хотите включить данные за каждый день, просто скройте эту строчку из кода, так как каждый проход мы также смещаем $n++ на 1 градус.

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

Сначала мы проверяем, делится ли $n на 2. Это нужно исключительно для эстетичного вида, так как мы разработали шаблон в виде зебры. Дальше мы сначала выводим контент страницы в часть нашей страницы, придерживаясь дат. Запустив цикл foreach(), мы можем использовать другую функцию под названием $api->data() из нашей библиотеки. Внутрь мы вводим несколько параметров типа ID в Analytics и другие данные. Таким образом, у нас получается небольшой массив информации.

В нашей следующей переменной мы устанавливаем другой массив $mainfilteritem. Он может быть использован для хранения информации для всех наших фильтров, которые мы выводим в каждой строчке таблицы. Если данный подход смущает вас, просто ознакомьтесь с демонстрационным примером, который приведен ниже, и вы увидите, как таблица приходит в форму. Цикл foreach внутри цикла while создает динамические данные в каждой строке. Мы закрываем циклы последней строкой таблицы и переходим дальше на 1 день до тех пор, пока не наступит текущая дата.

Заключение

Существует много типов приложений, которые вы можете разработать с помощью Google Analytics. Их API был разработан очень тщательно и работает со многими языками программирования, а PHP – это всего один из большой группы. И с помощью PHP мы можем разрабатывать полноценные веб-приложения для отображения всех видов данных, отслеженных с помощью посетителей.

Данная статья должна сделать вашу работу с API на PHP комфортнее. Код оболочки, который мы скачали, включает в себя объемную документацию, так что, если у вас возникли вопросы, вы можете обратиться за помощью к этому документу. PHP достаточно универсален и, используя плагины cURL, вы сможете защитить передачу своих данных между сайтом и серверами Google.
Обнаружили ошибку или мёртвую ссылку?
Выделите проблемный фрагмент мышкой и нажмите CTRL+ENTER.
В появившемся окне опишите проблему и отправьте уведомление Администрации ресурса.
Нужна органическая вечная ссылка из данной статьи? Постовой?
Подробности здесь
Вам понравился материал? Поблагодарить легко!
Будем весьма признательны, если поделитесь этой статьей в социальных сетях:

Ключевые тэги: Google Analytics, PHP, API
Опубликовал Design FactoRy   Прочитано (раз): 13137   |   Оставлено комментариев: 1
Источник материала / оригинал статьи   Распечатать
Другие статьи и новости по теме:
Комментарий #1: 28 января 2012 @ 18:59
Написал: Natalia — группа: Гости  
На сайте с: --   |   Публикаций: 0   |   Комментариев: 0
ICQ: --- не указано ---
Уже несколько лет пользуюсь электронной почтой gmail, но только сейчас стала задумываться о других возможностях google. В этом деле я новичок, многое мне непонятно. Даже после этой статьи у меня остались некоторые вопросы. Но в общем, больше ответов я получила. Так что я становлюсь постоянным пользователем этого сайта. Спасибо за предоставленную, в мельчайших подробностях информацию!
Добавление комментария
Уважаемые пользователи!
При добавлении комментариев на сайт Вам следует учитывать следующее - все комментарии проверяются Администрацией на предмет отсутствия спама. При обнаружении признаков спама, в оставленном Вами комментарии, сам комментарий будет незамедлительно удалён, а Ваш IP-адрес будет забанен без предупреждения! Учётные записи пользователей, рассылающих спам, блокируются/удаляются без права последующего восстановления.

С уважением, Администрация сайта.
* = поля обязательны к заполнению
Полужирный Наклонный текст Подчеркнутый текст Зачеркнутый текст | Выравнивание по левому краю По центру Выравнивание по правому краю | Вставка смайликов Выбор цвета | Скрытый текст Вставка цитаты Преобразовать выбранный текст из транслитерации в кириллицу Вставка спойлера
Вопрос : Назовите месяц February по-русски
Подтверждение кода безопасности :

Включите эту картинку для отображения кода безопасности
обновить, если не виден код


Популярные публикации


















Свежие шаблоны сайтов каждый день
С миру по нитке
«    Август 2017    »
ПнВтСрЧтПтСбВс
 123456
78910111213
14151617181920
21222324252627
28293031