Перейти к основному содержимому

1.7. Сбор UTM-меток в дополнительные поля нулевого заказа

GetCourse автоматически сохраняет UTM-метки регистраций в стандартное поле «Источник заказа». Но они могут перезаписываться при последующих заказах, теряться при платных операциях и склеиваться между источниками. Чтобы получить точную картину источников трафика, SCAN рекомендует завести шесть отдельных доп. полей у заказа и записывать в них UTM-метки прямо из URL страницы при отправке формы.

Перед началом Нужно, чтобы у формы регистрации уже было привязано нулевое предложение — иначе доп. поля заказа в форме не появятся. Если предложения ещё нет, создайте его по инструкции 1.8. Нулевые предложения и UTM в доп. полях заказа, а затем возвращайтесь сюда.

Шаг 1. Создаём дополнительные поля в GC

Зайдите в GC на страницу Заказы и нажмите ссылку: Дополнительные поля:

Страница «Заказы» в GetCourse

Нажмите кнопку Добавить поле и выберите тип строка:

Выбор типа дополнительного поля Форма создания дополнительного поля

Создайте до 6 дополнительных полей заказа — по одному на каждую UTM-метку, которая важна для аналитики. Рекомендуем добавить все шесть. Названия можно использовать любые: либо стандартные scan_utm_* (тогда SCAN подхватит их сам), либо свои — например, если поля уже созданы и переименовывать неудобно. Стандартный набор имён:

  • scan_utm_source;
  • scan_utm_medium;
  • scan_utm_campaign;
  • scan_utm_content;
  • scan_utm_term;
  • scan_utm_group.

Если используете свои названия Если поля называются не scan_utm_*, укажите их имена при подключении школы к SCAN — см. 1.5. Подключение школы GetCourse, параметры «Название доп. поля для метки utm_source» и т.д. SCAN будет читать метки из тех полей, которые Вы там указали.

Логика приоритета меток

Откуда SCAN берёт каждую метку, зависит от настройки «Откуда брать UTM метки регистраций» при подключении школы (см. 1.5):

  • «Только метки стандартного поля ГК — источник заказа» → все метки всегда берутся из стандартного поля «Источник заказа», доп. поля не читаются.
  • «Только метки из дополнительных полей заказа» → метка берётся из своего доп. поля; если такого доп. поля в заказе нет — эта метка подтягивается из стандартного «Источника заказа».
  • «Из дополнительных полей заказа и из источника заказа» (рекомендуется) → решение принимается по каждой метке отдельно: если её доп. поле заполнено — берётся из него; если доп. поле пустое или отсутствует — именно эта метка берётся из стандартного «Источника заказа». То есть часть меток может прийти из доп. полей, а часть — из источника заказа.

6 созданных доп. полей заказа:

Список из шести созданных доп. полей

Шаг 2: Вывод доп. полей в форме регистрации

Добавим форму на страницу GC или в виджет и в форме добавим создание предложения с суммой заказа 0 руб. при отправке формы.

Форма регистрации с опцией создания нулевого предложения

Выведем созданные дополнительные поля в форме регистрации. Откройте настройки блока:

Кнопка открытия настроек блока

Нажмите на кнопку + Поле заказа:

Кнопка «+ Поле заказа»

Выберите созданное дополнительное поле заказа:

Выбор доп. поля в выпадающем меню

Создайте все 6 созданных доп. полей заказа и нажмите кнопку Сохранить и закрыть:

Форма со всеми шестью добавленными полями

Под формой появятся все 6 дополнительных полей:

Форма с выведенными шестью полями

Шаг 3: Установка скрипта

Скопируйте код ниже:

<!— НАЧАЛО СКРИПТА ВСТАВКИ МЕТОК UTM В ДОП. ПОЛЯ ЗАКАЗА —>
<script type="text/javascript">
$(function(){
try{
function getUtmSelector(utm_id){
return `input[name="formParams[dealCustomFields][${utm_id}]"], textarea[name="formParams[dealCustomFields][${utm_id}]"]`
}
function setValueToCustomField(selector, value) {
var $el = $(selector);
if ($el.attr('type') === 'hidden') {
var $fieldEl = document.querySelector(selector).parentElement.querySelector(".form-control.f-input")
if ($fieldEl) {
$fieldEl.value = value
}
$el.val(JSON.stringify(value));
} else {
$el.val(value);
}
setTimeout(()=>{
setValueToCustomField(selector,value)
},3000)
}
var utm_source_selector = getUtmSelector("id доп поля utm_source")
var utm_medium_selector = getUtmSelector("id доп поля utm_medium")
var utm_campaign_selector = getUtmSelector('id доп поля utm_campaign')
var utm_content_selector = getUtmSelector('id доп поля utm_content')
var utm_term_selector = getUtmSelector('id доп поля utm_term')
var utm_group_selector = getUtmSelector('id доп поля utm_group')

var utm_source_val = getGet("utm_source");
var utm_medium_val = getGet("utm_medium");
var utm_campaign_val = getGet("utm_campaign");
var utm_content_val = getGet("utm_content");
var utm_term_val = getGet("utm_term");
var utm_group_val = getGet("utm_group");
setValueToCustomField(utm_source_selector, utm_source_val);
setValueToCustomField(utm_medium_selector, utm_medium_val);
setValueToCustomField(utm_campaign_selector, utm_campaign_val);
setValueToCustomField(utm_content_selector, utm_content_val);
setValueToCustomField(utm_term_selector, utm_term_val);
setValueToCustomField(utm_group_selector, utm_group_val);

}catch(error){
console.log(error,"Ошибка при вставке utm меток в доп. поля заказа.")
}
});

function getGet(name) {
var s = window.location.search;
s = s.match(new RegExp(name + '=([^&=]+)'));
return s ? decodeURI(s[1]) :"";
}
</script>
<!— КОНЕЦ СКРИПТА ВСТАВКИ МЕТОК UTM В ДОП. ПОЛЯ ЗАКАЗА —>

и вставьте его в общие настройки GetCourse. Страница находится по адресу: https://www.вашсайт.ру/saas/account/settings

Место в настройках GetCourse для вставки скрипта Поле для вставки кода

В скрипте есть значения id доп. поля заказа — вместо этого нужно вставить свои значения.

Например, заменим значение первой метки:

Пример значения «id доп. поля» в коде скрипта

Открываем страницу с формой, наводим мышку на первое поле scan_utm_source и нажимаем правую кнопку мыши и в открывшемся окне выбираем Посмотреть код:

Контекстное меню браузера с пунктом «Посмотреть код»

Внизу браузера откроется окно с кодом с уже выделенной строчкой. Вам нужно скопировать цифры id своего поля:

Инструменты разработчика с выделенным ID поля

Вставьте скопированные цифры в скрипт в настройках GC:

Скрипт со вставленным числовым ID поля

Таким же образом определите id других полей формы регистрации, вставьте цифры в скрипт.

Скрипт со всеми заполненными ID полей

И нажмите кнопку Сохранить:

Кнопка «Сохранить» в настройках GetCourse

Шаг 4: Проверка работы скрипта

Опубликуйте страницу с формой регистрации и откройте её с UTM метками в URL. Например, можно подставить к странице вот эту строчку:

?utm_source=source&utm_medium=medium&utm_campaign=campaign&utm_content=content&utm_term=term&utm_group=group

Во все доп. поля должны подставиться значения из URL:

Форма регистрации с заполненными UTM-метками из URL

Если значений нет или не во всех полях, пожалуйста, проверьте ещё раз всё по инструкции с самого начала.

Шаг 5: Скрытие доп. полей заказа

Чтобы скрыть выведенные доп. поля нужно в CSS класс элемента добавить тег: hidden и сохранить настройки.

Тег «hidden» в CSS-классе элемента

После этого все поля будут скрыты, но в них по прежнему будут подставляться UTM метки из URL.

Откройте страницу с метками и заполните форму. На странице нулевого заказа в доп. полях должны быть сохранены значения из URL.

Типичные проблемы

  • Доп. поля заказа после отправки формы пустые — проверьте, что ID полей в скрипте указаны правильно (см. Шаг 3). Откройте форму и через «Посмотреть код» убедитесь, что атрибут name содержит тот же ID, что и в скрипте.
  • UTM-метки не доходят до SCAN — проверьте, что:
    • имена доп. полей в GetCourse и в настройках школы SCAN совпадают (см. 1.5, параметры «Название доп. поля для метки utm_…»). Если поля называются scan_utm_* — указывать их в настройках не обязательно, SCAN подхватит автоматически;
    • первичный сбор данных закончился (после подключения SCAN загружает данные до суток).
  • Поля видны на форме у пользователей — повторите Шаг 5 (скрытие через CSS-класс hidden).