В этой статье описываются основные принципы использования Management API для просмотра разрешений пользователей на доступ к аккаунтам, ресурсам и представлениям (профилям) Google Analytics, а также управления такими разрешениями.
Введение
Чтобы выводить список, создавать, редактировать и удалять пользователей своего аккаунта Google Analytics, вам потребуются разрешения в Management API. Например, они применяются для автоматического добавления или удаления нескольких пользователей в Google Analytics.
Подготовка к работе
Доступ ко всем Google Analytics API осуществляется одинаково. Прежде чем начать работу с Management API, ознакомьтесь со следующими материалами:
- Клиентские библиотеки. На этой странице представлены клиентские библиотеки для всех языков программирования, которые поддерживает этот API.
- Справочное руководство по интерфейсу API и доступу к данным без использования клиентских библиотек.
В каждой библиотеке реализован один объект службы Google Analytics, который обеспечивает доступ ко всем данным Management API. Чтобы создать объект службы, обычно нужно выполнить следующие действия:
- Зарегистрируйте приложение в Google Developers Console.
- Разрешите доступ к Google Analytics.
- Создайте объект службы Google Analytics.
Если вы не выполнили эти действия, перед продолжением прочитайте вводное руководство по Google Analytics API, в котором описывается, с чего нужно начинать создание приложения на его основе. Это поможет вам использовать Google Analytics API для работы с реальными приложениями.
Основные понятия
Иерархия аккаунта
В иерархии Google Analytics у авторизованного пользователя может быть несколько аккаунтов, в каждом из которых есть один или несколько ресурсов, в свою очередь содержащих несколько представлений (профилей).

Уровни разрешений
Пользователю Google Account могут назначаться различные уровни доступа к аккаунтам, ресурсам или представлениям (профилям).
Поддерживаемые уровни доступа:
MANAGE_USERS;
EDIT;
COLLABORATE;
READ_AND_ANALYZE.
Унаследованные разрешения
Разрешение на редактирование (EDIT
) на уровне аккаунта наследуется всеми его профилями и ресурсами.
Разрешение на совместное использование (COLLABORATE
) на уровне ресурса наследуют все принадлежащие ему профили.
Работа с разрешениями
В API используются локальные (local
) и действующие (effective
) разрешения. Первые применяются к фактическому аккаунту, ресурсу или представлению (профилю) и могут настраиваться. Разрешения
effective
наследуются от родительских ресурсов.
Извлечение разрешений для авторизованного пользова
Чтобы получить информацию о разрешениях для авторизованного пользователя, выполните операцию list
или get
в отношении ресурса Accounts, Webproperties или Profiles.
Чтобы выполнить эти операции, пользователь должен быть авторизован в любой из следующих областей доступа:
https://www.googleapis.com/auth/analytics.readonly
https://www.googleapis.com/auth/analytics
Разрешение на управление пользователями
Для просмотра разрешений пользователя в отношении аккаунтов, ресурсов и представлений (профилей) Google Analytics, а также управления этими разрешениями используются следующие ресурсы:
- accountUserLinks – вывод списка, удаление, создание и обновление разрешений на уровне аккаунта.
- webpropertyUserLinks – вывод списка, удаление, создание и обновление разрешений на уровне ресурса.
- profileUserLinks – вывод списка, удаление, создание и обновление разрешений на уровне представления (профиля).
Для выполнения этих операций пользователь должен иметь разрешения уровня MANAGE_USERS
и пройти авторизацию в следующей области доступа:
https://www.googleapis.com/auth/analytics.manage.users
Ограничения на количество пользовательских ссылок в аккаунте
Количество аккаунтов на одного пользователя для API не может превышать 100.
-
При попытке вызвать метод
insert
для пользователя со 100 аккаунтами возвращается ошибка. - Подробнее об общих квотах и ограничениях...
Примеры использования
Разрешения Management API могут потребоваться для выполнения следующих задач:
- Вывод списка всех пользователей аккаунта
- Удаление пользователя из иерархии аккаунта
- Обновление отдельного пользователя
- Добавление отдельного пользователя
Вывод списка всех пользователей аккаунта
Чтобы вывести список всех пользователей аккаунта, включая тех, у кого есть разрешения на любые его ресурсы или представления (профили), выполните метод list
ресурса accountUserLinks
.
Удаление пользователя из иерархии аккаунта
Чтобы удалить пользователя со всех уровней иерархии (аккаунт, ресурсы и представления (профили)), выполните следующие действия:
- Получите все пользовательские ссылки для объектов каждого уровня.
Выполните три запросаlist
для аккаунта: - Найдите и удалите всех пользователей с разрешениями local.
В отношении каждого ответа, полученного после выполнения трех операций на предыдущем шаге, проверьте все ресурсыentityUserLink
:- Если значения свойств
userRef
соответствуют пользователю и заданы разрешенияlocal
, то выполните операциюdelete
для ресурса.
- Если значения свойств
В справочнике по API вы найдете подробное описание метода delete
для ресурсов accountUserLinks, webpropertyUserLinks и profileUserLinks.
Обновление отдельного пользователя
С помощью Management API также можно обновлять разрешения пользователя. Например, если вам неизвестны название или идентификатор представления (профиля), чтобы изменить уровень разрешений с READ_AND_ANALYZE
на EDIT
, выполните следующие действия:
- Получите все пользовательские ссылки для объектов каждого уровня.
Выполните три запросаlist
для аккаунта: - Найдите и обновите пользователей с разрешениями local.
В отношении каждого ответа, полученного после выполнения трех операций на предыдущем шаге, проверьте все ресурсыentityUserLink
:- Если значения свойств
userRef
соответствуют пользователю и назначено разрешениеlocal
с уровнемREAD_AND_ANALYZE
, то выполните операциюupdate
для ресурса.
- Если значения свойств
В справочнике по API вы найдете подробное описание метода update
для ресурсов accountUserLinks, webpropertyUserLinks и profileUserLinks.
Добавление отдельного пользователя
Чтобы добавить пользователя в иерархию аккаунта, например на уровне представления (профиля), выполните следующие действия:
- С помощью Management API или веб-интерфейса получите идентификаторы аккаунта, ресурса и представления (профиля).
- Выполните метод
insert
ресурсаprofileUserLinks
.
В справочнике по API вы найдете подробное описание метода insert
для ресурсов accountUserLinks, webpropertyUserLinks и profileUserLinks.
Пакетирование запросов
Пакетирование запросов на запись к API, связанных с разрешениями (удаление, добавление или обновление), имеет ряд преимуществ с точки зрения эффективности и действующих ограничений.
- Пакетированные запросы подвергаются оптимизации на стороне сервера, что существенно повышает производительность.
- 30 пакетированных запросов API считаются одной операцией записи.
- В одном пакетированном запросе могут содержаться до 300 запросов API, что увеличивает допустимое число запросов в секунду на пользователя.
Чтобы воспользоваться этими преимуществами, следуйте приведенным ниже рекомендациям:
- Группируйте запросы к API по пользователям.
- Пакетировать запросы следует только в рамках одного аккаунта. Если в запросах, связанных с разрешениями пользователей, указаны несколько аккаунтов Google Analytics, появится следующее сообщение об ошибке:
All batched requests must be under the same account
(Все пакетированные запросы должны быть в одном аккаунте).
Пример пакетирования: Python
Ниже приводится пример пакетирования на Python, в котором сгруппированы запросы на предоставление списку пользователей доступа к набору представлений (профилей). Для всех аккаунтов авторизованного пользователя создается один пакетированный запрос, в котором объединены все касающиеся этого пользователя изменения.