На самом деле при должном процессе разработки наличие у вас одной таблицы для всех кампаний или нескольких не должно вызывать головную боль, т.к. по хорошему все изменения в таблицах (их структура) при релизе должны происходить с помощью миграций, т.о. ничего не должно помешать вам запустить все миграции для каждой из кампаний чтобы актуализировать структуру всех таблиц.
Если вы делаете "глобальный" продукт, я бы на вашем месте выбрал бы вариант: много таблиц с множеством кампаний, когда в каждой таблице может хранится набор данных для нескольких кампаний, но таких таблиц может быть много. Это даст распределение нагрузки (разные таблицы могут хранится, обрабатываться на разных серверах), т.о. вы всегда сможете легко выделить новые ресурсы для новой кампании.
С другой стороны, вы можете хранить все данные в одной БД (одной таблице). На начальном этапе для вас это будет проще, но чем дольше вы будете разрабатывать продукт, тем сложнее будет переход на другую архитектуру. Поэтому лучше подумать обо всем заранее. По крайней мере увидеть подводные камни, и приготовится решать их в будущем.