21

私はグーグルアドセンスに問題があり、jQueryの前にロードしてコードを強制終了するので、ドキュメントレディ関数を使用して適切なdivにグーグルアドセンスJavaScriptを追加しようと思ったので、これが私がしようとしているコードです書きます:

<script language="javascript" type="text/javascript">
$(document).ready(function(){
    $(".googleBanners").html("<script language='javascript' type='text/javascript'>\n" + "google_ad_client = 'pub-8487967187298044';\n" + "google_ad_slot = '1088799521';\n" + "google_ad_width = 250;\n" + "google_ad_height = 250;\n" + "</" + "script>\n" + "<script language='javascript' src='http://pagead2.googlesyndication.com/pagead/show_ads.js' type='text/javascript'>" + "</" + "script>");
});
</script>

しかし、私はjavascript / jQueryを書くのが苦手なので、誰かがこれを実装するのを手伝ってくれるなら、それは素晴らしいことです。

私が現在取得しているFFのエラーは、「エラー:google_protectAndRunが定義されていません」です。それが何を意味するのかわかりませんが、jQueryコードを間違って書いたと思います。

4

9 に答える 9

22

これを行う方法は、広告を表示したい場所にプレースホルダーを配置することです。

<html>
   <body>
      <div id="googleadgoeshere"></div>
   </body>
</html>

次に、ページの最後にあるコンテナにgoogle-codeを配置します。

<div id="adsense" style="display:none;">all the google javascript goes here</div>

次に、jQueryを使用して、ページの読み込みが完了したら、AdSenseコードが作成するiframeを移動します。

$(window).load(function(){
    $("#adsense").find("iframe").appendTo("#googleadgoeshere"); 
    $("#adsense").remove();
});

#adsense divを移動しようとすると、空白のページが表示されます。他の方法でこれを実行しようとすると、空白のページが表示されます。Googleは、コードが移動されていないことを確認するためのアクティブな方法を組み込んでいました。そうである場合、ページは空白になります。グーグルがこれを行った理由は私を超えていますが、私はこの回避策が私のために働くことを発見しました...

于 2010-06-02T11:11:02.453 に答える
3

そのように外部スクリプトを含めることはできません。

ページの読み込み後にJavaScriptを含めるには、jQueryのjQuery.getScript()関数を使用する必要がありますが、それがGoogleAdsenseで機能するかどうかはわかりません。

もう少し情報はここで見つけることができます:

http://geek.littleredstring.com/17-load-adsense-last-jquery

于 2009-07-17T12:18:39.317 に答える
1

ここのコードを試して失敗した後、私は使用していたjQueryオブジェクトを取得し、それを新しいhtmlページに配置することになりました。それを行ったら、iframeを使用してAdSenseのあるページに配置しました。

現在、AdSenseとjQueryは問題なく同時に実行されます。

于 2012-04-09T19:55:42.167 に答える
1

ページのどこかにAdSenseコードを含む非表示のDIVを追加します。

<div id='adsense' style="display:none">
    <script type="text/javascript"><!--
        google_ad_client = "ca-pub-xxxxxxxxxxxxxx";
        google_ad_slot = "xxxxxxxxxx";
        google_ad_width = 300;
        google_ad_height = 250;
        //-->
    </script><script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"></script>
</div>

javascriptを使用して、広告を読み込むための動的DIVを作成します。

$("body").append("<div id='adslot' ></div>");

広告を挿入するJqueryコード:

var ad = $("#adsense").html();
$("#adslot").html(ad);

これは私のために働きます。

于 2013-08-23T17:48:44.827 に答える
0

私はこれとまったく同じ問題を抱えていました。最終的には、jQueryを使用して、GoogleAdSensejavascriptを含むhtmlファイルを指すsrcをロードすることで問題を解決しました。グーグルAdSenseコードがを作成するので、これはかなりエレガントではありません<iframe>。そして、私はたまたまFacebookアプリケーションを使用しているので、私の場合、(私のFacebookアプリ)の(Firefoxエラーを回避するために使用したもの<iframe>)に(Google広告)があります。しかし、それは機能します。<iframe><iframe>

于 2010-05-19T01:39:15.123 に答える
0

ダニーの答えは、私が自分で広範囲にわたる実験に失敗した後、これに対する基本的な解決策を説明したので、ありがとう!ただし、特定のページで置き換えたい広告の数が不明であるため、より複雑なソリューションが必要でした。そのため、次のようにしました。

基本的なhtml(php)の概要、ala Dannyの形式-dbクエリからの行のさまざまな要因に基づいて、広告数が増加していることに注意してください。つまり、事前に数を知ることは不可能です。

<html>
   <body>
<? while ($r = mysql_fetch_assoc($rs)) { if (true) { ?>
      <div class="adslide"><?=$ads++?></div>
<? } } ?>
   </body>
</html>

上記で作成したAdSenseDivごとに1つあるので、すぐに作成するAdSenseDivのCSSを分離しました。

<style> .adsense { display: none; } </style>

ここでは、ページの下部に配置され、グーグルからhtmlに実際の広告を取得します。カウントは、上からのスロットの数によって決まります。

<?php for ($i = 0; $i < $ads; $i++) { echo '<div class="adsense">'.$adscript.'</div>'; } ?>

そして最後に、HTMLに書き込まれたすべてのAdSense広告を循環させ、HTMLで作成されたAdSenseスロットに1つずつ入力します。各広告とスロットは、それらまたはそれらを削除することにより、一度だけ使用/入力されるようにします。私がそれらを終えた後のクラス:

<script>
// http://stackoverflow.com/questions/1142861/jquery-append-google-adsense-to-div
$(function () { var b, a = $(".adsense").first();
 for (; a.length > 0; a = $(".adsense").first())
 { b = $(".adslide").first(); b.append(a.find("iframe"));
  a.remove(); b.removeClass("adslide"); } });
</script>

これはグーグルからの非常に奇妙なバグです。私はそれが実際に広告を表示せずにインプレッション数を収集しようとするために人々が広告を隠すことを防ぐためにグーグルが作成したいくつかの保護に関連していると推測することができます(つまり、100万を置くことができますこれらはhtmlにありますが、ユーザーには表示されないため、Googleが検出するまで現金を収集します)。ただし、このバグはIEとSafariには表示されませんが、FirefoxとGoogle独自のChromeには表示されます...それは奇妙なことです。彼らは間違いなく彼らの側でこれを修正する必要があります。

同じソフトウェアを使用している場合:カルーセルでユーザーが送信した写真と広告が混ざっているjQueryカルーセル(http://sorgalla.com/projects/jcarousel/)を実装するときに、この問題に自分で遭遇しました。

于 2010-12-04T04:57:32.643 に答える
0

このコードのみが機能します

var i = 0;
obj = $(".materialContent p");
size = obj.size();
for (i=0; i<size; i++)
{
    cur = obj[i];
    if (i == 2)
    {
        $("#mainTopAdvDiv").appendTo(cur); 
    }
}

削除せず、完全なdivを移動します。

于 2011-12-17T14:56:44.170 に答える
0

linkを介してロードされていたページにajax設定data-ajax="false"し、ロードされたページに戻るボタンを使用するようにユーザーに依頼します。

于 2012-04-11T03:12:05.750 に答える
0

これが私がやる方法です。シンプルで短い。

<script>
$(window).load(function(){
    $('#adsense').fadeIn(0);
});
</script>

<div id="adsense" style="display:none;">
   [YOUR ADSENSE SCRIPT HERE]
</div>
于 2014-12-23T12:28:41.120 に答える