サブ質問は相互に関連しているため、わかりやすくするために並べ替えます。
質問 - 1: JavaScript を使用して、デバイスのブラウザ/ビューポート幅に応じて異なる AdSense 広告サイズ/フォーマットを読み込むことは良い考えですか?
Google AdSense の TOS やその他のポリシーで問題ないかどうかを尋ねているわけではありません。お世話になりました。
私が知りたいのは、これを行うために JavaScript を使用することの欠点はありますか? つまり、Adsense が提供する広告の品質が損なわれるのでしょうか? またはそれは問題ではありませんか?
質問 - 2:もっと良い方法はありますか?
(2a)必要なものを実現するための 2 つの異なるコード スニペットを見つけました。どちらがより信頼性が高く、優れているかはわかりません。
これ:
<script type="text/javascript"><!-- google_ad_client = "ca-pub-3658299045266116"; /* top */ if ($(window).width()<728 ){ google_ad_slot = "4414183254"; google_ad_width = 320; google_ad_height = 50; }else{ google_ad_slot = "1020377061"; google_ad_width = 728; google_ad_height = 90; } //--> </script> <script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"> </script>
「ウィンドウの幅は不安定なので当てにならない。たとえば、一部の Android では、ブラウザが幅を確保するのに最大 500 ミリ秒かかるため、まったく当てにならない」と言う人もいます。それは本当ですか、そして懸念すべきですか?
(2b)またはこれ:
<script type="text/javascript"> google_ad_client = "ca-publisher-id"; if (window.innerWidth >= 800) { google_ad_slot = "ad-unit-1"; google_ad_width = 728; google_ad_height = 60; } else if (window.innerWidth < 400) { google_ad_slot = "ad-unit-2"; google_ad_width = 300; google_ad_height = 250; } else { google_ad_slot = "ad-unit-3"; google_ad_width = 468; google_ad_height = 60; } </script> <script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"> </script>
繰り返しになりますが、別の誰かが「あなたのソリューションは素晴らしいですが、古いバージョンの IE では壊れる可能性があります。最善の方法は、jQuery を使用してブラウザの幅を照会することです
width = $(window).width();
」と言っていますが、2 のコード スニペットで述べた理由で使用できません( a) .
それで、私が必要とすることをするための良い方法は何でしょうか? document.documentElement.clientWidth
? しかし、デスクトップやモバイル デバイスでページをズームしたときの動作はどうなるでしょうか?