Максимальная длина полезной нагрузки Google Analytics составляет 8192 байта. Полезно проверить, приближаетесь ли вы к этому значению с некоторыми из ваших обращений, потому что, если длина полезной нагрузки превышает это значение, обращение никогда не отправляется в GA.

Как мы можем узнать размер полезной нагрузки при каждом попадании?

Сегодня я покажу вам, как отправлять размер полезной нагрузки в качестве пользовательского измерения в GA с каждым обращением. Инструмент — Диспетчер тегов Google.

Прежде чем начать, необходимо создать в GA новый настраиваемый параметр с областью обращения под названием «Длина полезной нагрузки обращения» и проверить его индекс, который будет использоваться на следующем шаге.

Затем создайте пользовательскую задачу в GTM, пользовательская задача — разрешить пользователям изменять запрос, отправленный в GA, до его отправки. Мы можем взять идентификатор клиента в качестве примера.

Пользовательская задача будет работать с пользовательской переменной javascript. Вот код javacript, который мы создаем в GTM.

function () {
  // clientIdIndex: The Custom Dimension index to where you want to send the visitor's Client ID, my example is 7
  var clientIdIndex = 7;

  // payloadLengthIndex: The Custom Dimension index to where you want to send the length of the payload of the request, my example is 18 

  var payloadLengthIndex = 18;

  // DO NOT EDIT ANYTHING BELOW THIS LINE
  var readFromStorage = function (key) {
    if (!window.Storage) {
      // From: https://stackoverflow.com/a/15724300/2367037
      var value = '; ' + document.cookie;
      var parts = value.split('; ' + key + '=');
      if (parts.length === 2) {
        return parts.pop().split(';').shift();
      }
    } else {
      return window.localStorage.getItem(key);
    }
  };

  var writeToStorage = function (key, value, expireDays) {
    if (!window.Storage) {
      var expiresDate = new Date();
      expiresDate.setDate(expiresDate.getDate() + expireDays);
      document.cookie = key + '=' + value + ';expires=' + expiresDate.toUTCString();
    } else {
      window.localStorage.setItem(key, value);
    }
  };

  var globalSendHitTaskName   = '_ga_originalSendHitTask';

  return function (customTaskModel) {

    window[globalSendHitTaskName] = window[globalSendHitTaskName] || customTaskModel.get('sendHitTask');

    // clientIdIndex
    if (typeof clientIdIndex === 'number') {
      customTaskModel.set('dimension' + clientIdIndex, customTaskModel.get('clientId'));
    }
    // /clientIdIndex

    customTaskModel.set('sendHitTask', function (sendHitTaskModel) {

      var originalSendHitTaskModel = sendHitTaskModel,
          originalSendHitTask      = window[globalSendHitTaskName],
          canSendHit               = true;

      try {

        // payloadLengthIndex
        if (typeof payloadLengthIndex === 'number') {
          var _pl_hitPayload = sendHitTaskModel.get('hitPayload');
          _pl_hitPayload += '&cd' + payloadLengthIndex + '=';
          _pl_hitPayload += (_pl_hitPayload.length + _pl_hitPayload.length.toString().length);
          sendHitTaskModel.set('hitPayload', _pl_hitPayload, true);
        }
        // /payloadLengthIndex

        if (canSendHit) {
          originalSendHitTask(sendHitTaskModel);
        }

      } catch(err) {
        originalSendHitTask(originalSendHitTaskModel);
      }

    });

  };
}

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

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

Как отлаживать свою работу?

Проверьте это с помощью инструментов разработчика в вашем браузере.

  • Откройте Сеть в инструменте разработчика в браузере.
  • Нажмите на запрос, чтобы забрать
  • Проверьте, есть ли параметр полезной нагрузки

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

Если вы заинтересованы или у вас возникли проблемы с GTM, не стесняйтесь связаться со мной.

Или вы можете связаться со мной через мой LinkedIn.

Первоначально опубликовано на http://jacquiwucom.wordpress.com 8 октября 2020 г.