Аннотация: настройка счетчика Яндекс.Метрики через 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 описывает пользовательский идентификатор Яндекс.Метрики.

Добавить комментарий

Нам важно знать ваше мнение. Оставьте свой отзыв или ответ

    • bowtiesmilelaughingblushsmileyrelaxedsmirk
      heart_eyeskissing_heartkissing_closed_eyesflushedrelievedsatisfiedgrin
      winkstuck_out_tongue_winking_eyestuck_out_tongue_closed_eyesgrinningkissingstuck_out_tonguesleeping
      worriedfrowninganguishedopen_mouthgrimacingconfusedhushed
      expressionlessunamusedsweat_smilesweatdisappointed_relievedwearypensive
      disappointedconfoundedfearfulcold_sweatperseverecrysob
      joyastonishedscreamtired_faceangryragetriumph
      sleepyyummasksunglassesdizzy_faceimpsmiling_imp
      neutral_faceno_mouthinnocent

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

Новые обсуждения на Форуме