Как обойти ограничение в 20 пользовательских параметров в Google Analytics

Если вам не хватает стандартных 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

1234
function () {
  var d = new Date();
  return d.getTime();
}

Дублирование хита

Для теста я создал тег More Params, который срабатывает при событии more_params

Внимательный читатель заметит, что тег отсылает событие в основной счетчик, и единственной настройкой у него стоит переменная {{copyHitTask}} в поле customTask.

Как раз всю магию будет делать эта {{copyHitTask}} типа “Собственный код JavaScript”. За основу я взял дублирование хита из статьи Семёна, бонусом отправляю в основной счетчик Client ID, дабы читатель ни в чем себе не отказывал.

 1 2 3 4 5 6 7 8 91011121314151617181920212223242526272829
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 агентство 😍 тоже занимается продажей Analytics 360.

comments powered by Disqus