Передаем в Google Forms свои параметры (например clientID)
Если для сбора лидов вы пользуетесь прекрасным функционалом Google Forms, и вам удобно и просто, но вы столкнулись с проблемой — передавать в нее кастомное поле, то эта статья для вас.
Проблема
Если мы используем какую-нибудь самописную (или включенную в систему управления сайтом) форму, то у нас есть возможность ее модифицировать и добавлять туда нужные нам скрытые поля с информацией о клиенте, например utm метки или clientID.

Но если же пользуемся Google Forms, то по-умолчанию туда ничего не передашь.

А раз так, то тех пользователей, которые заполнили форму, мы не сможем соотнести с источниками трафика или с другими данными Google Analytics.

Например, мы не сможем реализовать схему передачи данных из Google Spreadsheets по передачи транзакций в Google Analytics (мини-замена CRM).
Решение
Не скажу, что оно изящное, но рабочее и, надеюсь, многих выручит.

Суть: создаем новое поле в форме, используем функцию prefill и встраиваем форму в html файл.
1
Создаем новое поле
Создать новое поле в текущей Google форме просто, нажимаем на знак +:
2
Prefill
После чего, необходимо перейти в режим «Создать образец заполнения» или prefill, которое в меню с тремя точками:
В котором заполняем только поле cid, в которое и будет писаться clientID:
На выходе у нас получиться ссылка вот такого вида:

https://docs.google.com/forms/d/e/1FAIpQLSdAgLKuFJo52oaBDFTdX91DWqEOt9SmPFn6p_miWIHE3rzu8Q/viewform?entry.1714815568=123

Где нас интересует вот эта часть:

entry.1714815568=

Это идентификатор нужного нам поля, запомним это.
3
HTML файл с встроенной формой
Далее, нажимаем на кнопку "отправить" и выбираем пункт — <> (встроенная форма) и копируем код с iframe.
Дальше, в любом редакторе создаем html файл, куда вставляем код Google Analytics или Google Tag Manager или же берем вот этот файл:

http://school.web-analytics.me/test.html

И туда же вставляем наш iframe с формой с предыдущего шага и вот такую функцию:
function getCid()
{
	var link = "https://docs.google.com/forms/d/e/1FAIpQLSdAgLKuFJo52oaBDFTdX91DWqEOt9SmPFn6p_miWIHE3rzu8Q/viewform?entry.515943043=";
    var match = document.cookie.match('(?:^|;)\\s*_ga=([^;]*)');
    var raw = (match) ? decodeURIComponent(match[1]) : null;
if (raw)
{
match = raw.match(/(\d+\.\d+)$/);
}
var gacid = (match) ? match[1] : null;
if (gacid)
{
document.getElementById("cid").src = link + gacid;
console.log(link + gacid);
}
return true;
}
И немного модифицируем получившийся код, добавляем в body вот такую функцию:
<body onload="getCid()">
И модифицируем iframe, добавляя параметр id и убирая значение scr:
<iframe src="" id="cid" width="100%" height="100%" frameborder="0" marginheight="0" marginwidth="0">Загрузка...</iframe>
Заключение
Теперь, вместе с обычными данными формы, вы будете передавать данные по clientID пользователя.
Made on
Tilda