0

通常は 300x250 の広告が表示される背景画像を表示しようとしていますが、adblock が広告をブロックしている場合のみです。これを行う方法を知っている人はいますか?div を使用すると、広告が読み込まれる前に背景が表示されますが、これは望ましくありません。

ありがとう

4

3 に答える 3

1

訪問者のコンピュータには広告ブロック ソフトウェアがインストールされているため、広告がブロックされているかどうかを知る方法はありません (私が考えることができます)。ただし、広告は JavaScript で表示されるため (特に adblock ソフトウェアによってターゲティングおよびブロックされます)、ページの最後で広告が読み込まれたかどうかを確認する JavaScript を記述し、そうでない場合は CSS クラスを追加することができます。div必要な背景画像を表示します。擬似コード:

<style type="text/css">
     .adblocked { background: url("img/no-ad.jpg") left top no-repeat; }
</style>

<div id="ad"></div>

<script src="ads.js"></script>
<script>
    if (typeof adLibraryName === "undefined") {
        // ad stuff was not loaded
        document.getElementById("ad").className += " adblocked";
    }
</script>

MAXIM が述べたように、これは PHP とは関係がなく、PHP で動作させる方法はありません。PHP はサーバー上で実行され、広告ブロックがインストールされているかどうかがわからないためです。簡単に言えば、これはすべてクライアント側の問題です。

于 2012-12-14T12:59:11.257 に答える
0

Adsense がブロックされているかどうかを確認し、代替コンテンツを広告コンテナにロードします。

if (typeof(window.google_jobrunner) == '未定義') {

// Adsense がブロックされているため、別のものをコンテナにロードします

}

これを行う場合は、CSS でコンテナーの高さを設定することをお勧めします。

[ブロック可能なアイテムを開く] を選択すると、Firefox で Adblock Plus がブロックしているものを確認できます。

Adblock Plus は、ファイル名に一般的な広告のサイズを含む画像もブロックします。たとえば、'whatever_468x60.png' はおそらくブロックされます。

于 2012-12-23T07:52:39.553 に答える
-1

PHPで質問にタグを付けたので、phpメガネをオンにして答えます:これの問題は、広告ブロックがクライアント側であり、phpを介してdivを追加するのがサーバー側であることです。したがって、最初にクライアント側で何が起こるかを知り、コードを作成する必要がありますが、それはうまくいきません。おそらく AJAX リクエストを介してこれを行うこともできますが、それはとにかく adblock がアクティブ化されているかどうかを知らずに最初にページを送信することを意味します.</p>

乾杯、±…</p>

于 2012-12-14T12:43:44.557 に答える