web-dev-qa-db-ja.com

内部にGoogle広告があるDivを更新します

Google広告を保持する<div>を持っています。私のWebサイトは主にAJAX=であり、ブラウザを更新する必要はありません。つまり、私の広告も更新されないので、ユーザーが1日1つの広告を見ているだけでは理想的ではありません。

そのため、ページの特定の<div>を更新する方法が必要でした。多くの解決策を見つけましたが、うまくいきませんでした。たとえば、JQueryのhtml関数を使用します。

$("#ads").html("google ad script here");

これにより、ページ全体がどうして更新されたのかわかりませんでした。 AJAXリクエストをGoogle広告を含むHTMLページにリクエストすることもできますが、上記の試みと同じ効果があると思います。

IFrameを使用したくありません。

他に利用できるオプションはありますか?私のエンドウ脳はもう考えることができません。 :)

編集:

ユーザーがリンクをクリックしたときにのみ更新を開始するため、許可されます。

代表的な例がYahooメールです。新しいAJAXメールボックスはこれと同じ方法を使用します。ユーザーがリンクをクリックすると、新しい広告が表示されます。

40
Abs

他の両方の回答にあるように、AdSense広告を自動的に更新することは許可されていません。ユーザーの操作に応じて広告を更新するつもりであるとのことですが、stillは許可されていませんが、許可されていません!

広告を更新する理由は、新しい広告を表示できるようにするためです。広告を表示することを「印象」といいます。コードを使用して広告を更新すると、広告のインプレッションが自動的に生成されます。

AdSenseプログラムポリシー 状態(私の強調):

無効なクリックとインプレッション

Google広告のクリックは、ユーザーの純粋な興味によるものでなければなりません。 Google広告で人工的にクリックまたはインプレッションを生成する方法は固く禁じられています。これらの禁止されている方法には、繰り返しの手動クリックまたはインプレッションが含まれますが、これらに限定されません。ロボット、クリックとインプレッションの自動生成ツール、有償クリック、有償サーフィン、オートサーフィン、クリック交換プログラムなどのクリックやインプレッションを生成するサードパーティのサービス、または不正なソフトウェア。

広告を更新することは、インプレッションを生成することに対するルールの違反です。そうは言っても、ユーザーの行動に応じてAJAXアプリで広告を更新する(たとえば、クリック)は、ルールのspiritの違反ではありません。

たとえば、アプリ全体を書き換えてAJAXの使用を停止することを想像してみてください。これはユーザーにとって明らかに悪いエクスペリエンスです(遅い、ページがクリックされるたびに点滅する、ページがバックグラウンドで動的に更新されない)が、技術的にはAdSenseプログラムポリシーへの違反ではありません。

明らかにGooglemeantは、5秒ごとに広告を自動的に置き換えること(広告の「スライドショー」を作成すること)を禁止します。グーグルはまた、あなたが実際に持っているよりも多くの訪問を持っているように見えることにより、あなたのサイトを広告主にとってより魅力的に見せることを禁止することを意図した。高パフォーマンスのAJAX= Webサイト...を設計するのを防ぐために、intendしていないと思いますが、残念ながらルールが意図していない場合があります結果。

もちろん、最初に指摘したように、広告をiframeに埋め込み、その場所を変更すれば、広告を更新できます。 ( AJAXアプリケーションでAdSenseを更新する でiframeを使用する方法は次のとおりです。)

最初の質問でiframeを拒否したのは、おそらくiframeを使用するとGoogleのポリシーに違反することを知っていたためです...しかし、ルールを破ることを主張する場合は、規則をすべて破ることもできます。 ;-)

最終的に、この方法でインプレッションを生成することはリスクに値しないことがわかると思います。広告を「更新」すると、Googleが以前とまったく同じ広告を表示していることがわかります。

49
Dan Fabulich

新しいGoogle DFPの「タグ」により、特に「AJAXの広告更新」が可能に

リフレッシュ

pubService.refresh(slots)ページ上の指定されたスロットの配列を新しい広告で更新します。

パラメーター:

配列スロット-更新するスロットのオプションの配列。指定しない場合、すべての広告スロットが更新されます。例:

var slot1 = googletag.defineUnit( "/ 1234567/leaderboard"、[728、90]、 "div-1")。addService(googletag.pubads());

var slot2 = googletag.defineUnit( "/ 1234567/skyscraper"、[160、600]、 "div-2")。addService(googletag.pubads());

//更新を呼び出すと、スロットごとに新しい広告が取得されます

googletag.pubads()。refresh([slot1、slot2]); http://support.google.com/dfp_sb/bin/answer.py?hl=ja&answer=2372721&expand=pubservice_details#refresh

27
Appmerce

パーティーに1年半遅れていることはわかっていますが...広告の問題は、広告がdocument.writeを使用していることである可能性があります(広告サーバーはこれについて悪名高いですが、私はしませんAdSenseで使用されているかどうかを確認してください。)

その場合は、私に役立つライブラリ writeCapture.js があります。例:

$('#ads').writeCapture().html('<script src="whatever-your-adsense-code-is"> </script>');

これはjQueryを使用していますが、スタンドアロンバージョンもあります。

TOS違反かどうかについては... Gmailは広告を動的に変更するので、それほど悪くはありません。内容も変わっていれば大丈夫だと思います。

1
noah

次のコードでGoogle広告スロットを更新できます。これを、広告を更新するJS関数に配置します。ページ上のすべての広告が更新されます。

if ( undefined !== googletag ) {
  googletag.pubads().refresh();
}

Googleアドマネージャーヘルプ-ページを更新せずに広告を再読み込み

0
Warwick