Максимальная длина полезной нагрузки 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 г.