Статьи

Google API: как получить доступ к данным Google Analytics?

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

Учетная запись Google: для доступа к Google Analytics пользователю потребуется учетная запись Google, которая позволяет пользователям входить в несколько продуктов Google, таких как Gmail, Blogger, Analytics, Adsense и т. Д. [[email protected]].

Учетная запись Google Analytics: если пользователь хочет получить доступ к функциям веб-аналитики, ему необходимо зарегистрироваться в этой службе. Это уникальный идентификатор, представляющий аккаунт Google Analytics. Пользователь по-прежнему может использовать адрес электронной почты своего аккаунта Google для аутентификации и входа в сервисы аккаунта Google Analytics. [например, 65421]

Образец аккаунта Google Analytics

Веб-свойства: веб-собственность может называться одним веб-сайтом, который можно отслеживать независимо. Если учетная запись называется AbcCompany, то веб-ресурс может быть abc.com, который ссылается на личный веб-сайт пользователя, другой веб-ресурс может быть abcbiz.com, который относится к бизнес-сайту пользователя, а другой может быть abc.mobi, который специально предназначен для его мобильные клиенты. Веб-ресурсы под учетной записью будут иметь тот же номер учетной записи, но с другим суффиксом. Например, если идентификатор учетной записи для AbcCompany равен 65421, поэтому веб-ресурсом для abc.com может быть UA-65421-1, для abcbiz.com — UA-65421-2.

Пример свойства Google Analytics

Создайте новое свойство, используя вкладку «Свойство»:

Создать новую недвижимость

Профиль Google Analytics. У каждой учетной записи веб-ресурса будет хотя бы один профиль аналитики. Профиль имеет доступ ко всем аналитическим данным и отчетам. Каждый профиль будет иметь уникальный идентификатор профиля. Профили могут иметь несколько целей, пользователей, фильтров и активов.

профили

На вкладке «Настройки профиля» приведены сведения об идентификаторе профиля и URL-адресе веб-сайта. Профиль может иметь одного или нескольких пользователей.

Изменить настройки профиля

Детали отношений выделены на диаграмме ниже.

GA Профиль пользователя Аккаунт отношения

Что такое OAuth 2.0?

OAuth — это открытый стандарт для авторизации. Это позволяет пользователям совместно использовать свои ресурсы из одного местоположения в другое местоположение без необходимости обмениваться учетными данными. OAuth 2.0 основан на протоколе OAuth, однако он помогает с новыми функциями аутентификации для веб-приложений, настольных приложений, мобильных приложений и т. Д. Они используют токены вместо фактического имени пользователя и пароля для общения друг с другом и обеспечивают авторизацию.

Как Google API связан с OAuth2.0?

Google API предоставляет доступ к своему приложению, используя стандарт OAuth 2.0. Google использует этот протокол в качестве своей аутентификации и авторизации, особенно когда сторонние клиенты хотят иметь безопасный доступ к данным приложения Google. Авторизация Google работает в несколько этапов высокого уровня:

а) Зарегистрировать приложение в Google
б) Перенаправить браузер на URL
в) Парсировать токен из ответа
г) Отправьте токен на сервер авторизации Google.
д) Получить данные Google Analytics с помощью токена доступа к запросу.

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

Архитектура Google Analytics

Ну что ж, все введение закончено. Мы вернемся к действию. До настоящего времени мы узнали о различных функциях данных Google Analytics, а также о механизме авторизации и аутентификации. Теперь мы углубимся в детали реализации. Упс … Остался еще один предмет. Все дело в том, к каким данным мы будем обращаться из Google Analytics и как они связаны.

Измерение против метрики

Измерение против метрики

Проще говоря, измерение в аналитике Google представляет строки в отчете, а метрики — столбцы. Например, измерение относится к стране, браузерам, источникам трафика, а метрики — посещения, новых посетителей, транзакций и т. Д.

Итак, что мы пытаемся сделать со всеми этими деталями?

Постановка проблемы: мы пытаемся создать отдельное приложение, которое будет пытаться использовать протокол OAuth 2.0 и получать данные из Google Analytics.

Решение:

Шаг 1: Загрузите и импортируйте файлы Jar

Для начала нам нужно скачать и импортировать следующие файлы jar:
Местоположение загрузки: API клиента Google

  • google-api-client-1.8.0-beta.jar — содержит код основного API для Google Analytics
  • google-oauth-client-1.8.0-beta.jar — содержит код клиента OAuth
  • gson-2.1.jar — библиотека Java для преобразования JSON в объект Java и наоборот
  • guava-11.0.1.jar — этот jar содержит несколько основных библиотек Google, таких как коллекции, кэширование, поддержка примитивов, общие аннотации, обработка строк
  • jackson-core-asl-1.9.4.jar — это высокопроизводительный процессор JSON

Шаг 2: Зарегистрируйте клиентское приложение в Google

Каждое приложение должно быть зарегистрировано в Google API, чтобы мы могли использовать токен OAuth 2.0 в процессе аутентификации и авторизации. Чтобы зарегистрировать приложение, пользователь должен войти в учетную запись Google и перейти в консоль API Google .

В консоли Google API создайте новый проект с помощью меню слева.

Создать новый проект

На вкладке «Службы» включите API-интерфейс Google Analytics, чтобы к нему можно было получить доступ.

Включить API Analytics

На вкладке API Access создайте идентификатор клиента OAuth 2.0.

Создать идентификатор клиента OAuth

Создать информацию о брендинге для идентификатора клиента

Создать информацию о брендинге

Выберите тип приложения. В нашем примере мы выбираем «Установленное приложение», обычно работающее в локальной системе.

Выберите тип приложения

Сводная информация по консоли API, содержащая сведения об идентификаторе клиента и его секрете

Сводка Google API Console

Шаг 3: Авторизация запросов

Регистрация дает значение clientId и clientSecret для вашего приложения, чтобы оно могло работать с Google API. Это ключи позволят клиентскому приложению не указывать имя пользователя и пароль и вместо этого использовать эти ключи.

Когда клиентское приложение выполняется, оно предлагает пользователям разрешить доступ и перенаправляет пользователей на URL-адрес Google, который, в свою очередь, предоставляет код авторизации. Код авторизации возвращается клиентскому приложению, которое затем использует код для получения токена доступа.

Шаг 4. Доступ к данным пользователя Google Analytics

Клиентское приложение использует токен доступа для получения данных пользователя Google Analytics.

<< GA Пример Скачать Код >>

Пример кода Объяснение:

Идентификатор клиента и значение Client Secret, полученные из консоли API Google, необходимо скопировать здесь, в программе.

1
2
private static final String CLIENT_ID = "XXXXXXXXXX";
private static final String CLIENT_SECRET = "XXXXXXXXX";

Создайте URL, который будет использоваться для получения кода авторизации.

1
2
String authorizationUrl = new GoogleAuthorizationRequestUrl(CLIENT_ID,
    REDIRECT_URL, SCOPE).build();

Здесь REDIRECT_URL относится к абсолютному пути URI, по которому сервер авторизации перенаправит пользовательский агент на этап авторизации конечного пользователя, и SCOPE относится к объему выраженного запроса доступа. Как только приложение выполнено, URL генерируется. Этот URL-адрес спросит, может ли пользователь учетной записи Google Analytics разрешить доступ для получения кода авторизации. После создания кода авторизации он будет использоваться в клиентском приложении для получения доступа к токену API Google.

Прочитайте код авторизации из консоли:

1
BufferedReader in = new BufferedReader(new InputStreamReader(System.in));

Получите доступ к токену OAuth 2.0, используя код авторизации:

1
2
3
AccessTokenResponse response = new GoogleAccessTokenRequest.GoogleAuthorizationCodeGrant(
     netHttpTransport, jacksonFactory, CLIENT_ID, CLIENT_SECRET,
     authorizationCode, REDIRECT_URL).execute();

Инициализируйте объект службы Google Analytics:

1
2
3
Analytics analytics = Analytics.builder(netHttpTransport, jacksonFactory)
  .setHttpRequestInitializer(googleAccessProtectedResource)
                .setApplicationName(APPLICATION_NAME).build();

Получить данные профиля:

1
2
Profiles profiles = analytics.management().profiles()
    .list("~all", "~all").execute();

Получить данные Google Analytics с помощью запроса API:

1
2
3
4
5
Get apiQuery = analytics.data().ga()
 .get("ga:" + profile.getId(), // Table ID ="ga"+ProfileID
 "2012-03-21", // Start date
 "2012-05-04", // End date
 "ga:visits"); // Metrics

Установить фильтры:

1
2
apiQuery.setFilters("ga:medium==referral");
apiQuery.setMaxResults(100);

Выполнить запрос:

1
GaData gaData = apiQuery.execute();

Затем данные могут быть получены из объекта GaData с использованием метода retrieveData ().

01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
20
public static void retrieveData(GaData gaData) {
// Get Row Data
if (gaData.getTotalResults() > 0) {
// Get the column headers
for (ColumnHeaders header : gaData.getColumnHeaders()) {
System.out.format("%-20s",
header.getName() + '(' + header.getDataType() + ')');
}
System.out.println();
// Print the rows of data.
for (List<String> rowValues : gaData.getRows()) {
for (String value : rowValues) {
System.out.format("%-20s", value);
}
System.out.println();
}
} else {
System.out.println("No data available");
}
}

Если вы хотите узнать больше о Google Analytics, обратитесь к нашей статье « Все о Google Analytics ».

Справка: Google API: как получить доступ к данным Google Analytics? от нашего партнера JCG Майнака Госвами в блоге Idiotechie .