2015-09-04 3 views
0

Я пытаюсь запустить некоторые данные отслеживания на кликах ссылок, и я тестировал функции, которые я собрал из разных мест, которые я нашел в Интернете.Перемещаемые переменные и события Linktrack, установленные глобально в Omniture, в результате чего событие срабатывает при других действиях.

После некоторых испытаний я закончил с двумя функциями, которые уволили то, что я хотел. Тем не менее, похоже, они записывают глобальный объект, поскольку после того, как функция называется событием, она продолжает стрелять в другие места. Я обошел это, добавив последнюю строку, но это похоже на бандаж, который может скрыть потенциально большую проблему. Что я делаю неправильно в первую очередь, и что я должен делать, чтобы избежать этого? Я не мог получить событие стрелять без записи в s.events объекта

function f1(){ 
    s.linkTrackVars= s.linkTrackVars+',eVar45,events'; 
    s.eVar45='Chat button exposed'; 
    s.linkTrackEvents = s.events = 'event11'; // hmmm 
    s.tl(this, 'o', 'blah'); 
    s.linkTrackVars = s.linkTrackEvents = s.events = ""; // Added this to empty the global objects 
    } 

function f2(){ 
     s.linkTrackVars= s.linkTrackVars+',eVar46,prop45,events'; 
     s.eVar46='Clicked chat button'; 
     s.prop45='Clicked chat button'; 
     s.linkTrackEvents = s.events = 'event31'; // hmmm 
     s.tl(this, 'o', 'blah'); 
     s.linkTrackVars = s.linkTrackEvents = s.events = ""; // Added this to empty the global objects 
     } 

Я предполагаю, что этот вопрос является линия, помеченным «гм», но это был единственным способом, которым я мог получить событие огня , если я удаляю либо s.linkTrackEvents, либо s.events, он не запускает событие. В любом случае, кажется, мне нужно установить все переменные в пустые строки, чтобы избежать того, что значения используются другими действиями. Есть идеи?

Благодаря

ответ

2

Во-первых, когда вы хотите отправить переменные в Adobe Analytics через s.tl() вызов, да, они должны быть «зарегистрировано» с linkTrackEvents и linkTrackVars.

Однако вы можете использовать pass the variables in an object as the 4th argument для использования этих вызовов, но не постоянно их устанавливать. Вам все равно нужно «зарегистрировать» vars с linkTrackEvents и linkTrackVars, так что вам тоже нужно идти в полезной нагрузке.

Пример

function f1() { 
    var payload={ 
    'linkTrackEvents':'event1', 
    'linkTrackVars':'events,eVar1', 
    'events':'event1', 
    'eVar1':'bar' 
    } 
    s.tl(true,'o','some action',payload) 
} 

/* 
    first we have the var set, maybe as default values 
    in some config initially loaded on page 
*/ 
s.linkTrackEvents='None'; 
s.linkTrackVars='None'; 
s.events=''; 
s.eVar1='foo'; 

// example to see current values above 
console.log(s); 

/* 
    then call the function. You will see in the 
    request that event1 is set and eVar1 is 'bar' 
*/ 
f1(); 

/* 
    now another console log to see the values, 
    you will see it's the original values 
*/ 
console.log(s); 
+0

Вы человек. Спасибо – MaximusDecimusMeridius

+0

Эй, как я могу связаться с вами напрямую? [email protected] – MaximusDecimusMeridius

 Смежные вопросы

  • Нет связанных вопросов^_^