adsense広告がphp出力できない

このQ&Aのポイント
  • adsense広告のPHP出力に問題があり、広告が表示されません。
  • 広告のscript内でwidth,heightの値が0になってしまっており、表示されない原因と考えられます。
  • PHPのコードを直接htmlに貼り付ければ、広告は正常に表示されます。
回答を見る
  • ベストアンサー

adsense広告がphp出力できない

お世話になります。 以下の構文が記載されたPHPをhtmlからjavascriptにて呼び出してます。 が、うまく広告が表示されずに困っています。 PHPを直接叩き、document.write等を削除したものを 直接htmlに貼り付ければ、広告は表示されます。 広告が表示されない原因としては、adsenseのscript内でinframeを作成しているのですが そのさいのwidth,heightが0になってしまっているようです。 しかし、なぜその値が渡せていない?のかが解らずハマっています。 <?php header("Content-type: application/x-javascript"); echo "document.write(\"<div align='center'>\")\n"; echo "document.write(\"<p>\")\n"; echo "document.write(\"<script type='text/javascript'><!--\")\n"; echo "document.write(\"google_ad_client = 'hogehogeID';\")\n"; echo "document.write(\"/* 200*200 */\")\n"; echo "document.write(\"google_ad_slot = 'slotnumber';\")\n"; echo "document.write(\"google_ad_width = 200;\")\n"; echo "document.write(\"google_ad_height = 200;\")\n"; echo "document.write(\"//-->\")\n"; echo "document.write(\"</script>\")\n"; echo "document.write(\"<script type='text/javascript'\")\n"; echo "document.write(\"src='http://pagead2.googlesyndication.com/pagead/show_ads.js'>\")\n"; echo "document.write(\"</script>\")\n"; echo "document.write(\"</p>\")\n"; echo "document.write(\"</div>\")\n"; ?> よろしくお願い致します。

  • PHP
  • 回答数5
  • ありがとう数1

質問者が選んだベストアンサー

  • ベストアンサー
  • shimix
  • ベストアンサー率54% (865/1590)
回答No.5

ANo.1です。 >PHPにてechoしているのでphpカテゴリに質問しているだけです。 了解しました。そういうことであれば(私は)以降スルーします。JavaScriptカテで質問して「動作する外部JSファイル」を仕上げるのが先だと思いますので。

appplus2
質問者

お礼

>JavaScriptカテで質問して「動作する外部JSファイル」を仕上げるのが先だと思いますので。 その方が早そうですね。 技術カテは広く精通している方が多いので期待しましたが 絞って質問したいと思います。 ありがとうございました。

その他の回答 (4)

  • shimix
  • ベストアンサー率54% (865/1590)
回答No.4

ANo.1です。 >>PHPを直接叩き、document.write等を削除したものを >>直接htmlに貼り付ければ、広告は表示されます。 いやいや「document.write等を削除したもの」ってそれは違うでしょう。「外部JSとして」動くソースは確認出来ているんですかと。下記ソース(提示されたソースが返すものです)を外部JSとして読み込んだら動作するのは確認済みですか? test.js document.write("<div align='center'>"); document.write("<p>"); document.write("<script type='text/javascript'><!--"); document.write("google_ad_client = 'hogehogeID';"); document.write("/* 200*200 */"); document.write("google_ad_slot = 'slotnumber';"); document.write("google_ad_width = 200;"); document.write("google_ad_height = 200;"); document.write("//-->"); document.write("</script>"); document.write("<script type='text/javascript'"); document.write("src='http://pagead2.googlesyndication.com/pagead/show_ads.js'>"); document.write("</script>"); document.write("</p>"); document.write("</div>"); 上記内容をtest.jsとして読み込んで動作しないのであれば、静的な外部JSファイルで返そうがphpで動的に生成して返そうが同じです。それは「JavaScriptとしておかしい」のであって、php云々以前の問題です。

appplus2
質問者

補足

うーん。伝えるのは難しいですね。 >それは「JavaScriptとしておかしい」のであって、php云々以前の問題です。 質問に「PHPをhtmlからjavascriptにて呼び出してます。」と書いてまして 結果的に表示されないという質問なんです。 php云々以前というよりは 私としてみればPHPだろうとJavaScriptだろうとどっちでも良いんです。 htmlに直書きして出る=JavaScriptが悪さをしているのは明白ですし 値が渡せていない=JavaScriptが悪さをしているのは明白です。 PHPでは何も処理していないので。 ただ、手法としてPHPにてechoしているのでphpカテゴリに質問しているだけです。 ありがとうございました。

  • shimix
  • ベストアンサー率54% (865/1590)
回答No.3

ANo.1です >>content-typeをtext/plainにして表示させた内容 >上記内容にしても何も表示されないのです・・・ それは「あり得ない」です。そう変更したphpスクリプトにアクセスしていますか(そういう意味で書きましたが・・)。 そもそも提示された内容が外部jsとして動作することは確認できているのでしょうか? 本来、外部jsとして動作することを確認した上で、それを(何らかの動的に生成した部分があるので)phpスクリプト化するという手順のハズです(∴ 提示されたソースに動的な部分が存在しないのが不思議です)。

appplus2
質問者

補足

何度もありがとうございます。 >それは「あり得ない」です。そう変更したphpスクリプトにアクセスしていますか(そういう意味で書きましたが・・)。 あっ、PHPファイルに直接アクセスすれば表示されています。 最初の質問にも書いてます。 >>PHPを直接叩き、document.write等を削除したものを >>直接htmlに貼り付ければ、広告は表示されます。 >そもそも提示された内容が外部jsとして動作することは確認できているのでしょうか? もともとHTML上に記載していたものをPHPファイルに書き、共通化しようというのが 目的で、HTML上で動作確認しているものを書いています。 ちなみに・・・もともとの実行結果が以下になっています。 <div align="center"><p><script type="text/javascript"><!-- google_ad_client = 'hogehogeID'; /* 200*200 */ google_ad_slot = 'hogeID'; google_ad_width = 200; google_ad_height = 200; //--></script><script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"></script><ins style="display:inline-table;border:none;height:nullpx;margin:0;padding:0;position:relative;visibility:visible;width:nullpx"><ins id="aswift_6_anchor" style="display:block;border:none;height:nullpx;margin:0;padding:0;position:relative;visibility:visible;width:nullpx"><iframe allowtransparency="true" hspace="0" marginwidth="0" marginheight="0" onload="var i=this.id,s=window.google_iframe_oncopy,H=s&amp;&amp;s.handlers,h=H&amp;&amp;H[i],w=this.contentWindow,d;try{d=w.document}catch(e){}if(h&amp;&amp;d&amp;&amp;(!d.body||!d.body.firstChild)){if(h.call){i+='.call';setTimeout(h,0)}else if(h.match){i+='.nav';w.location.replace(h)}s.log&amp;&amp;s.log.push(i)}" vspace="0" id="aswift_6" name="aswift_6" style="left:0;position:absolute;top:0;" frameborder="0" height="null" scrolling="no" width="null"></iframe></ins></ins></p></div> ↓ここに値が渡ってないと思うんですが・・・ height="null" scrolling="no" width="null

  • t_ohta
  • ベストアンサー率38% (5061/13226)
回答No.2

なぜ、単純に文字列を書き出しているだけなのに scho 命令を使用しているのでしょうか。 <?php header("Content-type: application/x-javascript"); ?> document.write("<div align='center'>"); document.write("<p>"); ・・・・・ とするだけでいいと思うのですが。 どうしても echo を使わなければいけない理由があるのであれば、 echo "document.write(\"<div align='center'>\")\n"; を echo "document.write(\"<div align='center'>\");\n"; と、全ての document.write の閉じ括弧の後ろに ; を付けるようにしてください。 たぶん ; が無いためJavaScriptの実行時に命令文の区切り位置が分からずエラーになっているのだと思われます。

appplus2
質問者

補足

ご回答ありがとうございました。 上記どちらもダメでした。

  • shimix
  • ベストアンサー率54% (865/1590)
回答No.1

#headerでのContent-typeはtext/javascriptの方が・・・ とりあえず問題を切り分けてください。content-typeをtext/plainにして表示させた内容を(外部jsファイルとして)保存したものを使ってもダメなら、phpの問題ではありません。 というか、JavaScriptでJavaScriptのソースをdocument.writeする(しかもfunctionでなくそのまま動かす)ってどうなんですかねぇ・・・

appplus2
質問者

補足

ご回答ありがとうございました。 >content-typeをtext/plainにして表示させた内容 上記内容にしても何も表示されないのです・・・ ただ、phpファイルを呼び出したhtmlを表示させて 選択範囲のソース表示を行うと、質問内容にあるような状態が確認できます。 おそらく「http://pagead2.googlesyndication.com/pagead/show_ads.js」に IDやサイズを渡しているんだと思うのですが これがうまく渡っていないんですよね。。

関連するQ&A

  • adsenseをjavascriptで出力したい

    お世話になります。 以下の構文が記載されたPHPをhtmlからjavascriptにて呼び出してます。 が、うまく広告が表示されずに困っています。 PHPを直接叩き、document.write等を削除したものを 直接htmlに貼り付ければ、広告は表示されます。 広告が表示されない原因としては、adsenseのscript内でinframeを作成しているのですが その歳のwidth,heightが0になってしまっているようです。 しかし、なぜその値が渡せていない?のかが解らずハマっています。 <?php header("Content-type: application/x-javascript"); echo "document.write(\"<div align='center'>\")\n"; echo "document.write(\"<p>\")\n"; echo "document.write(\"<script type='text/javascript'><!--\")\n"; echo "document.write(\"google_ad_client = 'hogehogeID';\")\n"; echo "document.write(\"/* 200*200 */\")\n"; echo "document.write(\"google_ad_slot = 'slotnumber';\")\n"; echo "document.write(\"google_ad_width = 200;\")\n"; echo "document.write(\"google_ad_height = 200;\")\n"; echo "document.write(\"//-->\")\n"; echo "document.write(\"</script>\")\n"; echo "document.write(\"<script type='text/javascript'\")\n"; echo "document.write(\"src='http://pagead2.googlesyndication.com/pagead/show …\")\n"; echo "document.write(\"</script>\")\n"; echo "document.write(\"</p>\")\n"; echo "document.write(\"</div>\")\n"; ?> adsenseコード中にコメントが使用されているのですが このあたりが怪しいと思いますが・・・ 博識な方、よろしくお願い致します。

  • 『外部JSファイル』を呼び出しても思った動作しない

    下記内容の『外部JSファイル』を呼び出しているのですが 広告が表示されません。 下記内容に不備ありましたら、ご指摘お願いいたします。 document.write("<div align='center'>") document.write("<p>") document.write("<script type='text/javascript'><!--") document.write("google_ad_client = 'hogehogeID';") document.write("/* 200*200 */") document.write("google_ad_slot = 'slotnumber';") document.write("google_ad_width = 200;") document.write("google_ad_height = 200;") document.write("//-->") document.write("</script>") document.write("<script type='text/javascript'") document.write("src='http://pagead2.googlesyndication.com/pagead/show …") document.write("</script>") document.write("</p>") document.write("</div>") 広告が出ないというか、google_ad_widthとgoogle_ad_heightの値が渡っていないようです。 よろしくお願いいたします。

  • htmlからPHPを呼び出す方法について教えてください

    <script type="text/javascript" src="/init.php"></script> 楽天商品検索APIを利用したブログパーツの作成をPHPにて行っております。 公開されているサンプルソースを元にブログ上に指定したキーワードの 検索結果を表示させるPHPを作成しております。 HTML側にてPHPを呼び出す際に、PHPに記述したHTMLのソースを document.writeで囲って出力しようとしておりますが上手くいきません。 呼び出し側 <script type="text/javascript" src="/test.php"></script> ■test.php <?php //PHPソース(省略) $str_test = 'zzzzz'; header("Content-Type: application/x-javascript; charset=UTF-8"); echo " document.write(\"<table width=\"100%\" border=0 cellspacing=1 cellpadding=5 style=\"font-size:12px;\">\") document.write(\" <tr style=\"background-color: #ffffff;\">\") document.write(\" <td width=\"8%\" align=\"center\" rowspan=\"4\">\") document.write(\" abcde\") document.write(\" </td>\") document.write(\" <td width=\"8%\" align=\"center\" rowspan=\"4\">\") document.write(\" $str_test\") document.write(\" </td>\") document.write(\" </tr>\") document.write(\"</table>\") "; ?> 上記の様にダブルクォートをエスケープしたのですが 呼び出し側には何も表示されませんでした。 document.writeにて下記の様に記述した場合は表示されましたので 上記ソースの何処かが間違っているのは分かったのですが そこから先に進めず困っております。 ■表示された例 echo " document.write(\"$str_test\") "; 解決策、別案などありましたらご教授いただけたら幸いです。 どうぞよろしくお願いいたします。

    • ベストアンサー
    • PHP
  • このサイトの仕組みを教えてください。

    このサイトの仕組みを教えてください。 ttp://affisearch.com/ googleアドセンスのIDを入力すると、 その人の運営しているサイトリストが表示されます。 同じようなものを作りたいのです。 仕組みを教えて下さい。 PHP, PERLどちらでも構いません。 グーグルアドセンスの場合、javascriptです。 <script type="text/javascript"><!-- google_ad_client = "pub-XXXXXXXXXXX"; google_ad_width = 728; google_ad_height = 90; //--> </script> <script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"> </script> </div> javascriptだとサーチエンジンで引っかかりません。 上記のサイトはどうやって作っているのでしょうか。

    • ベストアンサー
    • PHP
  • phpからjsへ

    はじめまして。 jQueryの$.ajax関数のGETを使って phpからjavascriptに echo 'document.write("<script type='text/javascript'>var like_arr=new Array(1,1,1,1,1,1,1,1,1,1,1,1,1)</scr"+"ipt>");' と値を返してarrayを作成しようと思っています。 しかしこの返し方だと ブラウザに表示した時 document.write(" とhtml上に表示されてしまいarrayが作成されません。 しかしjsに直接 document.write("<script type='text/javascript'>var like_arr=new Array(1,1,1,1,1,1,1,1,1,1,1,1,1)</scr"+"ipt>"); と書き込んでみるとarrayが存在しています。 どうしたらphpからの値でdocument.writeをする事が出来ますか? 分かる方いらっしゃいませんか? よろしくお願いします。

    • 締切済み
    • PHP
  • JavaScriptのDOMでGoogle Ads

    JavaScriptのDOMでGoogle Adsenceコードを表示させたいです。 var test = document.getElementById("test"); var code='【Google Adsenceコード】'; test.innerHTML=code; が上手くいきません。 Google Adsenceコードの中に、<script type="text/javascript"><!-- などが入っているからでしょうか? よろしくお願いいたします。 Google Adsenceコードの例。 <script type="text/javascript"><!-- google_ad_client = "ca-pub-11111111111111111"; /* test */ google_ad_slot = "11111111111111"; google_ad_width = 728; google_ad_height = 90; //--> </script> <script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"> </script>

  • エクセルのセルにADタグ

    エクセルのセルにADタグ <script type="text/javascript"><!-- google_ad_client = "pub-nnnnnnnnnnnnnnnn"; /* 300x250, 作成済み yy/mm/dd */ google_ad_slot = "nnnnnnnnnn"; google_ad_width = 300; google_ad_height = 250; //--> </script> <script type="text/javascript" src="ttp://pagead2.googlesyndication.com/pagead/show_ads.js"> </script> を貼り付け、このセルをテキストファイルにコピペすると、 "<script type=""text/javascript""><!-- google_ad_client = ""nnnnnnnnnnnnnnnn""; /* 300x250, 作成済み yy/mm/dd */ google_ad_slot = ""nnnnnnnnnn""; google_ad_width = 300; google_ad_height = 250; //--> </script> <script type=""text/javascript"" src=""ttp://pagead2.googlesyndication.com/pagead/show_ads.js""> </script>" わかりづらいので、一行目だけを比較してみると <script type="text/javascript"><!-- ↓ ↓ ↓ ↓ "<script type=""text/javascript""><!-- のように余分に「”」がついてしまいますが、 この余分な「”」が増えないようにする方法があれば教えていただけませんでしょうか? よろしくおねがいしますm(_ _)m

  • 同じJavaScriptを共通にして、別ファイルにする方法は(ソース付き)?

    よろしくお願いします。 ログの出力をするために、全てのページに同じJavaScriptを埋め込んでいます。 ただ、あまりにも行数が多くなる可能性があるので、この部分を1つのファイルにまとめたいと思っています。 具体的には、現状を変更後のようにしたいと思います。 そこで、Common.jsにはどのように記述をすれば良いでしょうか? ●現状 </table> <SCRIPT Language="JavaScript"> <!-- document.write("width="+screen.width+"&"); document.write("height="+screen.height+"&"); document.write("color="+screen.colorDepth+"'>"); // --> </SCRIPT> <script src="http://www.google-analytics.com/urchin.js" type="text/javascript"> </script> <script type="text/javascript"> _uacct = "********"; urchinTracker(); </script> </body> </html>  ↓↓↓ ●変更後 </table> <SCRIPT SRC="../scripts/Common.js"></SCRIPT> </body> </html>

  • HTML→PHPへ値を渡して再びHTMLに結果出力

    HTMLからPHPへ値を渡して、再びHTMLに結果を表示したいと思っています。 以下のような簡単なコードを書いてみましたが、HTMLのページに"OK"という文字が表示されません。 PHPのパーミッションは755でやっており、PHPが動作するサーバーでテストしています。 どう修正すれば良いのか、アドバイスをお願い頂けますでしょうか? どうぞよろしくお願い致します。 【HTML】 <html> <head> </head> <body> </body> <script type="text/javascript" src="http://xxx.com/test/jsphptest.php?param=1"></script> </html> 【PHP】 <?php $param = $_GET['param']; header("Content-type: application/x-javascript"); if ($param == '1') { echo "document.write(\"OK\")"; } else { echo "document.write(\"NG\")"; } ?>

    • ベストアンサー
    • PHP
  • ブログにアフィリエイト

    Gooのアフィリエイトを付けたいと思ったのですがうまくできません。 どこにこれを入れたらいいのですか? <body></body> を見つけられませんでした。 どこからHTMLに変えればいいのでしょうか? <script type="text/javascript"><!-- google_ad_client = "ca-pub-5404271037144108"; /* ha-fu */ google_ad_slot = "0166062550"; google_ad_width = 234; google_ad_height = 60; //--> </script> <script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"> </script>