Да.Это не только возможно, это то, что делает сам GTM (если у вас объявлена переменная dataLayer, GTM отправляет свои события gtm.js, gtm.dom и gtm.load в существующий dataLayer (если он не определен, он объявляет саму переменную).
Одна вещь, которую вы должны помнить, это то, что вам нужно выдвинуть событие GTM - буквально, пара ключ / значение, где ключ - «событие». Код GTM изменяет собственный метод push-метода для уровня данных, чтобыпросмотрите ключевое слово «event», и, если ключевое слово найдено, оно обновляет свои внутренние переменные (т. е. вы не можете получить доступ к новым переменным до того, как событие GTM было передано).
Например, если вы хотите получить dataLayerпеременная "foo" со значением "bar", которое вам нужно будет сделать
dataLayer.push({
"foo":"bar",
"event":"myCustomEvent"
});
Затем вы можете получить доступ к переменной foo и получить ее значение. Вы также можете сделать пользовательский триггер типа события, который запускаеткак только событие «myCustomEvent» будет выдвинуто (хотя вам и не нужно, значение «bar» будет сохраняться до тех пор, пока страница не будет выгружена, вы нажимаете другое значениена клавишу «foo» или вы сбрасываете dataLayer).
Некоторые типы триггеров, такие как щелчок, отправка и видимость, предоставляют свои собственные события.
Еще одна вещь, которую нужно иметь в виду, это то, что вы не должны объявлять переменную dataLayer во второй раз после загрузки кода GTM, иначе вы удалите изменения, внесенные GTM в dataLayer и разрывы GTM.
Но вкратце, да, это тот, кто должен работать, вы можете выдвигать значения после кода GTM.