• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:コンテンツの移動方法について)

ブログの広告配置方法について

このQ&Aのポイント
  • ブログの記事と記事の間に広告を配置する方法について悩んでいます。記事の特性により、単純に広告スクリプトを張ることができず、一番上または一番下にしか広告を貼れません。
  • 記事と記事の間に広告を挿入したい場合、広告スクリプトを記事の一番下に配置し、特定のタグで記事と記事の間に表示させる方法を考えています。
  • 広告スクリプトを記号Aに代入し、それを記事と記事の間に読み込むタグとして利用する方法を考えています。ただし、HTMLの初心者なので、正確な実装方法が分からないかもしれません。

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

  • ベストアンサー
  • www15
  • ベストアンサー率54% (6/11)
回答No.2

貼り付けるコンテンツがGoogle Adsenseの広告ということであれば、JavaScriptを用いれば貼り付けることが可能です。(ほかの広告でもおそらく可能でしょう) ただし、貼り付けるのは記事の内部(記事本文の一番下など)となり、完全に記事と記事の間に表示することはできません。 また、JavaScriptが無効な環境では表示されません。 まず、ページ一番下のページ要素には、「HTMLを編集」モードで以下の内容を書きます。 <div id="ad"> ここに広告を貼り付ける </div> <script type="text/javascript"><!-- // 以下のJavaScriptで、記事中の<span id="ad###"></span>の部分を // すべて上記の広告に置き換えます。 oElements = document.getElementsByTagName("span"); for (i = 0; i < oElements.length; i++){ id = oElements[i].id; if(id.match(/^ad\d+$/i)){ oElements[i].innerHTML = document.getElementById("ad").innerHTML; } } //--></script> そして記事の投稿時には、必要な記事を入力した後、「HTMLを編集」に切り替えてから、広告を挿入したい場所に <span id="ad###"></span> のように書きます。 (###には適当な数字の列を入れて下さい。ただし重複した数字がページ中に存在してはいけないため、例えば「20070601」のように投稿した日付などを用いることをお勧めします。) こうすることで、一番下に広告を表示し、さらに各記事の本文の一番下にも広告を表示できます。

shitimi
質問者

お礼

回答ありがとうございます。 これはかなり凄いですね。各記事の下に広告を表示できるようになりました。 しかし、Google Adsenseの規定で1ページに表示される広告の数は3つまでと決まっているので、その規定をオーバーすることになってしまいました。(1ページに記事が3つ以上ある為です。)そこで広告の表示位置を記事の下ではなく日付の下に指定し、また1ページに表示される記事の量を2日分としたことによってその問題は解決したのですが、記事をカテゴリ(ラベルと呼ばれるもの)毎にアーカイブ化して表示させると、今までそのカテゴリに投稿した記事がすべて表示されてしまい、広告も、そこに表示された記事の投稿日数分が表示されてしまいます。分りづらくてすみません。 例えば広告の数をカウントするスクリプト(実際にあるのか分りませんが)で広告の表示をカウントし、3つに達したらdisplay:noneなどのコードを使い、それ以上広告を表示させない、といったちょっと力技な方法はあるのでしょうか?要は、広告を3つまで表示させたいです。 今回の質問である「コンテンツの移動方法について」は解決しているので少ししたら質問を閉め切ろうと思いますが、もしお時間がありましたら教えていただきたいです。

その他の回答 (2)

  • www15
  • ベストアンサー率54% (6/11)
回答No.3

実際には試していませんが、これでいけるかと思います。 <div id="ad"> ここに広告を貼り付ける </div> <script type="text/javascript"><!-- // 以下のJavaScriptで、記事中の<span id="ad###"></span>の部分を // すべて上記の広告に置き換えます。 oElements = document.getElementsByTagName("span"); pasted = 0; // この変数で、貼り付けた数を数える for (i = 0; i < oElements.length; i++){ id = oElements[i].id; if(id.match(/^ad\d+$/i)){ oElements[i].innerHTML = document.getElementById("ad").innerHTML; pasted++; if(pasted >= 2) break; // 貼り付けた数が2個を超えたら(全体の数が3個を超えたら)終了 } } //--></script>

shitimi
質問者

お礼

度々ありがとうございます。Javascript勉強してみようかと思いました。凄すぎです。 これなら、当初の予定通り記事の下に広告を表示し、かつ3個以下に管理出来るようになりました。 この度は、誠にありがとうございました。

  • www15
  • ベストアンサー率54% (6/11)
回答No.1

あなたがどのブログサービスを利用してブログを運営しているのか分からないので、何ともお答えできません。 もし、あなたのブログが他者の提供するサービスを使っているのであれば、そもそもスクリプトを挿入しようとしてもそれが無効化されるので、不可能だと思います。 もしあなたが、Webスペースを(無料でも有料でも)レンタルしていて、そこにブログCGIを設けているのであれば、そのソースコードをいじる方法が考えられます。

shitimi
質問者

お礼

アドバイスありがとうございます。 すみません説明不足でした。 ブログサービスは、googleのblogspotを利用しています。 >そもそもスクリプトを挿入しようとしてもそれが無効化される はい、普通にスクリプトのタグをhtml構文中に挿入するとエラーになってしまうのですが、blogspotの独特のシステムである「ページ要素」として挿入するとスクリプトは使用可能です。ですが、ページ要素は、挿入出来る位置が決まっております。「投稿記事」自体もページ要素なのですが、その内部に、ページ要素として広告のスクリプトを何とか入れることはできないかと考えまして・・。 ストレートにページ要素の中にページ要素を入れようとするとエラーになってしまうので、上記のような方法を考えた次第です。 blogspot自体はphp仕様ではないのですが、phpを使わないとやはり無理でしょうか?

関連するQ&A