В этой статье рассмотрим, как в PHP можно получить доступ к информации Google аналитики, используя API, которую она предоставляет, и сервисный аккаунт. В качестве API будем использовать Analytics Reporting 4 версии.
Настройка Google Analytics для работы с ней по API
Если на сайте для сбора статистики пользователей используется Google Analytics (GA), то воспользоваться данными, предоставляемыми этим сервисом, вы можете не только в веб-интерфейсе посредством отчетов, но и по API.
Что это значит? А это значит, что необходимые данные из GA мы можем получать программно, а затем, например, использовать их на сайте или в веб-приложении.
Какие задачи с помощью Google Analytics API можно решить на сайте?
- Вывести на странице её количество просмотров. Если эту задачу реализовать классическим способом, то нам в этом случае потребуется создавать таблицы в базе данных, писать логику на php и т.д.
- Отобразить на сайте самые популярные статьи (страницы) за последнюю неделю или другой период на сайте.
С помощью GA можно решить не только эти задачи на сайте, но и множество других. Но в этой статье остановимся на рассмотрении только этих двух.
Но перед тем, как перейти к практической части сначала рассмотрим, как включить Google Analytics API и принципы работы с ним на PHP.
Подготовка к работе с Google API
Перед началом работы с четвертой версии Analytics Reporting API необходимо выполнить следующие основные шаги.
1. Включить Google Analytics Reporting API.
Для этого нужно открыть страницу «API и сервисы Google». В поле поиска ввести «Google Analytics Reporting API», перейти на страницу данного API и включить его.
2. Создать сервисный аккаунт.
Для этого необходимо открыть страницу «Сервисные аккаунты».
Если проект уже есть, то нажимаем на кнопку «Выбрать» и выбираем существующий проект. Если проекта нет, то создаём новый.
После этого создаём сервисный аккаунт в только что созданном или выбранном проекте. Для этого нажимаем на кнопку «Создать сервисный аккаунт».
Вводим название сервисного аккаунта и нажимаем на кнопку «Создать». На странице «Права доступа для сервисного аккаунта (необязательно)» нажимаем на кнопку «Продолжить».
Затем создаём новый ключ. Для этого нажимаем на кнопку «Создать ключ». В качестве типа ключа выбираем значение «JSON» и нажимаем на кнопку «Создать». Нажимаем на кнопку «Готово».
Сгенерированный ключ будет загружен на ваш компьютер, он нам понадобится позже.
В конце этого шага скопируем в буфер обмена адрес электронной почты сервисного аккаунта, он нам нужен будет для выполнения следующего действия.
3. Добавить в Google Analytics сервисный аккаунт.
Для этого необходимо перейти в Google Analytics и нажать на кнопку «Администратор».
После этого в открывшейся странице нажать на «Управление доступом» в разделе «Аккаунт». Затем нажать на значок «Плюс» и выбрать пункт «Добавить пользователей». В открывшуюся форму вставить из буфера обмена адрес электронной почты сервисного аккаунта и отметить в качестве разрешений только опцию «Просмотр и анализ». Нажать на кнопку «Добавить».
Теперь этот пользователь будет иметь доступ к аналитике через API.
Установка клиентской библиотеки для PHP
Клиентскую библиотеку Google API для PHP можно загрузить вручную или получить при помощи Composer.
Для обычной установки скачайте архив, распакуйте и загрузите его на сервер, например, в каталог ga
.
Для установки библиотеки с помощью Composer введите следующую команду:
composer require google/apiclient:^2.0
После установки Google API для PHP загрузите в эту же папку JSON файл, который мы получили на этапе создания сервисного аккаунта.
Защитим доступ к этой папке и вложенным в неё файлам. Если вы используете веб-сервер Apache, то для этого создадим в этой папке файл .htaccess
со следующим содержимым:
# line below if for Apache 2.4
<ifModule mod_authz_core.c>
Require all denied
</ifModule>
# line below if for Apache 2.2
<ifModule !mod_authz_core.c>
deny from all
Satisfy All
</ifModule>
# section for Apache 2.2 and 2.4
IndexIgnore *
Примеры использования данных из Google Analytics на сайте
Пример №1. Использования Google API для получения самого популярного контента на сайте.
В этом примере разберём как используя Google Analytics Reporting API можно получить 7 самых просматриваемых страниц за последние 7 дней на сайте.
Для этого создадим файл top_pages.php
со следующим кодом:
Скачать данный файл с Github можно по этой ссылке.
В этом файле нужно указать свои данные.
Во-первых, нужно указать имя JSON-файлу, содержащему сгенерированный ключ.
$KEY_FILE_LOCATION = __DIR__ . '/service-account-credentials.json';
Во-вторых, указать значение VIEW_ID
.
$VIEW_ID = "";
Узнать значение этого параметра для своей аналитики можно с помощью инструмента Account Explorer.
Приложению "ga-dev-tools.appspot.com" необходимо предоставить разрешение на доступ к вашему аккаунту Google.
Кроме этого, данное приложение имеет очень хороший инструмент для создания запросов.
В этом примере все основные моменты снабжены комментариями. Создание запроса на получение данных осуществляется с помощью объекта reportRequests
. Параметры для этого запроса задаются с помощью объектов DateRange
, Metrics
, Dimensions
, OrderBy
. Установка этих параметров к reportRequests
осуществляется посредством использования его специальных методов.
Пример №2. Использования Google API для получения количества просмотров определённой страницы на сайте.
В этом случае нам необходимо в запросе установить:
- диапазон дат (начальная дата, должна равняться старту вашего проекта; конечная дата – текущей дате);
- показатель метрике, равный
ga:pageviews
(количеству просмотров); - фильтр по параметру
ga:pagePath
, значение которого должно быть равно URL определённой страницы.
Полный код примера доступен на Github, к нему можно перейти по этой ссылке.
Как вариант полученные данные можно выгрузить в формате JSON в некоторый файл (в этом примере в /assets/ga_pageviews.json
). Для этого нужно написать соответствующую функцию, например, printResultInFile
и использовать её для обработки ответа.
printResultInFile($response);
Полный код файла доступен на Github по этому адресу.
Затем можно написать небольшой скрипт, например, get_views.php
. Он будет находить в файле количество просмотров для некоторой страницы зная её путь.
Этот скрипт будет состоять из одной функции:
<?php
function getViews($path) {
$result = 0;
$items = json_decode(file_get_contents('ga_pageviews.json'));
foreach($items as $item) {
if ($item->{'ga:pagePath'} === $path) {
$result = $result + (int)$item->{'pageviews'};
}
}
return $result;
}
Теперь чтобы получить данные необходимо просто вызвать функцию getViews
и передать ей в качестве параметра путь к странице:
echo getViews('/html-and-css/css-selector');
Что-то подобное можно написать и для первого примера. Т.е. добавить в php-скрипт код, который будет сохранять ответ, а именно 7 самых популярных статей сайта за неделю, в JSON. Далее использовать этот файл для вывода на сайт информационной панели с этими ресурсами. Обновлять файл JSON можно, например, с помощью планировщика cron, запуская php скрипт раз в час или через другое определённое количество времени.