2012-04-13 13 views
11

Google DFPを使用しています。非同期のGoogle広告と同期の比較

googleから同期広告を使用すると、ウェブサイトの読み込みと同時に広告が読み込まれるため、サイトの読み込み速度が遅くなり、応答に時間がかかるとページの読み込みが一時停止します。

非同期広告を使用している場合、ページの負荷が高くなるか、広告が読み込まれないため、問題はありません。つまり、サイトの読み込み速度が向上します。つまり、非同期広告を使用すると、広告が表示されているかどうかに関わらず、幅と高さが固定されたdivが作成されます。だから、通常、これは私のサイトに多くの空白を作ります。なぜならすべての広告の位置が使われているわけではないからです。同期広告でも同じです。

Googleはdivを作成せず、広告を表示するためにjavascriptを使用し、そのスペースに公開している広告がない場合は空白を表示しません。しかし、それは同期的に動作します...

私は非同期広告を使用して、広告が公開されていない場合に空白を取得しない方法があります。

ありがとうございました。

+0

あなたの作品のサンプルを表示できますか? – Ibu

答えて

15

私はあなたが探しているものと考えています

googletag.pubads().collapseEmptyDivs(); 

表示する広告がない場合は、空のdivが非表示になります。この行の前にそれを呼び出します。ここ

googletag.enableServices(); 

よりドキュメンテーション、参考のために: http://support.google.com/dfp_premium/bin/answer.py?hl=en&answer=1650154

+0

これは正解とマークする必要があります。 – Olaj

+1

私がこれを持っていた唯一の問題は、collapseEmptyDivsメソッドが呼び出される前に、ページの読み込みに空き領域のフラッシュが発生したことでした。どのように私はそれを解決するための私の答えを参照してください。 –

0

よく..あなたは回避策を試すことができます。私は確信していません。

あなたの広告は非同期に読み込まれるので、その中に要素を追加したり、ダミーアイテムを追加したり、イベントリスナーを添付していつ置き換えられるかを知ることができます広告。

ノードを削除したときに発生するDOMNodeRemovedイベントが発生し、それに応じてdivのサイズを変更することができます。

2

これを試してみてください:拡大または縮小クリエイティブのサイズに一致するようにDIVを(そしてさらに大きな広告スロットに小さな広告を中心に)する必要があり

<div id='div-gpt-ad-YOURDFPIDGOESHERE-1' style='width:auto; height:auto; margin:0px auto; text-align:center;'> 

1

を含むdiv要素にインラインスタイルにとしてdisplay: none;を追加します。

collapseEmptyDivsの方法では、display: none;のインラインスタイルが親コンテナdivに追加されます。余分な空白のフラッシュを防ぐために、私はまずスタイルシートにCSSスタイルとしてdisplay: none;を追加しようとしましたが、広告がターゲット広告ユニットスペースに正常に読み込まれたときにスタイルは削除されませんでした。ディスプレイの移動:なし。インラインで問題を修復したようだ。

+3

また、collapseEmptyDivs()メソッド呼び出しにtrueを渡すこともできます。これにより、それらは折りたたまれ始め、必要に応じて展開されます。本当にあなたの毒を選んでください。 – Justin

関連する問題