Если вам не хватает стандартных 20 пользовательских параметров, и при этом нет потребности в Google Analytics 360 в целом, значит вы что-то делаете не так. Однако сегодня мы не будем разбираться в причинах, сегодня мы по старой аналитической традиции прикрутим новый костыль.
Принцип очень простой: расширим количество пользовательских параметров за счет еще одного ресурса GA.
Содержание
Cуррогатный ресурс
В суррогате читатель должен создать пользовательские параметры, для которых не нашлось места в основном счетчике. Необходимым параметром является Hit ID, который станет ключом для склейки данных. Итого у меня получилась вот такая головоломка по поиску отличий:
Настройки GTM
Заведем несколько переменных для работы:
{{UA3}} - константа, идентификатор моего основного счетчика
{{UA5}} - константа, мой суррогат
{{Params for UA3}} - константа, содержит перечень параметров для основного счетчика в формате Measurement Protocol , например,
cd4={{Timestamp}}
{{Params for UA5}} - константа, содержит параметры для суррогата, например,
cd2=46&cd3=5&cd4=Небольшой дождь
{{Hit ID}} - константа,
{{Timestamp}}.{{Random Number}}
{{Random Number}} - стандартная переменная, генерирует случайное число
{{Timestamp}} - собственный код JavaScript, возвращает интервал в мс с 01.01.1970
function () {
var d = new Date();
return d.getTime();
}
Дублирование хита
Для теста я создал тег More Params, который срабатывает при событии more_params
Внимательный читатель заметит, что тег отсылает событие в основной счетчик, и единственной настройкой у него стоит переменная {{copyHitTask}} в поле customTask
.
Как раз всю магию будет делать эта {{copyHitTask}} типа "Собственный код JavaScript". За основу я взял дублирование хита из статьи Семёна, бонусом отправляю в основной счетчик Client ID, дабы читатель ни в чем себе не отказывал.
function() {
// Идентификатор суррогата
var newTrackingId = {{UA5}};
var globalSendTaskName = '_' + newTrackingId + '_originalSendTask';
return function(customModel) {
window[globalSendTaskName] = window[globalSendTaskName] || customModel.get('sendHitTask');
customModel.set('sendHitTask', function(sendModel) {
var hitPayload = sendModel.get('hitPayload');
var trackingId = new RegExp(sendModel.get('trackingId'), 'gi');
// Собираем payload для основного счетчика
sendModel.set(
'hitPayload',
hitPayload
+ '&cd1=' + sendModel.get('clientId') // параметр для Client ID
+ '&cd2={{Hit ID}}' // параметр для Hit ID
+ '&' + encodeURI('{{Params for UA3}}'), //дополнительные параметры основного счетчика
true);
window[globalSendTaskName](sendModel);
sendModel.set(
'hitPayload',
hitPayload.replace(trackingId, newTrackingId)
+ '&cd1={{Hit ID}}' // параметр для Hit ID
+ '&' + encodeURI('{{Params for UA5}}'), //дополнительные параметры суррогата
true);
window[globalSendTaskName](sendModel);
});
};
}
Можно проверить результат на этой странице, нажав F12, выполнив в консоли dataLayer.push({event: 'more_params'})
или по кнопке
После нажатия вы увидите во вкладке Network по фильтру collect два запроса, у которых в конце дописаны дополнительные параметры.
Склейка данных
Осталось дело за малым - свести данные из двух счетчиков по {{Hit ID}}. Я писал ранее как выгрузить несемплированные данные из Google Analytics с помощью R, но это тяжелая артиллерия 😆 Попроще будет воспользоваться популярным аддоном для Google Spreadsheets.
Пусть у вас есть два листа с таблицами, в первых столбцах которых {{Hit ID}} (наш ключ). Склеить можно, например, растянув вот такой ВПР на первом листе:
=VLOOKUP($A2;'Лист2'!$A:$C;COLUMN()-1;0)
Google Analytics 360
Если у вас крупная компания c большим объемом трафика и до сих пор нет 360, обратитесь к партнерам, оно дешевле, чем говорят. Моё, лучшее в России, performance агентство :heart_eyes: тоже занимается продажей Analytics 360.