• Время чтения ~1 мин
  • 18.03.2023

В этой статье рассмотрим, как в PHP можно получить доступ к информации Google аналитики, используя API, которую она предоставляет, и сервисный аккаунт. В качестве API будем использовать Analytics Reporting 4 версии.

Настройка Google Analytics для работы с ней по API

Если на сайте для сбора статистики пользователей используется Google Analytics (GA), то воспользоваться данными, предоставляемыми этим сервисом, вы можете не только в веб-интерфейсе посредством отчетов, но и по API.

Что это значит? А это значит, что необходимые данные из GA мы можем получать программно, а затем, например, использовать их на сайте или в веб-приложении.

Какие задачи с помощью Google Analytics API можно решить на сайте?

  1. Вывести на странице её количество просмотров. Если эту задачу реализовать классическим способом, то нам в этом случае потребуется создавать таблицы в базе данных, писать логику на php и т.д.
  2. Отобразить на сайте самые популярные статьи (страницы) за последнюю неделю или другой период на сайте.

С помощью GA можно решить не только эти задачи на сайте, но и множество других. Но в этой статье остановимся на рассмотрении только этих двух.

Но перед тем, как перейти к практической части сначала рассмотрим, как включить Google Analytics API и принципы работы с ним на PHP.

Подготовка к работе с Google API

Перед началом работы с четвертой версии Analytics Reporting API необходимо выполнить следующие основные шаги.

1. Включить Google Analytics Reporting API.

Для этого нужно открыть страницу «API и сервисы Google». В поле поиска ввести «Google Analytics Reporting API», перейти на страницу данного API и включить его.

Поиск Google Analytics Reporting API

2. Создать сервисный аккаунт.

Для этого необходимо открыть страницу «Сервисные аккаунты».

Если проект уже есть, то нажимаем на кнопку «Выбрать» и выбираем существующий проект. Если проекта нет, то создаём новый.

После этого создаём сервисный аккаунт в только что созданном или выбранном проекте. Для этого нажимаем на кнопку «Создать сервисный аккаунт».

Создание сервисного аккаунта в Google IAM

Вводим название сервисного аккаунта и нажимаем на кнопку «Создать». На странице «Права доступа для сервисного аккаунта (необязательно)» нажимаем на кнопку «Продолжить».

Затем создаём новый ключ. Для этого нажимаем на кнопку «Создать ключ». В качестве типа ключа выбираем значение «JSON» и нажимаем на кнопку «Создать». Нажимаем на кнопку «Готово».

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

В конце этого шага скопируем в буфер обмена адрес электронной почты сервисного аккаунта, он нам нужен будет для выполнения следующего действия.

3. Добавить в Google Analytics сервисный аккаунт.

Для этого необходимо перейти в 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 скрипт раз в час или через другое определённое количество времени.

Comments

No comments yet
Yurij Finiv

Yurij Finiv

Full stack

Про мене

Professional Fullstack Developer with extensive experience in website and desktop application development. Proficient in a wide range of tools and technologies, including Bootstrap, Tailwind, HTML5, CSS3, PUG, JavaScript, Alpine.js, jQuery, PHP, MODX, and Node.js. Skilled in website development using Symfony, MODX, and Laravel. Experience: Contributed to the development and translation of MODX3 i...

Об авторе CrazyBoy49z
WORK EXPERIENCE
Контакты
Ukraine, Lutsk
+380979856297