So yesterday I enabled SSL on my server and forced all traffic via HTTPS. But then AdSense stopped appearing on my pages. After around 10 minutes, it began appearing but not on all pages no matter how many times I would refresh.
So to see if HTTPS had got anything to do with it, I switched back to HTTP and the pages began displaying Ads. (I had disabled all the cache-management setup and tested in private browsing mode just to make sure local browser cache doesn't do anything)
I realized AdSense is treating HTTPS pages differently and due to their recent policy change for "brand protection", since my HTTPS pages weren't crawled yet - the ads were missing. My assumption became even more stronger when after waiting for sometime, the ads began appearing for around 40% of pages, though, not all.
Also, in the monthly AdSense observation thread some of the people assumed that loading the page for the first time would make the AdSense mediapartner bot to crawl the page - it didn't happen in my case.
Even after 12 hours, the ads are yet to appear on the older content on my site.
So I would say, if you plan to switch to SSL anytime soon, just enable it but don't force-route your traffic to HTTPS pages, until maybe after a week or so ? Just so that majority of pages have been crawled by the AdSense bot.