+7 (958) 580-59-59

на связи с 9:00 до 21:00

Скрипт отслеживания копирования и выделения почты с отправкой цели в Яндекс Метрику

Данный код добавляйте в HEAD и тут без разницы на какой платформе сделан сайт. Только вместо 'YOUR_METRIKA_ID' подставьте свой номер счетчика и создайте JavaScript событие с названием emailCopied.

<script>
  // Замените 'YOUR_METRIKA_ID' на ваш реальный идентификатор Яндекс Метрики
  var METRIKA_ID = 'YOUR_METRIKA_ID';

  // Функция для отправки события в Яндекс Метрику
  function sendMetrikaEvent(email) {
    if (window.ym) {
      console.log('Отправка события в Яндекс Метрику:', email);
      window.ym(METRIKA_ID, 'reachGoal', 'emailCopied', { email: email });
    } else {
      console.log('Яндекс Метрика не инициализирована');
    }
  }

  // Функция для отслеживания события копирования
  function handleCopyEvent(event) {
    var copiedText = window.getSelection().toString();
    console.log('Скопированный текст:', copiedText);

    var hasAtSymbol = copiedText.indexOf('@') !== -1;
    var hasRussianLetters = /[А-Яа-яЁё]/.test(copiedText);

    console.log('Содержит символ "@":', hasAtSymbol);
    console.log('Содержит русские буквы:', hasRussianLetters);

    if (hasAtSymbol && !hasRussianLetters) {
      sendMetrikaEvent(copiedText);
    }
  }

  // Функция для отслеживания кликов правой кнопкой на mailto-ссылках
  function handleMailtoRightClick(event) {
    var target = event.target;
    if (
      event.button === 2 &&
      target.tagName === 'A' &&
      target.getAttribute('href') &&
      target.getAttribute('href').indexOf('mailto:') === 0
    ) {
      var email = target.getAttribute('href').substring(7);
      console.log('Клик правой кнопкой на mailto:', email);

      var hasRussianLetters = /[А-Яа-яЁё]/.test(email);
      console.log('Содержит русские буквы:', hasRussianLetters);

      if (!hasRussianLetters) {
        sendMetrikaEvent(email);
      }
    }
  }

  // Навешиваем обработчики событий
  document.addEventListener('copy', handleCopyEvent);
  document.addEventListener('contextmenu', handleMailtoRightClick);
</script>

Цель в Яндекс Метрику отправляется в следующих случаях:

  • Почта написана текстом - выделяется и нажимается CTRL+C;
  • Почта написана текстом - выделяется и нажимается через ПКМ копировать;
  • Почта добавлена через HTML тег mailto - При нажатие правой кнопкой мыши на почту и выбор "Копировать адрес электронной почты".

Цель в Яндекс Метрику не отправляется если:

  • В выделенном фрагменте текста есть русские символы.

Данный скрипт не только отправляет событие в цели, но и отдельно отправляет параметр визита с тем какую почту пользователь скопировал на сайте, это отлично подходит как раз для тех, у кого на сайте 2-3 почты на которые поступают разные запросы - розница, оптовые продажи, коммерческие предложения. Теперь вы сможете на 100% понимать какую почту чаще всего копируют :)

Хватит читать советы «для всех»

Подписывайся — рассказываю, как маркетинг работает на практике, с цифрами и кейсами.

ПОДПИСАТЬСЯ!

Без воды, прямо и честно.

ИП Вечкасов Кирилл Александрович, ИНН: 860326713173, ОГРН: 323784700359197

Политика конфиденциальности
Офферта