Если вам необходимо выгружать данные из Google Analytics, можно воспользоваться обычным HTTP протоколом. В отличие от родных библиотек, для выгрузки больших объемов данных, это может быть более производительным решением.

Авторизация

Прежде всего нужно создать приложение в API console. После этого создать новые oauth credentials типа Web application. В результате мы получим секретый ключ и идентификатор для авторизации:

Теперь необходимо авторизовать приложение с правами доступа к Google Analytics API. Для этого будем использовать обычный Curl и простую оболочку на PHP:

$google_client_id = 'xxx';
$google_secret = 'yyy';
$callback = 'https://example.com/callback.php';


# файл для хранения выданного токена
$token_file = '/var/cache/google.token.json';


# проверяем, получен ли уже токен
$token = json_decode(file_get_contents($token_file), 1);
if ( !$token )
{
    # просим посетить указанную ссылку, чтобы сгенерировать код доступа
    $scope = 'https://www.googleapis.com/auth/analytics';

    echo 'Передийте по ссылке:' . "\n";
    echo "https://accounts.google.com/o/oauth2/auth?scope={$scope}&redirect_uri={$callback}&response_type=code&client_id={$google_client_id}&prompt=consent&access_type=offline";
    
    # После того, как код получен, просим ввести его:
    echo 'Введите полученный код:' . "\n";
    $code = readline();

    # Получаем токен по выданному коду
    $cmd = "curl -silent -d 'client_id={$google_client_id}&client_secret={$google_secret}&code={$code}&grant_type=authorization_code&redirect_uri={$callback}' https://accounts.google.com/o/oauth2/token&access_type=offline";
    $json = shell_exec($cmd);

    # Сохраняем токен в файле
    file_put_contents($token_file, $json);
    $token = json_decode($json, 1);
}


# Проверяем токен
$check_url = "https://www.googleapis.com/oauth2/v1/tokeninfo?access_token={$token['access_token']}";
$c = curl_init($check_url);
curl_setopt($c, CURLOPT_RETURNTRANSFER, 1);
$token_info = json_decode(curl_exec($c), 1);


# Если срок действия избежал, обновляем токен
if ( $token_info['expires_in'] <= 0 )
{
    $cmd = "curl -d 'client_id={$google_client_id}&client_secret={$google_secret}&refresh_token={$token['refresh_token']}&grant_type=refresh_token' https://accounts.google.com/o/oauth2/token&access_type=offline";
    $output = shell_exec($cmd);
    $data = json_decode($output, 1);
    
    # обновляем токен
    if ( $data['access_token'] )
    {
        $data['refresh_token'] = $token['refresh_token'];
        file_put_contents($token_file, json_encode($data));
        $token = $data;
    }
    else
    {
        echo 'error obtaining token';
        return;
    }
}

# быстрый вариант авторизации с помощью curl

После выполнения этого кода в переменной $token будет лежать ключ доступа, который можно использовать в API.

Google Analytics API

Для выгрузки данных из Google Analytics нужно определить несколько параметров:

$profile = 12345; # ID профиля GA

$date_start = '2018-01-01'; # дата начала
$date_end = date('Y-m-d'); # и дата конца выборки

$metrics = 'ga:sessions'; # метрика выборки
$items_per_page = 1000; # количество элементов в возвращаемом списке

...

# основные параметры запроса к GA API

Тепер выполним простую выгрузку сессий с начала года по дням:

$url = "https://www.googleapis.com/analytics/v3/data/ga?ids=ga:{$profile}&" .
       "start-date={$date_start}&end-date={$date_end}&" .
       "metrics={$metrics}&dimensions=ga:date" .
       "&access_token={$token['access_token']}" .
       "&max-results={$items_per_page}";
           
$c = curl_init($url);
curl_setopt($c, CURLOPT_RETURNTRANSFER, 1);
$data = json_decode(curl_exec($c), 1);

$stats = $data['rows'];
print_r($stats);

# В массиве stats увидим данные по сессиям

Вид результата будет таким:

Array
(
    [0] => Array
        (
            [0] => 20180101
            [1] => 1913
        )

    [1] => Array
        (
            [0] => 20180102
            [1] => 3225
        )
...

Возможные метрики и измерения (metrics & dimensions) для выборки указаны тут. Метрики можно указывать через запятую:

$metrics = 'ga:sessions,ga:pageviews';

Выгрузка больших объемов

Если объем данных превышает максимальное количество записей (параметр $items_per_page), необходимо делать повторные запросы со смещением:

$date_start = '2010-01-01';
$date_end = date('Y-m-d');

$url = "https://www.googleapis.com/analytics/v3/data/ga?ids=ga:{$profile}&" .
       "start-date={$date_start}&end-date={$date_end}&" .
       "metrics={$metrics}&dimensions=ga:date" .
       "&access_token={$token['access_token']}" .
       "&max-results={$items_per_page}";
    
$stats = [];
do {
    $c = curl_init($url);
    curl_setopt($c, CURLOPT_RETURNTRANSFER, 1);
    $data = json_decode(curl_exec($c), 1);
    curl_close($c);
        
    # Заполняем массив с результатами (или сразу записываем в итоговый файл)
    foreach ( $data['rows'] as $row ) $stats[] = $row;

    # Проверяем существует ли следующая страница
    $url = $data['nextLink'] . "&access_token={$token['access_token']}";
} while ( $data['nextLink'] );


# тут все данные уже выгружены
...

# Параметр nextLink будет содержать ссылку на следующую страницу результатов

Query explorer

Существует удобный инструмент для генерации запросов к GA API. Он поможет быстро составить необходимый запрос с любыми метриками, сегментами и фильтрами.

TL;DR

API Google Analytics можно использовать через обычный HTTP протокол. Для выгрузки больших объемов данных достаточно использовать постраничный вывод. Query explorer поможет сформировать выборки к API с использованием фильтров, сегментов и т.п.