2013-07-02 31 views
10

Angular.js uygulamasına reklam yerleştirmeye çalışıyorum ve biraz okuma yaptım ve normal adsense kodunu kopyalayıp yapıştırmanın mümkün olmadığını keşfettim.Angular.js & Adsense

Ben "bir ekleme ile bir yönergede sar" Sen gerekiyordu duydum ve ben bu bulabilirsiniz tek örnek başka Stackoverflow sonrası geçerli: AngularJs and AddThis social plugin

birisi nasıl rehberlik yardımcı olabilir Bunu Google Adsense ile yapmaya devam etmek için?

+0

Merhaba David, çok yakın bir zamanda açısal öğrenme oldum burada sağlanan çalıştırmak için

<script async src="//pagead2.googlesyndication.com/pagead/js/adsbygoogle.js"></script> 

bir video öğretici kullanın. Bu adam John Lindquist ile çalışmıştı (aynı zamanda Papervision üzerinde çalışmıştı ki ben de onu ilk başta duydum). Http://www.egghead.io. Direktiflerle ilgili konulara göz atın, onu kapsayan birkaç kısa video var. Bunun ötesinde, dokümanları sadece en güncel referans olarak kullanacağım. Anladığım kadarıyla temel açı, açısal öğelerin DOM öğelerini ekleyeceği/kaldırılacağı ve bu DOM öğelerini işlemek için gereken bir JS varsa, bunu çalıştırması için bir yönergeye koymanız gerektiğidir. – shaunhusain

cevap

15

Sen

directive('myAdSense', function() { 
    return { 
    restrict: 'A', 
    transclude: true, 
    replace: true, 
    template: '<div ng-transclude></div>', 
    link: function ($scope, element, attrs) {} 
    } 
}) 

Bu

AdSense zaman uyumsuz kodu ... ... böyle AdSense komut dosyasına

<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> 

bir sarıcı yönergesi yapmak Ve direktiflerine bu yönergeyi eklemek gerekir.

+1

bu işe yaramıyor gibi görünüyor, reklamlarım boş çıkıyor (ancak garip bir şekilde iframe yüklü halde). herhangi bir fikir? Onları, her 4. öğenin bir reklamı olduğu bir ng-yinelemede kullanıyorum. Bu konuda – Rob

+1

herhangi bir güncelleme yardımcı olursa sparkmyinterest.com de görebilirsiniz? Burada aynı sorunu yaşıyor. – ericbae

+1

Bu çözüm işe yarıyor gibi görünüyor, ancak ng görünümü değiştiğinde, ng tekrarda birden fazla ADS yazdırıyorsanız: 1. kez baktığımda şu görüntüye bakıyorum: Tamam (veya bazen bir veya daha fazla ADS eksik), AMA değişiyor görünüm ve geri bazı (veya tüm) ADS eksik geri – ricricucit

17

Eğer

<ins class="adsbygoogle" 
style="display:inline-block;width:300px;height:250px" 
data-ad-client="ca-pub-00000000" 
data-ad-slot="000000"></ins> 

sayfanızdaki

için yönergesini ekleyin "/ adsTpl.html partiels" benim durumumda reklamlarınızın koduyla bir şablon oluşturmak bir direktif

yourApp.directive('ads', function() { 
    return { 
     restrict: 'A', 
     templateUrl: 'partiels/adsTpl', 
     controller: function(){ 
      (adsbygoogle = window.adsbygoogle || []).push({}); 
     } 
    }; 
}); 

oluşturmanız gerekir

<div data-ads></div> 

adSense js çağrısını angularjs anastasından önce ana sayfanızın baş bölümüne yerleştirin

<head> 
<script async src="//pagead2.googlesyndication.com/pagead/js/adsbygoogle.js"></script> 
.... 

et işte, bu sizin bakış html dosyasında bu init() işlevi çağırmak, bir init() işlev eklemek, angularjs kontrolörü olarak benim için mükemmel

+1

Birden çok görünüm ve rotaya sahip olduğum için, yalnızca ilk 3 kez gösterilir ve site yeniden yüklenene kadar çalışmaz. – Kode

+0

Merhaba @kode, Web uygulamamda birçok görünüm var, ama benim durumumda mükemmel çalışıyor, lütfen daha fazla bilgi sağlayabilirsiniz. –

+0

Teşekkürler @ zied.hosni. Burada bir gönderiim var: http://stackoverflow.com/questions/29709973/angular-adsense-ads-not-loading-on-route-change-up-to-3-ads-for-the-entire-app It tek fark benim direktifimin yerine geçtiği yönündedir: true – Kode

2

de Ayrıca bkz

Object.keys(window).filter(function(k) { return /google/.test(k) }).forEach(
     function(key) { 
      delete(window[key]); 
     } 
    ); 
2

Javascript dosyasında, google adsense

için özel bir yönerge tanımlayın
window.app.directive('googleAd', [ 
    '$timeout', function($timeout) { 
    return { 
     restrict: 'A', 
     link: function(scope, element, attr) { 
     return $timeout(function() { 
      var adsbygoogle, html, rand; 
      rand = Math.random(); 
      html = "<ins class='adsbygoogle' style='display:block' data-ad-client='ca-pub-7656700967113967' data-ad-slot='1894787830' data-ad-format='auto'></ins>"; 
      $(element).append(html); 
      return (adsbygoogle = window.adsbygoogle || []).push({}); 
     }); 
     } 
    }; 
    } 

Yukarıdaki yönergeye ait adsense bilgileri, reklamı seçtiğinizde Google tarafından sağlanır. sayfasında Endeksi'nde ad- kullanacağım aşağıdaki etiketi

<div google-ad=""></div> 

gösterilecek.html bu kalkarken ve AngularJS + Adsense