TIlda

WordPress

Bitrix

1 шаг

Заходите в "Настройки сайта". Переходите во вкладку "Формы". В блоке "Другое" выбираете "Webhook"

2 шаг

В "WEBHOOK URL" вставляете: 

https://n8n.easy-panel.ru/webhook/tg_lead_bot

1. В "API METHOD" выбираете "POST".
2. В "API NAME" вставляете "TGLEAD".
3. В "API KEY" прописываете ключ доступа которые можете посмотреть в настройках проекта/ счетчика в личном кабинете.

2 шаг

В дополнительных настройках выбираете:

  • Посылать Cookies
  • Передавать данные по товарам в заказе — массивом
  • Передавать externalid в товарах
  • Отправлять данные в виде application/json
  • Передавать дополнительные данные в товарах

3 шаг

Сохраняете настройки и нажимаете кнопку "Добавить" для автоматического добавления подключения ко всем формам на вашем сайте. Не забудьте опубликовать повторно все страницы в Tilda.

4 шаг (необязательный)

Для дополнительной передачи YCLID в оффлайн конверсии требуется добавь код и скрытое поле во все формы вашего сайта.

1. Заходите в Яндекс Метрику Вашего сайта;
2. Переходите в раздел Тег Менеджер;
3. Во вкладке "Триггеры" нажимаете на кнопку "Добавить триггер" и создаёете тригер со следующими параметрами:

4. Далее переходите во вкладку "Теги", нажимаете на кнопку "Добавить тег";
5. Название пишите произвольное
6. Шаблон тега выбираете "Пользовательский HTML"
6.1. Если нет выбора "Пользователький HTML", то в настройках счетчика включите данную опцию:

7. В окно HTML вставляете данный код без изменений:

<script>
(function waitForMetrika(retry = 0) {
  const MAX_RETRIES = 30;
  const DELAY = 500;

  function metrikaIsReady() {
    for (const key in window) {
      if (/yaCounter\d+/.test(key)) {
        const counter = window[key];
        if (counter && typeof counter.getClientID === 'function') {
          return { counter, counterId: key.replace('yaCounter', '') };
        }
      }
    }
    return null;
  }

  // Получение yclid из URL или cookies
  function getYclid() {
    const urlMatch = window.location.href.match(/[?&]yclid=(\d+)/);
    if (urlMatch) return urlMatch[1];

    const cookieMatch = document.cookie.match(/yclid=(\d+)/);
    return cookieMatch ? cookieMatch[1] : null;
  }

  const found = metrikaIsReady();

  if (!found) {
    if (retry < MAX_RETRIES) {
      console.log(`⏳ Ожидание Метрики... Попытка ${retry + 1}`);
      return setTimeout(() => waitForMetrika(retry + 1), DELAY);
    } else {
      return console.warn('❌ Метрика не загрузилась за отведённое время.');
    }
  }

  // Метрика точно загружена
  let clientID = null;
  try {
    clientID = found.counter.getClientID();
  } catch (e) {
    console.warn('⚠️ Метод getClientID недоступен:', e);
  }

  // Fallback: из cookie
  if (!clientID) {
    const m = document.cookie.match(/_ym_uid=([^;]+)/);
    clientID = m ? m[1] : null;
  }

  const yclid = getYclid();

  if (clientID) {
    // Создаёт input, если нет
    const ensureInput = (name, value) => {
      let el = document.querySelector(`input[name="${name}"]`);
      if (!el) {
        el = document.createElement('input');
        el.type = 'hidden';
        el.name = name;
        document.body.appendChild(el);
      }
      el.value = value;
    };

    ensureInput('clientid', clientID);
    ensureInput('metrika', found.counterId);
    if (yclid) {
      ensureInput('yclid', yclid);
    }

    console.log('✅ Метрика загружена. clientID:', clientID, '| ID:', found.counterId, '| yclid:', yclid || 'нет');
  } else {
    console.warn('⚠️ Не удалось получить clientID');
  }
})();
</script>

8. В блоке "Триггеры" выбираете созданный ранее тригер "Сайт отрисован".
9. Нажимаете кнопку "Опубликовать"
10. Во все формы на сайте добавьте скрытое поле с именем переменной "yclid", как в примере:

Всё. Вы всё настроили. Поздравляю!

В разработке...

В разработке...