zaartix
Новичок
еще по таргетингу
В общем задачка - для контекстной рекламы (типа бегуна) реализовать таргетинг.
Возможные варианты: география, дни недели, часы.
Как бы это все поэффективнее реализовать? Чтоб поменьше запросов к бд было.
Очень хочется обойтись стандартными средствами, т.е. пхп и мыскль, но возможно и демона написать, если есть смысл.
Сейчас перед выводом объявления у меня идет единственный запрос к бд - забираются данные объявления по primary key, данные таргетинга в результате есть, в виде сериализованного массива. id сайта, далее его таргетинг: по часам - часы, по дням - дни, по географии - id регионов.
В случае если есть геотаргетинг - идет один дополнительный запрос к бд для определения id региона текущего айпи.
Как Вам такая схема? Можно-ли как-то еще оптимизировать.
Сейчас у меня схема примерно такая:
Раз в час формируется таблица (truncate->drop index->insert->create index):
В общем очень хочется, чтобы подсказали или поделились опытом
В общем задачка - для контекстной рекламы (типа бегуна) реализовать таргетинг.
Возможные варианты: география, дни недели, часы.
Как бы это все поэффективнее реализовать? Чтоб поменьше запросов к бд было.
Очень хочется обойтись стандартными средствами, т.е. пхп и мыскль, но возможно и демона написать, если есть смысл.
Сейчас перед выводом объявления у меня идет единственный запрос к бд - забираются данные объявления по primary key, данные таргетинга в результате есть, в виде сериализованного массива. id сайта, далее его таргетинг: по часам - часы, по дням - дни, по географии - id регионов.
В случае если есть геотаргетинг - идет один дополнительный запрос к бд для определения id региона текущего айпи.
Как Вам такая схема? Можно-ли как-то еще оптимизировать.
Сейчас у меня схема примерно такая:
Раз в час формируется таблица (truncate->drop index->insert->create index):
p.s. Как вариант (гораздо более увеличивающий нагрузку на кроновскую задачу) - это формировать эту таблицу уже с учетом таргетинга. Т.е. если сейчас понедельник, то в таблице не будет объявлений, где эти дни запрещены. Правда - геотаргетинг при таких раскладах пока не знаю как реализовать.CREATE TABLE `cron_adv` (
`key_id` int(11) NOT NULL default '0', // id ключевого слова (фразы)
`adv` text, // сериализованный массив самого рекламного блока (ну сам текст объявлений + некоторые нужные данные)
`targ` tinyint(1) NOT NULL default '0', // таргетинг (нехочу пока делать ему enum)
`targeting` varchar(128) default NULL, // сериализованный массив таргетинга (id сайта, таргетинг по времени суток, дням недели, массив id регионов)
PRIMARY KEY (`key_id`),
KEY `i6` (`targ`)
) ENGINE=MyISAM
В общем очень хочется, чтобы подсказали или поделились опытом
