I would question the notion that self-volunteered information is more accurate. It's easy to "like" or "follow" something. It's quite another to buy it or make search queries that seem to lead to a purchasing decision. Which data is better for advertising?
Well, in my experience people don't "like" or "follow" things they wouldn't mind seeing frequent (borderline annoying) updates for as a direct consequence. So while the act of liking and following might not lead to a direct sale, it's a reasonable argument to suggest that the people who do that are a good, receptive audience for a targeted ad campaign.
Ad targeting might not only be more effective, but it could also save money by not spending money futilely throwing a product in the face of users who are just not interested.
It's essentially not just a way to opt-in to advertising, it's a way to opt-out of all the other things you might not want. Whether this works 100% of the time is another debate entirely.