В трекере используется двойная ТДС:
- ТДС1 - распределяет трафик пришедший с источника трафика по прелендам. Данная ТДС позволяет распределять трафик по прелендам в зависимости от условий и проводить сплит-тесты перелендов.
- ТДС2 - распределяет трафик прошедший через преленд по лендам. Данная ТДС позволяет распределять трафик по лендам (партнеркам) в зависимости от условий и проводить сплит-тесты лендов (партнерок).
Если преленды не используются, то работает только ТДС2.
Алгоритм работы ТДС
Обе ТДС устроены одинаково и работают по следующему алгоритму:
Шаг 1 - Определение параметров клика
- Для пришедшего на ТДС клика определяются все его технические параметры, а также источник и кампания.
Шаг 2 - Выбор потоков
- Выбираются все потоки для этой пары источник/кампания, настроенные пользователем в ТДС.
- Если ни один поток пользователем не создан, то:
- Для ТДС1 происходит сразу редирект на ТДС2, минуя преленды.
- Для ТДС2 пользователю показывается ошибка, т.к. редиректить его некуда.
Шаг 3 - Проверка соответствия фильтрам
- Для каждого из потоков проверяется соответствие фильтрам. Фильтры позволяют задать дополнительные ограничения для потока, для того чтобы в поток попадал только трафик, удовлетворяющий заданным в фильтрах условиям. По результату проверки соответствия фильтрам не удовлетворяющие фильтрам потоки отбрасываются.
- При этом:
- Если у потока ни одного фильтра нет - это означает, что ограничений нет, такой поток считается соответствующем всегда и на данном шаге алгоритма остается.
- Если в одном потоке задано несколько фильтров, то клик должен удовлетворять каждому из них (логическое "И").
- По результатам данного шага остаются только потоки удовлетворяющие фильтрам.
- Если по результатам данного шага ни одного потока не осталось, то:
- Для ТДС1 происходит сразу редирект на ТДС2, минуя преленды.
- Для ТДС2 пользователю показывается ошибка, т.к. редиректить его некуда.
Шаг 4 - Выбор потока для редиректа
- Из оставшихся потоков выбирается один, на который и перенаправляется трафик. Способ его выбора зависит от веса потоков и алгоритма выбора (алгоритм задается в настройках кампании). Есть три возможных алгоритма:
- Случайно - поток выбирается случайным образом, при этом вероятность выбора потока пропорциональна его весу. Если пользователь неуникальный (уже посещал хотя бы один из потоков), выбор будет происходить из тех потоков, которые он еще не посещал.
- По приоритету - выбирается поток с максимальным весом. Если существует несколько потоков с одинаковым максимальным весом, выбирается один из них случайным образом.
- Уникальные - выбирается еще непосещенный поток с максимальным весом. Если существует несколько непосещенных потоков с одинаковым максимальным весом, выбирается один из них случайным образом. То есть отличие от алгоритма "По приоритету" в том что если пользователь неуникальный, то поток выбирается из тех, которые он еще не посещал.