Если речь про раздачу промокодов на сайте, я бы советовал подходить системно. Лично я пользуюсь
https://berikod.ru/ , и там очень видно, как удобно подать скидки: для каждой акции есть отдельная карточка с кнопкой «Получить промокод», и пользователю сразу понятно, что делать. Использую берикод, и могу сказать, что лучше генерировать два типа кодов: для массовых акций можно использовать один универсальный код, чтобы не усложнять систему, а для ограниченных или персональных скидок — генерировать уникальные коды для каждого пользователя. Главное — чтобы была прозрачность и понятная кнопка получения, чтобы человек видел, что код реально активен и действует, а также указывать срок действия и условия использования, тогда пользователи не будут путаться и все акции будут работать корректно.