2010-02-05 3 views
2

Что будет лучшим способом получить информацию о реферере, например, сказать google 20%, msn 10%, внутренние 70%. Его для выяснения того, как каждая статья, размещенная на сайте, просматривалась или обращалась к ней. Не в Google Analytics. Но его для блоггеров, чтобы проверить после того, как они опубликовали техническую статью. Приложение находится в php, а также использует фреймворк Zen.Получить процент реферера

ответ

1

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

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

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

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

0

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

+0

Эта информация должна отображаться для них на самом сайте , – zapping

2

сделать таблицу со ссылками:

ID | референт | article_id | счет

и:

ID | article_id | total_count

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

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

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

+0

Есть ли способ справиться с обновлением или отправить назад? Как, например, опубликовать комментарий к статье на странице. – zapping

+0

hmm ... if (referrer == this_site) обновленный! – radex

+0

Может быть, что-то с началом сеанса может это сделать? Есть ли способ узнать? Как и в asp.net, у вас есть событие запуска сеанса в файле global.ascx. – zapping

1

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

  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