Как стать автором
Обновить

Тестирование настройки sendBeacon для отправки данных

Время на прочтение2 мин
Количество просмотров2.1K

При использовании стандартных методов отправки данных в Google Analytics есть вероятность, что система не успеет отправить все события, если процесс был прерван перезагрузкой страницы. В начале этого года вышло несколько публикаций о том, как улучшить целостность собираемых данных в GA. Одна из них была посвящена событиям, которые отслеживают действия пользователя, ведущие к перезагрузке страниц: клики по внешним ссылкам, скачивания файлов, клики по кнопкам отправки форм, события beforeunload. Для решения проблемы автор материала, Дмитрий Осиюк, предлагает установить в коде Google Analytics поле transport со значением beacon. Это поле определяет какой из методов отправки использовать:


xhr (с помощью объекта XMLHttpRequest)
image (с помощью объекта Image)
beacon (с помощью метода navigator.sendBeacon).


sendBeacon отработает асинхронно, даже если пользователь закроет страницу или вообще покинет сайт, что должно позволить собирать данные более точно.


Сейчас analytics.js сам выбирает оптимальный метод отправки. В ход идет navigator.sendBeacon только если в качестве механизма передачи (поле transport) выбран beacon. По данным Google, в будущем вариант beacon, вероятно, будет использоваться в поддерживающих его браузерах по умолчанию. Решил проверить на практике, какой эффект дает использование настройки sendBeacon.


Что было сделано:


Выбрал событие для теста: клик по ссылке в меню. По клику загружается другая страница.
Создал два тега в Google Tag Manager, срабатывающие по одинаковым триггерам. Один использовал стандартный метод отправки, второй — sendBeacon.


Дополнительно решил протестировать применение разных приоритетов тегов в GTM, чтобы понять влияние настройки во всех вариантах.


Иными словами — когда пользователь кликал на нужную нам ссылку, то GTM отправлял событие в GA дважды: один раз стандартным методом, один раз методом sendBeacon. Изменить приоритеты можно в дополнительных настройках тега в GTM, пункт — “Приоритет активации тега”. Ноль — минимальный приоритет; чем выше число, тем выше приоритет по сравнению с другими тегами. По умолчанию значение равно нулю.



Проверка работы sendBeacon


Протестировал три варианта:


  • Приоритет выше у стандартной отправки;
  • Приоритет выше у sendBeacon;
  • Одинаково высокий приоритет у обоих методов.

В случае отличающихся приоритетов, когда пользователь кликал на ссылку, GTM сначала отправлял событие с высшим приоритетом, сразу же за ним — второе. При совпадении приоритетов каждый из методов срабатывал раньше в половине случаев.


По итогам можно наблюдать две пары событий — для ПК (desktop) и мобильных устройств (tablet и mobile).


Приоритет у стандартной отправки



Приоритет у sendBeacon



Одинаковый приоритет — наибольшая выборка



Как показал тест, sendBeacon действительно отрабатывает лучше, но процент событий, которые могли не отправиться, не так высок. Разница по сравнению с обычным методом отправки ~ 0,3%. Стоит также учитывать, что sendBeacon заточен под отслеживание событий, которые ведут пользователя на новую страницу. При использовании этого метода для отслеживания всех событий на сайте, разница окажется еще менее существенной. При этом у sendBeacon есть преимущество: отправляя данные асинхронно, он не тормозит работу сайта, что встречается при использовании других методов. Скорость выгрузки и загрузки страниц не падает.


*Бонус: В ходе эксперимента дополнительно убедился, что приоритеты активации тегов в GTM отлично работают.

Теги:
Хабы:
Всего голосов 14: ↑14 и ↓0+14
Комментарии0

Публикации

Истории

Ближайшие события

27 августа – 7 октября
Премия digital-кейсов «Проксима»
МоскваОнлайн
11 сентября
Митап по BigData от Честного ЗНАКа
Санкт-ПетербургОнлайн
14 сентября
Конференция Practical ML Conf
МоскваОнлайн
19 сентября
CDI Conf 2024
Москва
24 сентября
Конференция Fin.Bot 2024
МоскваОнлайн
25 сентября
Конференция Yandex Scale 2024
МоскваОнлайн
28 – 29 сентября
Конференция E-CODE
МоскваОнлайн
28 сентября – 5 октября
О! Хакатон
Онлайн
30 сентября – 1 октября
Конференция фронтенд-разработчиков FrontendConf 2024
МоскваОнлайн