Как отследить первый заход на сайт?
Так а может просто сессионные куки? Или я чего-то не понимаю?
Даже Яндекс метрика считает уход с сайта - 30 минут бездействия. Так что самый надежный способ это сессии.
Можно сделать SPA сайт и держать сессию по WebSocket. Хотя тогда по факту F5 будет новым заходом и можно повесить модалку на onload.
Псевдо SPA можно сделать через PJAX. Но мой вам совет - не занимайтесь порно ...