追記とか、AmazonのURLのモバイル版への変換とか
追記
0.9.5リリースのお知らせに書かなかったのだけど、もしかしたら結構大事かもしれないので念のため。このバージョンでは、見た目が以前とちょっぴり変わります(変更履歴とかには書いてあるけど、そんなものは誰も読まないだろうし)。
以前は、文字数を極力削減するために、<br>が2ヶ以上連続する場合1ヶにまとめていたのですが、これでは、<br>を続けて行間を空けている場合に詰まって見えてしまうので、これを、「3ヶ以上なら2ヶにまとめる」というように変更しました。また、DIVは、一般的なウェブブラウザのDTDでのmargin値は0なので、<div>は削除し、</div>を<br>に置換していましたが、CSSでmarginやpaddingを空けている場合も多々あるわけで、その場合やはり同様に、本来のPC版に比較して行間が詰まって見えてしまうため、<p>~</p>に置換するように変更しました。
これらの結果、ページによっては、表示が間延びしているように見える場合があるかもしれません、というお知らせ。
AmazonのURLのモバイル版への変換
0.9.5で中途半端に付けた、Amazon.co.jpのPC版のURLを、モバイル版Amazonのものに変換する機能ですが、もう少しちゃんとするべえかと調べてみたところ、かなりめんどくさい悪寒です。
Amazonアソシエイトの人口は膨大なわけで、PC版のURLをモバイル版に置き換えるニーズはかなりあると思うのですが、検索してみても「HTTP/1.0 404 Useful Information Not Found」で(そもそもはアマゾンが、クライアントを判別して自前で対処するか、最低でも簡易に変換することができるようなツールを提供するべきだとは思うのだが)。
なにが困るかというと、アソシエイト・セントラルが作成するURLは、2005年の春頃に変更になっているわけですが、それ以前の形式は、「個別商品リンク」は覚えてるのだけど、それ以外のものは不明で。一方、現在の形式は、PC版にしてもモバイル版にしても、なにものかよくわからんパラメータが幾つかあり。さらに、モバイル版のURLのパラメータには、PC版にはないものが含まれる場合すらあるという状態(例えば、カテゴリーページへのリンクでは、モバイル版のURLには「sn」という、ストア名に相当すると思われる文字列を指定するパラメータが必須で、しかしPC版のURLにはそんなものはないので、単純な置き換えは不能)。
そもそもAmazonのURLは、アソシエイト用のものに限らず、かなりのバリエーションがある気がするので、ちゃんとしたドキュメントがないと、全て追いかけるのは多分無理ぽ(AWSのドキュメントとかにあるのかなあ)。
てなことで、安直に対応できそうなのは、結局「個別商品リンク」だけっぽい気がするわけですが、取り急ぎここのデモサイトでは、以下の形式の、PC版「個別商品リンク」URLを、モバイル版のものに置換するように改造してみますた(念のため、リリースもこうなってるわけではありませぬよ)。
- 旧アソシエイト・セントラル形式 / ウェブブラウザのアドレス欄に表示される(リダイレクト処理を経た最終的な)形式
http://www.amazon.co.jp/exec/obidos/ASIN/(ASIN番号)/(アソシエイトID) - 新アソシエイト・セントラル形式の「基本型」(「商品の詳細」と「商品の一覧表示」)
http://www.amazon.co.jp/exec/obidos/redirect?path=(「商品の一覧表示」の場合はここにパス)ASIN/(ASIN番号)&tag=(アソシエイトID)
アソシエイトIDがなければその部分はナシで。
前者は、アソシエイトID以降の文字列(「/ref=nosim」とかね)は無視。後者はこれ以外のパラメータは無視で、パラメータの並び順はどうでも。
どっちも、「ASIN/」の部分は「ISBN=」とか「ISBN%3D」もアリで、後者は「ASIN%2F」もアリ。
アルファベットの大小文字の違いはとことん無視。
スキーマはHTTPSもアリ。
ASIN番号は10桁の英数字。アソシエイトIDは「英数字-22」という形式。これ以外はシラネ。
モバイル版には「商品の一覧表示」や「こんな商品もおすすめします」はない模様なので、置き換わるURLは全て「商品の詳細」のもの。
そして、これ以外の形式のAmazon.co.jpへのリンクは、ここのデモサイトでは、全てモバイル版Amazonのトップページへのリンクに置換されます(この場合も、アソシエイトIDが検出できればそれを付与)。
今後も、対応できそうなところは検討しますんで、なにか情報があれば教えてください。また、この件についてのご意見やご要望も、お気軽にお寄せください。
ただし!
- 今のところ、対応しようと思ってるのはaタグのものだけです。現在のアソシエイト・セントラル製HTMLタグの大半を占めるiframeは、従来通り除去してしまいます。また、formの処理も従来通りです。要するに、現在のアソシエイト・セントラル製のタグのうち、対応する気があるのは、「個別商品リンク」の「基本型」と、「テキストリンク」のものだけなのですよ。
- 現在のアソシエイト・セントラルが作成するHTMLタグは、モバイル版にもビーコン画像を貼り付けるimgタグが付いてきますが、このスクリプトの置換処理では、これは省略しています。
このビーコンは、リンク元のインプレッションを計測し、アマゾンでの販売状況と照らし合わせてその効果を測定するためのものですが、このスクリプトを介した場合、インプレッションはこのスクリプトについてのものになってしまい、本来のページのものではないため無意味な筈だからです(もちろん、そもそも極力文字数を削減したい、というのもあり)。
ちなみにビーコン画像の省略について、現時点でアソシエイト・セントラルのヘルプに書かれている見解は以下の通り。Q. テキストリンクや個別商品リンク(基本型)からイメージタグを削除しても、リンクは機能しますか?
「お勧め」であり、つまり必須ではないと解釈していいと思いますが、例によってある日突然変更される可能性は多々あるわけで。そうなったら付けざるを得ないのだろうなあ。無意味なんだけど。つうか、そもそも携帯用のページにビーコンはヤメテクレ。
A. 当プログラムでは、リンク作成ページで生成されたHTMLをそのまま使用することをお勧めします。 - どのみち、置換後のURLは「リンク作成ページで生成されたHTMLをそのまま」じゃありません。パラメータの順番やURLエンコードの有無が異なります。つうか、アソシエイト・セントラル製のタグは出鱈目杉で、「そのまま」使うなんてイヤ杉。「そのまま」が必須になるなら従いますが、そのときには出鱈目なところは改めて欲しいある。
- amazlet.comのとか、はてなのとか、その他もろもろにまで対応する気はありませぬ。
2006/01/06
トラックバック
このエントリーのトラックバックURL:
http://www.rcdtokyo.com/mt/mt-rcdtokyo5428-tb.cgi/204