Пользовательская переменная JS диспетчера тегов Google, работающая только в режиме предварительного просмотра

#javascript #variables #google-tag-manager #preview

Вопрос:

У меня есть ситуация, когда при нажатии CTA в модальном окне мне нужно выбрать идентификатор из баннера за этим модальным. Пользовательский сценарий JS отлично работает в режиме предварительного просмотра, но после публикации ничего не возвращает. Есть идеи, в чем может быть проблема?

Пользовательская переменная JS — Скрипт :

 function(){
var returnId = '';
var currentModalId = document.body.dataset.currentModalId; // Get previous ID clicked (from the banner button)
var bannerModalId = google_tag_manager["GTM-XXXXXXX"].dataLayer.get("gtm.element").dataset.modalId; // Get ID from banner button
if (!bannerModalId) {
    // This is a get operation not a set
    return currentModalId;
}else {
    // This is a set operation not a get
    document.body.dataset.currentModalId = bannerModalId;
return bannerModalId;
}
}
 

Комментарии:

1. Обоснованное предположение (следовательно, комментарий вместо ответа), но разница между предварительным просмотром и живым просмотром заключается в том, что предварительный просмотр оценивает все переменные при их вызове, даже в отсутствие событий и т. Д. Поэтому, возможно, в текущей версии у вас в стеке нет ожидаемого элемента gtm., и в этом случае поиск несуществующего атрибута данных приведет к сбою тега. Может быть, вы можете проверить, действительно ли datalayer.get создает элемент, который вы ожидаете?

2. Спасибо. Исправлено сейчас !