自動広告(基礎編)

xreaでは通常、広告が自動的に挿入される。 これによってどのような影響がでるか見てみる。

自動広告がすること

bodyの開始タグを探し、その直後に広告タグを挿入する。 もし、bodyの開始タグが発見されなければ、挿入はされない。 逆に、bodyの開始タグが二つ以上あるのであれば、その全てに挿入されてしまう。

挿入されるタグは次のようになる。 見やすいように便宜改行及びインデントしてあるが、実際は改行や空白はない。 *1

<center>
  <a href="http://www.xrea.com/" target="_blank">
    <img src="http://ad3.xrea.com/~cgi/xrea/banner_top_1.gif"
         width="468" height="10" border="0">
  </a>
  <br>
  <iframe frameborder="0" allowtransparency="true" height="60" width="468"
          marginheight="0" scrolling="no"
          src="http://ad.jp.ap.valuecommerce.com/servlet/htmlbanner?sid=8239&pid=870235077"
          marginwidth="0">
    <script language="javascript"
            src="http://ad.jp.ap.valuecommerce.com/servlet/jsbanner?sid=8239&pid=870235077">
    </script>
    <noscript>
      <a href="http://ck.jp.ap.valuecommerce.com/servlet/referral?sid=8239&pid=870235077"
         target="_blank" >
        <img src="http://ad.jp.ap.valuecommerce.com/servlet/gifbanner?sid=8239&pid=870235077"
             height="60" width="468" border="0">
      </a>
    </noscript>
  </iframe>
</center>

注意!上のは、自動挿入広告専用のタグです。手動広告には使えません。

なお、携帯から見た場合は、テキスト広告になる。

この広告タグは、これだけでhtmlの様式を決めてしまう恐ろしいものである。 まず、空タグが/>で終わっていないので、xhtmlは使えない。 つぎに、center、iframeとaのtarget、imgのborderはstrictには使えない。 ということで、w3c信者の選択肢はHTML4.01 Transitionalとかのみになる *2 *3。 しかし、それだけではない。 まず、iframeのallowtransparencyって何? imgのaltはどうした? 等々…。

結論から言おう。 自動挿入広告を使う限り、仕様通りのhtmlは作成不可能だ!

*4

自動広告の影響

他にも自動後句による影響がある。

コンテントタイプ

httpのヘッダとして渡されるContent-typeが一律text/htmlになる。 CGIなどで、html以外のタイプで出力する場合は注意が必要だ。

謎の改行

一番最初に改行が一つはいる。 これは[.html]ではならないが、[.shtml]及び[.cgi]では相変わらず入る。 xhtmlなどで一番始めにxml宣言をしなければならない場合は注意が必要だ。 まあ、xhtmlで自動広告挿入なんて事するバカはいないと思うが・・・ *5

結論

君がw3c信者でなく、めんどくさがり屋で、 レイアウトなんてどうでもいいと思っているのであれば、 自動広告挿入はどんどん使用すべきだろう。

君がw3c信者で、xhtml1.1最高ですなんて思っているのであれば、 地獄を見るかも知れない・・・。 詳しくはxhtml1.1での広告へ。

自動広告を無くす

基礎編の最後に、自動広告を切る方法です。

手段

いくつの方法があります。

xフォルダ

public_htmlの真下にxフォルダを作ります。

/
└ public_html/
   └ x/
      ├ hoge.html
      └ moe.cgi

hoge.html及びmoe.cgiはそれぞれ、 一般のファイルと同じようにアクセスできますが、 自動広告の影響は全てなくなります。 cgiなどで悪影響がある場合は、丸ごと入れてもいいでしょう。

拡張子

拡張子によって、自動広告をオフに出来ます。 オフに出来る拡張子は次の三つです。

.xhtm
HTMLファイル
.xcg
CGIファイル
.shtm
SSIファイル

これらはどこに置いてもかまいません。 *6

CGIを除いて、MIME-TYPEがtext/htmlにならないようなファイルに ついては自動広告はされないようです。 主な画像ファイルやただのテキストファイルはそのままです。 MIME-TYPEが指定されていないファイル等は不明です*7*8

nobannerタグ

htmlのコメントを挿入できる任意の場所*9に、 <!--nobanner-->と入れると、自動広告が入りません。 ただし、自動広告の影響は受けます

.htaccess

これは、公式の物ではありません。 サポートはされていませんので、突然使えなくなる恐れもあります。

.htaccessに次のように記述します。

LayoutIgnoreURI *

これで、.htaccessが置かれたフォルダ以下全てのファイルの 自動広告がなくなります。 xフォルダに置かれた場合と同様に考えて結構です。

さて、広告は消したのだが…

XREAは広告による収入で成り立っています。 有料広告免除サービスまたは、管理人により広告免除の許可を受けていない限りは、 必ず広告を貼り付ける必要があります。 自動広告を消したのであれば、手動で広告を貼り付けなければなりません。 しかし、それについては多くのサイト *10 で述べられているので、 ここでは、CGIとXHTMLについて述べたいと思います。

その他

shared_htmlでは自動広告はありません。 手動で広告を貼り付ける必要があります。

*12003年8月に広告タグが変更されている。

*2フレームを使うのであれば、Framesetを使うことになるが・・・。

*3iframeはHTML4.0からであるので、それ以下は駄目。

*4"?sid=8239&pid=870235077"はxreaのバリューコマースによる識別番号らしい。

*5俺=バカなのか?

*6PHPファイルについての広告オフは、存在しないようです。 先頭にパスを挿入し、.xcgとして、他のCGIと同様に扱いましょう。

*7現在調査中

*8gzipファイルについては注意点があります。 拡張子が.html.gzであるファイルはgzip転送されたものとして扱われ、 ブラウザではhtmlファイルとしてそのまま見えるのですが、 圧縮されている状態で広告が無理矢理挿入されようとするためなのか、 ファイルが壊れてしまいます。 xフォルダ等で回避が必要になります。

*9なるべく初めの方がいいです。

*10とりあえず、XREA.ORGあたりから色々辿ればよし。 というか、初めからそっちを…ぐはっ