Найти в Дзене

Яндекс.Метрика и отказы на Safari: проблемы сайтов на SPA/React/Vue.

Обратились ко мне с интересным запросом, у клиента по данным метрики в Safari большое количество отказов, хотя в других браузерах всё нормально. И он очень сильно топает ногами и переживает, что теряет клиентов. Сначала я было решил, что проблема в сайте с отображением или безопасностью, но быстро стало понятно, что пользователи ни при чём. Safari — один из самых "строгих" браузеров в плане приватности. Он активно ограничивает: cookies, трекинг сессий, передачу событий и тд. Из-за этого аналитика часто не видит реальные действия пользователя, даже если он читал страницу, скроллил и взаимодействовал с контентом. В итоге такие посещения в отчётах выглядят как "отказы", хотя по факту ими не являются. Достаточно было подправить настройки Метрики, и цифры стали логичными. Этот метод позволяет измерить вовлечённость пользователей, не требуя от них явных действий (кликов, отправки форм). <script> setTimeout(function() { if (typeof ym === 'function') { ym(XXXXXXX, 'reachGoal', 'time_20s'); }
Оглавление

Обратились ко мне с интересным запросом, у клиента по данным метрики в Safari большое количество отказов, хотя в других браузерах всё нормально. И он очень сильно топает ногами и переживает, что теряет клиентов.

Сначала я было решил, что проблема в сайте с отображением или безопасностью, но быстро стало понятно, что пользователи ни при чём.

Safari — один из самых "строгих" браузеров в плане приватности. Он активно ограничивает: cookies, трекинг сессий, передачу событий и тд.

Из-за этого аналитика часто не видит реальные действия пользователя, даже если он читал страницу, скроллил и взаимодействовал с контентом.

В итоге такие посещения в отчётах выглядят как "отказы", хотя по факту ими не являются.

Достаточно было подправить настройки Метрики, и цифры стали логичными. Этот метод позволяет измерить вовлечённость пользователей, не требуя от них явных действий (кликов, отправки форм).

<script>

setTimeout(function() {

if (typeof ym === 'function') {

ym(XXXXXXX, 'reachGoal', 'time_20s');

}

}, 20000);

</script>

Как настроить цель в интерфейсе:

  • Зайдите в настройки вашего счётчика в Яндекс.Метрике.
  • Перейдите в раздел Цели.
  • Нажмите Добавить цель.
  • В типе цели выберите «JavaScript-событие».
  • В поле Идентификатор цели укажите time_20s (или другое имя, которое вы использовали в скрипте).
  • Сохраните.

Второй вариант:

ym(XXXXXXX, 'hit', location.pathname);

Когда выполняется этот код, Метрика фиксирует визит на конкретной странице, даже если пользователь быстро ушёл, Safari обрывал cookies или сайт был SPA/React/Vue (страница не перезагружалась).

Как установить на VUE:

Берём стандартный код счётчика с Яндекса и вставляем его в head вашего сайта.

В SPA страница не перезагружается, поэтому Метрика по умолчанию видит только первичный визит. Чтобы учитывать все переходы:

В React: добавляем вызов ym('hit', …) каждый раз, когда меняется маршрут.

Пример для Vue (Vue Router):

router.afterEach((to, from) => {

if (typeof ym === 'function') {

ym(XXXXXXX, 'hit', to.path);

}

});

Вывод простой: высокие отказы в Safari чаще всего не из-за сайта, а из-за браузера, сравнивать Safari и Chrome напрямую неправильно. Если видите странные цифры, сначала смотрите аналитику, а не сайт.