Это называется Exit Intent Technology — технология отслеживания намерения уйти со страницы. На самом деле — простой JavaScript, который следит за движением мышки на странице и реагирует на определенный жест — показывает сообщение или баннер.

Есть платные сервисы, которые позволяют реализовать такое.  Некоторые стоят тысячи долларов в месяц. Некоторые от 20$. Мы используем Optimonk. Вот пост об этом сервисе в моем блоге на английском.

Там же сказано, что существует open souce библиотека ouibounce, на которой можно построить своё решение.

Главное отличие платных сервисов от простого скрипта в том, что они показывают статистику эффективности каждого баннера и позволяют, как Оптимонк, делать А/Б тест предложений пользователям. Писать собственное решение под эту задачу слишком дорого.

А тем, кто фукает «это некрасиво, это неправильно — показывать баннер пользователю, который хочет уйти», скажу, что это нормальная практика, если правильно настроить и показывать то, что реально может быть интересно.