Готова реализация для The Trade Desk (TDD) — как и обещал. Актуальная версия.
Пока это «классическая» реализация (с новым подходом что‑то у TTD не задалось). Когда и если они сделают рабочим новый подход (задание локации и времени в парах через BidLists) я обновлю код.
Теперь библиотека умеет вычитывать, устанавливать, очищать и валидировать таргетинг для трех платформ (DV360, Meta, TTD) с единым интерфейсом. При установке опций будут создаваться дубликаты в системах DV360 и Meta — это необходимо когда вы задаете много географических точек (лимиты платформ на объем информации). Внутри методов реализовано кэширование для операций чтения (get_...) и установка блокировок для операций изменения (set_..., clear_... и т. д.). Кэширование актуально для Meta — чтобы не словить Rate Limit на частых операциях получение информации. Блокировки более актуальны для DV360 и TTD — там операции по созданию дубликатов и установке таргетинг опций относительно длительные (но блокировка только внутри библиотеки работает — внешние системы все еще могут изменить тот же элемент системы — для этого у вас есть интерфейс валидации, который поможет проверить что в системе сохранено то, что вы хотели установить).
Базовый набор операций — как вызывать и что возвращает можно посмотреть в интегрейшен тестах — ссылка.
Пользуйтесь, задавайте вопросы.