Количество совпадений полей таргетинга не влияет на выбор объявления.
Если 4 баннера в зоне в конечном итоге получают таргетинг как «истинный» (т. Е. Все критерии таргетинга выполнены), то все они рассматриваются для доставки.
После этого, если все 4 являются остаточными баннерами из разных кампаний, единственное, что регулирует выбор объявлений, - это вес кампании. Если все они имеют одинаковый вес, они имеют равные шансы на выбор. Если кампания 1 удваивает вес кампаний 2,3 и 4, то вероятность того, что другие кампании будут выбраны, удваивается.
Чтобы сделать именно то, что вы хотите, потребуется плагин, который изменяет процесс выбора рекламы.
1) Установите вес всех кампаний равным (скажем, вес = 10), и все кампании как остатки
2) После того, как все баннеры с таргетингом = false выброшены, проанализируйте оставшиеся баннеры и придайте больший вес баннерам с более широкими критериями таргетинга.
3) Во время почасового обслуживания анализируйте статистику и дайте больший вес тем, кто отстает. Вы не хотите делать это во время доставки, потому что запрос статистики во время доставки приведет к большим накладным расходам в процессе доставки, который должен быть максимально быстрым без вызовов БД
Использование весов не гарантирует равных показов - если у них есть вероятность доставки 50/50, есть вероятность, что bannerA будет доставлять 1005, а bannerB будет доставлять 995 и т. Д. Как правило, это работает хорошо, но так как вы изменяете веса в зависимости от при таргетинге вы идете против идеи «равномерно показывать» и, возможно, лучше приостановить показ рекламы, превышающей 10х, а затем повторно активировать ее, когда она окажется в пределах 5х (или около того)
Примечание. К сожалению, создание плагинов для OpenX не очень легко, если у вас нет человека, который уже знает, как это сделать. Дело не в знании PHP, а в знании архитектуры плагина OpenX.