2015-11-01 18 views
13

私は自分のウェブサイトでレスポンシブなGoogle広告を使用していますが、残念ながらそれはいつも復帰していますGoogle Adsenseエラー「TagError:adsbygoogle.push()エラー:availableWidth = 0のスロットサイズがありません」

TagError: adsbygoogle.push() error: No slot size for availableWidth=0

広告サイズを定義して問題を解決しようとしましたが、問題はまだ解決されていません。

.adslot_1 { width: 320px; height: 100px; } 
@media (min-width:500px) { .adslot_1 { width: 468px; height: 60px; } } 
@media (min-width:800px) { .adslot_1 { width: 728px; height: 90px; } } 
@media only screen and (min-width:800px)and (max-width:3000px) { 
    #topbanner { 
     width: 640px; 
     height: 90px; 
    } 
} 

まあ、これは(私はパブ-idと広告スロットを削除しましたセキュリティ上の理由から。)私が使用したことを実際にGoogle AdSenseのGoogle Codeのある

<script async src="//pagead2.googlesyndication.com/pagead/js/adsbygoogle.js"></script> 
<!-- articles(auto) --> 
<ins class="adsbygoogle adslot_1" 
    style="display:inline-block;" 
    data-ad-client="ca-pub-[MY_AD_ID]" 
    data-ad-slot="AD_SLOT_NOS" 
    data-ad-format="rectangle, horizontal"></ins> 
<script> 
(adsbygoogle = window.adsbygoogle || []).push({}); 
</script> 
+3

アドオンコードブロックをAngular ng-cloakに入れたときにこの問題が発生しました。コードブロックをng-cloakから移動した後に問題がなくなりました。動的に生成されたhtmlの中にadsenseコードを置く場合は、Googleコードが実行される前にDOMが準備ができていることを確認してください。 – Adamy

答えて

2

あなたの親がある場合はコンテナ?あなたは実際の<ins>タグではなく、私が考える親の幅と高さを設定することになっています。

8

私たちの場合、2つのバナーを表示するのに問題はありましたが、Chromeのみに表示されました。最初のバナーは表示されず、エラーが発生します。

No slot size for availableWidth=0

2番目のバナーが表示されます。問題はSafariやFirefoxでは起こっていませんでした。 CSSを介して問題を解決しようとしたが役に立たなかった。

我々は変更することによってこの問題を解決:

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

$(document).ready(function(){(adsbygoogle = window.adsbygoogle || []).push({})}) 
にjQueryのは、上記方法のために必要とされます。

+0

私はこれを試して、$が定義されていないと言っています... – ganders

+0

あなたのサイトでは、jQueryが有効になっている必要があります。すでに試している場合は、jQuery(ドキュメント).ready(function(){(adsbygoogle = window.adsbygoogle || [])。push({})}) –

4

GAのコードがデフォルトの読み込みで親のサイズを選んでいないという問題があるので、setTimeoutを使って解決しました。

setTimeout(function(){(adsbygoogle = window.adsbygoogle || []).push({})}, 1000);

5

は、私が使用:それはこの方法でなければならなかったので

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

私のサイトは、AJAXを多用しながら、特別な方法でページをロードしました。これが誰かを助けることを望みます。

0

レスポンシブテーマとレスポンシブアドセンスユニットがある場合はエラーが発生します。広告をプッシュするときに、あなたが(ない%として)CSSで幅と高さを定義した場合、これは解決します(少なくとも、それは私の問題を解決する)

#sidebar { 
width: width of your ad px; 
height: height of your px; 
} 
2

1. DOMの準備ができていることを確認します。

バニラ(最近のブラウザのみ)jQueryの

document.addEventListener("DOMContentLoaded", function() { 
    (adsbygoogle = window.adsbygoogle || []).push({}); 
}); 

$(document).ready(function(){ 
    (adsbygoogle = window.adsbygoogle || []).push({}); 
}); 

角度で

2.

$timeout(function() { 
    (adsbygoogle = window.adsbygoogle || []).push({}); 
}); 
は必ず、ページに持っている広告の数正しい。

  • 広告の総数は、ページあたり広告でGoogleの上限を超えません。あなたのページに追加された広告やその他の有料のプロモーション資料は、内容を超えないようにしてください。Google's new policy
  • adsbygoogleにプッシュされた広告の数は、ページに表示されている の広告の数に相当します。

応答単位の場合、幅と高さを追加します。

Responsive ad unitsは、ins要素で指定された幅と高さが必要です。あなたはこのような何か行うことができます:

ins { 
    min-width: 300px; 
    min-height: 50px; 
} 
+1

Googleによる広告の上限は3つまでです。これを読んでください:http://wpquads.com/google-adsense-allowed-number-ads/ –

+0

ありがとう@ReneHermenau。 Googleの変更を反映するように更新されました。 –

0

を私が持っている:体において頭で

<script async src="//pagead2.googlesyndication.com/pagead/js/adsbygoogle.js"></script> 
<script> 
    (adsbygoogle = window.adsbygoogle || []).push({ 
    google_ad_client: "ca-pub-xxxxxxxxxx", 
    enable_page_level_ads: true 
    }); 
</script> 

<ins class="adsbygoogle" 
    style="display:block" 
    data-ad-client="ca-pub-xxxxxxxxxxxx" 
    data-ad-slot="xxxxxxxxxxxx" 
    data-ad-format="link"></ins> 
<script> 
(adsbygoogle = window.adsbygoogle || []).push({}); 
</script> 

========= ===========================

私はちょうど最後の

<script> 
(adsbygoogle = window.adsbygoogle || []).push({}); 
</script> 
0

一つの可能​​な理由は、あなたがサイズ指定での競合を作成するフレームワークを使用して広告ユニットが含まれているdiv要素をスタイリングしているということです削除し、解決策を泉。私の場合、私は広告ディスプレイを台無しにしたブートストラップ・スタイリングを使用していました。

<div id="ad1" class="row"> 
 
<!-- ad code--> 
 
</div>

これは動作しませんでした。私はそれを削除したら:

<div id="ad1"> 
 
<!--ad code--> 
 
</div>

は、それはあなたが表示されていない他の人を削除する必要が

4

うまく働いた、 私は(jQueryの)使用方法:

$(document).ready(function(){ 
    var $analyticsOff = $('.adsbygoogle:hidden'); 
    var $analyticsOn = $('.adsbygoogle:visible'); 

    $analyticsOff.each(function() { 
    $(this).remove(); 
    }); 
    $analyticsOn.each(function() { 
    (adsbygoogle = window.adsbygoogle || []).push({}); 
    }); 
}); 
1

私はこのエラーの解決策を見つけようと一日中終わりました。彼のソリューションは@Emerson Thompsonに感謝したいと思います!

私が働いている環境では、私は広告挿入ツールPro for WordPressに依存しています。プラグインはすべてのレイアウト(モバイルとデスクトップ)でHTMLを印刷することが判明しました。ビューポートの幅を基準として、CSSを使用して一部を非表示にします。

adsbygoogle.jsが非表示の広告を検出すると、TagError: adsbygoogle.push() error: No slot size for availableWidth=0例外が発生し、その後のJavaScriptの実行がブロックされます。

初期化する前に広告の表示を確認してください。

関連する問題