API Google Analytics — получение идентификатора пользовательского сегмента по его имени

Использование Google Analytics API для получения данных более 20 профилей, чтобы я мог объединить их все в один набор данных для анализа. (отдельные профили предназначены для разных доменов с одинаковым контентом)

Я использую пользовательский сегмент в каждом профиле для удаления реферального спама. Я дал пользовательским сегментам одно и то же имя, например, «спам реферера».

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

Я думал, что смогу просмотреть сегменты и получить идентификатор каждого профиля по имени пользовательского сегмента, например, «спам реферера». Первое, что я сделал, это перебрал сегменты, чтобы посмотреть, что это мне даст. Поэтому я сделал следующее:

# Authenticate and construct service.
service = get_service('analytics', 'v3', scope, key_file_location,
service_account_email)

segments = service.management().segments().list().execute()

for segment in segments.get('items', []):
  print 'Segment ID ' + segment.get('id') + " - " + segment.get('name')

Но это не извлекает пользовательские сегменты, а только «стандартные» сегменты Google, например, такие, как:

Segment ID -1 - All Sessions
Segment ID -2 - New Users
Segment ID -3 - Returning Users
Segment ID -4 - Paid Traffic
Segment ID -5 - Organic Traffic
Segment ID -6 - Search Traffic
Segment ID -7 - Direct Traffic
Segment ID -8 - Referral Traffic
Segment ID -9 - Sessions with Conversions
Segment ID -10 - Sessions with Transactions
etc etc

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

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

Я предоставил сгенерированный API адрес gmail разработчика/пользовательское разрешение на чтение для всех профилей. Думаю, этого недостаточно для получения пользовательских сегментов.

Я что-то упускаю? Есть ли способ получить пользовательский сегмент с помощью сервисного аккаунта? Нужно ли мне проходить аутентификацию с другой учетной записью, кроме учетной записи службы?


person curtisp    schedule 22.07.2015    source источник


Ответы (2)


Я нашел простой способ получить информацию о пользовательских сегментах из API.

Во-первых, вам нужно иметь доступ к управлению пользователями, вероятно, администратор может легко это сделать.

Управление сегментами#Установка доступности сегментов

  • Перейдите по этой ссылке и перейдите в раздел «Установить доступность сегмента».
  • Примените параметр «Разрешение на совместную работу», как показано в ссылке.

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

Список сегментов пользователя

На этот раз вы сможете получить пользовательские идентификаторы сегментов. Я пытался получить информацию о пользовательском сегменте за последние 3-4 дня. Надеюсь, поможет.

person Harshit    schedule 24.07.2015
comment
Спасибо, я только что попробовал это, и это работает. Хотя в итоге я использовал вариант 2 в своем ответе ниже, извлекая источник и имя хоста в свой основной запрос отчета. Я использовал фильтр для источника в основном отчете italic_service.data().ga().get( _italic. Мне пришлось сделать фильтр имени хоста отдельно для результатов получения. Но теперь, когда я могу увидеть пользовательские сегменты, я мог бы вернуться и использовать их вместо этого. - person curtisp; 04.08.2015

Ответ заключается в том, что API Analytics Core Reporting API не имеет доступа к пользовательским сегментам. Доступ к ним возможен только через Analytics Management API, как указано здесь:

Получить пользовательские сегменты, чтобы применить их к запросам Core Reporting API. https://developers.google.com/analytics/devguides/config/mgmt/v3/

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

https://developers.google.com/analytics/devguides/reporting/core/v3/reference#segment

В качестве альтернативы я могу забыть об использовании пользовательских сегментов и вместо этого получить имя хоста сеанса и источник в данных вызовов Analytics Core Reporting API, чтобы я мог использовать тот же фильтр в запросе или отчете, что и мой пользовательский сегмент. Недостатком является то, что реферальный спам составляет около 80% + данных Google Analytics, поэтому я буду получать больше данных, чем мне нужно на регулярной основе.

person curtisp    schedule 23.07.2015