Universal Analytics: целеви DOM елемент с динамичен идентификатор или клас

Изискване: щракване върху навигационното меню за заснемане

Текуща настройка:

ЕТИКЕТ 1: Глобален приемник на кликвания с едно правило за задействане за всички страници, което е,

{{url}} matches RegEX .*

ЕТИКЕТ 2: Проследяване на щраквания в менюто - Персонализиран тип HTML етикет с едно правило за задействане за всички страници и HTML:

<script type="text/javascript">

$('#top_nav_menu a').click(function(){
  var target = event.target;
  var parentElem = $(target).parent();
  var targetHref = $(target).attr("href");
  var targetClass= $(parentElem).attr("class");

  dataLayer.push({
      'event': 'navigation',
      'eventAction': targetClass,
      'eventLabel': targetHref
  });
});

</script>

ЕТИКЕТ 3: Събитие - Щракване върху меню - Тип маркер на Universal Analytics с правило за задействане:

{{event}} equals navigation 

Тип на записа: Събитие

Category: {{event}}
Action: {{event action}}
Label: {{event label}}

макроси:

  1. действие при събитие - тип макрос Променлива на слоя данни

Име на променливата на слоя данни: eventAction

  1. етикет на събитието - тип макрос променлива на слоя данни

Име на променливата на слоя данни: eventLabel

Какво се случва: В момента Global Click Listener и Menu Click Tracking се задействат правилно, но Event - Menu Click не успява. Предполагам, че е така, защото не насочвам DOM елемента правилно. Структурата на DOM е следната:

<nav id="top_nav_menu">
  <ul class="no-list">
    <li id="about" class="about"><a href="/bglink-value">about</a></li>
    <li id="services" class="services"><a href="/bglink-value">services</a></li>
    <li id="work" class="work"><a href="/bglink-value">work</a></li>
    <li id="contact" class="contact"><a href="/bglink-value">contact</a></li>
  </ul>
</nav>

Не мога да променя HTML или да добавя класове, как да се уверя, че маркерът Събитие - Щракване върху менюто се задейства и е изпратена правилната стойност на dataLayer.

Всяка помощ ще бъде оценена. Благодаря предварително.


person user988544    schedule 24.07.2014    source източник
comment
Не трябва ли да подадете събитие като аргумент към вашия манипулатор на щраквания, за да получите достъп до event.target (със сигурност изглежда като в документите на api.jquery.com/event.target)?   -  person Eike Pierstorff    schedule 25.07.2014


Отговори (1)


Във вашето натискане на слой данни за вашия таг „Проследяване на кликване върху меню“ вие присвоявате „$(targetClass)“ на действието и „$(targetHref)“ на етикета, които изглежда са препратки към jQuery (т.е. „$(.. .)"), а не низове. Можете ли да ги промените само на имената на променливите, "targetClass" и "targetHref"?

Надявам се това да помогне.

person nyuen    schedule 24.07.2014
comment
И аз го осъзнах, но промяната не помогна. Във всеки случай събитието - Щракването върху менюто все още трябваше да се задейства, тъй като стойността за „събитие“ се предава като низ и така поне трябваше да предаде това, ако не и останалите стойности. - person user988544; 25.07.2014
comment
Друго нещо, което трябва да се отбележи е, че '$(target)' трябва да бъде 'this' във вашата дефиниция на функция, тъй като обектът, на който се извиква методът, е елементът на котва (т.е. $(#top_nav_menu a)). И тогава „targetClass“ ще бъде „parentElem.attr(class)“. Не забравяйте да добавите аргумента „събитие“, както посочи и Eike. - person nyuen; 25.07.2014