Огонь GTM событие перед страницей действовать, как? - PullRequest
0 голосов
/ 11 марта 2019

У меня есть простая страница, которая в URL https://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-->

Когда пользователь нажимает гипер текст [Добавить в список], моя страница будет:

  1. Получить значение pid / count, поместить в массив javascript.
  2. Сбросить pid с помощью '', сбросить счетчик с помощью 1 '.

ВещиЯ сейчас делаю в GTM:

  1. Когда PageURL содержит "user / quickact"
  2. И пользователь нажимает ссылку с идентификатором "addList"
  3. Get pid /посчитайте значение и отправьте их в GA через тег GTM.

Вот как я могу прочитать их в пользовательской переменной GTM

function()
{
  var pid=document.getElementById('pid').value;
  var count=document.getElementById('count').value;
  return pid+','+count;
}

Моя проблема в том, что событие GA сработало, но значение ... моя пользовательская переменная всегда возвращает ', 1'.

Это означает, что мой тег GTM сработал после действия страницы , поэтому он может только читать значение сброса, а не фактическоеvalue user key-in.

Может кто-нибудь дать предложение, чтобы решить эту проблему?

1 Ответ

0 голосов
/ 20 марта 2019

Я не уверен, есть ли решение для контроля порядка выполнения нескольких событий, но одним из обходных путей было бы предоставить необходимые данные для 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.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...