Who should read it: Adsense does not support SSL, if you have same site running with http and HTTPS and you want Adsense on it then this article is certainly for you.
Recently we enabled Secure Sockets Layer (SSL) for one of our sites. How does SSL helps? It encrypts the communication, between the client (the browser) and the web server. It helps in stopping Eavesdropping and your customers feel more secure about it due to the perception they have for the lock. This is just a security for the transport layer.
So we decided to offer both the versions of the site, one with SSL (HTTPS://, http over SSL) and another the normal with no encryption (http://). Also the identity was verified by VeriSign to avoid the browser issued messages(Browsers will issue warning messages if the certificate is not signed by a trusted third party). If you find yourself nowhere with the encryption then certainly you need to read more. I remember my classes on data encryption and data communication with our great professors Dr Pinaki Mitra and Dr A.K.Laha (Yes, I remember that I promised to write more about http and HTTPS, yes I will do that. I will try to do it tonight else in the coming weeks.)
Even after completing everything the browser kept issuing a warning that the page contains some non-encrypted items. After some investigation we saw that the HTTPS pages were having some items with http, like images added with http. We made all the images relative that all the images can come with HTTPS under HTTPS. We changed all the js included path and made it relative.
The problem remained due to Google Adsense and Google Analytics. I searched web to find a solution for it. I got a big “No” from Google Adsense Help pages.
Do you offer an SSL version of your ad code?
Although you may place the Adsense ad code on a page using Secure Socket Layers, we do not currently offer an https version of the Adsense ad code at this time. Therefore, you may see a message asking for confirmation to load all items on the page when placing the Adsense ad code on secure https pages.
All our pages were static pages. Also Adsense was our bread and butter, so removing it wasn’t a feasible solution. Also we desperately wanted https across all pages as many of our customers were asking for it. Only options left were
- To make it dynamic and based on the port number (port number 443 whereas http works at 80) we could switch off the Adsense. It will make the pages slow which was again unaccepted.
- To have two pages, one for http and another for https. Management problem which was the rejected.
We then decided to use JS to check if it https://
if(!document.location.href.match(/^https:///)) { Adsense Code}
And similarly for Google Analytics
if(!document.location.href.match(/^https:///)) { Google analytics Code}
This is what I did urgently but the Google analytics has an option,
< script xsrc="https://ssl.google-analytics.com/urchin.js" mce_src="https://ssl.google-analytics.com/urchin.js" type="text/javascript" > < script type="text/javascript" > _uacct = "UA-XXXXX-X"; urchinTracker(); < /script >
More details are available at Google help pages. There is no way you can make you Adsense work with Https, so only way is to switch it off with https.
I tried your code to turn AdSense off when entering https pages but I just get a “This website cannot be found error. Any idea what I’m doing wrong?