検索ボックスを早速付けてみた。
検索結果はRSSで出力されるので、フィーダーのRSS配信と同じで、
いろいろ使い回せますね。
しかも、外部XSLオプションをこっそり追加すると、
オリジナルのショッピングページが作れちゃいますよ。きっと。
さて?外部XSLオプションは、どうやって実装しようかな?
ユン
某デザイナ氏のアイデアですが、
フィーダーやRSSのXSLに検索ボックスをつけてみてはどうか?
っていうんですけど。
そうすると、
一度フィーダーを作ると、訪問者が自由にカテゴリを選択して、キーワード検索できるようになる。
しかも、検索結果は全てそのフィーダーを作成した人のアフィリエイトリンクになっている!
最近楽天が始めた「お手軽ジャンル カスタマイズリンク」に似てるかも。
ミニショッピングサイトの出来上がりって訳。
もう一つ。
RSSのXSLに外部(各サイト独自)のものを使えるようにしよう。
データはRSSなんでXSLも簡単に作れて、よりカスタマイズ出来る!
うーん。
アイデア出まくりでんな。
ユン
生のRSSの出力から、XSLを通してXHTMLに変換して、
かつ、
RSS Auto-Discovery にも対応させてみました!
これで、
RSSのアイコンをクリックすると、XMLじゃなくて、XHTMLに変換されて、
AoDフィーダーらしい表示がされるようになりました。
さらに、
ブラウザのRSSリーダーに登録するためのアイコンも出てくるよ。
でも、今度はMozilla系ブラウザで問題が。。。
RSS内のHTMLコンテンツは全てエスケープされていて、HTMLタグがそのまま表示されてしまう。
それを回避するのには、
disable-output-escaping="yes"
って xsl:value-of のアトリビュートを使うんだけど、
これが、
「Mozilla系のブラウザだと認識されず、Bugzilla にも上がってるんだけど、今後も修正されない。」
ってこと。
(今回、IEは賢かった!)
さすが先駆者はいるもので、disable-output-escaping を認識するかしないかを判断して、エスケープを強制的に無効にするためのスクリプトが世の中には存在してました。
それをセットして、問題解決!
またまた、勉強になりました。
ユン
こっそり追加してみたんですけど。。。(気付いてもらえるかな?)
果たして使い道があるのでしょうか?
ちょっと考えてみた。
1.普通にブラウザのブックマークやRSSリーダーに登録してみる。
お気に入り商品のブックマークが出来たよ。
2.ソーシャルブックマークに登録してみる。
ソーシャルブックマークでアフィリエイト!?
3.タグが使えないブログでも、ブックマーク(プラグイン)やリンクとして貼ってみる。
サポートするブログやサイトが増えるかも。。。
4.いっそのこと、HTMLのMETAタグに書いてしまうとか。
ライブブックマーク(FireFox)してもらえるかもよ。
意外といいかも?
ユン
「対策を考えてみようと思います。」
ってことで、考えてみた。
でも、結局、タグを生成する時に静的に情報を埋め込んでおくしかない。
それは、タグ作成時に出来るには出来るけど、
Myフィーダーからフィード内容を変えると意味がなくなるし。。。
しかも、フィーダーを記事に貼る場合、
その記事のタイトルや内容が既にSEOになってる訳だから、
いいのかな?
ってことでこの件は終了します。
ユン
AoDでフィードしている内容をRSSとして配信しても面白いんじゃないかというアイデアが出たんですけど。。。
つづく。。。
今、JavaScriptでフィード内容を動的に生成しているので、SEO的にはイマイチですよね。
ちょっと対策を考えてみようと思います。
つづく。。。
いやぁ~。ぽりぽり^^
やっぱり、まだバグありましたねぇ。
「一部のサイトで、『関連する商品』ボタンをクリックして表示されるボックスが変な位置に出る場合がある。」
を修正しました。
(但し、前回書いた<iframe>でidが必要なのは変わりません。)
これもいろいろなサイトに貼って頂いたおかげです。
ありがとうございます。
ユン
楽天アフィリエイトのA8.net版を追加しました。
こっちだと、楽天ポイントじゃなくて現金で返ってくるんだよね。
でも、料率が一律1%なんだって。どうなんだろ?
さて、A8.netで楽天のアフィリエイトIDについてですが、
楽天アフィリエイトと同じように毎回いちいちリンク作成しますが、IDは固定のようです。
例えば、A8.netの楽天アフィリエイトページでリンク作成すると、
http://px.a8.net/svt/ejp?a8mat=U2KQT+4IJCXE+5WS+BWVTD&a8ejpredirect=<実際の楽天への商品リンク>
っていう感じのリンクになりますが、
この「U2KQT+4IJCXE+5WS+BWVTD」を入力して頂くとこちらで上記のリンクを自動生成致します。
A8.netで楽天商品のリンクを作るのって結構めんどいから、便利でしょ。
つーか、開発時間30分でした^^
ユン
実装が遅れておりました、
カテゴリ検索、表示順、関連商品、Myフィーダー
に対応しました!
楽天アフィリエイトでの「関連商品」の表示方法ですが、
アマゾンと違って専用のAPIが無く、しかも関連商品という機能自体も無いので、
検索に引っかかった10位以下のものを順次表示するようにしました。
これも言ってみれば関連商品と言えなくも無いし^^
しかし、楽天は別のショップで同じものを売ってたりするので、ショップ名も出さないと見分けがつきませんねぇ。。。。。。
今対応しました。
ユン
お待たせしました!
まだまだ機能不足ですが、暫定版の公開です。
今後、カテゴリ検索、表示順、関連商品、Myフィーダーにもちゃんと対応させますので、
それまでは、タグ作成のみですが、お試し頂けます。
なので、今はキーワード内で組み合わせて絞り込んで下さい。
さて、楽天アフィリエイトのアフィリエイトIDについてですが、
楽天アフィリエイトページでリンク作成する時に毎回動的に生成されているらしく、固定ではありません。(たぶん。。。)
ですが、一度作成したものは、ずーっと使えそうな感じなんです。(ほんとか?)
例えば、楽天アフィリエイトページでリンク作成すると、
http://pt.afl.rakuten.co.jp/c/0272ed90.840d8364/?url=<実際の商品リンク>
っていう感じのリンクになりますが、
この「0272ed90.840d8364」を入力して頂くとこちらで上記のリンクを自動生成致します。
あとは。。。
α版なんで、笑って許して下さい^^
ユン
やっと出来ましたよ。「Myフィーダー」。
どうですか?
使用感や不具合情報、ご意見、ご要望をどしどしお願いします。
ちょっと怖いけど。
さあ、次に取り掛からねば。。。
ユン
今作成中の「Myフィーダー」、
メールアドレスを登録すると自動的に仮パスワードを発行して、
ログイン出来るようになる予定です。
※メールアドレスを登録しなくても、今まで通りに使用も可能です。
そこでは、
今までに(もしかしたら、これから)作成したタグを
修正(検索キーワードを変更、商品数を変更)したり、
要らなくなったタグを削除したり出来るようになります。
これで、例えばサイドバーに貼っている場合、タグを貼り直さなくても、
内容を好きな時に変更できるようになります。
あと、貼ったけど、アマゾンで商品が検索してもヒットしなくなったものとかを、
新しいキーワードで検索し直せます。
これとは別に、もう一つ大事なバージョンアップがあるんだけど、
それはまだ秘密です^^
ユン
PS:
メールアドレスをGetしたからって、どうこうしようとしているわけじゃありませんので、ご心配無く。
メールアドレスが一番一意性に優れていると思われるからです。
また、念の為繰り返しますが、今後どんな機能追加をしても、
無料です!
とりあえず、このフィーダーはこんな感じで次へ進もうと思ってたんだけど。
昨日のミーティングで、機能追加を前倒しで行うことに決定。
早速取り掛かっております。
データベースの構造から見直して、若干変更を加えました。
今日明日はちょっと不安定になるかも知れませんが、
これでもっと便利になる予定なので、楽しみに待っていて下さい。
もし、不具合が発生した場合は、古いスクリプトがブラウザのキャッシュに残っている可能性があります。
コントロールキー「Ctrl」+ブラウザの更新ボタンをクリックして、強制的にスクリプトを読み直してお試し下さい。
よろしくお願い致します。
ユン
そして、次の問題は。。。
Ajaxでは普通、非同期で裏で通信するのにXMLHttpRequestっていうオブジェクトを使うんだけど。
これってそのスクリプト(ページ)があるドメインと同じドメインとじゃないと通信出来ないでしょ?(出来るの?)
IFRAMEの中なら呼び出すスクリプトも呼び出されるサーバー側も同じこちらのドメインに出来るんだけど、
IFRAMEを止めたんで、呼び出す側のスクリプトは、各フィーダーを掲載しているバラバラのドメインになる。
なんで、XMLHttpRequestも諦めざるを得ない。
これって出来るのかな?って思ってたけど、結構あっさり解決方法は見つかって。
JavaScriptってXMLHttpRequestと違ってセキュリティが甘くて、どのドメインにあるものでも自分のところにあるものとして簡単に引っ張ってきて動かすことが出来る。
しかも動的に!
つーことで、そのスクリプトを動的に生成して、動的にインクルードさせて、非同期にコンテンツを受け取るようにすれば良かったんだ。
これって、XMLHttpRequestは要らなかったってこと?
これってセキュリティ的にどうなんだろ。
何でも出来ちゃうよね。
さて、これを使って次は。。。
ユン
もしかして良く解ってなくて恥ずかしいこと書くかも知れないけど、
こんな感じで作ってました。
こういう動的なフィーダーって良くIFRAMEタグが使われるんだけど。
それって、IFRAMEの中は独立したページ(HTML)に出来るから
フィードするサーバーのスクリプトを簡単に呼べるんですよ。
セキュリティにもやさしいし、CSSも自由にこちらで操作できるし。
AoDのようにJavaScriptを張る感じになってはいるものの、
最初にそのスクリプトがIFRAMEを書いて、
フィードは別サーバーのスクリプトで、って感じのもある。
これはこれで普通のフィーダーだったら、OKだった。
で、まず問題だったのがIFRAMEの中の別サーバーのスクリプトから、
直接IFRAMEの外のコンテンツを操作出来なかったんですよ。
(出来るの?JavaScript間で呼び出せば良かった?でも。。。)
何故そんなことするのか。。。
AoDフィーダーの「関連する商品」ポップアップはどうしてもページを自由に動き回らせたかったから。。。
IFRAMEの中だけでポップアップしてもツマンナイでしょ。
ということは、
ポップアップするコンテンツは、フィーダーを張る各ブログ(サイト)のコンテンツとして動き回らせなければならないんよ。
しかも後付けで。
GoogleMapみたいに、マーカー情報を最初に全て作成しておくってのもいいけど、
遅いし(ある意味早いか)、Ajaxの意味無いし。。。
ポップアップする情報は要求のあったときにAjaxで取得するのが正解でしょ。
だから、IFRAMEを使うの止めたんです。
そしたら、次の問題が。。。
ユン
Operaでチャックし忘れてました。
動かない。。。。
どうやら、OperaではreplaceChildが使えない?らしいです。
で、対策、対策っと。
if (window.opera) {
div.removeChild(dynld);
div.appendChild(script);
}
else {
div.replaceChild(script,dynld);
}
上手く行きました。
ユン
ちょっとづつ試用して頂いているサイトが増えてきているようです。
そこでご相談なんですが。。。
実は、フィーダーが表示される度に、カウントを取るようになってまして。
簡単なアクセスカウンタとしてもお使い頂けるんです。まだ表示してませんが。
ちなみに「関連する商品」ボタンのクリック数も取ってます。
そこで、フィーダー表示数に応じたアクセスランキングを公開できるかも、
とか思ってしまって。。。
これってどうですかね。
<表示内容(案)>
アクセスランク
アクセス数
検索カテゴリ/キーワード
ブログ(サイト)URL
さらに、そのブログのRSSフィードをPopupして表示とか。
またまたアフィリエイタさんにはアクセスアップにつながりますよね。
ある意味、Pingサーバーやランキングサイトみたいな。
ちょっと良くないですか?
ユン