Кофеин — это полнофункциональная рекламная платформа с открытым исходным кодом, созданная для того, чтобы дать разработчикам, издателям и сообществам открытого ПО полный контроль над монетизацией своих проектов. Мы предлагаем прозрачную, настраиваемую и этичную альтернативу крупным рекламным сетям.
Философия Кофеина строится на четырёх фундаментальных принципах.
Прозрачность — это основа доверия. Весь исходный код платформы открыт для независимого аудита. Вы всегда будете точно знать, как работает алгоритм выбора рекламы, какие данные собираются и каким образом они обрабатываются. Никаких скрытых алгоритмов или «чёрных ящиков».
Контроль полностью в ваших руках. Вы самостоятельно управляете всеми аспектами монетизации: от дизайна и размещения рекламных блоков до тонкой настройки таргетинга и частоты показа. Платформа — это ваш инструмент, а не набор навязанных правил.
Этика лежит в основе нашего подхода к пользователю. Система спроектирована с уважением к аудитории. Вы сможете легко устанавливать строгие правила к качеству и уместности рекламы, избегать навязчивых форматов и гарантированно соблюдать регуляторные нормы, такие как GDPR.
Сообщество — это наша ключевая аудитория и цель. Кофеин специально создан для поддержки экосистемы открытого знания. Платформа идеально подходит для монетизации документации, проектов на GitHub, личных блогов и нишевых приложений, там, где крупные коммерческие сети часто оказываются неэффективными или избыточными.
Ядро системы:
- Модульная архитектура на основе плагинов: Легко расширяйте функциональность (добавляйте новые форматы, источники данных, системы аналитики) без изменения ядра.
- Сервер подбора рекламы (Ad Server): Принимает запросы от клиентов и возвращает наиболее релевантное рекламное объявление.
- Административная панель: Удобный интерфейс для управления рекламными кампаниями и креативами.
- Аналитика и отчетность на базе clickhouse и redash
- Система плагинов
- Админка для настройки рекламы
- Сервер для подбора рекламы
- Аналитика и отображение статистики
- Клиент для показа рекламы в приложениях
- Клиент для показа рекламы на сайте
- Медиация рекламы
Для разработки и тладки используется docker-compose и taskfile.
Для начала нужно установит все зависимости. Они описаны в docker-compose.yml и их можно запустить командой task docker-up
task docker-upПосле этого можно запускать необзодимые сервисы платформы.
Запуск админки
go run ./admin/cmd/admin/main.go serve -config=./admin/configs/config.yaml
Запуск рекламного сервера
go run ./server/cmd/server/main.go serve -config=./server/configs/config.yaml
Запускаем миграции для создания таблиц в базе данных
go run admin/cmd/admin/main.go -c ./admin/configs/dev.yaml m Для добавления нового пользователя в админку нужно запустить команду:
go run admin/cmd/admin/main.go uВсе начинается с Placement (размещение). На каждом размещении можно указать несколько Unit (блок рекламной сетки). Unit может быть как блоком любой сторонней сетки, так и блоком кофеина. Если нужно показывать только рекламу кофеина, то можно указать только unit кофеина.
Проверяем состояние консумеров в клике
SELECT *
FROM system.kafka_consumers
WHERE database = 'analytics'