1

この質問からのアドバイスから始めて、検索を行ったところ、この Web サイトでコードを見つけました。これは、ページが読み込まれたに、Web ページの特定の場所に Google Adsense 広告を挿入することを目的としています。私の場合、Javascript でチェックを行い、JSON データをサーバーに送り返し、その JSON から得た応答に基づいて、Google Adsense 広告を表示するかどうかを決定します。

このコードは Web から取得したもので、自分で作成したわけではないため、取得できない部分が多く、必要と思われる内容に基づいて詳細を記入しなければならない場所もありましたが、推測していました。少し。これは、私が現在使用しているコードの外観です。

if(userStatus.status == 0)
{
    console.log("google ad should show");

    window["google_ad_client"] = 'ca-pub-0000000000000000';
    window["google_ad_slot"]  = "0000000000";
    window["google_ad_width"]  = 320;
    window["google_ad_height"]  = 50;

    window.adcontainer = document.getElementById('google-ad');
    window.adhtml = '';

    function mywrite(html)
    {
        adhtml += html;
        if(html == '</iframe>')
        {
            adcontainer.innerHTML = adhtml;
        }
    };

    document.write_ = document.write;
    document.write = mywrite;

    script = document.createElement('script');
    script.src='http://pagead2.googlesyndication.com/pagead/show_ads.js';
    script.type='text/javascript';
    document.body.appendChild(script);
}

ほぼ稼働しているようです。

Firebug を有効にして Firefox で自分のページを表示すると、コンソール ログ メッセージが表示されているので、すべての条件を処理したことがわかります。

また、Google が私の Web サイトを承認し、広告が表示されることを確認するためだけに、コードを HTML に直接記述して広告を実行してみました。そうすれば、広告は問題なく表示されるので、Asense アカウントに問題はないと思います。

ただし、 への呼び出しがページの最後に追加されている間、広告パラメーターが意図したとおりに DIVhttp://pagead2.googlesyndication.com/pagead/show_ads.jsに書き込まれていないようです。google-ad

したがって、広告は表示されません。

私のコードはどこで間違っていますか?

4

2 に答える 2

2

問題はif(html == '</iframe>')ラインであることがわかりました。これは Google がアドセンス広告を作成する方法に関係していると思っていましたが、最初にコードを作成した人が HTML を作成するのに必要な方法に特有のものであるに違いありません。

ただし、私の場合は、単に必要ありません。私のコードは次のように変更されました。

function mywrite(html)
{
    adhtml += html;
    adcontainer.innerHTML = adhtml;
};

そして驚いたことに、それはうまくいきます!ページが読み込まれた後に取得された JSON データの結果に応じて表示される Google Adsense 広告ができました。

また、同様のことをしたいと考えている人のためのさらなるヒント: Javascript などで凝ったことをしようとする前に、まず Google 広告を HTML にハードコーディングして、それが機能し、Google がそれを受け入れていることを確認してください。もっと早く気づいていれば、もう少し時間を節約できたかもしれません。

同じ種類のことをしたいかもしれない他の人に役立つことを願っています。

于 2012-07-02T08:22:18.247 に答える
1

よくわかりません...ここにいくつかのコメントがあります:

  1. dividgoogle-adボックスがすでに作成されていることを願っています。

  2. document.write一度だけ動作します
    ページが作成され、DOMが形成されているとき。そのため、そのコードはjs実行の最上位にある必要があります。
    writeDOM / Pageがすでに形成されている場合は、機能しません。

于 2012-06-30T08:58:07.347 に答える