Monday, September 14, 2015

LiferayのAudience Targetingでユーザーセグメントを定義して使ってみよう

こんにちは、最近自動車の運転を練習しているかわべです。カーシェアで早朝にちょこっと運転してパン屋さんでおいしいパンを買って帰り、家でゆっくり食べる、という夢があるのですが、先日練習したところどこにも駐車できずに疲れて帰ってきました。先は長そうです。

さて、本日はLiferay社が開発しており、Marketplaceから無償で入手してインストールすることができるAudience Targeting(オーディエンス・ターゲティング)という機能について紹介したいと思います。日本語では「ユーザー解析」という名称に訳されている、複数のポートレットやフックから構成されるプラグインです。2回に分けて記事にしようと考えているので、前半である当記事では機能の説明、インストール方法、そしてユーザーセグメントの利用方法について説明したいと思います。

Audience Targetingで何ができるようになる?

デフォルトのLiferayの機能でも、ユーザーが所属する組織やサイト、割り当てられたロールなどによって特定のコンテンツやページを表示する/しないという制御をすることはできます。これは権限のないユーザーからコンテンツを保護するためのポータル製品としての機能と言えます。
Audience Targetingを利用すると、ユーザーに最適なコンテンツを動的に表示させる更に細かいルールの適用が可能になります。例を挙げると、

  • 30代の男性ユーザーにはコンテンツA、40代の男性ユーザーにはコンテンツB、それ以外のユーザーにはコンテンツCを表示する
  • 午前6時から午前10時までにアクセスしたユーザーにはコンテンツEを表示する
  • コンテンツDを10回以上閲覧したユーザーをキャンペーンEの対象とし、登録フォームへの入力率を一般ユーザーと比較する

などです。ポータルサイトとしての可能性が広がりそうな機能だと思いませんか?

これらの表示ルールの一部は、EE版で提供されていたDroolsルールエンジンとポートレットを応用すれば以前から実現可能でしたが、Droolsではルール適用のためにスクリプトを記述する必要があり、そこに導入のハードルを感じた方もいるかもしれません。一方、Audience Targetingでは管理画面からのUI操作だけでルールが設定できるので、コーディング知識は必要ありません。

それではインストールから順を追って使い方を見ていきましょう。以下ではLiferay Portal 6.2 EE SP12をTomcatバンドルでMacにインストールしたものを使用しています。

Audience Targetingのインストール

Audience Targetingに限った話ではありませんが、Marketplaceにあるプラグインをインストールするには方法が2つあります。
  • Liferayの起動中に管理者としてログインし、コントロールパネル→MarketplaceでLiferay.comのアカウントを紐付けて画面上から購入、インストールする
  • ブラウザでMarketplaceにアクセスし対象のプラグインを購入後、ダウンロードし、ダウンロードしたファイルをLiferayのdeployフォルダに配置する

今回は後者の方法で進めます。Liferay.comに登録した自分のアカウントでAudience Targetingを購入(無料)し、プロフィールの「購入済アプリケーション」からダウンロードします。Audience Targeting EE.lpkgというファイルがダウンロードされます。Audience TargetingにはCE版も用意されているので、CEを利用されている場合はそちらを入手してください。
deployフォルダはLiferayを展開したフォルダ配下に存在するはずなので、その中にこのファイルを置きます。と、ここで注意。
通常、LiferayのプラグインはLiferayが起動していてもホットデプロイすることが可能ですが、Audience Targeting EE.lpkgはLiferayが停止しているときにdeployフォルダに入れ、その後Liferayを起動してください。
そうしないとエラーログが出力されてデプロイに失敗してしまいます。
また、これは試している中で気づいたことですが、deployフォルダにプラグインを入れて起動が完了した後、もう一度Liferayを停止→起動してください。そうしないとドックバーが一部無効になってしまうようです。(使えるようなら問題ありませんが、例えばコンテンツ追加のための「+」を押しても反応しなかったりしたら再起動しましょう。)

起動と停止をするにあたり、ついでに停止中に<TOMCAT_DIR>/bin/setenv.shでJVMのメモリサイズ設定を確認し、デフォルト値のままになっている場合は値を大きくしましょう。Audience Targetingを使用する場合、最低でも"-Xmx2048m -XX:MaxPermSize=512m"を割り当てることが推奨されているようです。

無事にインストールが完了すると、管理者としてログインした際にドックバーにシミュレータ用のボタンが追加されているはずです(クリックするとこんな風に左サイドペインが開きます)。



また、システム管理→編集へと移動すると、「ユーザー解析」という項目が追加されています。次はここから操作を行い、ユーザーセグメントを追加していきます。

ユーザーセグメントとは?設定方法は?

名前から想像が付くとおり、ユーザーを特定の条件に従ってセグメント化したものです。このセグメントごとにコンテンツの表示ルールやキャンペーンが設定できます。今回は、保険会社の加入者向けポータルサイト「Aegif Demo Insurance」である範囲の年齢と性別を条件としたユーザーセグメントを作成するという例を試してみたいと思います。
管理者としてログインし、対象サイトのシステム管理→編集→ユーザー解析へ移動すると、「ユーザーセグメントの追加」ボタンがあるはずなのでクリックします。すると、どのようなルールでユーザーセグメントを作成するか、画面から作成することができます。標準で用意されているルールは以下です。

ソーシャル(Facebook連携ログインを利用する場合のみ有効。Facebookの各項目を使用した分類)
  • 学歴
  • 特定ページへの「いいね!」有無
  • 性別
  • つながり
  • 年齢

振る舞い(Liferayポータル内で訪れたコンテンツによる分類)
  • 閲覧済みコンテンツ
  • スコア(タグのついたコンテンツの訪問回数を集計)
  • 閲覧済ページ

ユーザー属性(Liferayに登録した属性などによる分類)
  • サイトメンバー
  • 性別
  • サイトロール
  • ユーザーグループ
  • ログインの有無
  • 組織ロール
  • 組織メンバー
  • 標準ロール
  • 年齢

セッション属性(IPアドレスなどアクセス元による分類)
  • ロケーション
  • ブラウザ
  • OS
  • 時間
  • デバイス
これらのルールはもちろん組み合わせて利用することが可能で、必要な項目をドラッグし、希望する設定値を追加するだけでOKです。今回は「21-35歳男性」というユーザーセグメントを以下のように作成してみました。



ユーザーセグメントコンテンツディスプレイの利用

このユーザーセグメントに当てはまる場合のみ特定のコンテンツが表示されるように、「ユーザーセグメントコンテンツディスプレイ」ポートレットをページに配置してみましょう。今回はTOPページに置いてみます。ドックバーの「+」(追加)をクリックし、対象のポートレットをページにドラッグします。



右上の設定アイコンから、以下の条件で表示されるように設定して、保存します(日本語がいまいちだったので英語表示にしています)。
  • ユーザーが「21-35男性」のセグメントに当てはまる場合、「自動車保険へのリンク」というWEBコンテンツを表示する」
  • それ以外の場合、「保険見直しへのリンク」という別のWEBコンテンツを表示する


ところで上の画面キャプチャからわかるように、セグメントは複数を同時に利用することが可能で、セグメントの「すべてに」または「どれか1つに」該当する場合、という設定をすることができます。更に「+」を押すとセグメントの判断を追加できるため、「AならA', BまたはCならB'、Dなら…」というような複雑な表示設定も可能です。また、表示させるコンテンツもWEBコンテンツだけに限らず、ドキュメントやブログ記事など他の種類にも対応しています。

さて、それでは実際にユーザーセグメントが有効になっていることを確認してみましょう。以下3人のテストユーザーを作成し、Aegif Demo Insuranceに順番にログインしてみることにします。

1. Boy Forty 40歳男性



2. Boy Twenty-Five 25歳男性


3. Girl Twenty-Five 25歳女性


ちゃんと設定したユーザーセグメントに従ってコンテンツの表示がされました!
また、いちいちそれぞれのセグメントに該当するユーザーで入りなおさなくとも、管理者など権限があるユーザはドックバーのシミュレータボタンをクリックすると「このユーザーセグメントに属するユーザーにはどういうページに見えるのか」というのを確認することができます。


ユーザーセグメントリポート

各ユーザーセグメントに当てはまるユーザーがどのコンテンツを閲覧したかを表示する機能も備わっています。システム管理→編集→ユーザー解析→ユーザーセグメントに移動し、それぞれのユーザーセグメントで操作→リポートを選択すると、「そのユーザーセグメントに当てはまるユーザーが閲覧したコンテンツ」を見ることができます。



デフォルトでは1日に1度更新されますが、更新ボタンをクリックするとその都度更新されます。これもユーザーの動向を分析するために活用することができそうです。

次回予告

ユーザー分析にはまだ紹介できていない機能があります!後編として、ユーザーセグメントのタグ、そしてキャンペーン機能について近いうちに紹介したいと思います。

No comments: