Менеджер тегов Google передает "undefined" для пользовательской переменной URL запроса - PullRequest
0 голосов
/ 20 января 2019

На моем сайте есть кнопки, которые открывают URL-адреса в следующем формате:

https://www.stackoverflow.com/?variable-1=value-1&variable-2=value-2&variable-3=value-3/

В настоящее время я использую тег для передачи большинства переменных клика по умолчанию для этого конкретногоисходящий домен в Google Analytics, а также установить цель.Это работает нормально - я использовал этот учебник: https://www.youtube.com/watch?v=PXONXfZQfFo

Теперь я хочу включить значение переменной 3 в качестве метки события в Google Analytics, а не текст кнопки, который яделаю сейчас.

После этого ответа: Как использовать Google Tag Manager для получения параметров URL Я создал новую пользовательскую переменную "Click Referrer".

Настройки переменных GTM

Однако переменная всегда выводит в консоли неопределенное значение.

Отладочная консоль

У меня естьпробовал:

  • Изменение параметра на что-то без дефиса, например "value3".
  • Заключение ключа запроса в ''.
  • Изменение "Тип компонента"на «Полный URL», чтобы убедиться, что пользовательская переменная действительно выбирается.Это - проблема возникает только тогда, когда я включаю ключ запроса.Если ключ запроса не задан (а тип компонента = запрос), выходные данные не записываются.
  • Попытка запроса ключа для других параметров в URL, таких как переменная-1 и переменная-2.

1 Ответ

0 голосов
/ 22 января 2019

Переменная, которую вы настроили, не поможет, поскольку она имеет значение параметра-3 URL-адрес вашей страницы , но не URL-адрес клика . Вам понадобится пользовательская переменная JavaScript для извлечения параметра из того, что доступно как {{CLick URL}}: что-то подобное будет работать для вас:

function () {
  function parse_query_string(query) {
    var vars = query.split("&");
    var query_string = {};
    for (var i = 0; i < vars.length; i++) {
      var pair = vars[i].split("=");
      var key = decodeURIComponent(pair[0]);
      var value = decodeURIComponent(pair[1]);
      // If first entry with this name
      if (typeof query_string[key] === "undefined") {
        query_string[key] = decodeURIComponent(value);
        // If second entry with this name
      } else if (typeof query_string[key] === "string") {
        var arr = [query_string[key], decodeURIComponent(value)];
        query_string[key] = arr;
        // If third or later entry with this name
      } else {
        query_string[key].push(decodeURIComponent(value));
      }
    }
    return query_string;
  }

  return parse_query_string({{Click URL}})['variable-3']
}
...