Руководство для разработчиков

В этом документе описывается использование Real Time Reporting API для получения данных Google Analytics.

Введение

Отчеты Real Time Reporting API позволяют формировать общую картину текущей активности на вашем ресурсе. Чтобы иметь доступ к данным в режиме реального времени, нужно создать запрос с указанием представления (профиля) и хотя бы одного показателя. Этот запрос можно также уточнить с помощью параметров и фильтров. Он отправляется в Real Time Reporting API, а данные возвращаются в виде таблицы.

Если вы ещё не знакомы с Real Time Reporting API, прочитайте эту статью.

Подготовка

Что нужно сделать, прежде чем использовать Real Time Reporting API для получения данных Google Analytics.

В каждой библиотеке реализован один служебный объект Google Analytics, который обеспечивает доступ ко всем данным Real Time Reporting API. Чтобы создать его, выполните следующие действия:

  1. Зарегистрируйте приложение в Google API Console.
  2. Разрешите доступ к Google Analytics.
  3. Создайте служебный объект Google Analytics.

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

Как использовать Real Time Reporting API

Использование Real Time Reporting API заключается в выполнении следующих действий:

  1. Отправка запросов в Real Time Reporting API.
  2. Обработка ответов API.

Запросы к Real Time Reporting API

В служебном объекте Google Analytics есть метод для создания запроса к Real Time Reporting API. Подробную информацию о параметрах запроса и данных, доступных в API, можно найти в следующих статьях:

Создав запрос, вызовите его метод execute, чтобы отправить запрос на серверы Google Analytics.

Обработка ответов API

В случае успешного запроса Real Time Reporting API возвращает данные в соответствующем ресурсе. Подробнее о формате ответа…

В случае ошибки возвращается соответствующий код статуса и ее описание. Во всех приложениях необходимо реализовать перехват и обработку ошибок. Подробнее об ошибках и способах их устранения…

Примеры кода

В разделе Примеры статьи Данные в режиме реального времени: метод get есть примеры отправки запросов в Real Time Reporting API и обработки ответов на различных языках программирования.

Требования к запросам

Для запросов к Real Time API установлены описанные ниже ограничения:

  • В запросах, содержащих показатель rt:activeUsers со следующими фильтрами параметров, поддерживаются только оператор AND и тип соответствия "равно" (==):
    • rt:goalId
    • rt:eventAction
    • rt:eventCategory
    • rt:eventLabel

    Поскольку показатель rt:activeUsers получает только количество пользователей, активных на сайте в данный момент, его не следует использовать вместе с показателем rt:minutesAgo. Иными словами, использование rt:activeUsers предполагает, что rt:minutesAgo равен нулю.

  • Фильтры показателей не поддерживаются.
  • Параметр fields не поддерживается.

Управление квотами

В отношении Real Time Reporting API применяются те же ограничения и квоты, что и в отношении других API в Google Analytics API. Помните, что при регулярном опросе Real Time Reporting API с небольшими интервалами вы очень быстро израсходуете дневную квоту. В этом случае запросы от других Google Analytics API не будут обрабатываться до тех пор, пока квота не будет восстановлена.

Примеры таких неудачных реализаций:

  • В приложении используется несколько сводок с данными реального времени, которые ежедневно и с небольшим интервалом запрашивают данные из одного представления (профиля) Google Analytics.
  • В ресурсе с большим количеством пользователей используется виджет с данными реального времени, при каждом показе которого вместо кешированного ответа выполняется прямой запрос к Google Analytics.

Советы по рациональному использованию квот.

  • Применяйте кеширование на стороне сервера. Если сразу несколько пользователей запрашивают одинаковые данные в режиме реального времени, вместо прямого запроса к Real Time Reporting API следует возвращать кешированный ответ. Содержимое кеша нужно периодически обновлять с таким расчетом, чтобы не превысить дневную квоту.
  • Объединяйте несколько запросов в один с помощью дополнительных параметров, после чего реализуйте анализ ответа на стороне сервера или клиента.
  • Увеличьте интервал между запросами данных в режиме реального времени.

Как рассчитать интервал между обновлениями

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

Например, к одному представлению (профилю) Google Analytics можно выполнять не более 10 000 запросов в день. Допустим, к Core Reporting API совершается 6000 запросов в день для одного из представлений (профилей). В таком случае у вас останется запас в 4000 запросов.

Предположим, вы хотите реализовать три сводки, которые в течение всего дня будут запрашивать данные этого представления (профиля) в режиме реального времени, с помощью Real Time Reporting API. Таким образом, на каждую из сводок придется по 1333 запроса. В сутках 86 400 секунд, соответственно, интервал между запросами для каждой сводки должен быть не менее 65 секунд.