The problem you're describing is well known in digital marketing. It's called "last touch attribution" - basically giving the last touch point your customer had with your company all the credit for the sale when there often are multiple touch points (story in techcrunch, blog post on site, mention on twitter, then finally a click on a banner ad when the customer is ready to buy). Here's a blog post on hacking Google Analytics to help: http://www.seomoz.org/blog/how-to-get-past-last-touch-attrib....
A google search for "last touch attribution" will give you other resources. Agreed on it being a very difficult (and valuable) problem to solve, though. The privacy issues with tracking a person's every touch point with your brand makes it even harder.