Лучшие практики: отслеживание показов баннеров

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

Вот мысли и мои текущие подходы к архитектуре впечатлений:

  • Запросы к серверу баннеров поступают через фрагмент javascript на целевом сайте.
  • Сервер имеет кешированный список баннеров для обслуживания и возвращает соответствующее изображение по мере необходимости.
  • Показы записываются в файлы журнала, аналогичные стилю журнала доступа Apache: с использованием вращающегося текстового файла с добавлением одной строки на каждый показ.
  • Файлы журнала записывают IP-адрес пользователя, URL-адрес, идентификатор баннера, время и т. д.
  • Файлы журналов ротируются ежечасно, а затем суммируются (также ежечасно) в базу данных mysql, чтобы рекламодатели могли получать (приблизительно) статистику активности в реальном времени.

Мои опасения:

  • Является ли запись в файл журнала эффективным и масштабируемым способом записи показов? Мы рассчитываем обслуживать 13-15 миллионов показов в месяц.
  • Какие-нибудь подводные камни с подходом к записи журнала?

person phirschybar    schedule 15.09.2009    source источник


Ответы (2)


Я бы предложил использовать lighttpd с mod_accesslog . lighttpd рекомендуется там, где основной целью является статическая отправка файлов.

Поскольку вы используете JavaScript на отдельных веб-сайтах, включите необходимую информацию в строку запроса, запрашивающую изображение. Кстати, это похоже на то, как Google Analytics собирает информацию.

Меняйте журнал доступа к веб-серверам и анализируйте их во время каждой смены.

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

Если вы ожидаете большое количество показов на раннем этапе и ожидаете масштабирования в какой-то момент, вы можете рассмотреть возможность использования CDN.

person racerror    schedule 15.09.2009
comment
Я знаю, что это довольно старый ответ, но он все еще выглядит лучшим. Что вы думаете о создании сервиса отслеживания баннеров на основе NodeJS? Это масштабируемо? - person MaRmAR; 19.07.2013

не забудьте также записать пользовательский агент.

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

person dusoft    schedule 15.09.2009