For the past 1 month i have observed that a lot of Public Service ads are being shown on my site. I find it hard to understand why this is happening. My niche is very competitive(humor, fun, pics etc.), so i don't think that there should be a shortage of Ads.
If you have not violated anything in the Google Adsense agreement, then you are just fine and it will just take time before spiders crawl your site to give you relative ads.
I don't think I have violated any TOS, because if i had it would not show ads at all. But it shows ads ~ 70% of the time and public service~30% of the time.
Habitat is right... Or maybe the ads are being confused which one should appear. You may want to check the pages where PSA is appearing, and compare them to those pages with relevant ads.
This might be an issue, since some of my pages have loads on images and very less text. Does Adsense read the "alt" text associated with an image ?
If you use lot of pics then google bot may not crawl those pics and will not show ads. And if you have no text content then google will find it difficult to crawl your site. Add some meta tags and more content so that google spiders sees it.
Same with one of my blogs, it might of been flagged for some reason but my other sites work, it shows mostly public service and the other ad block will not show anything. I tried using the monetize feature in blogger but it only shows an ad about blogger in the side, I hope it will start working soon.