I recently decided to try out Google AdSense on a few personal sites I run - ScottOnWriting.NET, NBAWebLog.com, MP3Players101.com, skmMenu.com, and DataWebControls.com - mainly as an experiment to see the effectiveness of text advertising and what sort of revenue streams small, focused sites like these are capable of generating. (I'll be sure to post an analysis after having collected sufficient data.)
The nice thing about Google AdSense is that it's a breeze to setup. Once you have an AdSense account, you just choose a few options - colors for the text ads, if you want to serve text ads only or both text and image ads, and if you want to assign the ad to a “channel” (useful for tracking performance of ads on certain sites or pages) - and, based on these selections, you're given a snippet of client-side JavaScript code to add to the page(s) where you want to display the ads. AdSense automatically scans the content of your site to send targetted text ads, and you get some money whenever anyone clicks on one of your ads. The precise amount of money you receive depends on the ads served. Essentially, advertisers can bid on showing their ads for certain keywords, so your revenue depends on how much advertisers are willing to pay for your targetted customer's clicks.
In any event, I got Google AdSense up and running on all of the sites and all of them, save one (NBAWebLog.com), displayed targetted ads. NBAWebLog.com was displaying nothing but public service ads - Save the Rainforest, Become a Big Brother, and things like that. Reading up at AdSense, I learned that these public service ads are displayed until AdSense can successfully search and categorize the site's content. After these public service ads persisted for three days, I emailed the AdSense support staff, and asked them what was up. They came back and said that their spider could not classify my site due to a large amount of non-standard content near the beginning of the page.
I visited NBAWebLog.com, did a quick view source and found... a large amount of non-standard content - several KB of base64 encoded content in the __VIEWSTATE hidden form field. This view state information didn't need to be persisted - I wasn't handling postbacks at all from the front page - so I turned off view state from the @Page directive and everything worked out. I emailed back the Google AdSense staff, got my site respidered, and now it's showing the applicable ads.
On a slight tangent, I have an article on ASP.NET view state coming up on the MSDN ASP.NET Dev Center...