Аннотация: настройка счетчика Яндекс.Метрики через Google Tag Manager | SEO кейсы: социалки, реклама, инструкция
Мы нередко сталкиваемся с тем, что рекламодатели для творения детализированной статистики гостей страниц употребляют параллельно две системы веб-аналитики Google Analytics и Яндекс.Метрику. И для опции отслеживания, обычно, употребляют Google Tag Manager. Мы подготовили доскональную аннотацию, как настроить передачу идентификатора клиента Google Analytics в Яндекс.Метрику.
Шаг 1. Инициализация счетчика
Создайте переменную с типом «Константа» и значением идентификатора вашего счетчика. Опосля все коды будут представлены с учетом того, что переменная величается `YM -- Tracker`.
Для корректной инициализации счетчика используйте последующий код:
< script type="text/javascript" >
(function(d, w, c){
(w[c] = w[c] || []).push( function(){
try {
w['yaCounter' + {{YM -- Tracker}}] = new Ya.Metrika( {
id: Number( {{YM -- Tracker}}),
clickmap: true,
trackLinks: true,
accurateTrackBounce: true,
triggerEvent: true,
webvisor: true,
ecommerce: "dataLayer"
});
w.goalSender = function( t,p,b){
p = typeof p!== 'undefined'?p: undefined;
b = typeof b!== 'undefined'?b: undefined;
if(typeof w['yaCounter' + {{YM -- Tracker}}] == 'object'){
if(typeof p == 'object' || typeof p == 'function'){
if(typeof b == 'function' || typeof b == 'object'){
w['yaCounter' + {{YM -- Tracker}}].reachGoal( t,p,b);
} else{
w['yaCounter' + {{YM -- Tracker}}].reachGoal( t,p);
}
} else {
if(typeof b == 'function' || typeof b == 'object'){
w['yaCounter' + {{YM -- Tracker}}].reachGoal( t,b);
} else {
w['yaCounter' + {{YM -- Tracker}}].reachGoal( t);
}
}
} else {
w.setTimeout( function(){w.goalSender( t,p,b);}, 300);
};
};
w['document'].addEventListener( 'yacounter' + {{YM -- Tracker}} + 'inited', function() {
dataLayer = w.dataLayer || [];
dataLayer.push( {
'event': 'YMReady',
'isYMReady': 'true',
'ymclid': w['yaCounter' + {{YM -- Tracker}}].getClientID()
});
});
} catch( e){
dataLayer = w.dataLayer || [];
dataLayer.push( {
'event': 'YMFail',
'isYMReady': 'false',
'failReason': String( e)
});
}
});
var n = d.getElementsByTagName( "script")[0],
s = d.createElement( "script"),
f = function() { n.parentNode.insertBefore( s, n); };
s.type = "text/javascript";
s.async = true;
s.src = "https://mc.yandex.ru/metrika/watch.js";
if(w.opera == "[object Opera]"){
d.addEventListener( "DOMContentLoaded", f, false);
} else { f(); }
})( document, window, "yandex_metrika_callbacks");
< /script& gt;
< noscript>< img src="https://mc.yandex.ru/watch/{{YM -- Tracker}}" style="position:absolute; left:-9999px;" alt="" />
Этот код различается от обычного. В нем мы заменили явный номер счетчика на обращение к подходящей переменной. При инициализации счетчика включили событие о готовности счетчика: при корректной инициализации в dataLayer отправится событие `YMReady`, при совершении оплошности - `YMFail`. Дальше для фиксации этих событий подходящие опции необходимо произвести и в контейнере. Также в этом коде мы употребляли глобальную функцию `goalSender`. Это означает, что в отличие от обычного способа счетчика reachGoal, при вызове функции будет происходить проверка инициализации счетчика. Ежели счетчик загружен, то в Яндекс.Метрику отправляется событие заслуги цели, ежели нет, то повторяется каждые 0,3 с.
Код не всепригодный, и при необходимости добавьте иные характеристики инициализации из документации(https://yandex.ru/support/metrika/code/counter-initialize.html).
Дальше установите код в контейнер через тег с типом «Пользовательский HTML» со обычным правилом активации на всех страничках.
Шаг 2. Проверка готовности счетчика
Итак, мы настроили последующие действия:
- `YMReady` – счетчик загружен, и его можнож применять;
- `YMFail` – во время инициализации счетчика произошла ошибка.
Добавьте эти действия в GTM при поддержки триггеров с типом **Пользовательское событие**. Пример такового триггера:
![](../../Desktop/Снимок экрана 2017-11-27 в 21.57.39.png)
При необходимости можнож создать несколько переменных на базе данных, которые передаются в уровень данных сайта при инициализации счетчика:
- `isYMReady` – переменная-индикатор удачной инициализации счетчика. В случае удачной инициализации содержит значение `true`, при наличии оплошности - `false`;
- `ymclid` – идентификатор клиента Яндекс.Метрики. Содержит значение лишь при удачной инициализации;
- `failReason` – описание оплошности инициализации. Содержит значение лишь в случае оплошности инициализации.
Чтоб задать эти переменные, используйте триггер с типом **Переменная уровня данных**.
К примеру:
![](../../Desktop/Снимок экрана 2017-11-27 в 22.03.02.png)
Шаг 3 Отправка характеристик пользователя
Подготовка данных завершена, сейчас необходимо настроить их отправку. Для наглядности покажем на образце. Мы будем передавать идентификаторы клиента Google Analytics и Яндекс.Метрики в качестве характеристик юзера Яндекс.Метрики и идентификатор юзера Google Analytics в качестве пользовательского идентификатора Яндекс.Метрики .
Чтоб получить идентификатор юзера Google Analytics, используйте готовые функции библиотеки *analytics.js*, а конкретно:
ga.getAll()[0].get( 'clientId')
Полный код передачи характеристик добавьте в контейнер через тег с типом
«Пользовательский HTML» с правилом активации на триггер(ранее мы определили его через событие «YMReady»).
Получите последующий код:
< script type="text/javascript" >
var supplyParams = function(){
try
{
gaclid = ga.getAll()[0].get( 'clientId');
}
catch( e)
{
gaclid = 0
}
if( typeof gaclid == 'string')
{
try
{
window['yaCounter' + {{YM -- Tracker}}].setUserID( gaclid)
window['yaCounter' + {{YM -- Tracker}}].userParams( {
'gaclid': gaclid,
'ymclid': {{YMCLID}}
})
}
catch( e)
{
console.log( 'Something Went Wrong!');
console.error( e);
window.setTimeout( function(){supplyParams();}, 300);
}
}
else
{
window.setTimeout( function(){supplyParams();}, 300);
}
}
supplyParams();
< /script >
Шаг 4 Отправка целей
Для отправки целей создайте новейший тег с типом «Пользовательский HTML». Этого довольно, так как ранее, при инициализации счетчика была задана функция отправки целей с проверкой наличия счетчика на страничке.
Пример кода:
< script type="text/javascript">
window.goalSender( 'hello_there', function(){
console.log( 'We've just sent hello to Metrika')
});
< /script >
Активируйте сходственный тег на интересующее вас событие, доп опций в данном варианте не будет нужно.
Заключение
Эта модель внедрения счетчика Яндекс.Метрики дает ряд превосходств по сопоставлению со обычным вариантом:
- в системе Google Tag Manager сохраняется событие-индикатор готовности счетчика Метрики и значение идентификатора юзера Яндекс.Метрики, которое можнож передавать в иные системы аналитики;
- в Яндекс.Метрику отправляются значения идентификаторов Google Analytics и Яндекс.Метрики в качестве характеристик юзера;
- идентификатор юзера Google Analytics описывает пользовательский идентификатор Яндекс.Метрики.
Комментариев 0