JavaScript-микроразметка для Amplitude: отправляйте события корректно через GTM
Если ваша команда использует GTM (Google Tag Manager) для доставки событий в Amplitude, чаще всего ломается не “аналитика”, а **контракты данных**: имена, типы, структура payload и тайминг. Ниже — чек-лист, как выжать максимум из JavaScript-логики в GTM, чтобы события в Amplitude были воспроизводимыми и пригодными для воронок, retention и revenue-аналитики.
— Определите единый контракт события: заведите таблицу соответствий “событие → обязательные поля → типы значений”.
Проверьте, что в Amplitude приходят одинаковые имена и одинаковая форма данных (например, всегда строка/всегда число).
— В GTM используйте безопасный парсинг данных, а не “как получилось”.
Если берёте значения из DOM/URL — делайте валидацию и нормализацию: trim для строк, Number() для чисел, ограничение пустых значений.
— Соберите payload в одном месте: вынесите формирование объекта в отдельную функцию/JS-блок GTM.
Так вы исключите ситуацию, когда разные страницы шлют “почти одинаковые” поля, но с разными названиями.
— Контролируйте тайминг отправки: отправляйте событие после того, как данные точно готовы.
Для кликов и навигации учитывайте гонки: иногда событие теряется, если страница меняется быстрее, чем успевает выполниться отправка.
— Учитывайте edge-cases интерфейса: один клик может породить несколько источников данных.
Примеры: двойные submit, повторный клик, ленивые подгрузки. Логируйте и ставьте защиту от дублей на уровне логики GTM.
— Привязывайте идентификаторы к бизнес-логике, а не к “случайным параметрам”.
Для B2B и RevOps критично отличать пользователя, аккаунт и сессию: отправляйте корректные user/account identifiers, чтобы сегменты и когорты не “плыли”.
— Подтвердите отправку в Amplitude через отладку и тестовые сценарии.
Используйте режиме просмотра GTM и верифицируйте в Amplitude: типы полей, наличие обязательных параметров, отсутствие неожиданных null/undefined.
когда это пригодится — когда нужно стабилизировать события в Amplitude при масштабировании GTM: больше страниц, больше команд, меньше ручной проверки.
— @AmplitudeCookbookRuPro
Amplitude cookbook
@AmplitudeCookbookRuPro
JavaScript-микроразметка для Amplitude: отправляйте события корректно через GTM
Этот пост опубликован в Telegram-канале Amplitude cookbook. Подписаться можно по ссылке: @AmplitudeCookbookRuPro.