API Яндекс Тег Менеджера

31 мая, 2026

Научились всем настройкам и отслеживаниям внутри интерфейса Яндекс Тег Менеджера? Пора переходить к изучению API.

Этот материал был специально подготовлен для онлайн-курса по Яндекс Тег Менеджеру.

Первая версия API Яндекс Тег Менеджера была выпущена в августе 2025 года. На данный момент API позволяет:

  • получать список тегов и информацию о конкретных тегах;
  • получать информацию о триггерах и условиях их срабатывания;
  • получать данные о переменных, используемых в тегах и триггерах;
  • получать список публичных шаблонов из галереи.

Подробнее об API Яндекс Тег Менеджера читайте в официальной документации.

Введение в API

API Яндекс Тег Менеджера построен по принципам REST (Representational State Transfer). Запросы к API передаются по протоколу HTTPS в следующем формате:

, где:

  • <тип метода> - GET (читать содержимое и текущее состояние ресурса);
  • <имя сервиса> - название сервиса API;
  • <раздел_API> - название раздела API, в котором выполняется действие;
  • <версия> - номер текущей версии API;
  • <container> - идентификатор конкретного контейнера;
  • <имя_метода> - URL ресурса, над которым выполняется действие;
  • <параметры> - обязательные и необязательные параметры запроса.

Все сущности, доступные для получения информации через API, представлены в виде ресурсов: теги, триггеры, переменные и шаблоны. Ресурс - это целостная часть системы, к которой можно применять определенные HTTP-методы. API Яндекс Тег Менеджера работает в режиме чтения и поддерживает только HTTP-метод GET. Входные данные передаются в параметрах запроса URL. Входные структуры совпадают с выходными структурами GET-методов соответствующих ресурсов.

У каждого ресурса есть свой уникальный URL. Например:

  • получить список шаблонов из галереи
  • получить список всех переменных контейнера
  • получить список триггеров
  • получить список всех тегов контейнера
Все действия выполняются соответствующими методами протокола HTTPS на URL'ы ресурсов. С каждым запросом требуется передавать токен, необходимый для авторизации на OAuth-сервере Яндекса. Если метод API вызван без токена или в запросе передан недействительный токен, сервер возвращает HTTP-статус 401 Unauthorized.

С целью обеспечения максимального уровня доступности сервиса, в Яндекс Тег Менеджере предусмотрены ограничения на интенсивность запросов к API со стороны пользователей. В случае превышения квот дальнейшие действия пользователя временно блокируются. При этом API возвращает ответ с HTTP-статусом 429 Too Many Requests. В теле ответа содержится информация о типе превышенной квоты.

Ограничения API:

  • Количество запросов для каждого пользователя (идентифицируемого по User ID) - до 5 000 запросов в сутки на чтение;
  • Количество запросов на один контейнер - до 5 000 запросов в сутки.

Описание других ошибок смотрите в официальной справке.

Все разделы API Яндекс Тег Менеджера поддерживают версионирование. Каждая версия имеет уникальный идентификатор (например, v1, v2 и т.д.). При выходе новой версии предыдущие продолжают работать для обеспечения обратной совместимости.

Рекомендации по использованию версий:

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

При формировании запроса к API всегда указывайте версию, с которой вы хотите работать. Например:

На момент написания этого руководства поддерживается только v1.

Давайте подробнее рассмотрим процесс работы с API, включая все ресурсы и получение авторизационного токена.

Получение OAuth-токена

Для использования API Яндекс Тег Менеджера необходимо получить авторизационный токен через OAuth-сервер Яндекса. Чтобы его получить, необходимо авторизоваться под своей учетной записью Яндекса, перейти по ссылке oauth.yandex.ru и создать приложение:

Создание приложения

Примечание: если у вас нет логина в Яндексе - зарегистрируйте аккаунт Яндекс ID, а затем авторизуйтесь.

В открывшемся окне выберите вариант Для доступа к API или отладки (Для получения доступа к API сервисов Яндекса. Нет доступа к данным пользователей) и нажмите кнопку Перейти к созданию:

Для доступа к API или отладки

В настройках приложения укажите следующие данные:

  • Название вашего сервиса - можно указать произвольно (например: API Яндекс Тег Менеджера);
  • Почта для связи - почта компании или своя.

Название сервиса и почта для связи

В разделе Доступ к данным добавьте ytm:read:

Получение информации о тегах, триггерах, переменных, шаблонах

Redirect URI для веб-сервисов останется без изменений, изменить его нельзя - https://oauth.yandex.ru/verification_code:

Redirect URI для веб-сервисов

Убедитесь, что все заполнено верно, а затем создайте приложение:

Создание приложения

После этого вас перенаправит на страницу приложения, где будет отображаться ClientID:

ClientID вашего приложения

Теперь авторизуйтесь под учетной записью Яндекса, на которой у вас есть доступ к счетчику Яндекс Метрики и Яндекс Тег Менеджеру, и перейдите по ссылке, добавив ее в адресную строку браузера:

, где вместо <идентификатор приложения> вставьте идентификатор вашего приложения ClientID, скопированный на предыдущем шаге:

Ссылка с идентификатором приложения (ClientID)

У вас должно открыться окно авторизации. Нажмите кнопку Войти как… и тогда ваше приложение получит доступ к данным вашего контейнера Яндекс Тег Менеджера:

Разрешить приложению доступ к информации о тегах, триггерах, переменных, шаблонах

На следующей странице отобразится ваш авторизационный токен. Его вы будете использовать/передавать для каждого метода API в HTTP-заголовке Authorization:

Авторизационный токен (OAuth-токен, токен доступа)

Пример запроса с авторизационным токеном:

, где <access_token> - это ваш авторизационный токен.

Сохраните его и никому не показывайте и не передавайте. С его помощью можно получить доступ к данным вашего контейнера Яндекс Тег Менеджера программным способом.

Копирование программы

Все действия мы будем выполнять в любимом браузере (Chrome, Opera, Yandex, Safari, Edge или любой другой). Главное – это подключение к Интернету, поскольку без него мы не сможем обращаться к API Яндекс Тег Менеджера.

А как же быть с Python? Чтобы иметь возможность получать информацию о тегах, триггерах, переменных и шаблонах, необходимо использовать API. А чтобы эти запросы отправлять и получать от Яндекса ответ, необходимо использовать Python и специальное программное обеспечение (ПО). Такое ПО называют интегрированной средой разработки (IDE). Наиболее популярным Python IDE является PyCharm.

Многие специалисты в своей работе так же используют блокнот Jupyter Notebook, который можно установить с помощью дистрибутива Anaconda, включающий набор популярных библиотек для работы с данными. Еще есть Visual Studio Code и много других продуктов. Выбор тех или иных программ зависит исключительно от ваших предпочтений в изучении или от тех инструментов, которые используются в вашей компании.

Вот чтобы не усложнять и избавить себя от излишних сложностей, я предлагаю использовать другой сервис - Google Colab.

Google Colab

Colaboratory (или просто Colab) - это бесплатный продукт Google. Он позволяет любому человеку писать и выполнять код Python прямо в браузере, без установки каких-либо программ и без дополнительной настройки на компьютере. Для API Яндекс Тег Менеджера этого будет достаточно.

Специально для вас я подготовил программу, которую вы можете скопировать к себе и использовать ее для получения статистики по нужным поисковым запросам. Ссылка на нее доступна на моей платформе edu.osipenkov.ru в разделе Материалы.

СКОПИРОВАТЬ ПРОГРАММУ

 

Скачать программу на платформе edu.osipenkov.ru

Откройте ее в своем браузере и скопируйте к себе на Google Диск с помощью команды Файл - Сохранить копию на Диске, предварительно авторизовавшись под своей учетной записью в Gmail:

Сохранить копию на Диске

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

Единственное, что вам нужно будет изменять в своих запросах - это:

  • <OAUTH_TOKEN> - авторизационный токен;
  • {containerId} - идентификатор контейнера Яндекс Тег Менеджера (указать свой).

Вместо <OAUTH_TOKEN> подставляйте свой токен, а в {containerId} - ID контейнера Яндекс Тег Менеджера

Вместо этой конструкции везде (во всех ячейках программы) подставляйте свой токен, который вы получили на предыдущем шаге.

Структура API

Про структуру API Яндекс Тег Менеджера подробно написано в официальной документации (раздел Справочник API). API включает в себя следующие разделы:

  • Просмотр тегов - позволяет получать список тегов и информацию о конкретных тегах;
  • Просмотр триггеров - позволяет получать информацию о триггерах и условиях их срабатывания;
  • Просмотр переменных - позволяет получать данные о переменных, используемых в тегах и триггерах;
  • Использование шаблонов - позволяет получать список публичных шаблонов из галереи.

API возвращает ответы в кодировке UTF-8. Ответы имеют формат JSON. Например, в результате выполнения следующего запроса будет получен список всех тегов контейнера:

Для удобства отладки результат может отображаться в отформатированном виде. Для этого в запросе любого типа передайте параметр pretty со значением равным 1:

При успешном выполнении GET-методов API возвращает HTTP-статус с кодом 200. Если HTTP-статус содержит другой код, запрос не выполнен.

Просмотр тегов

Материалы для справки:

Получение списка всех тегов контейнера

Данный ресурс возвращает список тегов с метаданными, созданных внутри контейнера Яндекс Тег Менеджера. Теги представляют собой фрагменты кода, которые запускаются на веб-странице при срабатывании связанных с ними триггеров.

Список всех тегов контейнера (GET):

В программе Colab получение списка всех тегов контейнера - это вторая ячейка:

Замените <OAUTH_TOKEN> на свой токен доступа и в строке:

замените {containerId} на свой идентификатор контейнера Яндекс Тег Менеджера. Найти его можно в правом верхнем углу интерфейса:

Идентификатор вашего контейнера Яндекс Тег Менеджера

Примечание: containerId является обязательным параметром для заполнения.

В Colab это будет выглядеть так:

Добавьте данные своего токена и ID контейнера Яндекс Тег Менеджера

Запустите ячейку с кодом, нажав на иконку play:

Запуск кода на получение списка всех тегов контейнера

После выполнения кода вы должны получить результат такого вида:

Результат выполнения

Это и есть JSON-объект со списком всех ваших тегов в Яндекс Тег Менеджере. Однако такой формат отображения данных (в одну строку) не всегда удобочитаем. Поэтому вы можете запустить следующую ячейку с таким кодом:

Этот код будет выводить JSON-результат в таком виде:

Вывод JSON в "красивом" виде

Для расшифровки понимания вложенности возьмем основной фрагмент:

tags (массив объектов) состоит из объектов типа SimpleLinkedEntityTag, которые содержат полную информацию о теге и его связях с другими сущностями (например, триггерами и переменными):

  • name - название;
  • create_time - дата и время создания в формате ISO 8601;
  • update_time - дата и время последнего обновления в формате ISO 8601;
  • tag_id - уникальный идентификатор тега;
  • type - тип тега, определяющий его реализацию (template - тег, созданный на основе пользовательского шаблона; chtml - тег с пользовательским HTML-кодом, который позволяет вставлять произвольный HTML на страницу);
  • tag_priority - числовое значение, определяющее порядок выполнения тега относительно других тегов. Теги с более высоким приоритетом выполняются раньше;
  • status - текущий статус тега в контейнере (active - активный тег, который выполняется при срабатывании связанных триггеров; paused - приостановленный тег, который временно не выполняется, но сохраняет все настройки; deleted - удаленный тег, который не выполняется и не отображается в основном списке);
  • original_tag_id - идентификатор тега из рабочей области, из которого был создан тег;
  • updated_by - имя или идентификатор пользователя, который последним обновил данный тег;
  • links_number - общее количество ссылок/связанных объектов на данную сущность из других сущностей (тегов, триггеров, переменных);
  • data - объект TemplateData с данными шаблона тега.

Внутри data (объект TemplateData) содержатся:

  • user_provided_values - массив параметров шаблона, заполненных пользователем;
  • allowed - флаг, указывающий, разрешено ли использовать данный шаблон в текущем контейнере. Некоторые шаблоны могут быть недоступны в зависимости от настроек контейнера;
  • template_id - уникальный идентификатор шаблона в системе Яндекс Тег Менеджер.

user_provided_values (массив объектов SimpleParameterData) включает:

  • parameter_id - уникальный идентификатор параметра в шаблоне;
  • type - тип параметра, определяющий способ его отображения и обработки (text_input - текстовое поле для ввода строковых значений; drop_down_menu - выпадающий список для выбора из предопределенных вариантов; radio_button - переключатель для выбора одного варианта из нескольких; checkbox - чекбокс для включения/выключения опции; code - редактор кода для ввода произвольного кода);
  • required - флаг, указывающий, является ли параметр обязательным для заполнения. Если true, пользователь не сможет сохранить настройки без заполнения этого параметра.

Есть еще total - общее количество тегов, соответствующих критериям запроса. Используется для постраничной навигации и отображения информации о количестве результатов.

В API Яндекс Тег Менеджера для тегов доступны Query parameters - это параметры в URL после ?, которые уточняют выборку (фильтр, пагинация, версия и т.д.). Например:

В requests лучше передавать их через params:

В моей программе Google Colab этот код написан в следующей ячейке. Вы можете его запустить и получить результат с учетом заданных параметров. Их лучше настроить под себя.

Запрос с параметрами

Query parameters:

  • container_version - номер версии контейнера, для которой нужно получить список тегов. Значение 0 (по умолчанию) означает текущую рабочую область (неопубликованную версию);
  • container_version_type - тип версии контейнера для фильтрации результатов (PRODUCTION - основная (опубликованная) версия, используемая на сайте; PREVIEW - предварительная версия для тестирования; DEVELOPMENT - версия в разработке);
  • name_filter - строка для фильтрации тегов по имени. Возвращает только те теги, в названии которых содержится указанная строка (без учета регистра);
  • offset - количество тегов, которое нужно пропустить перед началом выборки. Используется для постраничной навигации совместно с параметром (по умолчанию - 0);
  • per_page - максимальное количество тегов, которое будет возвращено в ответе. Используется для постраничной навигации совместно с параметром offset (по умолчанию - 200);
  • tag_ids - список идентификаторов тегов, информацию о которых нужно вернуть.

В моем примере использовался фильтр по названию тегов, где в названии содержится VK Реклама. Таких тегов в моем интерфейсе - 4:

Теги в интерфейсе Яндекс Тег Менеджера, которые содержит "VK Реклама" (4)

Поэтому и результат запрос вывел мне 4 тега:

Результат запроса с параметрами

Можно пойти чуть дальше и вернуть результат в виде датафрейма, а затем сохранить его к себе на компьютер, чтобы посмотреть весь список тегов в привычной таблице. Выполните следующую ячейку с кодом:

Результат выполнения:

Список всех тегов контейнера в формате DataFrame

Вы получите датафрейм с колонками:

  • sub_container_id - ID подконтейнера (если контейнер логически разбит на части/пространства; помогает понять, к какому сегменту относится тег);
  • name - название тега;
  • create_time - дата и время создания тега (ISO 8601, обычно UTC);
  • update_time - дата и время последнего изменения тега (ISO 8601);
  • tag_id - уникальный идентификатор тега;
  • type - тип тега: обычно template (шаблонный) или chtml (пользовательский HTML);
  • tag_priority - приоритет выполнения: чем выше число, тем раньше тег выполняется относительно других;
  • triggers - список ID триггеров, при срабатывании которых запускается тег;
  • status - статус тега: active / paused / deleted;
  • original_tag_id - ID исходного тега из рабочей области, если текущий тег создан как производный/копия;
  • updated_by - пользователь (логин/ID), который последним изменил тег;
  • links_number - количество связей этой сущности с другими объектами (теги/триггеры/переменные).

Поля из data (объект TemplateData):

  • data.allowed - можно ли использовать этот шаблон в текущем контейнере (true/false);
  • data.template_id - идентификатор шаблона тега в системе;
  • data.template_version - версия шаблона, по которой создан/обновлен тег;
  • data.user_provided_values - значения параметров шаблона, которые заполнил пользователь (обычно массив объектов с parameter_id, type, required и/или значением).

Прямо в Colab датафрейм можно преобразовать в интерактивную таблицу. Для этого рядом с ней нажмите на иконку таблицы в правом верхнем углу:

Convert this dataframe to an interactive table

Теперь это будет не датафрейм, а обычная таблица, по которой можно искать, фильтровать данные и т.д. и т.п.:

Таблица с тегами с возможностью фильтрации

Я предлагаю сохранить результат выполнения к себе на компьютер, чтобы открыть таблицу прямо в Excel и увидеть все регионы в одном списке. Для этого запустите следующую ячейку с кодом:

Сохранение файла

После того, как ячейка будет выполнена, слева в навигационном меню нажмите на иконку с папкой:

Файлы

Вы должны увидеть загруженный в Colab файл в формате csv:

Загруженный файл

Чтобы сохранить его на компьютер, напротив него нажмите на иконку с тремя точками и выберите Скачать:

Скачать файл

Файл со списком всех тегов будет загружен к вам на компьютер. Вы можете открыть его обычным блокнотом или в Excel:

Открытие файла в Excel

Все данные будут располагаться в первом столбце. Выполнив стандартную функцию Текст по столбцам с разделителем запятая:

Текст по столбцам с разделителем "запятая"

Вы получите удобочитаемую таблицу с заданным набором колонок:

Список всех тегов вашего контейнера Яндекс Тег Менеджера в таблице Excel

Получить информацию по тегу

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

, где tagId - уникальный идентификатор тега, информацию о котором необходимо получить. Посмотреть ID конкретного тега можно в интерфейсе Яндекс Тег Менеджера, перейдя на вкладку Теги. Под названием тега будет отображаться его идентификатор (ID):

ID тегов

Вставьте нужный идентификатор тега вместо {tagId} в url и запустите следующую ячейку программы:

Возвращает информацию по конкретному тегу

После выполнения вы получите информацию по выбранному тегу.

СКАЧАТЬ ПРОГРАММУ

 

Просмотр триггеров

Материалы для справки:

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

Получение списка всех триггеров

Данный ресурс возвращает список триггеров, соответствующих условию фильтрации.

Список всех триггеров контейнера (GET):

В программе Colab получение списка всех триггеров контейнера - это следующая ячейка:

Запустите ее, чтобы получить результат примерного такого вида:

Список всех триггеров

Как видите, структура очень похожа на tags, но есть отличия. Query-параметры почти те же самые (container_version, container_version_type, name_filter, offset, per_page). Отличается только фильтр по ID:

  • для тегов - tag_ids;
  • для триггеров - trigger_ids (список идентификаторов триггеров, информацию о которых нужно вернуть).

По сравнению с SimpleLinkedEntityTag, у SimpleLinkedEntityTrigger появляются/меняются поля:

  • trigger_id - уникальный идентификатор триггера;
  • original_trigger_id - идентификатор триггера из рабочей области, из которого был создан данный триггер в версии контейнера;
  • status - active и deleted (у тегов был еще paused);
  • type - типы триггера;

Список типов триггеров:

  1. initialization - инициализация страницы (срабатывает при первой загрузке кода Яндекс Тег Менеджера);
  2. page_view - просмотр страницы (срабатывает при загрузке страницы);
  3. dom_ready - модель DOM готова (срабатывает, когда DOM-структура страницы полностью загружена);
  4. window_loaded - окно загружено (срабатывает, когда страница и все ресурсы полностью загружены);
  5. click_all_elements - клики - все элементы (срабатывает при клике на любой элемент страницы);
  6. click_just_links - клики - только ссылки (срабатывает при клике только на ссылки);
  7. form_submission - отправка формы (срабатывает при отправке формы);
  8. custom_event - специальное событие (срабатывает при возникновении пользовательского события);
  9. timer - таймер (срабатывает через заданный промежуток времени);
  10. scroll_depth - прокрутка страницы (срабатывает при прокрутке страницы на заданную глубину)

Новая сущность в триггерах - Predicate. Это условие, определяющее, когда должен сработать триггер. Отображается в массиве объектов user_predicates и может проверять значения переменных на равенство, содержание, соответствие регулярному выражению и т.д.

user_predicates содержит:

  • predicate_id - уникальный идентификатор условия срабатывания в триггере;
  • variable_id - идентификатор переменной, значение которой проверяется условием;
  • target_value - значение, с которым сравнивается значение переменной. Интерпретация зависит от типа условия;
  • not - флаг, указывающий, нужно ли инвертировать результат проверки условия. Если true, то условие считается выполненным, когда проверка не проходит.
  • type - оператор условия;

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

  1. equals - значение переменной точно равно указанному целевому значению;
  2. contains - значение переменной содержит указанное целевое значение как подстроку;
  3. starts_with - значение переменной начинается с указанного целевого значения;
  4. ends_with - значение переменной заканчивается указанным целевым значением;
  5. matches_css_selector - элемент страницы соответствует указанному CSS-селектору;
  6. matches_regex - значение переменной соответствует указанному регулярному выражению;
  7. matches_regex_ignore_case - значение переменной соответствует указанному регулярному выражению без учета регистра;
  8. less_than - числовое значение переменной меньше указанного целевого значения;
  9. less_than_or_equal_to - числовое значение переменной меньше или равно указанному целевому значению.

В методе получения списка триггеров сохраняется общая логика, аналогичная методу получения тегов: ответ содержит поле total для общего количества объектов и массив сущностей (triggers вместо tags), поддерживаются те же механизмы фильтрации и пагинации (container_version, container_version_type, name_filter, offset, per_page), а также используются те же вложенные шаблонные структуры data (TemplateData) и user_provided_values (SimpleParameterData). Кроме того, совпадает набор базовых метаполей сущности: name, create_time, update_time, updated_by, links_number.

Как и в предыдущем методе, нажав на иконку преобразования датафрейма в интерактивную таблицу, вы получите:

Список всех триггеров контейнера в формате DataFrame

Как видно, в колонке user_predicates хранится массив объектов (Predicate[]), где:

  • user_predicates - массив (list);
  • каждый элемент массива - объект Predicate с полями predicate_id, type, variable_id, target_value, not.
Мы можем развернуть user_predicates в отдельный датафрейм (df_predicates) с помощью фрагмента кода, представленного в отдельной ячейке программы. Она будет общей для таблиц со списком триггеров и списком условий:
В Colab это будет выглядеть так:

Две таблицы - список триггеров и список условий

Это нужно для аналитики условий срабатывания триггеров на уровне отдельных правил. В основном датафрейме триггеров поле user_predicates хранится как вложенный массив, поэтому его неудобно фильтровать, группировать и сравнивать. После нормализации одна строка = одно условие можно быстро находить, какие переменные и операторы (equals, contains, matches_regex и др.) используются чаще всего, проверять корректность настроек и строить отчеты по логике срабатывания триггеров.

Вы можете сохранить таблицы в один файл на компьютер с помощью нижеприведенного кода:

После этого вы сможете скачать файл и открыть его у себя на компьютере. Первый лист (triggers) - это список ваших триггеров:

Список всех триггеров внутри контейнера Яндекс Тег Менеджера

Второй лист (predicates) - это список условий срабатываний внутри триггеров:

Список условий срабатываний внутри триггеров

Получить информацию по триггеру

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

, где triggerId - уникальный идентификатор триггера, информацию о котором необходимо получить. Посмотреть ID конкретного триггера можно в интерфейсе Яндекс Тег Менеджера, перейдя на вкладку Триггер. Под названием триггера будет отображаться его идентификатор (ID):

ID триггеров

Вставьте нужный идентификатор триггера вместо {triggerId} в url и запустите следующую ячейку программы:

Возвращает информацию по конкретному триггеру

После выполнения вы получите информацию по выбранному триггеру.

СКАЧАТЬ ПРОГРАММУ

 

Просмотр переменных

Материалы для справки:

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

Получение списка всех переменных

Данный ресурс возвращает список всех переменных контейнера.

Список всех переменных контейнера (GET):

В программе Colab получение списка всех переменных контейнера - это следующая ячейка:

Запустите ее, чтобы получить результат такого вида:

Список всех переменных

variables по общей модели очень похож на tags и triggers, но есть важные отличия в ID полях и составе сущности. Например, в фильтре по ID используется:

  • tag_ids - для тегов;
  • trigger_ids - для триггеров;
  • variable_ids - для переменных (список идентификаторов переменных, информацию о которых нужно вернуть).

Вместо SimpleLinkedEntityTag / SimpleLinkedEntityTrigger в переменных используется SimpleLinkedEntityVariable и такое поле:

  • group - группа переменной (clicks, errors, forms, history, pages, scroll, utils, visibility).

В переменных нет характерных для других сущностей полей:

  • для тегов - tag_id, tag_priority, status, triggers, original_tag_id, updated_by;
  • для триггеров - trigger_id, status, tags, user_predicates, original_trigger_id, updated_by.

В методе получения списка переменных сохраняется та же базовая логика, что и в методах для тегов и триггеров: ответ содержит поле total с общим количеством объектов и массив сущностей (variables), используются те же механизмы фильтрации и пагинации (container_version, container_version_type, name_filter, offset, per_page), а также та же вложенная шаблонная структура data (TemplateData) с user_provided_values (SimpleParameterData).

При этом у переменных есть своя специфика:

  • фильтр variable_ids (тип string - строка);
  • тип элементов ответа SimpleLinkedEntityVariable;
  • наличие характерного поля group (категория переменной);
  • поля, типичные для тегов и триггеров (например, tag_priority, status, user_predicates), в этой модели отсутствуют.

Как и в предыдущем методе, нажав на иконку преобразования датафрейма в интерактивную таблицу, вы получите:

Список всех переменных контейнера в формате DataFrame

Расшифровка колонок для переменных:

  • sub_container_id - ID подконтейнера/рабочего сегмента, к которому относится переменная;
  • name - название переменной;
  • type - тип переменной (категория/механика получения значения в YTM);
  • data_type - тип данных значения переменной (например, строка/число/boolean и т.п.);
  • compute_scope - область/момент вычисления переменной (в каком контексте она рассчитывается);
  • group - функциональная группа переменной (clicks, forms, pages, utils и др.);
  • definition_type - способ определения переменной (встроенная, пользовательская, шаблонная и т.д.);
  • variable_id - уникальный идентификатор переменной;
  • links_number - сколько других сущностей ссылаются на эту переменную (связей с объектом);
  • data.user_provided_values - значения параметров шаблона, заданные пользователем (массив объектов);
  • data.template_id - ID шаблона переменной в системе YTM;
  • create_time - дата/время создания (ISO 8601);
  • update_time - дата/время последнего обновления (ISO 8601);
  • status - статус переменной (например, активна/удалена, в зависимости от модели API);
  • updated_by - кто последним обновил переменную (логин/ID);
  • data.allowed - разрешено ли использовать этот шаблон в текущем контейнере (true/false);
  • data.template_version - версия шаблона, на которой основана переменная.

Взглянув на таблицу, можно отметить, что в колонке data.user_provided_values хранится массив объектов SimpleParameterData с пользовательскими значениями параметров шаблона.

Мы можем развернуть data.user_provided_values в отдельный датафрейм (df_user_values) с помощью фрагмента кода, представленного в отдельной ячейке программы. Она будет общей для таблиц со списком переменных и списком объектов с настройками параметров шаблона:

В Colab это будет выглядеть так:

Две таблицы - список переменных и список объектов с настройками параметров шаблона

Вы можете сохранить обе таблицы в один файл на компьютер с помощью нижеприведенного кода:

После этого вы сможете скачать файл и открыть его у себя на компьютере. Первый лист (variables) - это список ваших переменных:

Список всех переменных внутри контейнера Яндекс Тег Менеджера

Второй лист (user_values) - это список развернутых параметров шаблона переменных:

Список развернутых параметров шаблона

Получить информацию по переменной

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

, где variableId - уникальный идентификатор переменной, информацию о которой необходимо получить. Посмотреть ID конкретной переменной можно в интерфейсе Яндекс Тег Менеджера, перейдя на вкладку Переменные. Под названием переменной будет отображаться его идентификатор (ID):

ID пользовательских переменных

Вставьте нужный идентификатор переменной вместо {variableId} в url и запустите следующую ячейку программы:

Возвращает информацию по конкретной переменной

После выполнения вы получите информацию по выбранной переменной.

СКАЧАТЬ ПРОГРАММУ

 

Использование шаблонов

Материалы для справки:

Последний ресурс, который мы разберем в этом руководстве - это шаблоны. Шаблоны - это готовые решения, которые позволяют внедрять теги и переменные, такие как коды для отслеживания, аналитики, интеграции с рекламными сетями и другими сервисами. Вместо того чтобы писать код с нуля, вы выбираете соответствующий шаблон, и он уже включает все необходимые настройки для работы.

Шаблоны в Яндекс Тег Менеджере

В Яндекс Тег Менеджере есть два типа шаблонов:

  1. Личные шаблоны - это созданные вами решения для уникальных задач или интеграций. Вы можете адаптировать их под свои нужды и использовать в проектах и не делиться ими с другими;
  2. Публичные шаблоны - это шаблоны, которые доступны в каталоге шаблонов и могут использоваться другими пользователями. Вы можете выбрать их для ускоренной настройки, а также создать и опубликовать свой шаблон в галерее, чтобы другие могли его использовать.
Получение списка шаблонов из галереи

Ресурс возвращает список шаблонов из галереи.

Список шаблонов из галереи (GET):

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

Список шаблонов из галереи

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

К тому же, у шаблонов присутствует сильная вложенность. Например, вот так выглядит шаблон тега Вариокуб:

Верхний уровень объекта templates (метаданные шаблона) описывает шаблон как сущность галереи и имеет следующий набор параметров:

  • container_id - идентификатор контейнера/пространства, в контексте которого виден шаблон;
  • template_id - уникальный идентификатор шаблона в системе Яндекс Тег Менеджер;
  • name - название шаблона, отображаемое в интерфейсе;
  • author - автор шаблона;
  • create_time - дата и время создания шаблона в формате ISO 8601;
  • update_time - дата и время последнего изменения шаблона в формате ISO 8601;
  • hidden - флаг, указывающий, что шаблон скрыт в интерфейсе Яндекс Тег Менеджера. Скрытые шаблоны могут использоваться в контейнере, но не отображаются в основном списке шаблонов;
  • publicity - уровень доступности шаблона для пользователей (PRIVATE - приватный шаблон, доступный только внутри контейнера, в котором он был создан; PUBLIC - публичный шаблон, доступный всем пользователям Яндекс Тег Менеджера; YANDEX - официальный шаблон, разработанный и поддерживаемый Яндексом);
  • status - статус объекта в системе Яндекс Тег Менеджер (active - активный, deleted - удаленный);
  • type - тип шаблона, определяющий его назначение (tag - шаблон для создания тега, который выполняет действия на странице; variable - шаблон для создания переменной, которая хранит или вычисляет значения);
  • definition_type - тип происхождения/определения (user, system и т.п.).

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

  • template_id - тот же ID шаблона;
  • template_version - номер версии, растет при изменениях;
  • description - подробное описание конкретной версии шаблона. Используется для пояснения назначения версии шаблона, изменений, внесенных относительно предыдущих версий, или других важных деталей, которые могут быть полезны пользователям при выборе подходящей версии шаблона;
  • documentation_link - ссылка на документацию;
  • main_page_link - URL-адрес главной страницы сервиса, с которым интегрируется шаблон;
  • email - адрес электронной почты для связи с разработчиками шаблона или службой поддержки;
  • changes - краткое описание изменений, внесенных в текущую версию шаблона по сравнению с предыдущими версиями;
  • create_time - дата и время создания данной версии шаблона в формате ISO 8601;
  • update_time - дата и время последнего обновления данной версии шаблона в формате ISO 8601;
  • code - исходный код шаблона, написанный на изолированном JavaScript. Определяет функциональность шаблона при его использовании на сайте;
  • validation_features - правила валидации/проверок для шаблона.
  • status - статус версии шаблона в системе Яндекс Тег Менеджер.

Статусы версии шаблона:

  • draft - черновик (версия в разработке);
  • on_moderation - на модерации (версия отправлена на проверку модераторам);
  • moderation_failed - модерация провалилась (версия не прошла проверку модераторами);
  • outdated - устаревшая версия (существует более новая версия шаблона);
  • latest - последняя версия (актуальная версия шаблона).

Как и в предыдущем методе, нажав на иконку преобразования датафрейма в интерактивную таблицу в соответствующей ячейке программы, вы получите:

Список всех шаблонов галереи в формате DataFrame

Суммарно запрос вернул 29 объектов - 25 шаблонов тегов и 4 шаблона переменных, ровно столько, сколько отображается в каталоге шаблонов Яндекс Тег Менеджера.

Сохранить все эти шаблоны в Excel можно с помощью одной строки кода:

Открыв файл на компьютере, вы увидите список всех публичных шаблонов из галереи, включая теги и переменные:

Список шаблонов из галереи

Получение опубликованной информации по шаблону из галереи

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

, где templateId - уникальный идентификатор шаблона в галерее Яндекс Тег Менеджера. Используется для получения подробной информации о конкретном шаблоне. Посмотреть его можно в интерфейсе Яндекс Тег Менеджера, перейдя на вкладку Каталог шаблонов. Под названием шаблона будет отображаться идентификатор (ID):

ID шаблонов

Вставьте нужный идентификатор переменной вместо {templateId} в url и запустите следующую ячейку программы:

Возвращает информацию по конкретному шаблону

После выполнения вы получите информацию по выбранному шаблону из галереи.

СКАЧАТЬ ПРОГРАММУ

 

Получение списка шаблонов контейнера

Помимо публичных шаблонов, вы можете создавать личные. Они будут доступны только в вашем контейнере. Благодаря еще одному ресурсу есть возможность получить список сохраненных и используемых шаблонов в контейнере Яндекс Тег Менеджера.

Получение списка шаблонов контейнера (GET):

Все, что требуется сделать - это запустить еще одну ячейку моей программы и заменить {containerId} на свой собственный идентификатор контейнера ЯТМ.

Список шаблонов контейнера

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

  • name_filter - строка для фильтрации шаблонов по имени. Возвращает только те шаблоны, в названии которых содержится указанная строка (без учета регистра).
  • type - тип шаблона для фильтрации результатов. Если параметр не указан, возвращаются шаблоны всех типов. Тип шаблона, определяющий его назначение (tag - шаблон для создания тега, который выполняет действия на странице; variable - шаблон для создания переменной, которая хранит или вычисляет значения);
  • visibility_filter - фильтр видимости шаблонов в интерфейсе Яндекс Тег Менеджера (all - все шаблоны, visible - только видимые шаблоны, hidden - только скрытые шаблоны).

В объекте SimpleLinkedEntityUsersTemplate содержатся сведения о шаблоне в контексте контейнера (метаданные, статус, видимость, связи):

  • saved - флаг, указывающий, что шаблон добавлен в список сохраненных шаблонов пользователя для быстрого доступа;
  • published - флаг, указывающий, что шаблон опубликован в галерее шаблонов и доступен другим пользователям;
  • container_id - идентификатор контейнера/пространства, в контексте которого виден шаблон;
  • template_id - тот же ID шаблона;
  • name - название шаблона;
  • author - автор шаблона;
  • create_time - дата и время создания данной версии шаблона в формате ISO 8601;
  • update_time - дата и время последнего обновления данной версии шаблона в формате ISO 8601;
  • status - статус объекта (active/deleted);
  • type - тип шаблона (tag или variable);
  • publicity - уровень видимости (PRIVATE/PUBLIC/YANDEX);
  • hidden - скрыт ли в интерфейсе;
  • definition_type - тип происхождения (обычно пользовательский user).

Детальные данные версии шаблона находятся во вложенном объекте data (UsersTemplateVersion):

  • allowed - флаг, указывающий, разрешено ли использовать данный шаблон в текущем контейнере. Некоторые шаблоны могут быть недоступны в зависимости от настроек контейнера;
  • template_id - тот же ID шаблона;
  • template_version - номер версии, растет при изменениях;
  • description - подробное описание конкретной версии шаблона. Используется для пояснения назначения версии шаблона, изменений, внесенных относительно предыдущих версий, или других важных деталей, которые могут быть полезны пользователям при выборе подходящей версии шаблона;
  • documentation_link - ссылка на документацию;
  • main_page_link - URL-адрес главной страницы сервиса, с которым интегрируется шаблон;
  • email - адрес электронной почты для связи с разработчиками шаблона или службой поддержки;
  • changes - краткое описание изменений, внесенных в текущую версию шаблона по сравнению с предыдущими версиями;
  • create_time - дата и время создания данной версии шаблона в формате ISO 8601;
  • update_time - дата и время последнего обновления данной версии шаблона в формате ISO 8601;
  • code - исходный код шаблона, написанный на изолированном JavaScript. Определяет функциональность шаблона при его использовании на сайте;
  • validation_features - правила валидации/проверок для шаблона.
  • status - статус версии шаблона в системе Яндекс Тег Менеджер.

Статусы версии шаблона:

  • draft - черновик (версия в разработке);
  • on_moderation - на модерации (версия отправлена на проверку модераторам);
  • moderation_failed - модерация провалилась (версия не прошла проверку модераторами);
  • outdated - устаревшая версия (существует более новая версия шаблона);
  • latest - последняя версия (актуальная версия шаблона).
СКАЧАТЬ ПРОГРАММУ
🔥 Новый онлайн-курс «n8n для маркетологов». Старт 1 июля!
ПОДРОБНЕЕ