#javascript #google-tag-manager
#javascript #google-tag-manager
Вопрос:
У меня есть простая страница, которая в URLhttps://www.myshop.com/user/quickact, и html выглядит как :
<input id="pid" />Keyin Product ID
<input id="count" />Keyin product count
<a id="addList" href="javascript:void(0);" class="buttonAction">Add to List</a>
<!--some external js file handle click event for this link-->
Когда пользователь нажимает гипертекст [Добавить в список], моя страница будет :
- Получаем значение pid / count, помещаем в массив javascript.
- Сбросьте pid с помощью «, сбросьте количество с помощью 1′.
То, что я сейчас делаю в GTM, это :
- Когда pageUrl содержит «user / quickact»
- И пользователь нажал ссылку с идентификатором «Добавить список»
- Получаем значение pid / count и отправляем их в GA через тег GTM.
Вот как я читаю их в пользовательской переменной GTM
function()
{
var pid=document.getElementById('pid').value;
var count=document.getElementById('count').value;
return pid ',' count;
}
Моя проблема в том, что событие GA было запущено, но value…my пользовательская переменная всегда возвращает ‘, 1’.
Это означает, что мой тег GTM срабатывает после действия страницы, поэтому он может считывать только значение сброса, а не фактическое значение, введенное пользователем.
Может ли кто-нибудь предложить решить это?
Ответ №1:
Я не уверен, есть ли решение для управления порядком выполнения нескольких событий, но одним из обходных путей было бы предоставить требуемые данные для GTM с той же функциональностью, которую вы используете для получения значений и их сброса. Это предполагает, что у вас есть контроль над этим кодом.
Вы могли бы сделать что-то вроде этого:
function yourFunctionForButtonClick() {
//Your code to get pid/count value, put into a javascript array.
//new code to provide data to GTM
dataLayer.push({
event: 'newPidProvided',
pidcountvalue: pid ',' count
});
//Your code to reset pid with '', reset count with 1'.
}
В этом случае вам нужно настроить триггер GTM для прослушивания события newPidProvided вместо кликов, при этом все еще проверяя, присутствует ли «user / quickact» в URL. (Что также может быть выполнено в функции, если ни один другой тег или триггер не использует pid count в GTM на других страницах.) Вам также придется использовать переменную dataLayer вместо пользовательского типа JavaScript.