Вы сами собственно ответили на все вопросы :)
1. Внешняя статистика. Например яндекс.метрика. Есть API
api.yandex.ru/metrika из которого можно легко все получить.
Плюс решения - никакой дополнительной нагрузки
Минус решения - чтобы считать статистику мобильного приложения придется хорошо извратиться
2. Собственная статистика - ajax запросы как вы написали, только я не стал бы использовать memory таблицу, а прикрутил бы redis, он во первых быстрее, а во вторых не надо нагружать основной sql сервер.
Плюс решения - можно мониторить что угодно
Минус решения - лишняя нагрузка на бекенд. Не знаю количества ваших просмотров, но потенциально может быть весьма немаленькой.
Еще один минус - без дополнительной логики на сервере - легко накрутить счетчики.
3. Разбор access логов - это на самом деле правильное решение. С точки зрения бизнес логики, realtime обновление счетчиков не нужно (тем более если у вас спереди кеш в статику), так что можно спокойно считать статистику в фоне, сохраняя агрегированные данные в базу раз в nn секунд.