Иногда требуется показать данные из Google Analytics анонимным пользователям. Например, соорудить красивую статистику как на хабре или вывести счётчик посещений для конкретной страницы.
Реализуется это не совсем очевидно. В официальной документации если и описано, то очень и очень расплывчато. Хорошо, что есть добрые люди на StackOverflow. Итак, решение.
- Идём в консоль API Google. Создаём новое приложение.
- В меню выбираем «services» и включаем «Analytics API».
- Идём в API Access, жмём «Create an OAuth 2.0 client ID»:
- Вводим имя приложения, загружаем логотип, жмём «next».
- Выбираем «Service account», «Create client ID».
- Загружаем себе файл секретного ключа. Складываем, например, в
libs/google/keys.
- Возвращаемся в «API Access». Появился блок «Service account».
- Берём оттуда «Email address», идём в админку аккаунта Google Analytics, добавляем email в качестве пользователя аккаунта.
- Сливаем последнюю версию Google API PHP client, складываем в проект содержимое
src. Например, вlibs/google. - Пишем код.
<?php
require_once('libs/google/Google_Client.php');
require_once('libs/google/contrib/Google_AnalyticsService.php');
$client = new Google_Client();
$client->setApplicationName('My cool application');
$client->setAssertionCredentials(
new Google_AssertionCredentials(
// тот самый email, который мы добавляли в analytics
'823387931764@developer.gserviceaccount.com',
array('https://www.googleapis.com/auth/analytics.readonly'),
// полный путь к загруженному секретному ключу
file_get_contents('libs/google/keys/402d656da7be33b9b8dc96f80844fe9e72e0fc42-privatekey.p12')
));
// Client ID со страницы API Access
$client->setClientId('823387931764.apps.googleusercontent.com');
$client->setAccessType('offline_access');
$service = new Google_AnalyticsService($client);
// получаем количество уникальных посетителей конкретного профиля с 2009 года
$data = $service->data_ga->get(
'ga:20342384', '2009-01-01', date('Y-m-d'), 'ga:visitors', array(
'dimensions' => 'ga:pagePath',
'filters' => 'ga:pagePath==/user/mihdan/',
));
print_r($data);
?>
В процессе работы с API очень полезны Google Analytics Query Explorer и полное описание API.
Ссылки
Сатья любезно предоставлена Александром Макаровым (Sam Dark)
Источник: https://www.kobzarev.com/programming/php-get-data-from-google-analytics/