2012-04-02 9 views
2

私はwebを読んで、ToSを破ることなくjQueryモバイルの移行を通じてGoogle Adsense広告を表示する方法を探していました。私はちょっと立ち往生していますので、私は賢いコミュニティに向かいます。jQueryモバイルによるページ遷移を通じてadsense広告をロード

Adsenseタグは、(i)一般的なもの、(ii)スロットのリスト、(iii)ディスプレイ自体の3つのスクリプトで構成されています。最初の2つは<head>に、後者は<body>にあります。

最初のページに広告を表示できます。問題はページ遷移に伴い発生します。

jQuery Mobileは<head>をリロードしないので、初めて<head>をロードしている間にgoogletagを準備することができます。これにより、1ページあたり最大3つの広告に制限が設定されます。サイト全体ではそれほど多くはありません。さらに、<div>の広告を移動させなければならないことを意味します。最後に、広告が読み込まれ、ユーザーが所属するページに行くまで表示されないことを意味します。どちらもToSと互換性がありません。

移行ごとに新しい広告を読み込む方法はありますか?はいの場合は、Googleスクリプトを適切に読み込むためにどこに貼り付けますか?

答えて

6

DFPに接続されたAdsenseを使用してGoogle DFPで動作させる方法が見つかりました。 DFPの方が柔軟性があり、より簡単でした。

  • <head>で:私はGoogleのスクリプトを入れて、ウェブサイト全体(あなたは「タグの生成」でそれを取得します)のために、すべての広告スロットを定義した。ここ

    は、私が使用したものです。

  • 各ページでは、他の場所で行うように、スクリプトの一部に<body>を入れます。

これにより、新しいページを読み込むたびに新しい広告が表示されます。ただし、ページ間を参照すると、ページを更新することはありません。

これを行うにはgoogletag.pubads().refresh()を使用できます。ただし、読み込み中のページにあるスロットだけを更新したい場合は、利用規約を一部破棄します。さらに、まだ表示されていないスロットはrefreshできません。したがって、ウェブサイト全体にスロットを定義していても、すべてのページがまだロードされていないと失敗する可能性があります。

しかし、現在のページにあるスロットをrefresh()関数に渡すことができます。

あり
function refreshAds() { 
    // Get all the slots 
    var allSlots = googletag.pubads().getSlots(); 
    var slotsToRefresh = Array(); 
    // Select the slots that are on the current page based on their dom Id 
    for (var i=0; i<allslots.length; ++i) 
    if (isSlotIdOnTheCurrentPage(allSlots[i].getSlotId().getDomId())) 
     slotsToRefresh.push(allSlots[i]); // I let you implement the logic behind naming ids slots and divs 
    if (slotsToRefresh.length > 0) 
    googletag.pubads().refresh(slotsToRefresh); 
} 

$(document).on("pagechange", function() {refreshAds();}) 

あなたが行く、あなたがページに戻るたびに、スロットがリフレッシュされ、新しいページに移動するたびに、新しいスロットが作成されます(それことを提供する:ここで私はそれをやった方法です<head>に定義されている)。

私はそれが助けてくれることを願っています!それはAdsenseでシームレスに動作するようになる方法があるかもしれないが、私は試していない。

+0

サイトに表示されている広告ごとに固有の広告スロットを定義する必要がありましたか?かなり小さいサイトだったはずですか? – Kevin

+0

はい、ウェブアプリケーションなので、何度もレンダリングされるページはほとんどありません。広告をリフレッシュすることはここで人生を節約します。 –

+0

これは優れています。以前はDFPについて知らなかった。それを私のために実行するためにいくつかの改造をしなければならなかった。 googletag.pubads()。refreshが呼び出される前に、googletag.displayを一度呼び出す必要があります。 –

0

jQueryのgetScript()メソッドを使用すると、このような場合に役立ちます。私はあなたがpageinit関数の中にこれを含めることを提案する。あなたに簡単な例を教えてください。

$(document).delegate('[data-role=page]','pageinit',function(){ // this would get executed on page init of every JQM page 
    $.getScript('path/to/yourlib.js',function(){ // using getScript should help you be able to load scripts since the head doesn't get loaded again 
     Demo(); //This would be code that your lib uses 
    }); 
}); 
+0

再生いただきありがとうございます。あなたのソリューションはスクリプトを実行するように動作しますが、 '

  • 11. AdSenseを使って動的広告を追加する
  • 12. jQueryモバイルを使用しないJQueryモバイルページの遷移
  • 13. JQueryモバイル空白ページ(ロード時)
  • 14. jQuery Mobile CSS3ページ遷移(jQueryモバイルライブラリなし)
  • 15. JQueryを使ったページ遷移?
  • 16. Google AdSenseのテスト用広告をipで有効にする
  • 17. 投稿コンテンツからadSense広告を削除するには
  • 18. WebBrowserがvb6 WebBrowserでadsense広告コードをブロックしています
  • 19. どのようにjavascriptでadsense広告の場所を変更するには?
  • 20. 同じページのページ遷移を変更する
  • 21. ページ遷移アニメーション
  • 22. jQuery円滑なページ遷移プリローダー付き
  • 23. 検索結果ページにAdSense広告を挿入するにはどうすればよいですか?
  • 24. Google AdSense広告を検索エンジン訪問者のみに表示
  • 25. Angular 2アプリケーションでGoogle Adsense広告を使用する
  • 26. モバイルコンテンツ向けAdSense広告をサポートするモバイルフレームワークの例ですか?
  • 27. モバイルGmailのページ遷移はどのように機能しますか?
  • 28. ブログのインタラクションに基づいて別のウェブサイトにAdSense広告を表示する
  • 29. jQueryの - ロード機能を通じて
  • 30. jQuery Mobileでdata-role = "header"のページ遷移を無効にする