綾小路龍之介の素人思考

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

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


目次


1.1 自動挿入広告の概要

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


1.2 広告の種類

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


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

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


1.4 テキスト広告

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

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

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

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


1.5 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にするにしても、それぞれの形式として意味のあるものでないとブラウザなどのビューアで表示した場合に適切に表示はされないのだが。


サイトマップ

  1. CSS > Webサイトのレイアウトの話
  2. DVDリッピングしてaviファイルにするときの計算方法
  3. Debian > インストールメモ
  4. Memo > One Line Diary
  5. Memo > To-Doリスト
  6. Memo > iswebの自動挿入広告の文字コードに関する考察
  7. Memo > リンクとメモ
  8. Memo > 物理屋の独り言
  9. Misc > High Performance Computing(HPC)
  10. PC過去の遺物集
  11. Perl > 1行スクリプト覚書 with Active Perl
  12. Perl > Perl実験室でWeb雑考
  13. Perl > XML::TreePPでXMLサイトマップファイルを生成
  14. Perl > e.cgi のページ ProjectRotation8
  15. Perl > クエリを連想配列で受け取るスマートな方法
  16. Perl > サーバーにアップロードしたcgiのエラーチェック
  17. Perl > ブリコラージュ的 cgi
  18. Programing > プログラムの素人が不思議に思ったこと
  19. Services > Gmail Tips
  20. Services > YourFileHostダウンローダ
  21. Services > twitterはじめました。
  22. Tech > MathMLを使ってみる
  23. Tech > Windows 2000 Professional でLaTeX組版システムを使う
  24. Tech > coLinuxの導入
  25. Tech > サイトのミラーリング
  26. Terapadで作るLaTeX統合環境
  27. Tools > Opera > 設定の諸々
  28. Tools > bashのメモ
  29. Tools > lit2ptoのページ
  30. Tools > vimの設定とtips
  31. Tools > よく使う機能のメモと設定のメモ
  32. VMware > ホストOSがWindows XP Home SP2でゲストOSがVine Linux 4.1
  33. Vine > SSHの暗号化経路を経由してSambaサーバの共有ディレクトリをマウント
  34. Vine Linux > LaTeXでpdf文書作成
  35. Vine Linux > Libretto L1に載せる
  36. Vine Linux > SSH関係の諸々メモ
  37. Vine Linux > サーバを立てたときのメモ
  38. Vine Linux > ソフトウェアRAID
  39. Vine Linux > デスクトップとして使う場合に必要な設定
  40. Wanderlust > inter7でIMAP4
  41. Web Etcetera > サーバー上でファイルを直接編集することについて
  42. Web Etcetera > 検索エンジンが自分のサイトをどのように認識しているか
  43. Web Etcetera > 無料ホームページスペースの広告削除は真か偽か
  44. Winamp > StreamRipperで全自動リッピング
  45. Winamp > タスクマネージャを使って目覚まし時計
  46. Windows > robocopyでフォルダ間同期
  47. Windows > 手動でコーデックをインストールする
  48. gnuplotのプロットギャラリー
  49. rsyncでディレクトリの内容を同期する
  50. wgetのメモ
  51. ネットワーク上にメモ帳を置く
  52. ハードウェア > HDDの再利用
  53. ハードウェア > 安定で快適なマシンはハードから
  54. ブリコラージュ的メールマガジン一括登録解除方法
  55. 初めに
  56. 情報基礎演習UNIX
  57. 窓たちと正く付き合うにはショートカットキーから

コメント


pin

[PR]cۖI񈤗p޲:lCāIEł