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

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

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

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

// Функция для отслеживания события копирования
function handleCopyEvent(event) {
// Получаем текст из буфера обмена
const copiedText = window.getSelection().toString();

// Выводим лог выделенного текста в консоль
console.log('Скопированный текст:', copiedText);

// Проверяем, есть ли символ "@" в скопированном тексте и нет ли русских букв
const hasAtSymbol = copiedText.includes('@');
const hasRussianLetters = /[А-Яа-яЁё]/.test(copiedText);

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

if (hasAtSymbol && !hasRussianLetters) {
// Отправляем событие в Яндекс Метрику
sendMetrikaEvent(copiedText);
}
}

// Навешиваем обработчик события на событие копирования
document.addEventListener('copy', handleCopyEvent);

// Функция для отслеживания кликов на ссылках "mailto:" правой кнопкой мыши
function handleMailtoRightClick(event) {
const target = event.target;
if (event.button === 2 && target.tagName === 'A' && target.getAttribute('href') && target.getAttribute('href').startsWith('mailto:')) {
// Получаем адрес электронной почты из ссылки
const email = target.getAttribute('href').substring(7);

// Выводим лог адреса электронной почты в консоль
console.log('Клик правой кнопкой на mailto:', email);

// Проверяем, нет ли русских букв в адресе электронной почты
const hasRussianLetters = /[А-Яа-яЁё]/.test(email);
console.log('Содержит русские буквы:', hasRussianLetters);

if (!hasRussianLetters) {
// Отправляем событие в Яндекс Метрику
sendMetrikaEvent(email);
}
}
}

// Навешиваем обработчик события на клики на ссылки "mailto:" правой кнопкой мыши
document.addEventListener('contextmenu', handleMailtoRightClick);
</script>

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

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

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

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

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

+7 (958) 580-59-59
НАПИСАТЬ В
НАПИСАТЬ В

Видео-уроки

Полезное

Портфолио

Другие услуги