綾小路龍之介の素人思考

Memo > iswebの自動挿入広告の文字コードに関する考察

このページはiswebの広告がどのような文字コードで貼られるかを考察したものです。内容は個人的推論に基づいたものであり、isweb側からの正式な公開情報に基づくものではありません。

目次

自動挿入広告の概要

iswebの無料版はwebに広告を載せることが義務付けられている。自動挿入される広告は拡張子がhtml叉はcgiのもののbody開始タグの直後、body終了タグの直前に置かれる。bodyタグがない場合はファイルの初めと終わりに置かれる。拡張子がshtmlの場合は自分で広告挿入タグを中に含める。

広告の種類

広告はおそらくブラウザのuser-agentで異なる種類のものを挿入している。この種類には大別して2種類、テキスト広告とJavascript広告である。w3m等のテキストブラウザ、これらはJavascriptを理解しないので、テキスト広告が挿入される。wgetを初めとするダウンローダ、これらの場合は広告が挿入されない。これら以外のIE、firefox、safari、opera等はJavascriptを理解できるので、Javascript広告である。

各広告の種類と自動挿入広告の内容

広告が挿入されない場合は別として、広告にはテキスト広告とJavascript広告があるとは先に述べた。テキスト広告の場合、いくつかのタグと日本語文字列が挿入される。Javascript広告の場合、いくつかのタグが挿入され、実際に目に触れる内容は日本語文字列が含まれる。

テキスト広告

挿入される内容には日本語文字が含まれる。これの文字コードは挿入対象のファイルの文字コードによる。ただし、ひとつのファイルに複数の文字コードが含まれる場合は話が別だ。おそらく広告の文字コードはbody開始タグの直後にあるタグに含まれる文字列から判断された文字コードと同じものが選択されるものと思われる。

つまり、body開始タグの直後に十分な量の日本語を含む文字列が無いとだめである。もし、英語の文字列しかなかったり、文字列自体がなかったりした場合は適当な文字コード(おそらくShift_JIS)が選択され、広告が挿入される。

ひどい場合は、bodyタグの直後のタグには日本語文字列が含まれないが、それ以降のタグには文字列(たとえばutf-8)が含まれる場合である。このとき、広告の日本語文字列はShift_JIS、それ以外の日本語文字列はutf-8という状況が出来てしまう。同じファイルの中に異なる文字コードが含まれると、どちらか片方の文字コードですべての内容をレンダリングするブラウザは、広告が見れて本文が見えない状況か、広告が見えなくて本文が見える状況に陥る。

したがって、bodyタグの後ろに本文で使われている日本語文字列と同じ文字コードで文字を書いておく必要がある。このようにすることで、広告と本文の文字コードが同じになり、ほとんどのブラウザで正しく表示できる。

xhtmlやxmlを拡張子にすると広告が付かない

拡張子を元に広告挿入の可否を判定しているようなので、拡張子をxhtmlにすると広告が付かないようだ。この状態で公開するとおそらくは既約に抵触することとなり、アカウント停止とかの措置がとられてしまうように思う。結構xhtmlの普及も進んできて、ブラウザ側の対応も進んできたことで、現実味を帯びてきた広告回避策だ。ちなみに僕のページの広告挿入前のソースはXHTML+SVG+MATHML準拠のつもりで書いてあるが、自動挿入される広告はHTMLで書かれているため、w3 varidatorのチェックに引っかかる。拡張子で内容を判断するのではなくDOCTYPEをみて解釈を変えてくれるブラウザ(適切な処理をするブラウザ)で読めば、拡張子がxhtmlだろうがhtmlだろうが正しくxhtmlとして内容を解釈してくれるが、そうでない場合は表示が乱れてしまうかもしれない。そもそも、自動挿入される広告のソースはDOCTYPEを読んで内容を変えるようであって欲しい。広告収入を当てにするのであれば、正しく広告が表示されるように自動挿入広告の挿入方法の検討が必要に思う。iswebさんお願いします。DOCTYPE準拠の広告ソースを挿入するようにしてくださいませ。

DOCTYPEを読むということはクライアントにデータを送信する前に一度内容を読むということだ。今のところshtmlのようにSSIを使うような場合はサーバに負荷がかかるので全部のページをshtmlにするような行為はやめて欲しいようなことが既約のページに書いてあったような気がしたが。これは読むのに時間がかかるからなのか、それともSSIを実行するのに時間がかかるからなのか。できれば後者であって欲しい。そもそも挿入広告している時点で内容を読んでいるのは事実なんだから、後者だな。それを考えると、DOCTYPE読みで広告ソース変更は現実的な手段なのかもしれない。そもそもDOCTYPEはbodyの前にあるような気がするし、そんなに面倒でもないような気がする。まぁ現状の広告挿入がどのようにしておこなわれているか全く不明なのでなんともいえないが。

もちろん、xhtmlにするにしてもxmlにするにしても、それぞれの形式として意味のあるものでないとブラウザなどのビューアで表示した場合に適切に表示はされないのだが。で、googleでinfoseek.co.jpドメイン以下にあるxmlやxhtmlファイルを探してみるとぼろぼろでてくるわけだ。もちろん、その中には無料スペース上にありそうなものもあるわけで、なんだかなぁと思ってしまうわけだ。

  1. site:infoseek.co.jp filetype:xsl - Google 検索
  2. site:infoseek.co.jp filetype:xml - Google 検索
  3. site:infoseek.co.jp filetype:xhtml - Google 検索

ソーシャルブックマーク

  1. はてなブックマーク
  2. Google Bookmarks
  3. del.icio.us

ChangeLog

  1. Posted: 2003-12-08T03:29:47+09:00
  2. Modified: 2003-12-08T14:09:31+09:00
  3. Generated: 2017-06-29T23:09:16+09:00