Получите процент реферера - PullRequest
2 голосов
/ 05 февраля 2010

Каким будет лучший способ получения информации о реферере, например, скажем, Google 20%, MSN 10%, внутренний 70% Это для того, чтобы узнать, как каждая статья, размещенная на сайте, была просмотрена, доступна или передана. Не в Google Analytics. Но это для блоггеров, чтобы проверить после того, как они отправили техническую статью. Приложение на PHP, а также использует Zen Framework.

Ответы [ 4 ]

2 голосов
/ 05 февраля 2010

составляют таблицу с реферерами:

id | реферер | article_id | подсчитывать

и

id | article_id | TOTAL_COUNT

и каждый раз, когда кто-то получает доступ к вашей статье, вычитает total_count для статьи и правильный счет.

И когда вы показываете это, просто разделите эти два счетчика.

извините за мой английский;)

1 голос
/ 05 февраля 2010

Я не уверен, как настроено ваше приложение, но давайте предположим, что каждое сообщение хранится в базе данных с уникальным идентификатором. Ваш скрипт будет выглядеть примерно так:

  1. Получите реферера, используя $_SERVER['HTTP_REFERER]
  2. Сохраните это в базе данных, используя исходный идентификатор записи в качестве внешнего ключа и нормализованную версию домена

Затем, когда вы хотите показать статистику, запустите запрос, подобный этому:

SELECT `domain`, COUNT(*) as `total` FROM post_referrers WHERE `post_id` = 5 GROUP BY `domain`

Затем можно рассчитать проценты по отношению к общему количеству, которое было возвращено.

Таблица post_referrers будет выглядеть так:

id, domain, post_id, full_url

А если ссылающийся URL-адрес http://google.com/?q=whatever, вы хотели бы сохранить:

domain: google.com
post_id: 5
full_url: http://google.com/?q=whatever
1 голос
/ 05 февраля 2010

Насколько в реальном времени должны быть результаты?

Подход 1 - измените ваше приложение так, чтобы, когда оно обслуживает сообщение, оно сохраняло информацию о реферере. (Доступно для вашего приложения PHP, проверьте библиотеку cgi). Преимущество: может показывать статистику в реальном времени, но замедляет ваше приложение и добавляет дополнительную сложность.

Подход 2 - сохранить файлы журнала и проанализировать их в автономном режиме. Наверное, лучше все вокруг. Обратите внимание, что Apache может хранить свои журналы непосредственно в базе данных (а не в файлах журналов). Это упростит запрос и анализ отчетов для ваших авторов.

Добавлено - еще одно преимущество хранения информации журнала в базе данных (на лету или в пакетном режиме) заключается в том, что «один отчет ведет к другому» - сегодня авторы хотят знать информацию о реферере. Завтра им понадобятся кросс-таблицы по типу браузера и стране.

0 голосов
/ 05 февраля 2010

Почему вы не хотите использовать Google Analytics ?

...