Входные данные для построения цепочки правил - сценария
Идентификаторы клиента в YovoAds (user && password)
Идентификаторы приложения (bundle)
Идентификаторы устройства (did, gaid)
Дополнительный параметр (страна из которой пришел запрос на рекламу (определяется по ip) country)
Алгоритм построения сценария
Для каждого типа рекламы (adtype=banner, interstitial, rewarded) строим свою цепочку.
1. Построение цепочки правил
Из db выбирается сценарий с таким bundle и такой country (или db.country='ALL'). Если сценарий найден и у него параметр cycle=1 переходим к пункту 2
Из db выбирается сценарий с такой country и db.bundle='ALL'. Добавляем этот сценарий к предыдущему. Если сценарий найден и у него параметр cycle=1 переходим к пункту 2
Из db выбирается сценарий с db.country='ALL' и db.bundle='ALL'. Добавляем этот сценарий к предыдущему. Если сценарий найден и у него параметр cycle=1 переходим к пункту 2
Из db выбирается дефолтный сценарий для данного вида рекламы (yovoads.queue isdefault=1). Он всегда есть, он один и он зациклен. Добавляем этот сценарий к предыдущему и переходим к пункту 2
Получаем массив [rules{ruleid, adnetwork, c, v=c }]
* - Примечание: для adnetwork=0 (crosspromo) при типе crosspromo='once' при отсутствии показов рекламы за последние 24 часа параметр 'с'= max(adblock.count)
поскольку при типе crosspromo='once' на этапе построения цепочки правил неизвестно какой рекламный блок для показа будет случайно выбран
2. Прохождение по цепочке и определение параметра V каждого правила