Количество просмотров страниц или Google Analytics? - PullRequest
3 голосов
/ 28 февраля 2012

Я занимаюсь разработкой веб-сайта, чувствительного к посещениям страниц.Например, в нем есть разделы, которые будут показывать пользователям, какие части веб-сайта (какие элементы) были посещены чаще всего.Для реализации этой функции мне на ум приходят две стратегии:

  1. Создать счетчик посещений, отсортировать страницы по количеству посещений и выбрать самые высокие.
  2. Создать GoogleУчетная запись Google Analytics и ее информация.

Если была выбрана первая стратегия, мне понадобился бы очень быстрый и точный счетчик посещений с возможностью распознавать уникальные IP-адреса (или пользователей).Я считаю, что использование MySQL не будет хорошим выбором, так как много посещений страницы означает много блокировок БД и проблем с производительностью.Я думаю, что класс быстрой регистрации был бы хорошим.

Второй вариант кажется очень интересным, когда появляются все проблемы первого, но я не знаю, есть ли способ (например, API) дляGoogle Analytics, чтобы я мог получить доступ к информации, которую я хочу.И если есть, достаточно ли это быстро?

Какой подход (или даже альтернативный подход) вы предлагаете мне выбрать?Какой из них быстрее?Производительность - мой главный приоритет.Спасибо.

ОБНОВЛЕНИЕ : Спасибо.Интересно увидеть разные ответы.Эти ответы напомнили мне важный фактор.Мой веб-сайт обновляет «наиболее посещаемые» элементы каждые 8 ​​минут, поэтому мне не нужны данные в режиме реального времени, но мне нужно, чтобы они были точными и точными каждые 8 ​​минут или около того.Я имел в виду следующее:

  1. Записывать каждое посещение страницы в простой текстовый файл журнала
  2. Отправлять пользователю файлы cookie для отдельных уникальных пользователей
  3. Every8 минут, загрузите файл журнала, соберите информацию и обновите таблицы MySQL.

Тем не менее, я бы не хотел изобретать велосипед.Если сторонняя служба может удовлетворить мои требования, я буду рада ее использовать.

Ответы [ 3 ]

0 голосов
/ 28 февраля 2012

Полагаю, вам не нужны данные в реальном времени.В таком случае я бы, вероятно, просто прочитал данные из файлов журнала веб-сервера.

Ваш веб-сервер может различать IP-адреса.Нет полностью надежного способа отличить пользователей.Я живу в университетском городе;половина студентов общежития имеют одинаковый IP-адрес университета.Я думаю, что Google Analytics использует куки для идентификации пользователей, но общие компьютеры делают это менее чем на 100% надежным.(Но это, возможно, не имеет большого значения.)

«Посещенные больше всего» также немного размыты.Самый простой выход - считать каждое посещение определенной страницы посещением.Но «визит» в 300 миллисекунд имеет сомнительную ценность.(Вероятно, они поняли, что щелкнули не по той ссылке и нажали кнопку «назад» перед отображением страницы.)

Если нет требований, о которых я не знаю, я бы, вероятно, начал с использования awk для извлечения метки времени., IP-адрес и имя страницы в файл CSV, затем загрузите файл CSV в базу данных.

0 голосов
/ 28 февраля 2012

Учитывая, что вы планируете использовать данные о посещениях страницы, чтобы определить, какие данные будут отображаться на вашем сайте, я бы предложил самостоятельно регистрировать данные о посещениях страницы. Вы не хотите полагаться на какую-либо стороннюю службу, которую вам придется опросить, чтобы создать свою страницу. Это особенно верно, если вы загружаете эти данные в режиме реального времени, так как вам придется опрашивать эту службу для каждого входящего запроса на ваш сайт.

Я бы хотел сохранить данные самостоятельно в базе данных. Если вы действительно обеспокоены производительностью вставок, то вы можете исследовать перехват запросов (я не уверен, как вы поступите с этим в PHP, но я предполагаю, что это возможно.), А затем передать данные запроса в отдельный поток для хранения информации о запросе. Имея отдельный поток, обрабатывающий запись в журнал, вы не прервете свой ответ конечному пользователю.

Кроме того, учитывая, что вы планируете использовать собранные данные, чтобы «... показать пользователям, какие части веб-сайта (какие элементы) были посещены чаще всего», вам нужно будет подумать о доступе к этим данным, чтобы создать ваша динамическая страница. Может быть, было бы хорошо сохранить сводный подсчет для каждого ресурса. Например, вместо 30000 строк, показывающих, что index.php был запрошен, возможно, одна строка, показывающая index.php, была запрошена 30000 раз. Это, безусловно, будет быстрее ссылаться, чем выполнять запросы к тому, что может стать довольно большой таблицей.

0 голосов
/ 28 февраля 2012

У Google Analytics есть задержка, и она отбирает некоторые данные, возвращенные API, так что все вышло.

Вы можете попробовать API от Clicky .Помните, что:

Количество бесплатных аккаунтов ограничено последними 30 днями истории и 100 результатами на запрос.

Существует множество примеров счетчиков посещений, но, похоже, вы не нашли тот, который отвечал вашим потребностям.

...