Спасибо за предварительный просмотр документации по новой платформе тегов Google! Этот сайт находится в публичной бета-версии. ( Обратная связь )

Руководство разработчика API мониторинга

Оптимизируйте свои подборки Сохраняйте и классифицируйте контент в соответствии со своими настройками.

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

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

Статус тега

Техника статуса тега, показанная в этом примере, использует addEventCallback для подсчета статуса активации тегов на странице. Это будет циклически перебирать все теги, которые были запущены для события, и подсчитывать количество тегов, которые были успешными, неудачными, вызвали исключение или истекли по тайм-ауту. Затем эти итоги добавляются к URL-адресу пикселя мониторинга в качестве параметров запроса. Пиксель мониторинга будет иметь URL-адрес, подобный этому:

https://www.example.com/monitoring?ctid=GTM-XXXXXX&success=4&failure=1&exception=1&timeout=0

URL-адрес пикселя можно настроить с помощью следующего примера кода:

const addEventCallback = require('addEventCallback');
const sendPixel = require('sendPixel');

addEventCallback(function(containerId, eventData) {
  let successCount = 0;
  let failureCount = 0;
  let exceptionCount = 0;
  let timeoutCount = 0;

  const tagData = eventData['tags'];
  const timingData = [];
  for (let i in tagData) {
    let entry  = tagData[i];
    switch (entry.status) {
      case 'success':
        successCount++;
        continue;
      case 'failure':
        failureCount++;
        continue;
      case 'exception':
        exceptionCount++;
        continue;
      case 'timeout':
        timeoutCount++;
        continue;
    }
  }
  let url = 'https://www.example.com/monitoring?ctid=' + containerId +
      '&success=' + successCount +
      '&failure=' + failureCount +
      '&exception=' + exceptionCount +
      '&timeout=' + timeoutCount;
  sendPixel(url);
});
data.gtmOnSuccess();

Время выполнения

Этот метод использует addEventCallback , чтобы помочь вам собрать данные о времени выполнения ваших тегов. Для каждого тега, запущенного для этого события, к URL-адресу пикселя добавляется параметр запроса, который включает идентификатор тега и время выполнения. Это отправляет пиксель, похожий на следующий:

https://www.example.com/monitoring?ctid=GTM-XXXXXX&tag12=1200&tag50=400&tag1=6000

URL-адрес пикселя можно настроить с помощью следующего примера кода:

const addEventCallback = require('addEventCallback');
const sendPixel = require('sendPixel');

addEventCallback(function(containerId, eventData) {
  let url = 'https://www.example.com/monitoring?ctid=' + containerId;
  const tagData = eventData['tags'];
  const timingData = [];
  for (let i in tagData) {
    let entry = tagData[i];
    timingData.push('&tag' + entry['id'] + '=' + entry['executionTime']);
  }
  url += timingData.join('');
  sendPixel(url);
});
data.gtmOnSuccess();

Метаданные

Вы можете создавать полезные информационные панели, используя базовые данные, предоставляемые API мониторинга. Однако могут быть случаи, когда вам может потребоваться отслеживать только подмножество тегов. Чтобы облегчить это, используйте раздел Метаданные тега , чтобы указать произвольные пары значений ключа в определении тега. Эти значения будут включены в объект данных события, когда произойдет обратный вызов события.

Например: Тег добавлен в контейнер для новой рекламной кампании. В контейнере много существующих тегов, но вас интересует только мониторинг этого нового тега.

Чтобы идентифицировать этот тег из обратного вызова события, добавьте к тегу метаданные:

  1. В определении тега щелкните Дополнительные параметры > Дополнительные метаданные тега .
  2. Щелкните Включить имя тега , чтобы установить флажок.
  3. В поле Ключ для имени тега введите значение. В этом примере в качестве значения используется «имя». Это будет включать имя тега в данные события по мере его отправки.
  4. Нажмите +Добавить метаданные и введите пару « ключ - значение ». В этом примере используется ключ с именем «группа» и значение «Кампания 2019».
  5. Используйте +Добавить метаданные , чтобы добавить дополнительные строки пар ключ/значение по желанию.

Снимок экрана пользовательского интерфейса Диспетчера тегов, демонстрирующий расположение раздела «Дополнительные метаданные тега».

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

const addEventCallback = require('addEventCallback');
const sendPixel = require('sendPixel');

addEventCallback(function(containerId, eventData) {
  let url = 'https://www.example.com/monitoring/campaignPixel?ctid=' + containerId;
  const tagData = eventData['tags'];
  for (let i in tagData) {
    let entry = tagData[i];
    if (entry['name'] === 'Conversion Pixel 2019') {
      url += '&status=' + entry['status'];
      break;
    }
  }
  sendPixel(url);
});
data.gtmOnSuccess();

В результате URL-адрес пикселя выглядит следующим образом:

https://www.example.com/monitoring/campaignPixel?ctid=GTM-XXXXXX&status=success

При желании можно потом мониторить все теги для группы «Кампания 2019»:

const addEventCallback = require('addEventCallback');
const encode = require('encodeUriComponent');
const sendPixel = require('sendPixel');

addEventCallback(function(containerId, eventData) {
  let url = 'https://www.example.com/monitoring/campaign2019?ctid=' + containerId;
  const tagData = eventData['tags'];
  for (let i in tagData) {
    let entry = tagData[i];
    if (entry['group'] === 'Campaign 2019') {
      url += '&' + encode(entry['name']) + '=' + entry['status'];
      break;
    }
  }
  sendPixel(url);
});
data.gtmOnSuccess();

Это приведет к появлению пикселя мониторинга, подобного следующему:

https://www.example.com/monitoring/campaign2019?ctid=GTM-XXXXXX&Conversion%20Pixel%202019=failure