Лучший способ отслеживать показы / клики в специальной рекламной системе? - PullRequest
0 голосов
/ 10 мая 2010

Меня попросили создать специальную систему рекламы, несмотря на то, что я предлагал альтернативы с открытым исходным кодом, такие как OpenX и DoubleClick for Publishers (бывший Менеджер объявлений Google).

У меня есть основы настройки системы, то есть загрузка объявлений, создание позиций и механизм размещения объявлений внутри позиций; однако область, в которой я застрял, - это показ и отслеживание кликов.

В настоящее время показ и клик сохраняются вместе с креативом, но это означает, что показы / клики не могут быть запрошены. Например, мы не можем найти, сколько показов было в позиции x между датой y и датой z .

Как мне хранить данные такого типа? Моя теория заключалась в том, чтобы хранить идентификатор объявления, идентификатор позиции и метку времени в таблице базы данных, но, учитывая объем трафика, который имеется на сайте, это очень быстро привело бы к созданию очень большой базы данных.

Если бы кто-нибудь мог дать мне указатель или два, это было бы здорово.

1 Ответ

1 голос
/ 10 мая 2010

Что вы подразумеваете под «очень большой базой данных очень быстро»? 4 байта каждый для двух целых без знака и одного поля отметки времени составляет 12 миллионов байтов для миллиона строк.

Если вас беспокоит количество строк в десятки или сотни миллионов, то есть несколько предложений:

  1. Не накладывайте ограничений целостности на поля идентификаторов - вместо этого обеспечьте целостность в приложении
  2. Вы можете написать хранимую процедуру для архивации (и удаления) более старых данных в архивные таблицы в вашей первичной базе данных или вторичной базе данных отчетов
  3. Никогда не запускать обновление данных в основной таблице отслеживания
  4. Если вы собираетесь архивировать (как в пункте 2), делайте это так, чтобы перемещать / удалять по одной строке за раз

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

btw - добавить поле уникального идентификатора, а также поле IP-адреса. Это займет у вас до 20 миллионов байтов на миллион строк

...