In Google's case, ads are delivered based on search terms, or based on the content of other web sites where context-sensitive ads are being served. So they can be served to anyone in a reasonably sensible manner, regardless of whether Google knows anything at all about them.
Facebook, on the other hand, tries to "target" ads based on personal information about their users. I'm sure this works in some cases, but if I had a dollar bill for each time I've been shown a beer ad (I don't drink beer), or a car insurance ad when I didn't have a car, or a "buy a house from this guy" ad for some realtor I've never heard of just because he claims to have an office in my town (oh, and I already have a house)... I'd be a pretty wealthy guy by now.
Now, Facebook is IPO'ing and trying to raise (*bites pinky*) five Billion dollars, based on all that personal user data they have, and all that targeting they can make advertisers believe actually works. (And maybe it does, in some cases - regardless of how total-FAIL it's been in my experience.)
Another way to look at this, courtesy of "Breakout" on Yahoo Finance, is that Facebook wants to make big bucks off its user data. Of course, this doesn't in any way benefit the people who give their content to Facebook, thus driving traffic. This is a different model than Google, which (for example) gives me this blog for free and gives me a cut of the revenue from ads that appear on it.
Needless to say, I'm once again reducing my presence on Facebook - which is now easier than ever, since most of my friends are now on Google's social network, Google+. And since Facebook wants to make a buck off my data, I'm updating as much of it as possible to be completely bogus, then deleting it.
I know this my actions will not in any way cause Facebook to crumble or falter in the slightest, but as a content creator, I can at least refuse my content to places that want to have it for free and then make money (even indirectly) off it.