Продвинутая аналитика Contact Form 7: передача ID формы и параметров в Яндекс Метрику

Частая ошибка при настройке конверсий для CF7 — привязывать цель к обычному клику по кнопке «Отправить». Из-за этого в статистику попадают ошибки заполнения полей и спам.

Правильный путь — использовать встроенное DOM-событие wpcf7mailsent. Оно срабатывает только после успешной отправки письма.

Но можно сделать аналитику еще прозрачнее и передавать в Метрику не просто факт лида, а детальные параметры отправки:

  • ID формы (contactFormId) — чтобы понимать, какая именно форма отработала.
  • ID страницы (containerPostId) — чтобы знать, с какой записи или страницы пришла заявка.
  • Unit Tag (unitTag) — уникальный идентификатор вывода формы. Незаменимо, если одна и та же форма стоит и в шапке, и в подвале сайта.

Вот готовый код:

<script>
document.addEventListener( 'wpcf7mailsent', function( event ) {
    if (typeof ym === 'undefined') return; // Защита от ошибок, если счетчик не загружен

    var goalParams = {
        'cf7_form_id': event.detail.contactFormId,
        'cf7_page_id': event.detail.containerPostId,
        'cf7_unit_tag': event.detail.unitTag
    };

    // Передаем цель и параметры визита
    // Замените XXXXXX на номер счетчика, а TARGET_NAME на ID цели
    ym(XXXXXX, 'reachGoal', 'TARGET_NAME', goalParams); 
}, false );
</script>

Как проверить, что данные реально уходят в Метрику? (Дебаг)

  1. Чтобы не гадать, сработал ли скрипт, используйте встроенный отладчик Яндекс Метрики.
  2. Откройте страницу с вашей формой и добавьте в конец URL-адреса параметр ?_ym_debug=2 (например: yoursite.com/contact/?_ym_debug=2). Нажмите Enter.
  3. Внизу экрана (или в отдельном окне) появится специальная панель отладчика Метрики.
  4. Заполните форму и отправьте ее.
  5. В панели отладчика перейдите на вкладку Events (События) или Parameters (Параметры).
  6. Если все настроено верно, вы увидите событие reachGoal с вашим TARGET_NAME, а внутри — раскрывающийся список переданных параметров (те самые ID формы, страницы и Unit Tag).
Событие "Form submitted" с параметрами и цель "form_submit" в интерфейсе Яндекс Метрики.
Раздел Параметры, показывающий данные Contact Form 7: "cf7_form_id": 12, "cf7_page_id": 0, "cf7_unit_tag": "wpcf7-f12-o1".

Если после отправки формы страница автоматически перезагружается, включите в меню отладчика галочку Preserve log (Сохранять логи). Так данные не затрутся при обновлении страницы, и вы сможете спокойно их изучить.

Галочка Preserve log в консоли разработчика Chrome включена для сохранения логов при перезагрузке страницы.

Похожие посты