2016-08-22 2 views
1

Есть ли проверенный способ добавления настраиваемого параметра сеанса в текущий сеанс после выполнения кода отслеживания Piwik?Добавить пользовательский параметр сеанса в Piwik после загрузки сайта

В настоящее время я использую этот код:

window._paq.push(['trackEvent', 'vendor', 'VND001' ,'value']);

Вопрос заключается в том, что этот код не работает надежно. Я считаю, что это может быть связано с тем, что код отслеживания Piwik уже выполнен и отправлен на сервер, но я не уверен.

ответ

0

От JavaScript API:

Для асинхронного отслеживания, настройки и отслеживания вызовов помещаются в глобальный массив _paq для исполнения, независимо от асинхронной загрузки piwik.js. Формат:

_paq.push([ 'API_method_name', parameter_list ]); 

Так что это, кажется, будет хорошо на вашем конце.

Когда вы говорите о ненадежном поведении, это возможно, когда вы обновляете страницу (просто bash F5), вы обходите загрузку файла сценария, так как он уже кэшируется предыдущим запросом. И тогда этот звонок _paq может быть undefined. Попробуйте использовать ctrl + F5, чтобы увидеть, изменилось ли поведение.

Также обратите внимание на начальную часть: var _paq = _paq || [];, которая определяет ранее заполненный массив или пустой. Это не больно, чтобы поставить это перед вашим кодом, но вы должны обратить внимание на закрытие:

(function(){ 
    var _paq = _paq || []; 
    _paq.push(['trackEvent', 'vendor', 'VND001' ,'value']); 
}()); 

Теперь то, что вы обычно будет сделать, это получить текущий трекер первый:

var piwikTracker = Piwik.getTracker(12, 'http://example.com/piwik/'); 
//piwikTracker.setSiteId(12); 
//piwikTracker.setTrackerUrl('http://example.com/piwik/'); 
piwikTracker.trackEvent('vendor', 'VND001' ,'value'); 

Но я не совсем уверен, что это только, связанных с Piwik 2.16.1 или ранее. Не стесняйтесь их тестировать и дайте мне знать ^^

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