Уникальное количество просмотров
Прислано: shock
пт, 01/02/2008 - 15:50
Если эта тема уже где-то поднималась, извеняюсь - не нашел, укажите пожалуйста.
Стандартный модуль статистики может выдавать количество показов ноды, однако накручивать такой счетчик не составляет труда. Нажатие и удерживание клавиши F5 это демонстрирует.
Так вот, вопрос в следующем, можно ли сделать эту статистику более объективной, чтобы учитывался только один показ для каждого посетителя или для каждой сессии...? Хотя бы, чтоб пример с F5 не работал :)
- shock's blog
- Для комментирования войдите или зарегистрируйтесь
Оно Вам надо?
Мое личное мнение : модуль статистики нужно вырубать напрочь.
На самом деле существуют службы учета статистики, те же гугл аналитикс или лив-интернет, ну на худой конец хот-лог.
Нагружать свой сайт лишним модулем, который должен отработать для каждой страницы я бы не стал (учитывая, что есть сторонние службы, которые дают порой более точную и подробную информацию).
- Для комментирования войдите или зарегистрируйтесь
Но этот модуль нужен для вывода "самых популярных нод" и прочего такого.
- Для комментирования войдите или зарегистрируйтесь
да, и сервер он нагружает говорят
да вот популярные и непопулярные без него не увидешь...
- Для комментирования войдите или зарегистрируйтесь
Ну как же, сервисы статистики дают информацию о популярных страницах.
Единственное там не узнаешь сколько времени отработала та или иная страница.
- Для комментирования войдите или зарегистрируйтесь
Да, а блоки с ними тоже можно сделать?
- Для комментирования войдите или зарегистрируйтесь
Вот именно, мне это нужно именно для вывода самых популярных нод.
Короче говоря, с помощью Views, в блоке я вывожу несколько самых популярных рисунков из галерей. Так что статистику мне нужно считать внутренними средствами.
Может как по другому можно сделать - не знаю. Посоветуйте, пожалуйста.
- Для комментирования войдите или зарегистрируйтесь
Ну да, ну да.
В таком случае понятно.
По моему был модуль адвансед статистик (или что то типа того).
Только учтите, что производительности это не прибавит.
- Для комментирования войдите или зарегистрируйтесь
Спасибо, попробую адвансед статистик.
А вообще как-то странно, что стандартный модуль этого не позволяет. Хоть бы к сессии привязывали, что-ли...
- Для комментирования войдите или зарегистрируйтесь
Cтранно, не нешел модуля с похожим названием. Во всяком случае, на drupal.org
- Для комментирования войдите или зарегистрируйтесь
Всем спасибо!
В общем, решение нашел сам, немного подправив стандартный модуль статистики (как вынести свое решение в отдельный модуль - не знаю). При увеличении счетчика посещаемости ноды, ID этой ноды добавляется в $_SESSION. И при последующих посещениях этой ноды, проверяется наличие nid в $_SESSION.
Если кто может посоветовать, как вынести это в отдельный модуль - милости просим, жду советов.
- Для комментирования войдите или зарегистрируйтесь
да, стандартный модуль убогий... приходиться юзать google analytics... но неудобно из локалки лишний трафик и прокси авторизацию просит при заходе на локальный сайт.
- Для комментирования войдите или зарегистрируйтесь
Господа, а что мешает вам анализировать лог доступа веб-сервера?
- Для комментирования войдите или зарегистрируйтесь
Опубликуйте свое решение как "хак" или "сниппет".
- Для комментирования войдите или зарегистрируйтесь
Господа, а что мешает вам анализировать лог доступа веб-сервера?
1) В логах не всё есть, поэтому на том же Гугле Аналитиксе больше видов отчётов.
2) Текущие рейтинги тяжко строить по логам... хотя и возможно.
- Для комментирования войдите или зарегистрируйтесь
2Slavyansk.net.ru - значит опубликуем как "хак" :)
Цель хака - сделать так, чтобы стандартный модуль статистики считал просмотры ноды более объективно - за одну сессию учитывается только один просмотр.
Реализация - правим файл "modules/statistics/statistics.module", функцию statistics_exit():
Исходный код функции (жирным выделены добавленные мной строки):
function statistics_exit() {
global $user, $recent_activity;
drupal_bootstrap(DRUPAL_BOOTSTRAP_PATH);
if (variable_get('statistics_count_content_views', 0)) {
// We are counting content views.
if ((arg(0) == 'node') && is_numeric(arg(1)) && arg(2) == '') {
// A node has been viewed, so update the node's counters.
$first_time = true;
if (isset($_SESSION['nodes'])){
$nodes = explode(',',$_SESSION['nodes']);
if (!in_array(arg(1),$nodes)){
$nodes[] = arg(1);
}else{
$first_time = false;
}
}else{
$nodes = array();
}
$_SESSION['nodes'] = implode(',',$nodes);
if ($first_time){
db_query('UPDATE {node_counter} SET daycount = daycount + 1, totalcount = totalcount + 1, timestamp = %d WHERE nid = %d', time(), arg(1));
// If we affected 0 rows, this is the first time viewing the node.
if (!db_affected_rows()) {
// We must create a new row to store counters for the new node.
db_query('INSERT INTO {node_counter} (nid, daycount, totalcount, timestamp) VALUES (%d, 1, 1, %d)', arg(1), time());
}
}
}
}
if ((variable_get('statistics_enable_access_log', 0)) && (module_invoke('throttle', 'status') == 0)) {
// Log this page access.
db_query("INSERT INTO {accesslog} (title, path, url, hostname, uid, sid, timer, timestamp) values('%s', '%s', '%s', '%s', %d, '%s', %d, %d)", strip_tags(drupal_get_title()), $_GET['q'], referer_uri(), $_SERVER['REMOTE_ADDR'], $user->uid, session_id(), timer_read('page'), time());
}
}
- Для комментирования войдите или зарегистрируйтесь
Люди!
До меня только что дошло!
Даже если вы представите это решение как вариант модификации системного модуля - у вас его не примут.
Потому как это противоречит смыслу.
Мы говорим про что? Про количество просмотров данной страницы.
Ограничивать это колличество по одному пользователю или по одной сессии - это не корректно.
Количество просмотров это и есть количество просмотров и не важно одним пользователем или нет.
Может посетитель ходил, ходил по сайту, а потом решил перечитать статью, которую видел в начале и что, мы будем считать, что он ее второй раз не смотрел?
- Для комментирования войдите или зарегистрируйтесь
А почему не использовать phpTrafficA?
- Для комментирования войдите или зарегистрируйтесь
Можно и тут почитать.
http://drupal.ru/node/6278
Кстати выходит новая версия 2.0
Демо версия http://soft.zoneo.net/phpTrafficA/Demo2.0/
Подписи к картинкам по-русски, анализ путей отличный.
- Для комментирования войдите или зарегистрируйтесь
сделал хаком для statistics - само то, что-то же надо в плашках выводить - 0 комментариев, 0 просмотров и т.п. ну и чтобы так просто не накручивались
- Для комментирования войдите или зарегистрируйтесь
ну и чего, больше ничего такого нет, что может уникальный подсчет вести просмотров?
- Для комментирования войдите или зарегистрируйтесь









Комментарии