feat(ads): конверсия «регистрация» в Google Ads по gclid
Рекламу по обучающим запросам (obsidian как пользоваться, obsidian заметки) ведём на бесплатный вход в школу, а не на продажу: порог входа нулевой, а из 19 бесплатных регистраций 6 дошли до покупки (32%). Чтобы Google видел, какие клики дают студентов: - User.gclid — идентификатор клика рядом с уже собираемыми UTM; - gclid прокидывается из URL через page → форму → API (той же цепочкой); - src/lib/ads-conversion.ts — серверная отправка конверсии 7719084914 (UPLOAD_CLICKS). Серверно, а не тегом: после регистрации сразу редирект в кабинет, тег на странице «спасибо» не сработает — грабля из разбора платежей 20260810. Всё gated по env (GADS_*): нет кредов — тихо не отправляем, регистрацию не роняем. Миграция идемпотентна: колонка заведена на проде вручную.
This commit is contained in:
@@ -30,9 +30,10 @@ interface Props {
|
||||
utmSource?: string;
|
||||
utmMedium?: string;
|
||||
utmCampaign?: string;
|
||||
gclid?: string;
|
||||
}
|
||||
|
||||
export function RegisterForm({ showTermsCheckbox, privacyPolicyUrl, termsUrl, offerUrl, archetype, utmSource, utmMedium, utmCampaign }: Props) {
|
||||
export function RegisterForm({ showTermsCheckbox, privacyPolicyUrl, termsUrl, offerUrl, archetype, utmSource, utmMedium, utmCampaign, gclid }: Props) {
|
||||
const [name, setName] = useState("");
|
||||
const [email, setEmail] = useState("");
|
||||
const [password, setPassword] = useState("");
|
||||
@@ -127,6 +128,7 @@ export function RegisterForm({ showTermsCheckbox, privacyPolicyUrl, termsUrl, of
|
||||
utmSource,
|
||||
utmMedium,
|
||||
utmCampaign,
|
||||
gclid,
|
||||
}),
|
||||
});
|
||||
} catch {
|
||||
|
||||
Reference in New Issue
Block a user