Статистика для блоггеров

Сначала картинка. А вы так можете (не по цифрам, а по группировке данных)? Более подробные картинки будут ниже.
blogstats1.png
Я не знаю, есть ли нормальные средства статистики для блоггеров. Наверное, для простых случаев — есть. В ЖЖ можно поставить один из множества ЖЖ-счетчиков (уж не знаю, хороши ли они), на standalone-блог можно поставить обычный счетчик. Но это — для простого случая.

У меня случай сложнее. Меня читают:

  • собственно blog.lexa.ru;
  • через RSS/Atom онлайн-агрегаторами
  • через RSS/Atom персональными читалками
  • трансляционный аккаунт в ЖЖ (куда тексты пушатся при публикации);
  • трансляционный аккаунт в beta.ya.ru (который сам забирает публикации из ЖЖ, так работает надежнее и быстрее)
  • анонсы публикаций размещаются на основном сайте

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

Если хочется, чтобы было хорошо, все нужно делать самому. Блин. Опять.

Как делать

Большого богатства вариантов не наблюдается. Нужно ковать свой счетчик, причем совсем примитивный, вроде Top100: в большинстве внешних трансляций Javascript зарежут, а картинки - нет.

Очевидно, что в каждую публикацию нужно засунуть <img src...>. Естественно, в URL картинки разумно засунуть и ID публикации, чтобы отличить две наших записи в чужой френдленте. Естественно, в разные типы трансляций полезно запихать разные URL. Кроме этого, в той части публикации, которая идет "под кат" на трансляционных аккаунтах, нужно вставить еще одну картинку.

Где и что правим

  1. Сервер картинок: nginx, отдельный виртуальный сервер, location / { empty_gif;} и все такое. В логи пишем URL, реферер и user_id. Вместо nginx можно что угодно еще, но в сервере Сысоева все уже есть готовое, только включай и работай.
  2. У меня MovableType, поэтому садимся и правим все шаблоны, про которые вспомним:
    • Entry Detail (показ отдельной публикации)
    • Entry Metadata (показ публикации в списках)
    • Atom export
    • RSS export
    Малой кровью не получится поправить RSS-экспорт результатов поиска (это не темплейт). Всюду вставляем
  3. Экспорт в ЖЖ делается плагином MTLJPost, его придется в очередной раз похачить, вставив img src в то место, которое делает lj-cut.
В результате мы загадили всю округу (включая и чужие френдленты) своими прозрачными пикселями 1x1. Все показы этих пикселей пишутся нам в лог.

Берем этот лог, обрабатываем...

пишем, понятное дело, скрипт, тратим на него полдня. Получаем раскладку, где и как читают:
blogstat2.png
Результат довольно забавный: видимость в трансляционных аккаунтах большая, но там и конкуренция большая, шансов что вам нажмут "читать дальше" не очень много (эксперимент не очень чистый, длинных текстов последнюю неделю у меня было мало).

Вообще, можно ведь и посмотреть, где наши анонсы видят с точностью до френдленты:

blogstat3.png

Мда, опасное средство, вполне можно ведь понять с какой частотой эта френдлента читается...

То же самое можно сделать и для перехода непосредственно на полную запись, сопоставить куки, посчитать конверсию.

И, естественно, это же можно сделать не для блога целиком, а для каждой публикации отдельно. Но об этом - в следующих сериях.

Comments

Хы, ошибочка однако. Из-за структуры шаблонов.
Получается, что на главной странице, в категориях, архивах по датам, и т.п. таких картинок несколько. Если на главной странице блога 10 постов, то и 10 картинок будет. Соответственно, за одну загрузку получаем 10 просмотров в статистике.

Но вообще, очень интересный метод. Можно ведь картинку размещать в каждом шаблоне свою, в том числе и по различным условиям. Например, если Main Index, то main_index.gif, если категория, то category_name.gif, если архив по датам, то 2007_07.gif, и т.д.

Это не ошибка, это особенность.

Единица информации - "пост", а не "HTML-страница".

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

Я не знаю, как точно обрабатывалась статистика в пункте Списки статей и френдленты . Что отражает цифра 7361? Получается, это количество просмотров постов на главной странице. Если взять число из статистики посещений этой страницы (243), то, разделив 7361 на 10, получим приблизительно реальное количество просмотров главной страницы.

P.S. Это просто мысли по усовершенствованию механизма.

Э, у меня нет цели заменить стандартный счетчик (который на сайте стоит), который в терминах страниц работает. Но только в пределах одного сайта.

Задача - именно в терминах постов. Видели заголовок-первый абзац/пошли (или не пошли) читать весь текст. В терминах "страниц" это бессмысленно считать.

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

Столь же естественно, я никогда не знаю, досмотрели ли /index.html глазами до конца (независимо от того, был в подвале баннер или нет).

OFF: Алексей, не знам по какой причине, но Яндекс.Ленты бьют твою кодировку, оставляя вместо буков вопросы.

Это они испортились буквально за ночь. Я вчера туда смотрел на предмет скорости всасывания после пинга (всасывает за 7 минут) - было нормально.

Ну значит починят.

И ведь починили

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

Ну буду я раздавать счетчики с того же хоста, с которого и остальные картинки.
Мне несложно, это же мой счетчик, а не внешний.

я ленивый хосты править, поэтому тупо адблокаю :)

А что, у моих пикселей видно что блокать ?

по сорцу-то? ага :)

Сорей мы починим, это не проблема.

Вопрос был про другое - флажок "Adblock" у них разве есть ?

Вроде нет.

под затёртыми ljшниками узнаю bacek, arkanoid и dil :-)

Мимо все три раза.

Подозреваю себя в первом затертом :-)

Шаман!

Но ты сам назвался.

В жуже явно угадываются Чак и дма, да? :)

Мне надоела эта угадайка. Два раза мимо.

"Мда, опасное средство, вполне можно ведь понять с какой частотой эта френдлента читается... "

скорее нет, чем да.
запросы к твоим анонсам, конечно, прямо пропорционально рефрешам френдленты, но обратно пропорциональны количеству айтемов во френдленте.

Ну так, для начала, у меня просто есть время.

понял твою мысль
ну, да

Реререр в логи
Можно расширить лог, записывая в него запрос, по которому пришли на сайт. Есть для этого специальный сервис, <a href="http://referer.mixed.ru">декодирующий запрос из реферера</a>.