Мы не знаем, чего вы хотите добиться, переписав функцию gtag
, поэтому мы не можем ответить на конкретный c вопрос о том, что "works"
, а что нет.
Что можно сказать: arguments
является объектом , а GTM ожидает объект от dataLayer.push
, следовательно, почему это следует предполагаемому замыслу (тогда как [first, second]
является массивом и, следовательно, нет).
Обратите внимание, что сам по себе вызов push
"работает" :
Однако вы не сможете прочитать эти данные через GTM , который, как объяснено выше, ожидает .push
для передачи объектов.
Если вы хотите использовать dataLayer в совершенно бесплатно , вы можете использовать помощник GTM dataLayer:
https://github.com/google/data-layer-helper
Это поддерживает синтаксис массива с помощью мета-команд :
dataLayer.push(['abc.push', 4, 5, 6]);
Однако GTM по умолчанию не поддерживает чтение этих данных (еще раз GTM ожидает объект, поэтому он может извлекать значения на основе объекта prop нужды), поэтому для чтения этих данных через GTM вам потребуется использовать помощник dataLayer внутри тегов и переменных GTM.