11

angular.js アプリに広告を掲載しようとしています。いくつか読んだところ、通常のアドセンス コードをコピーして貼り付けるだけでは不可能であることがわかりました。

「トランスクルージョンを使用してディレクティブにラップする」必要があると聞いたことがありますが、これについて私が見つけることができる唯一の例は、別の Stackoverflow の投稿です: AngularJs と AddThis ソーシャル プラグイン

Google Adsenseでこれを行う方法について、誰かがガイダンスを提供できますか?

4

4 に答える 4

18

ディレクティブを作成する必要があります

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

私の場合は「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>

ページにディレクティブを追加します

 <div data-ads></div>

angularjs の前に、メイン ページの head セクションに adSense js 呼び出しを配置し​​ます。

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

et voila 、これは私にとって完璧に機能します

于 2014-03-29T18:28:44.370 に答える
2

AdSense T&C に従って、次のことを行うことが有効かどうかはわかりません。

URLを変更する前に、Google関連の変数をすべて削除してください

Object.keys(window).filter(function(k) { return /google/.test(k) }).forEach(
        function(key) {
            delete(window[key]);
        }
    );
于 2014-10-06T10:10:29.733 に答える
0

AngularJS コントローラーで、init()関数を追加し、行を追加します。

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

init()次に、ビュー html ファイルでこの関数を呼び出します。

https://github.com/featen/ags/blob/master/webapp/js/controllers/dict.jsも参照してください

于 2014-05-05T22:07:25.403 に答える