Amazon などで『この商品を買った人はこんな商品も買っています』という案内をご覧になったことがあると思います。ユーザの購買動向を分析することで関連商品を推薦(リコメンド)してくれる機能で、その絶妙なチョイス(?)に釣られて他の商品ページに寄り道してしまう方も多いのではないでしょうか?
そこで、ブログなどでもこれを真似て『この記事を読んだ人はこんな記事も読んでいます』なんてナビゲーションが作れると面白いかもしれません。RecommendedEntry は、過去の訪問者が辿った記事の傾向を集計して,簡易的な記事リコメンデーション機能を実現するためのMovableTypeプラグインです。
ビジタの動向データの集積と集計に 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α> の <流入カウントα> として記録されます。
|
RecommendedEntry
ファイルのMD5ハッシュ値: 15936af0022a8c1e3135ceb93eefe985 ver.1.00, '07/02/12, 2508 bytes, MovableType 3.33 で動作確認、PHP 必須
|
最新版のダウンロードやバグレポートはRecommendedEntry の trac レポジトリでも行っています。
開発の継続のためには、技術書の購入やバグの修正、新機能の追加、コメント欄でのユーザサポートなど、意外にお金と時間を費やします。そこで、「ビールでも奢ってやるか」ですとか「これで牛丼(並)でも食え」と仰るお方からのお申し出をいつでも受け付けております。どうぞ、よろしくお願いいたしますm(_ _)m
寄付金の送付には PayPal の小額決済をご利用いただけます。
寄せられたコメント (全 34 件中、最新 5 件まで表示しています)
>ぴろり様
カテゴリでの絞り込みには対応していないとのことで、ご返答ありがとうございました。
また、対応していただけることを祈りつつ、ちょこちょこ見にこさせていただきます。
ご返答ありがとうございました。
カテゴリでの絞込みには現在対応していません。
でも、面白いアイディアだと思うので検討はしてみたいと思います。
ありがとうございました。
すみません。
さきほど質問させていただいたのですが、ソース部分 注意事項を見落としておりました。
下記ご確認くださいませ。
<?php
function RecommendedEntry_getAllEntries () {
$ret = array ();
<MTEntries lastn="9999" >
array_push ($ret, array (
'eid' => '<$MTEntryID$>',
'title' => '<img src="<$MTBlogURL$><$MTEntryCategory$>/img/<$MTEntryTitle$>-thumb.jpg" border="0" class="over" alt="<MTExtraFields><$MTExtraFieldValue field="pagetitle"$></MTExtraFields>">',
'permalink' => '<$MTEntryPermalink$>',
'pagetitle' => '<MTExtraFields><$MTExtraFieldValue field="pagetitle"$></MTExtraFields>',
'lead' => '<MTExtraFields><$MTExtraFieldValue field="lead"$></MTExtraFields>',
null));
</MTEntries>
return ($ret);
}?>
はじめまして。
こちらのプラグインをECサイトに導入させていただきまして、大変重宝させていただいております。
機能につきまして、ご質問です。
当方MT3.3にて利用させていただいておりますが、カテゴリーを絞り込んでの表示は可能でしょうか?
下記のようなソースですが、category="hoge"を書き込むと何も表示されなくなってしまいます。
お忙しいところ、大変恐縮ですが、ご教授願えれば幸いです。
array_push ($ret, array (
'eid' => '',
'title' => '/img/-thumb.jpg" border="0" class="over" alt="">',
'permalink' => '',
'pagetitle' => '',
'lead' => '',
null));
return ($ret);
}?>
tiara
以前もコメントさせていただきました。
おすすめ記事を同じサイト内の別ブログで導入してみました。
ところがおすすめ記事は表示されず、そのページをリロードして初めておすすめ記事が表示されます。
何か原因などございますか?
不勉強ですみませんがお返事お待ちしています!