Hey Nicole,
Great Question!
There are 2 things that you're going to want to nail down in order to get the most value out of the campaign objects (and a little bit of customization on the SFDC side):
- Make sure that Sales are using Salesforce correctly! It's impossible to stress how important this is, but Marketo and Salesforce have a lot of native functionality that relies on people using Salesforce as intended. This is particularly true of when shifting between objects. Eg. New contacts need to first look for existing leads in the database (dedupe), and CONTACT ROLES probably the most underutilized critical feature in the whole ecosystem. Using this correctly will help make sure that data is passed correctly including things like the Opportunities "Primary Source Campaign".
- Enable Campaign Influence reporting - It's a native feature in SFDC and gives credit to all campaigns that a contact who is part of an opportunity was involved in (you can also set conditions such as if responded = true, and the campaign status was last updated in the past 30 days) to focus the relevance. Note: Campaign influence doesn't "distribute attribution" it applies the total opportunity value to all campaigns - so it's a comparative metric not an absolute metric.
Once you've got that the easiest thing to do is create some custom fields in your Salesforce campaign object to calculate the information you're looking for.
You can create some pretty cool results and the best part is, most of the work is on your Salesforce admin 
If you'd like to reach out (guy@g8technological.com), I've probably got some documentation I can share with you somewhere,
-Guy