Angular.js & Adsense
you need to create a directive
yourApp.directive('ads', function() { return { restrict: 'A', templateUrl: 'partiels/adsTpl', controller: function(){ (adsbygoogle = window.adsbygoogle || []).push({}); } };});
create a template with your ads code in my case "partiels/adsTpl.html"
<ins class="adsbygoogle" style="display:inline-block;width:300px;height:250px" data-ad-client="ca-pub-00000000" data-ad-slot="000000"></ins>
add the directive to your page
<div data-ads></div>
place the adSense js call in the head section of your main page before angularjs
<head><script async src="//pagead2.googlesyndication.com/pagead/js/adsbygoogle.js"></script>....
et voila , this is work perfectly for me
You should do a wrapper directive to the adSense script like this...
<div data-my-ad-sense> <!-- Google AdSense --> <script async src="http://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js"></script> <ins class="adsbygoogle" style="display:inline-block;width:728px;height:90px" data-ad-client="ca-pub-0000000000" data-ad-slot="0000000000"></ins> <script> (adsbygoogle = window.adsbygoogle || []).push({}); </script></div>
And add this directive to your directives...
directive('myAdSense', function() { return { restrict: 'A', transclude: true, replace: true, template: '<div ng-transclude></div>', link: function ($scope, element, attrs) {} }})
This is the adSense async code.
I am not sure whether doing the following thing is valid as per the adsense T&C.
delete all the google related variables before you change the url
Object.keys(window).filter(function(k) { return /google/.test(k) }).forEach( function(key) { delete(window[key]); } );