Доступ к слою данных из GTM

Я создал следующий тег в GTM (Диспетчере тегов Google):

(function(window) {
    if (typeof(dataLayer[dataLayer.length-1].count) !== "undefined"){
        dataLayer.push({'count':dataLayer[dataLayer.length-1].count+1});
    } else {
        dataLayer.push({'count':1});
    }
})(window);

Первоначально, когда в dataLayer не передается «count», инструкция if возвращает false, и отправляется {"count": 1}. После этого значение счетчика должно увеличиваться при каждом нажатии. Моя цель - просто подсчитать количество нажатий на определенную кнопку.

Однако кажется, что оператор «if» никогда не проверяется, поэтому каждое нажатие кнопки приводит к отправке «0» -ов в уровень данных. Я знаю, что это не лучшее решение, но все же не могу понять, почему это не работает. Кстати, он работает, когда я запускаю этот код в консоли браузера.


person Irakli Keshelava    schedule 28.04.2017    source источник


Ответы (1)


Мне пришлось использовать dataLayer.length-2 вместо dataLayer.length-1 для доступа к count. Это было вызвано тем, что GTM подталкивает gtm.click к dataLayer после каждого события клика.

person Irakli Keshelava    schedule 03.05.2017