Как проверить заходили ли уже с данного устройства?
cookie и это единственный вариант (можно сессии, потому что сессии это тоже куки).
cookie придуманы именно для этих целей и если пользователь их удалил, значит он не хочет чтобы вы знали, что он посещал ваш сайт. Это его право - уважайте его.
1. Куки. Вариант неплохой.  Да, их можно удалить, но этого не знает немалое число пользователей.

2. Сессии. Это почти тоже самое, что и куки. Так что не рассматриваем.

3. Ip. В современном мире это не показатель почти. Почти у каждого дома динамический ip. Мобилка постоянно меняет ip. Для прикола позаходил на 2ip в течение дня. Почти каждый раз был новый ip.

Был вариант от комментатора browser fingerprint. Не знаю как с этим обстоят дела сейчас, но я читал статейку, в которой говорилось, что некоторые браузеры начали бороться с этим в целях повышения анонимности. воть

Так что неплохим вариантом все еще остается cookie. Да их можно стереть. Все больше людей узнают о cookie как о чем-то зловещем. Как с помощью куки за ними следят мировые корпорации. 

Поэтому еще одним вариантом становится localstorage. О нем знает малое число рядовых пользователей, поэтому специально стирать их мало кто полезет.