1.7. Сбор UTM-меток в дополнительные поля нулевого заказа
GetCourse автоматически сохраняет UTM-метки регистраций в стандартное поле «Источник заказа». Но они могут перезаписываться при последующих заказах, теряться при платных операциях и склеиваться между источниками. Чтобы получить точную картину источников трафика, SCAN читает метки из отдельных доп. полей заказа — по одному полю на каждую метку.
Перед началом Нужно, чтобы у формы регистрации уже было привязано нулевое предложение — иначе заказ не создастся и записывать метки будет некуда. Если предложения ещё нет, создайте его по инструкции 1.8. Нулевые предложения и UTM в доп. полях заказа, а затем возвращайтесь сюда.
Какие поля использовать
Создавать поля и ставить скрипт больше не обязательно — GetCourse заполняет метки сам. Выберите вариант:
| Вариант | Что делать | Когда выбрать |
|---|---|---|
1. Системные поля GetCourse gc_system_deal_utm_* | Вписать названия полей в настройках школы SCAN | Самый быстрый способ, подходит любой школе |
| 2. Свои поля, которые уже созданы | Вписать названия своих полей в настройках школы SCAN | Сбор меток уже настроен и переделывать его не хочется |
| 3. Свои поля + скрипт SCAN | Создать поля, вывести в форме, поставить скрипт | Нужна метка utm_group в отдельном поле или хочется свои поля вместо полей ГК. Если своих полей ещё нет — их можно создать |
В любом варианте SCAN читает метки из полей, названия которых Вы указали в настройках школы.
Вариант 1. Системные поля GetCourse (без скрипта)
Подходит любой школе. GetCourse уже создал пять полей заказа и сам записывает в них метки.
Делать не нужно: создавать доп. поля, выводить их в форме, искать ID полей, ставить скрипт, настраивать формы.
Нужно: один раз вписать названия полей в настройках школы SCAN — три шага ниже.
Шаг 1. Посмотрите поля в GetCourse
Зайдите в GC на страницу Заказы и нажмите ссылку Дополнительные поля:

В списке уже есть пять полей с тегом utm — они и хранят метки:
- gc_system_deal_utm_source;
- gc_system_deal_utm_medium;
- gc_system_deal_utm_campaign;
- gc_system_deal_utm_term;
- gc_system_deal_utm_content.
Шаг 2. Впишите названия полей в настройках школы SCAN
Откройте настройки школы (см. 1.5. Подключение школы GetCourse) и заполните:
| Настройка SCAN | Что вписать |
|---|---|
| Доп. поле для utm_source | gc_system_deal_utm_source |
| Доп. поле для utm_medium | gc_system_deal_utm_medium |
| Доп. поле для utm_campaign | gc_system_deal_utm_campaign |
| Доп. поле для utm_content | gc_system_deal_utm_content |
| Доп. поле для utm_term | gc_system_deal_utm_term |
| Доп. поле для utm_group | оставить пустым |
Так это выглядит в настройках школы:

utm_group оставляем пустым: такого поля у GetCourse нет, эту метку SCAN возьмёт из стандартного «Источника заказа».
Шаг 3. Проверьте
Откройте страницу с формой, добавив к адресу метки:
?utm_source=source&utm_medium=medium&utm_campaign=campaign&utm_content=content&utm_term=term
Заполните форму и откройте созданный заказ в GetCourse — в доп. полях должны стоять значения из адреса. Готово.
Вариант 2. Свои доп. поля, которые уже созданы
Если в школе уже настроен сбор UTM в доп. поля заказа — переименовывать поля и что-то переделывать не нужно. Откройте настройки школы (см. 1.5. Подключение школы GetCourse) и впишите названия своих полей в отмеченные строки — SCAN будет читать метки именно из них:

Логика приоритета меток
Откуда SCAN берёт каждую метку, зависит от настройки «Откуда брать UTM метки регистраций»:
- «Только метки стандартного поля ГК — источник заказа» → все метки берутся из стандартного поля «Источник заказа», доп. поля не читаются.
- «Только метки из дополнительных полей заказа» → метки берутся из доп. полей заказа.
- «Из дополнительных полей заказа и из источника заказа» (рекомендуется) → SCAN берёт метки из «Источника заказа», а если метки там нет — проверяет доп. поле и берёт значение из него. Решение принимается по каждой метке отдельно, поэтому часть меток может прийти из источника заказа, а часть — из доп. полей.
Вариант 3. Свои доп. поля и скрипт SCAN
Прежний порядок настройки. Подходит, если Вы хотите собирать метки в свои поля, а не в поля GetCourse, или если нужна метка utm_group в отдельном поле. Своих полей ещё нет — создадим их по шагам ниже.
Шаг 1. Создаём дополнительные поля в GC
Зайдите в GC на страницу Заказы и нажмите ссылку: Дополнительные поля:

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

Создайте до 6 дополнительных полей заказа — по одному на каждую UTM-метку, которая важна для аналитики. Рекомендуем добавить все шесть:
- scan_utm_source;
- scan_utm_medium;
- scan_utm_campaign;
- scan_utm_content;
- scan_utm_term;
- scan_utm_group.
Названия можно использовать любые — главное, указать их потом в настройках школы SCAN (см. 1.5. Подключение школы GetCourse, параметры «Название доп. поля для метки utm_source» и т.д.).
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

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

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

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

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

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

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

Шаг 4: Проверка работы скрипта
Опубликуйте страницу с формой регистрации и откройте её с UTM метками в URL. Например, можно подставить к странице вот эту строчку:
?utm_source=source&utm_medium=medium&utm_campaign=campaign&utm_content=content&utm_term=term&utm_group=group
Во все доп. поля должны подставиться значения из URL:

Если значений нет или не во всех полях, пожалуйста, проверьте ещё раз всё по инструкции с самого начала.
Шаг 5: Скрытие доп. полей заказа
Чтобы скрыть выведенные доп. поля нужно в CSS класс элемента добавить тег: hidden и сохранить настройки.

После этого все поля будут скрыты, но в них по прежнему будут подставляться UTM метки из URL.
Откройте страницу с метками и заполните форму. На странице нулевого заказа в доп. полях должны быть сохранены значения из URL.
Типичные проблемы
- Системные поля заказа остаются пустыми — откройте настройки формы и проверьте список обработчиков (так в GetCourse называются действия, которые форма выполняет после отправки). Если там есть обработчик «Собирать utm-метки в доп. поля заказа», он должен стоять ниже обработчика «Создать заявку/заказ» — метки пишутся в заказ, а значит заказ к этому моменту уже должен быть создан.
- Доп. поля пустые при работе через свои поля со скриптом — проверьте, что ID полей в скрипте указаны правильно (см. Шаг 3). Откройте форму и через «Посмотреть код» убедитесь, что атрибут
nameсодержит тот же ID, что и в скрипте. - UTM-метки не доходят до SCAN — проверьте, что:
- имена доп. полей в GetCourse и в настройках школы SCAN совпадают (см. 1.5, параметры «Название доп. поля для метки utm_…»). Для системных полей ГК впишите
gc_system_deal_utm_sourceи остальные — сам SCAN их не подставляет; - первичный сбор данных закончился (после подключения SCAN загружает данные до суток).
- имена доп. полей в GetCourse и в настройках школы SCAN совпадают (см. 1.5, параметры «Название доп. поля для метки utm_…»). Для системных полей ГК впишите
- Метка utm_group пустая — системного поля для неё у GetCourse нет. Выберите режим «Из дополнительных полей заказа и из источника заказа», тогда группа возьмётся из стандартного «Источника заказа».
- Поля видны на форме у пользователей — это относится только к варианту со скриптом, повторите Шаг 5 (скрытие через CSS-класс
hidden). При работе через системные поля ГК выводить их в форме не нужно.