The approach at my company is similar to Harish and Dan's. We put the SFDC Campaign ID as a URL parameter and have a Smart Campaign in the program that's looking for that SFDC ID. This also allows us to know what is sending people to a website form or re-use landing pages for different integrated campaigns and still get really granular with tracking. We set up a parent campaign in SFDC for the overall project, then make child SFDC campaigns for each tactic (i.e. Facebook, Twitter, Email, PPC) that will be driving to the form for that marketing campaign. We make individual tracking URLs for each of those tactics and include the personal SFDC ID for each one. We set up the Marketo programs the same way as the SFDC Campaigns: Parent for the overall campaign, then child programs for each tactic. The Smart Campaign in each child program will listen for their specific SFDC ID in the URL to update program statuses and push people to child salesforce campaigns and the Smart Campaign in the parent program will listen for the status changes and update itself and the parent salesforce campaign appropriately. By doing this we can easily report on the overall campaign performance and also on each tactic's performance.
... View more