先日、Adsenseの代替広告で出るAmazonアフィリエイト(AA)をNP_MetaTagsを使って擬似コンテキストマッチにしたと書きましたが、これがちょっといけてないことに気づきました。というのも、内容がニッチすぎるエントリーが多いのせいなのかもしれませんが、結果が表示されないページが結構あるのです。
だからといって内容を書き換えるわけにもいかないので、コンテキストにマッチするAAが見つからない場合には、Amazonのベストセラーから適当に商品を表示するようにしてみました。代替広告の代替広告というわけです。
† 実現はマルチリクエスト&XSL
ECS4ではマルチリクエストといって、一度の問い合わせで2つの結果を得ることができるようになっています。これを使って、1つ目の問い合わせは「コンテキストマッチ」のもの、2つ目の問い合わせは「ベストセラー」になるようにしてみました。作ったECS4のリクエストはこんな感じ。それをすっぴんのXMLでみるとこんな感じなっている。普通はひとつしかない<items>がリクエストごとにひとつずつあるのがお分かりいただけると思います。
さらにコンテキストマッチの検索結果が0件の場合に限り、ベストセラーの検索結果を返すようなXSLを書けば代替広告の代替広告が出来上がりです。できたXSLはこんな感じ。
さらに、NP_MetaTagsにベストセラーの商品カテゴリがランダムに選択されるようにしてみました。代替広告が表示されているページであれば、リロードするたびに違うAAが表示されることが確認できると思います。自分で作ったのだけど、これはなかなか面白い。
† 正直に告白すると
ウチの売上はたかが知れているんでそんなに期待していません。
ただ、XSLの練習がしたかっただけです。たまにやっていないと忘れるので。
コメントは承認後の表示となります。
OpenIDでログインすると、即時に公開されます。