2

さて、私はレスポンシブサイトに取り組んでおり、AdSenseを可能な限り最善の方法で処理しようとしています。私がやりたいのは、ブラウザの幅が533px未満の場合にのみ、jQueryを使用してAdSenseコードを追加することです。このようにして、ウィンドウに適切にフィットし、レイアウトを壊さない小さな広告を表示できます。ただし、AdSenseJavaScriptを追加するのに問題があります。これは機能します:

(function($){
//detect the width on page load
$(document).ready(function(){
var current_width = $(window).width();
//do something with the width value here!
if(current_width < 533){
        $('.ads').prepend("THIS IS WHERE I WANT THE ADSENSE CODE TO GO");
}
});

しかし、これを置き換えるためにAdSenseコードを含めると、これは私が行きたい場所ですが、そうではありません。これはAdS​​enseコードです:

<script type="text/javascript"><!--
google_ad_client = "ca-pub-1234567890";
/* Test Ad */
google_ad_slot = "1234567890";
google_ad_width = 250;
google_ad_height = 250;
//-->
</script>
<script type="text/javascript"
src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
</script>

また、AdSense javascriptコードを.htmlファイルに含め、.htmlおよび.jsファイルにはjQuery.getおよびjQuery.getScriptを使用しようとしました。私はそれを機能させることができません。

単純なPHPヘッダー検出でそれを行うことができますが、デバイスタイプではなく、幅に基づいて広告を表示したいと思います。

誰もがこれを行う方法を知っていますか?

(前の質問への返信がないため、再投稿されました)

4

3 に答える 3

1

これが機能するかどうかはわかりませんが、一見の価値があります。

/* these should be global */
google_ad_client = "ca-pub-1234567890";
/* Test Ad */
google_ad_slot = "1234567890";
google_ad_width = 250;
google_ad_height = 250;

$(function(){
    //detect the width on page load
    var current_width = $(window).width();
    //do something with the width value here!
    if(current_width < 533){
        $.getScript('http://pagead2.googlesyndication.com/pagead/show_ads.js');
    }
});
于 2012-04-11T18:42:12.923 に答える
0

このように外部の.jsをロードしてみましたか?

   var script = document.createElement('script');
   script.src = 'http://pagead2.googlesyndication.com/pagead/show_ads.js';
   script.type = 'text/javascript';
   var head = document.getElementsByTagName("head")[0];
   head.appendChild(script);
于 2012-04-11T18:43:47.540 に答える
0

あなたが直面している問題は、GoogleがAdSenseajaxを実際にサポートしていないことです。アドセンスコードを含める通常の方法は、適切なコンテンツをレンダリングするために、それが存在するページのURLを使用します。

ここで、AdSenseコードを特定のURLに減らすことができると仮定します。あなたはこのようなことをすることができます:

// note, this url is just a suggestion, not something that will likely work 

var url = 'http://pagead2.googlesyndication.com/pagead/ads?client=ca-pub-1234567890&ad_slot=1234567890&ad_width=250&ad_height=250';

var adsContainer = $('.ads');  // though, if there's only one, use id, not class

$.ajax({
type:'GET',
    url:url,
    async:true,
    success:function(html) {
        adsContainer.html(html);
        return false;
    },
    error: function(html) {
      adsContainer.html('SOME DEFAULT AD MESSAGE');
      return false;
    } 
});

しかし、これはほぼ間違いなく、Googleで問題を起こすようなものだと思います。

GoogleはAdSenseのajaxプログラムを持っていました:

https://developers.google.com/adsense-for-ajax/

しかし、現在は「利用不可」です。コードを外部の.htmlまたは.phpファイルと自分のサーバー上のajaxに配置できない理由は、javascriptがajax呼び出しによってクライアント側のエンジンによって実行されないためです。javascriptエンジンによってすでに解釈されているページに生のjavascriptを挿入しています。

node.jsまたはある種のサーバー側のjavascriptパーサーを使用して.htmlファイルを提供できますか?たぶん、しかしそれはこの問題を解決するためにたくさんあります。

私のアドバイスは次のとおりです。大きなページに積み重ねると見栄えが良く、小さなページに詰め込んだ場合は並べて表示される、複数の小さな広告を含めます。

于 2012-04-11T19:02:04.997 に答える