Angular.js & Adsense Angular.js & Adsense angularjs angularjs

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]);        }    );