Эта статья описывает способ интеграции кода отслеживания стриминга на сайт с помощью customTask. 

В Google Analytics есть возможность создания Task, выполняемого в процессе отправки хита - customTask. По умолчанию этот Task ничего не выполняет. Таким образом, в этом task можно задавать кастомное поведение для реализации функции отслеживания действий на сайте в OWOX BI.

Метод с customTask является рекомендованным. Также есть альтернативный способ настройки через создание отдельного тега типа Custom HTML, указание owox в имени трекера для всех тегов Universal Analyitcs и настройку последовательностей запуска тегов. Подробнее в статье. 

Когда в customTask прописываются функции для отправки хитов в OWOX BI, данное значение перезаписывает основной customTask. Каждый последующее значение customTask также перезапишет предыдущее. В крайних случаях, когда возникает необходимость использовать несколько customTask для одного тега - объедените их код в рамках одного customTask.

Для использования customTask в настройке стриминга необходимо:

1. Создать переменную customTask типа Custom JavaScript в вашем контейнере GTM со следующим кодом:

__________081.png

function() {
return function(tracker){
tracker.set("dimensionXX", tracker.get("clientId")+"_"+Date.now());

if("undefined"===typeof tracker.get("OWOXBIStreaming")){var f=tracker.get("sendHitTask"),h=function(){function d(c){var a=!1;try{document.createElement("img").src=e(!0)+"?"+c,a=!0}catch(k){}return a}function e(c){var a="https://google-analytics.bi.owox.com/collect";c||(a+="?tid="+encodeURIComponent(tracker.get("trackingId")));return a}return{send:function(c){var a;if(!(a=2036>=c.length&&d(c))){a=!1;try{a=navigator.sendBeacon&&navigator.sendBeacon(e(),
c)}catch(g){}}if(!a){a=!1;var b;try{window.XMLHttpRequest&&"withCredentials"in(b=new XMLHttpRequest)&&(b.open("POST",e(),!0),b.setRequestHeader("Content-Type","text/plain"),b.send(c),a=!0)}catch(g){}}return a||d(c)}}}();tracker.set("sendHitTask",function(d){f(d);h.send(d.get("hitPayload"));tracker.set("OWOXBIStreaming",!0)})}}
}

Обратите внимание: На месте XX необходимо указать индекс пользовательской переменной, используемой для передачи sessionID.

2. В каждом из тегов Universal Analytics, по которым вы хотите отправлять данные в BigQuery, добавьте переменную customTask в раздел "Поля, которые необходимо задать" ("Fiels to set"):

__________083.png

 

Использование только хитового стриминга:

В случае, если в потоке настроен сбор только хитовых данных, необходимо использовать следующий код:

function() {
    return function(tracker){

    if("undefined"===typeof tracker.get("OWOXBIStreaming")){var f=tracker.get("sendHitTask"),h=function(){function d(c){var a=!1;try{document.createElement("img").src=e(!0)+"?"+c,a=!0}catch(k){}return a}function e(c){var a="https://google-analytics.bi.owox.com/collect";c||(a+="?tid="+encodeURIComponent(tracker.get("trackingId")));return a}return{send:function(c){var a;if(!(a=2036>=c.length&&d(c))){a=!1;try{a=navigator.sendBeacon&&navigator.sendBeacon(e(),
c)}catch(g){}}if(!a){a=!1;var b;try{window.XMLHttpRequest&&"withCredentials"in(b=new XMLHttpRequest)&&(b.open("POST",e(),!0),b.setRequestHeader("Content-Type","text/plain"),b.send(c),a=!0)}catch(g){}}return a||d(c)}}}();tracker.set("sendHitTask",function(d){f(d);h.send(d.get("hitPayload"));tracker.set("OWOXBIStreaming",!0)})}}
}

 Все прочие настройки остаются неизменны. 

 

Обратите внимание:
Если после настройки и начала сбора данных вы наблюдаете расхождения с Google Analytics, изучите информацию в статье.

 

Реализация нескольких задач с помощью customTask

Расмотрим пример, когда нам нужно совместить отправку хита в Google BigQuery и дублирование данных этого хита в другой ресурс Google Analytics в рамках одной customTask. Для этого требуется объединить рекомендуемый код отслеживания с кодом подмены параметра trackingId и последущей отправкой данных в GA:

function() {
 return function(tracker){
//Отправка данных в BQ 
 tracker.set("dimensionXX", tracker.get("clientId")+"_"+Date.now());

 if("undefined"===typeof tracker.get("OWOXBIStreaming")){var f=tracker.get("sendHitTask"),h=function(){function d(c){var a=!1;try{document.createElement("img").src=e(!0)+"?"+c,a=!0}catch(k){}return a}function e(c){var a="https://google-analytics.bi.owox.com/collect";c||(a+="?tid="+encodeURIComponent(tracker.get("trackingId")));return a}return{send:function(c){var a;if(!(a=2036>=c.length&&d(c))){a=!1;try{a=navigator.sendBeacon&&navigator.sendBeacon(e(),
c)}catch(g){}}if(!a){a=!1;var b;try{window.XMLHttpRequest&&"withCredentials"in(b=new XMLHttpRequest)&&(b.open("POST",e(),!0),b.setRequestHeader("Content-Type","text/plain"),b.send(c),a=!0)}catch(g){}}return a||d(c)}}}();tracker.set("sendHitTask",function(d){f(d);h.send(d.get("hitPayload"));tracker.set("OWOXBIStreaming",!0)})}

//Отправка данных в другой ресурс GA    
var originalSendTask = tracker.get('sendHitTask');
    tracker.set('sendHitTask', function(sendModel) {
      var hitPayload = sendModel.get('hitPayload');
      var trackingId = new RegExp(sendModel.get('trackingId'), 'gi');
      originalSendTask(sendModel);
      sendModel.set('hitPayload', hitPayload.replace(trackingId, 'UA-XXXXXXX-YY'), true);
      originalSendTask(sendModel);
    });
}
}
Была ли эта статья полезной?
Пользователи, считающие этот материал полезным: 0 из 0
Еще есть вопросы? Отправить запрос

0 Комментарии

Войдите в службу, чтобы оставить комментарий.