Как передать параметры URL UTM/SQF через проиндексированные подстраницы SquareSpace?

Страницы Squarespace Index имеют главную страницу и подстраницу. Это выглядит следующим образом:

  • INDEX (xyz.com/landingpage)
    • Page 1 (xyz.com/landingpage)
    • Страница 2 (xyz.com/landingpage-1)

Squarespace не может передавать параметры UTM через форму, поэтому я использую скрипт в Диспетчере тегов Google для передачи параметров UTM в формат Squarespace SQF:

Ссылка: Как отслеживать данные UTM при отправке форм Squarespace

В формах у меня есть скрытые поля SQF_CAMPAIGN, SQF_TERM и т. д., которые собирают данные, которые анализирует скрипт, и параметры URL собираются при отправке формы.

У меня есть блок формы на каждой странице индекса. Это выглядит так:

  • INDEX (xyz.com/landingpage)
    • PAGE 1 (xyz.com/landingpage)
      • FORM 1
    • PAGE 2 (xyx.com/landingpage-1)
      • FORM 2

С точки зрения посетителей сайта это одна страница и один URL. Из архитектуры дизайна Squarespace считается две страницы.

То, что я пытаюсь решить, - это получить параметры URL для отправки с помощью формы 2. В настоящее время форма 1 работает без проблем. Все параметры отправлены. Перед выпуском я начал тестировать другую форму и понял, что параметры не собираются. Я проверил это на нескольких страницах.

Я подозреваю, что СТРАНИЦА 2, ФОРМА 2 не загружает данные, потому что на самом деле это отдельный URL-адрес. Я провел тест, используя только URL-адрес только с параметрами SQF, и мне удалось получить данные на СТРАНИЦЕ 2, ФОРМЕ 2. Хотя мне нужны параметры UTM для дальнейшего отслеживания, поэтому использование только SQF не решает мою проблему. Я могу ошибаться.

В идеале пользователь нажимает на платную поисковую кампанию Google, поэтому все параметры UTM будут помечены в URL-адресе целевой страницы, и когда они отправят любую форму на страницах, параметры будут собраны.

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


person just_some_dude    schedule 16.11.2019    source источник
comment
Проблема вызвана тем, что фрагмент кода, который вы используете, был написан для обработки только одной формы. Я автор фрагмента кода, который вы включили. Если хотите, удалите перепечатанную версию из своего вопроса, чтобы другие не путались, если/когда я обновлю исходный ответ. Как только вы удалите код из своего вопроса, я с удовольствием обновлю исходный ответ, чтобы он работал и в вашем случае. Кроме того (только на будущее), рассмотрите возможность атрибуции ответов, которые вы перепечатываете здесь, на SO или где-либо еще. creativecommons.org/licenses/by-sa/4.0/#   -  person Brandon    schedule 16.11.2019
comment
@Брэндон, я был бы признателен. Я новый участник, и я понимаю, что после ответа на вопрос я не могу добавлять дополнительные вопросы. Я создал новый пост по этой причине. Я рад, что вы сообщили об этом и сообщили мне о проблемах CC. С удовольствием подчиняюсь. Спасибо за вашу работу и заранее спасибо за обновление оригинального поста! Я с нетерпением жду этого. Пожалуйста, дайте мне знать, если есть что-то еще, что вы хотели бы, чтобы я сделал относительно моего поста.   -  person just_some_dude    schedule 16.11.2019
comment
Единственная проблема заключалась в атрибуции фрагмента. Нет общего руководства по моему предложению удалить фрагмент, но я просто подумал, что это поможет другим в будущем не иметь 3 почти идентичных фрагмента в нескольких местах (оригинальный ответ, ваш вопрос, новый ответ). Технически ваш вопрос мог быть дополнительным вопросом через комментарий к исходному ответу, например Можно ли заставить это работать на странице с несколькими формами? но это, конечно, требует понимания того, как это сформулировать, и знания того, что вызывает проблему. Так что не беспокойтесь. meta.stackexchange.com/a/10245   -  person Brandon    schedule 17.11.2019


Ответы (1)


Проблема вызвана тем, что фрагмент кода, который вы используете, был написан для обработки только одной формы. То есть предполагается, что на данной странице есть только одна форма. Это не имеет отношения к архитектуре страницы индекса в Squarepace.

Проблему можно решить, добавив в код цикл, например:

var i = formFields.length;
while (i--) {
  if (formFields[i]) {
    formFields[i].value = params[param]; 
  }
}

исходный ответ был обновлен с помощью этого фрагмента кода.

person Brandon    schedule 16.11.2019