Пишем статистику для сателлитов

Понедельник, октября 13, 2008 от seoplayer

Предисловие

Сегодня я задумался над мыслью, как же поживают мои китайские сайты. Да, было время, когда важно было наклепать большое количество  сателлитов. Благо это дело окупалось за 2 месяца. Но что же делать с сайтами, которые разрабатываются сегодня? Меня, как разработчика “по специальности” не устраивает вариант использования ресурсов, которые не устраивают мои необходимости. Liveinternet, inetlog и другие стоят в сторонке, т.к. я ленивый и не собираюсь на каждый сайт делать свой счетчик. Основные требования ясны – один код на все сайты и где можно посмотреть общую статистику.

Начнем

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

  1. host – сайт, на который зашёл посетитель.
  2. page – страница на сайте, куда зашёл посетитель.
  3. ip – IP адрес посетителя.
  4. UA – user-agent посетителя.
  5. counter – считать ли пользователя за уникального.
  6. date – ежу понятно.
  7. hms – hour, minute, second.
  8. refsearch – с какой ПС пришли.
  9. refpage – с какой страницы пришли на сайт(ы).

Начнём разбор полётов. Хост и страница разделены для будущего разделения статистики по хостам. в будущем будет удобно сортировать. ip и ua понятны. Кстати говоря, если в user-agent содержится Rambler, google, yandex и какие вам ещё нужны – значит это бот. логично. Далее мы разделяем День и Время, когда пришёл пользователь. Опять же для удобства сортировки и сборка статистики по часам, дням, месяцам, годам.
Если установлена HTTP_REFERER, то смотрим не с ПС ли посетитель, если да – пишем с какого ПС и конечно же запоминаем страницу.
Знаете в чём ещё минус счётчиков статистики? Они ставят js код. Мне принципиально не хочется палить адрес СВОЕГО сервера статистики, поэтому вызов скрипта статистики будет через include функцию php. Благо с 4.3.0 include позволяет подключить удалённые файлы.
Далее Вам остается лишь передавать необходимые параметры через GET при подключении файла. Да, include получается довольно внушительного размера. Избежать этого можно ооочень просто. Вот тут уже важно понять, чего Вы хотите. Скорости или качества работы статистики.
Я _пока_ за скорость. Посмотрим как сервер отреагирует на активность сайтов и сателлитов. Итак, 2 варианта. Мы можем вызывать непосредственно через include, либо складывать логи в какой-то свой файл и затем по крону пробегать по всем сайтам и парсить все файлы. Дело за Вами :). В 2кб кода у меня вместился сбор статистики с сайтов.
Следующий этап – административная панель. Честно говоря, тут ещё больше встает вопрос вкусов. Что хотите, то и выдерайте из базы. Я же укажу на подводные камни.
Первый камень – это учет количества посетителей и количество показов – разделять их можно по количеству IP за день на хосте, НО что если человек переподключился и зашел с другим IP? Именно для этого существует поле counter. Предлагаю делать её бинарной. При Загрузке страницы ставим cookie на стороне клиента ровно на сутки. Именно по этим кукисам мы будем определять уникальность пользователя.
Второй камень – Что делать, если сервер недоступен? Проверять доступность сервера с помощью сокетов, допустим. Если недоступен, то складывать логи в файлы. Это уж если хотите вести полнейший учет пользователей. Мне достаточно смотреть на динамику посещаемости по дням :).
Третий камень – да, нужен php на сервере. Где его теперь нету…Вряд ли это будет критичный момент. Но если нету, то лучше обратиться к популярным сервисам статистики.
Как можно развить статистику и что добавить? Вот тут советую прежде всего добавить ключевые слова, по которым к Вам пришли, во-вторых прикрутить график изменения посещаемости, в-третьих можно было бы сделать долевую статистику по посещамости с ПС, закладок, других сайтов по дням(довольно хороший параметр для тру сеошников :-D), ну и последнее – чтоб Ваша база не распухала, советую складировать старые логи в файлы. Ах да, прикрутите отсылку email с ежедневными отчетами – вообще шиколадно будет :).
Почему мы не рассматриваем вариант установки графического счетчика? Да потому что будете палить своё сервер статистики, ну и, соответственно можно будет раскрыть всю Ваше сетку. Что с этим делать уже не мой вопрос.
Ну и самое интересное, как защититься от ботов(не ПС, а автоматов)? Советую сделать проверку по исполнению document.write – далеко не все боты умеют его выполнять.

Эпилог

Для кого эта статья, если тут одна голая теория? Да всё просто. На самом деле для меня. :-D Шучу. Я через это прошёл года два назад. Это скорее порядок мыслей, который должен быть в голове начинающих разработчиков web сервисов. Также это мануал для одногруппников, который надеюсь толкнуть на паре :-D (По-04 превед!) . Ведь в этом симестре им сдавать интернет технологии, а в следующием – ДИПЛОМ!
Все Ваши действия должны быть алгоритмизированы. Не бойтесь вернутся к началу. Допустим, пока я писал статью понял, что не учёл 1 поле, которое учёл, пока писал статью. В общем подписывайтесь на этот блог и будут у Вас виллы на море ;).
PS Разработкадля некоммерческих целей. Для полноценного сервиса необходимо пересмотреть все корни проекта.
PPS есть вопросы(преимущественно по теме)? Будешь молчать дальше, никто тебе не поможет. Пиши в комментах, отвечу.

Метки:, ,


Предисловие Сегодня я задумался над мыслью, как же поживают мои китайские сайты. Да, было время, когда важно было наклепать большое количество  сателлитов. Благо это дело окупалось за 2 месяца. Но что же делать с сайтами, которые разрабатываются сегодня? Меня, как разработчика "по специальности" не устраивает вариант использования ресурсов, которые не устраивают ...

Yandex vs Google

Пятница, сентября 26, 2008 от seoplayer

Yandex vs google

Мы его теряем…

Долгое время не обновлял блог. Занимаюсь региональными и заказными проектами. Создание и продвижение в массы. :) Это относительно новая сфера для меня и, должен сказать, довольно муторная.

Метки:,


Мы его теряем... - Долгое время не обновлял блог. Занимаюсь региональными и заказными проектами. Создание и продвижение в массы. :) Это относительно новая сфера для меня и, должен сказать, довольно муторная.

David Blane & WebMoney

Среда, августа 13, 2008 от seoplayer

David Blane: Вот, вот, это он…Эй, парень, я, David Blane, покажу тебе магию в интернет! Интернет магию!
webmoney: Ты тот самый уличный маг? Может лучше заведешь себе кошелек?
David Blane: Какой кошелек?
webmoney: Эй мужик, мужик, где мои кошельки? Блейн, верни все мои кошельки!
David Blane: А зачем тебе твои кошельки?
webmoney: Ну чтобы деньги зарабатывать…переводить знакомым, оплачивать порно там..
David Blane: Какие деньги?
webmoney: Вротмненоги! Верни электронные деньги, Дэвид Блейн!  Ё маё, ты че творишь?!
David Blane: НУ ладно ладно, я верну тебе кошельки..
yandex: ненененене! не возвращай, я буду господствовать! Я захвачу деньги всех вебмастеров!
David Blane: Слушай, Yandex, а у тебя откуда деньги?
yandex: ну там директ, продажа позиций в серпе…
David Blane: в гугле что ли?
yandex: Ё маё!! Верни мою поисковую систему, Дэвид Блейн!!!
google: Ыыыы!
Грузия: Мы подаем в Гаагский суд на Россию!

Метки:, ,


David Blane: Вот, вот, это он...Эй, парень, я, David Blane, покажу тебе магию в интернет! Интернет магию! webmoney: Ты тот самый уличный маг? Может лучше заведешь себе кошелек? David Blane: Какой кошелек? webmoney: Эй мужик, мужик, где мои кошельки? Блейн, верни все мои кошельки! David Blane: А зачем тебе твои кошельки? webmoney: Ну чтобы деньги ...