Ответ на на этот вопрос упоминает альтернативу GAnalytics с открытым исходным кодом Piwik - это не C #, но вы можете получить некоторые идеи, глядя на реализацию.
Для решения .NET я бы порекомендовал прочитать блог-пост Мэтта Берсета *1007* Visit / PageView Analysis Services (и ранее и пример и еще один пример , так как их нелегко найти на его сайте).
Я не уверен, разместил ли он когда-либо код на стороне сервера (хотя вы найдете его openurchin.js
в его HTML-файле), но вы найдете большинство объясненных концепций. Вы могли бы, вероятно, заставить что-то работать довольно быстро, следуя его инструкциям.
Не думаю, что вы захотите писать в текстовый файл - могут возникнуть проблемы с блокировкой; Я бы пошел на вставки в таблицу базы данных. Если таблица становится слишком большой, вы всегда можете периодически «свернуть» результаты и очистить старые записи.
Что касается URL-адреса REFERER, вы определенно можете получить эту информацию из заголовков HTTP (при условии, что она была отправлена клиентом и не удалена прокси-серверами или строгими настройками AV / W).
Кстати, имейте в виду, что Google Analytics вносит большой вклад в статистику - он геокодирует IP-адреса для отображения результатов по местоположению (страна / город), а также по владельцу ISP / IP. Их javascript обеспечивает обнаружение Flash и сегментирует User-Agent на полезные «категории браузера», а также определяет другие пользовательские настройки, такие как операционная система и разрешение экрана. Это некоторая нетривиальная кодировка, которую вам придется делать, если вы хотите достичь того же уровня отчетности - не говоря уже о данных и расчетах для получения информации о странице входа и выхода, повторных посещениях, уникальных посетителях, повторных посетителях, времени, потраченном на сайт и т. д.
Существует Google Analytics API , который вы также можете попробовать.