PowerCMS™

12月12日東京、12月19日大阪にて PowerCMS X 製品発表会を開催いたします。大阪会場はお席に余裕がございます。

PowerCMS ブログ

ホーム > PowerCMS ブログ > PowerCMS 5 によるレコメンド機能

2018年04月16日

PowerCMS 5 によるレコメンド機能

新しい PowerCMS 5 の魅力の一つ、レコメンド機能を紹介いたします。

レコメンド機能の画面

レコメンドとは?

ショッピングサイトなどで見かけるおすすめ商品のように、ユーザの興味関心などを元に奨める方法をレコメンドとよびます。例えば当サイトでレコメンド機能についてよく検索されるユーザへレコメンド機能に関する記事を奨めるようなものになります。PowerCMS 5 では二種類のレコメンド機能を実装しました。

  • この記事と関連性の高い記事
  • あなたへお勧めの記事

この記事と関連性の高い記事」は閲覧している記事がもつ情報をもとに、ピックアップした記事を表示します。こちらは記事ごとにピックアップされる記事が異なり、同じ記事であればどのユーザでもほぼ同じ記事がピックアップされます。

あなたへお勧めの記事」は閲覧しているあなた、ユーザがもつ情報をもとに、ピックアップした記事を表示します。こちらはユーザごとにピックアップされる記事が異なり、同じユーザであればどの記事でもほぼ同じ記事がピックアップされます。

なお、レコメンド機能は当ブログでも利用しており、このすぐ下、コメント投稿欄の少し上にも実際に表示されているものがご確認いただけます。

仕組み

VisitorAnalytics とエンタープライズ・サーチを使っています

PowerCMS 5 では VisitorAnalytics によるコンテンツ訪問者の閲覧履歴とエンタープライズ・サーチ機能による条件検索を組み合わせることでレコメンド機能を実現しました。 VisitorAnalytics とは、サイトを訪れたビジターの流入経路や閲覧・検索・アクション履歴を保存し、マーケティングに活用、ビジター個々に対して、最適なアプローチを行う One to One マーケティングツールです。 エンタープライズ・サーチとは、エンタープライズ版以上のエディションで利用可能なオープンソースのインデックス型全文検索エンジン Hyper Estraier を採用した検索機能で、ドラフトファイルを用意することで様々な条件検索が可能です。 それぞれの詳細については製品サイトや過去記事を参照してください。

それぞれのレコメンドでは記事をピックアップするためにエンタープライズ・サーチを使っています。

共通部分

エンタープライズ・サーチで利用するドラフトファイルを生成するテンプレート「記事ドラフト」「ウェブページドラフト」へ metadata という要素を追加しました。

metadata を構成するテンプレートのデフォルト記述は下記で、記事のカテゴリとタグを半角スペース区切りで複数指定する形です。デフォルトはカテゴリとタグですがカスタムフィールドなどサイトにあわせて情報を追加することも可能です。

metadata=<mtEntryCategories glue=" "><mt:CategoryLabel is_draft="1"></mtEntryCategories> <mtEntryTags glue=" "><mt:TagName is_draft="1"></mtEntryTags>

レコメンド機能では記事・ユーザが持つ情報を元にmetadataに対して検索を行い記事をピックアップします。この情報が一致するものが多いものから順にピックアップします。 動作としてはページへアクセスすると、専用の PHP ファイル (インデックステンプレート) へリクエストを行い、その結果 (JSON) を非同期で取得、整形して表示を行います。

この記事と関連性の高い記事

この記事と関連性の高い記事」は閲覧している記事がもつ情報をもとに、ピックアップした記事を表示します。 この記事が持つ情報はmetadataと同様の、カテゴリとタグをあわせたものです。

例えばカテゴリが「PowerCMS5」、タグが「レコメンド機能」という記事を閲覧した場合には、そのカテゴリとタグをもとにmetadataに対して検索を行いピックアップされた記事を表示します。

あなたへお勧めの記事

あなたへお勧めの記事」は閲覧しているあなた、ユーザがもつ情報をもとに、ピックアップした記事を表示します。 このユーザが持つ情報は VisitorAnalytics のビジターの「興味・関心」です。 「興味・関心」は、「閲覧した記事やページのタグやカテゴリ、検索キーワードなどを分析して、閲覧数や検索回数の多いもの」をまとめたものです。

例えばビジターの興味・関心が「レコメンド機能」の場合には、その興味・関心をもとにmetadataに対して検索を行いピックアップされた記事を表示します。

ビジター画面の一部 (興味・関心の周辺)

レコメンド機能の試し方

ここからレコメンド機能の「この記事と関連性の高い記事」を試すための方法を説明しますが、一つ注意がございます。レコメンド機能を利用するには VisitorAnalytics とエンタープライズ・サーチが必要ですが、それらの設定も含めた説明は長くなるため、本記事では割愛させて頂きます。それぞれが利用できる状態については各ユーザーガイドを参照して準備をお願いします。

※ ユーザーガイドはサポートサイトからダウンロードが可能です。

まず、PowerCMS 5 のレコメンド機能は「PowerCMS Bootstrap ブログ」テーマに実装しているので、このテーマを利用してまずブログを作成し、そのブログで VisitorAnalytics とエンタープライズ・サーチ、それぞれが動作するように設定を行います。

つぎに作成したブログのインデックステンプレート「レコメンドAPI」のファイルが出力されるように公開タイプを変更し、再構築を行ってください。再構築はそのブログ全体を行います。

これで最低限の準備は完了です。運用を開始されましたらレコメンド機能をご利用いただけます。

ここからはごくごくかんたんにレコメンド機能を試すためのコンテンツをブログへ追加していきます。

  1. カテゴリに「レコメンド機能」と設定した「記事A」を作成します (タグは指定しません)

    タイトル記事A
    カテゴリレコメンド機能
    タグ(指定しない)
  1. タグに「レコメンド機能」と設定した「記事B」を作成します (カテゴリは指定しません)

    タイトル記事B
    カテゴリ(指定しない)
    タグレコメンド機能

記事の一覧

  1. 検索インデックスを再生成する

cron やタスクスケジューラの実行を待つか、コンソールから estcmd-gather スクリプトを実行して、検索インデックスを再生成したら準備は完了です。

それでは記事Aと記事B、それぞれのページへアクセスしてみてください。 「この記事と関連性の高い記事」に記事Aのページでは記事Bが、記事Bのページでは記事Aが表示されていると思います。 またテーマのインストール時に自動作成される他記事のページへアクセスしても「この記事と関連性の高い記事」には記事Aと記事Bのどちらも表示されていません。

記事Aの画面

記事Bの画面

記事Aと記事Bはカテゴリもタグも異なりますが、複合した情報から関連性が高いと判断されピックアップ、表示されます。

最後に

レコメンド機能をより活用するためにはカテゴリや、とくにタグの入力が重要になります。PowerCMS 5 ではタグやキーワードの入力を補助する新機能がありますのでぜひそちらとあわせてレコメンド機能をご利用ください。

PowerCMS 5 の魅力について次の記事は明日の公開予定です。


カテゴリー
PowerCMS 5