Цель на авторизацию или регистрацию через телеграм?
Всем добрый день!
Есть сайт на WordPress.
На сайте стоит плагин, который делает авторизацию/регистрацию через телеграм. Нужно поставить цель Яндекс Метрики на нажатие кнопки войти через телеграм.
Сама кнопка грузится в iframe со стороны телеграма. Событие повесить на нее не получается.
Как быть в такой ситуации?
Дополнительно:
После успешной авторизации/регистрации, что то меняется в этом iframe?
Ответы:
Делайте редирект на страницу, и там трекайте событие
Включите автоцели
Обычно яндекс сам ставит цели на всякие нажатия кнопок отправку форм,
А вообще вы можете отслеживать изменение SRC y iframe, при нажатии кнопки происходит смена урл, верно?
Опишите проблему, и специалист поможет с настройкой, исправлением ошибки или доработкой сайта. Подберём понятный план работ без лишней переписки.
Пока нет других ответов. Будьте первым, кто поможет автору.
Ответить на вопрос
Если кнопка авторизации через Telegram находится внутри iframe Telegram, Вы не сможете нормально повесить обработчик клика на саму кнопку: браузер не даёт странице читать DOM чужого iframe из-за политики безопасности. Поэтому цель на “клик по кнопке внутри iframe” технически ненадёжна.
Рабочий способ — отслеживать не клик, а результат авторизации. Вы пишете, что после успешного входа происходит редирект на страницу “Мой аккаунт”. Значит цель Метрики нужно отправлять на этой странице, но только когда пользователь пришёл после Telegram-логина.
Варианты:
/login-success/, и отправлять цель там;?telegram_login=1;Пример цели на странице результата:
<script> document.addEventListener('DOMContentLoaded', function () { const params = new URLSearchParams(window.location.search); if (params.get('telegram_login') === '1' && typeof ym === 'function') { ym(83328046, 'reachGoal', 'telegram_login_success'); } }); </script><script> document.addEventListener('DOMContentLoaded', function () { const params = new URLSearchParams(window.location.search); if (params.get('telegram_login') === '1' && typeof ym === 'function') { ym(83328046, 'reachGoal', 'telegram_login_success'); } }); </script>
Если хотите отдельно считать попытку клика, можно поставить цель на клик по контейнеру iframe, но это будет именно “клик в области Telegram-виджета”, а не подтверждённая регистрация. Такая цель менее точная:
document.querySelector('.telegram-login-wrap')?.addEventListener('click', function () { if (typeof ym === 'function') { ym(83328046, 'reachGoal', 'telegram_login_click'); } });document.querySelector('.telegram-login-wrap')?.addEventListener('click', function () { if (typeof ym === 'function') { ym(83328046, 'reachGoal', 'telegram_login_click'); } });
Для аналитики лучше иметь две цели: попытка входа и успешная авторизация. Основной KPI — успешная авторизация после редиректа, потому что она не зависит от ограничений iframe и показывает реальное завершение действия.