OK, first I'll state that I DO NOT use Wordpress or any other commercial CMS. I build my sites from scratch (programming, markup, etc) and I'm quite adverse to using third-party code (even JS) on my sites unless it's absolutely necessary or offers such a benefit as can not be ignored. So, forget about WP plugins and the like. This post addresses social media widget scripts taken directly from widget builders provided by Facebook, Pinterest, etc. The topic may be just as relevant to WP plugins designed for social media but I'm speaking directly to the services these widgets provide without any middleman scripts involved.
Recently, I added a PinIt script to some pages of my site. These pages also contain Adsense ads. The next few days, everything was great. Pinning functions worked great and the Adsense revenue was rolling in.
Yesterday, Adsense went into a tail-spin and CTR all but dried up. I was busy bouncing around on different projects though and didn't have time to give it any serious attention until late in the day. I also try not to overreact to seemingly radical changes in clicks these days because stats get stuck or whatever so I like to give things a bit of time to work themselves out. Anyway, late in the day I started working my way around the site to see what I could see.
In short order, I began to notice various elements of the Pinterest calls were hanging but the real kicker was that this was causing ad units to hang and not show at all in some cases or for many seconds in others.
I'm using asynchronous Adsense code so this makes sense. Adsense is waiting for the page to load. I was using the standard Pinterest code which I believe is synchronous so that also follows that it would load before Adsense.
I've removed the Pinterest code and things seem to be back to normal. I know Pinterest has asynchronous versions of their code but I'm not sure that would mean it would load after the Adsense asynchronous code or that I could guarantee that anyway. The Pinterest code is at the bottom of the page whereas Adsense code is farther up the page so maybe that's all that is required to get Adsense to load first if both scripts are asynchronous.
I've had this same problem with Facebook widget code in the past and removed that as well. My question is, does anyone know of a surefire way to keep social media code from interfering with ad delivery?
One last note. This issue seems to be something to look at when CTR takes a sudden unexpected dive. It's very possible that something other than Adsense is at the root of your problem. Pinterest and Facebook both have their moments and I'm guessing other such services do too. Heck, even Adsense goes on vacation occasionally.