web-dev-qa-db-ja.com

jQueryはGoogleAdsenseをdivに追加します

私はグーグルアドセンスに問題があり、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コードを間違って書いたと思います。

21
SoulieBaby

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

<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は、コードが移動されていないことを確認するための積極的な方法を組み込んでいました。そうである場合、ページは空白になります。グーグルがこれを行った理由は私を超えていますが、私はこの回避策が私のために働くことを発見しました...

21
Danny Roodbol

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

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

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

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

3

ページのどこかに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);

これは私にとってはうまくいきます。

1
krisrak

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

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

1
Adam

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

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を移動します。

0
Vova Popov

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

基本的な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>

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

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

そして最後に、HTMLに書き込まれたすべてのAdSense広告を循環し、HTMLで作成された広告スライドスロットに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>

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

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

0
Chris

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

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

<div id="adsense" style="display:none;">
   [YOUR ADSENSE SCRIPT HERE]
</div>
0
Zeus

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

0
cauleyfj

私はこのバリアントを使用します。すべて良いです!

$(document).ready(function() {
$("div.youtube_ad").html("<iframe src='/adsense.html' width='350' height='290' scrolling='no'></iframe>")
});

Adsense.htmlにAdSenseコード「AsIs」を入れてください。

0
Max Ganistrat

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

0
IkimashoZ