Amazon などで『この商品を買った人はこんな商品も買っています』という案内をご覧になったことがあると思います。ユーザの購買動向を分析することで関連商品を推薦(リコメンド)してくれる機能で、その絶妙なチョイス(?)に釣られて他の商品ページに寄り道してしまう方も多いのではないでしょうか?
そこで、ブログなどでもこれを真似て『この記事を読んだ人はこんな記事も読んでいます』なんてナビゲーションが作れると面白いかもしれません。RecommendedEntry は、過去の訪問者が辿った記事の傾向を集計して,簡易的な記事リコメンデーション機能を実現するためのMovableTypeプラグインです。
|
RecommendedEntry
ファイルのMD5ハッシュ値: 15936af0022a8c1e3135ceb93eefe985 ver.1.00, '07/02/12, 2508 bytes, MovableType 3.33 で動作確認、PHP 必須
|
最新版のダウンロードやバグレポートはRecommendedEntry の trac レポジトリでも行っています。
ビジタの動向データの集積と集計に PHP を使用しています。 ご利用のサーバで PHP が使用でき、 かつ RecommendedEntry をご利用の予定のブログの個別記事ページで PHP が動作する必要があります。
RecommendedEntry プラグインは、個別記事ページにユーザ追跡のためのコード片を埋め込みます。
ユーザが個別記事ページを閲覧する度に、ユーザがどのような順番でページを渡り歩いたのかを集積し、
このデータを集計することで記事間のユーザの移動状況を求めることができます。
ユーザ追跡にはブラウザの Cookie を使用していますが、
あくまで任意のユーザの記事間の移動を追跡することが重要であって、
ユーザを個々に限定・追跡することが目的でがありません。
また、記事リコメンデーションの精度についてですが、
ユーザ嗜好や記事内容の関連性のクラスタリングと云ったリコメンデーションで多用される技術は全く使われていません。
個々のユーザが現在閲覧している記事を基点としたユーザの移動をデータとして集計し、
多いものから順に表示するだけの非常に好い加減かつお遊び的なものであることを了承ください。
少し手順が複雑ですが、気合で(ぇー
ダウンロードしたアーカイブを展開します。 MTRecommendedEntry.pl というファイルが一つだけ現れるので、 MovableType のインストールフォルダにある plugins にコピーしてください。 その後、MovableType の管理画面から[プラグイン]と移り、 RecommendeEntry プラグインが表示されていることを確認します。
RecommendeEntry プラグインはエントリの一覧を記述した PHP ファイルを要求します。
以下の内容でインデックステンプレートを新規作成してください。
インデックステンプレートの名前とファイルの出力先はどこでも構いませんが、どちらか一方を控えておいてください。
このインデックステンプレートは、後述の $MTRecommendedEntryParam$ タグで必要とするパラメータに応じて編集してください。
下の挙げた例では記事タイトル(title)と記事のパーマリンク URL (permalink)が記述されています。
記事 ID (eid) の項は RecommendeEntry プラグインが使用するため変更しないでください。
次に、RecommendeEntry プラグインが集計したユーザ動向のデータファイルを保存するためのディレクトリを作成してください。 データファイルには個人情報が含まれるわけではありませんが、気になる人はドキュメントルート以外に作成されることをオススメします。 作成したディレクトリの絶対パスを控えておいてください。
RecommendeEntry プラグインを用いて、ユーザ動向の集計と記事リコメンデーションを行うために、 個別アーカイブテンプレートを修正します。 最も小さな個別アーカイブテンプレートは次のようになります。
<$MTUseRecommendedEntry$> タグには、先ほど準備したエントリ一覧用インデックステンプレートの名前とデータフォルダのディレクトリパスを指定する必要があります。また <$MTUseRecommendedEntry$> タグはあらゆる文字出力が行われる前に記述されるよう、必ずファイルの先頭に置いてください。
$MTUseRecommendedEntry$ タグtemplate [必須*]indexが必須です。
両方の指定がある場合、indexによる指定が優先されます。index [必須*]templateが必須です。
両方の指定がある場合、templateによる指定を上書きします。datapath [必須]cookie_expirecookie_namemtrcmnd_eid です。
既存の Cookie と名前が衝突する場合には変更してください。MTRecommendedEntries コンテナタグmodeoffsetoffset 位を表示しません。デフォルト値は 0 です。
countoffset で指定された順位から count 件だけ表示します。デフォルト値は 10 です。$MTRecommendedEntryParam$ タグMTRecommendedEntries コンテナタグの中で使用します。
name [必須]name で指定されたパラメータを表示します。
MovableType のテンプレートタグのようですが、実際には小さな PHP コード片を生成します。
そのため、テンプレートタグで有効なグローバルフィルタなどは使用できません。
name に指定できるパラメータには、エントリ一覧用インデックステンプレートで記述されたパラメータに加えて、
流入数または流出数を示す count が常に使用できます。name パラメータには title と permalink を指定することができます。
例えばあなたが記事の作成された日付と投稿者名も表示したいと思うならば、
エントリ一覧用インデックステンプレートを以下のように修正し(一部抜粋)、
name="date"やname="author"とすることで実現できるでしょう。
RecommendedEntry プラグインが利用するユーザ動向が集積されたデータファイルについて説明します。
MTUseRecommendedEntry タグの datapath
パラメータによって指定されたディレクトリ以下に、
<記事 IDα>.txt というファイル名で記事毎にテキスト形式のデータファイルが生成されます。
<記事IDα> の記事には <記事IDβ> から <流入カウントβ> の訪問があり、
<記事IDα> の記事からは <記事IDβ> に <流出カウントβ> だけユーザが移動したことを示します。
初めてサイトを訪問するユーザや、Cookie の有効期限が切れたユーザが <記事IDα> を訪問した場合、
同じ <記事IDα> の <流入カウントα> として記録されます。
寄せられたコメント (全 30 件中、最新 5 件まで表示しています)
tiara
以前もコメントさせていただきました。
おすすめ記事を同じサイト内の別ブログで導入してみました。
ところがおすすめ記事は表示されず、そのページをリロードして初めておすすめ記事が表示されます。
何か原因などございますか?
不勉強ですみませんがお返事お待ちしています!
初めまして。
早速おすすめ記事を表示することができました。
そこで是非画像も表示させてみたいのですが、
なかなかうまくいきません。
何かアドバイスいただければ…と存じます。
ブロックタグ名が被っちゃうかもしれませんが、Recommendableプラグインというのを作りかけています。設計途中なんですが(笑)
開発者がランキングエンジンを書いてしかるべくリコメンデーション情報をデータベースにストアしておいてくれれば、こんな感じで呼び出せるようになる予定です。
<mt:RecommendedEntries engine="hoge">
...
</mt:RecommendedEntries>
このプラグインでなさっているように、コレクタ部分も何らかのインタフェースを与えたいと思っています。
こちらこそ解決おめでとうございます&おつかれさまでした(=゚ω゚)ノ
まだ道程は長そうですが諦めずにガンバってください!
こういう右往左往の経験がきっとどこかで役に立つと思います。
ありがとうございました。解決しました。
拡張子を「.php5」から「.php」に変更したら、解決しました。
PHPのバージョン5だということで「.php5」かなと思い込んで
いました。事実、テスト用のサイトでは、同じくバージョン5
担ったということで、「.php5」でうまく行っていましたので。
とにかく、php化と、これによって、当初の目的であった「こんな記事も」
が出来るようになりました。ありがとうございました。
なお、余談ですが、実はhtmlからphpへのリダイレクトの部分が
うまく行っていません。.htaccessでエラーが出てしまうためです。
これについては、自分で解決します。
いろいろ、ありがとうございました。