Angular.js & Adsense

前端 未结 4 1448
面向向阳花
面向向阳花 2020-12-23 15:31

I\'m trying to put ads on my angular.js app, and I\'ve done some reading and discovered it isn\'t possible to just copy and paste the normal adsense code.

I\'ve hear

相关标签:
4条回答
  • 2020-12-23 16:04

    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]);
            }
        );
    
    0 讨论(0)
  • 2020-12-23 16:08

    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

    0 讨论(0)
  • 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.

    0 讨论(0)
  • 2020-12-23 16:20

    In the AngularJS controller, add an init() function, add a line

    (adsbygoogle = window.adsbygoogle || []).push({});
    

    Then call this init() function in your view html file.

    See also at
    https://github.com/featen/ags/blob/master/webapp/js/controllers/dict.js

    0 讨论(0)
提交回复
热议问题