This has been happening to me a lot I have adsense on every page however I get 72 unique visitors according to analytics and only 27 adsense page impressions
when are you comparing the reports. adsense stats are not in real time. compare previous day's report and see how do the look
If put the Analytic code on top of your web page means if some users quickly move to several pages will not load Adsense code on remaining pages. Here the analytics get impressions but the adsense may not (It will not be loaded completely). Jusy try to put your analytics code at bottom all you tracking pages.