AdSense for Mobile: Broken
I'm not sure if this is a problem affecting everyone, but it's definitely hitting me and Miker. Mobile AdSense ads from Google are hanging because of some server side problem on their end.
Here's an example error:
Warning: fopen(http://pagead2.googlesyndication.com/pagead/ads?&ad_type=text&channel=2914983634&client=ca-mb-pub-7787694711942248&format=mobile_double&https=&host=http%3A%2F%2Ftwowheels.mobi&ip=126.96.36.199&markup=xhtml&output=xhtml&ref=&url=http%3A%2F%2Ftwowheels.mobi%2F&useragent=Mozilla%2F5.0+%28X11%3B+U%3B+Linux+i686%3B+en-US%3B+rv%3A188.8.131.52%29+Gecko%2F20071022+Ubuntu%2F7.10+%28gutsy%29+Firefox%2F184.108.40.206&dt=1.1937706829E%2B12) [function.fopen]: failed to open stream: HTTP request failed! HTTP/1.0 400 Bad Request in http://pagead2.googlesyndication.com/pagead/show_ads.php on line 61
Because I was using their code to automatically insert their mobile ads on pages that contained the regular AdSense, this problem wacked a large number of sites, causing those pages to hang. I've replaced the original Google-supplied PHP which used fopen with some basic curl functions instead, so that I can add a timeout - if the pages die or don't return, the page will still display.
This is a pretty big screw up, and I don't know how long it's been going on, but I suspect a few days, actually. I wonder what these guys are thinking? First, the way they want you to include a page hosted on their site is an insane security hole - see that show_ads.php page in the above error? That's what I'm talking about - that's a page on their server (which is the one throwing the error), it's nutty. I downloaded the PHP they want you to include manually instead so I wouldn't have to require() a page outside of my own server. Secondly, the fopen stuff is just DUMB - since there's no timeout, if it hangs, your page hangs as well, or barfs up some sort of nasty error. I can understand that Google wants to make the code as portable as possible, so they don't want to require Curl libs, but it's just a stupid, lazy, lowest-common-denominator solution that's more dangerous than helpful.
These guys need to get their act together. Taking down pages on my site is annoying.