How to track which campaigns were used on leads/contacts

We want to be able to see from the lead or contact page who joined each campaign and hopefully a custom field regarding that campaign such as passed/in progress/converted.

We send multiple campaigns to each relationship every month.

Currently we are stuck as we can create opportunities for contacts(which occur after the first conversion) but cant create opportunities for leads AND its a problem because most common practive is only use an opportunity once you know they are interested. We are trying to track pre opportunity interest on multiple proposals/campaigns