Turkish government have blocked some IPs including Google Analytics. This caused all the web sites using alanytics to slow down and even not to load. How can we prevent this problem? How can we skip loading of ga.js if not available?
You could try using the defer
attribute on a script element to delay loading until the document has been fully parsed.
<script src="http://www.google.com/path/to/analytics.js"
type="text/javascript"
defer>
</script>
I'm not sure if this would affect the analytics scripts adversely, though.
As an aside, the defer attribute is available in newer versions of Firefox, IE6+, Chrome, Safari, Opera.
It depends how the Turkish government is blocking:
- Connections hang
- Connections are refused
- Packets just black-hole
It's probably 3), so you'll have to detect Turkish IPs and write the page differently to not reference google to fix the problem. At least that's the only solution I can think of at the moment.
Google offers an asynchronous snippet for their tracking code:
Note that you need to use a different tracking syntax to use it, check the migration guide on the link for details. It also require a browser with support for the HTML5 attribute 'async', so it may not fully solve your problem.
Another solution is proposed in 'Better Google Analytics JavaScript that doesn't block page downloading'