Adobe Target RecommendationsのDesign記法について(応用編)


こちらは以下の記事の続き(応用編)になります。

Adobe Target Recommendationsの基本的な使い方を知りたい方は是非上で確認してください。
応用編ではこんな書き方出来ますよーというややマニアックな使い方についてご紹介します。
(一部基本編で使っていた機能になりますが…解説編ということで。)

事前に定義されている変数について

Adobe Target側から事前に以下の変数が定義されているので、必要に応じて利用可能です。

変数内容 変数値 詳細
Criteria 名称 $algorithm.name Criteria設定画面の "Criteria Name" 値
Criteria Display Title $criteria.title Criteria設定画面の "Display Title" 値
Criteria 集計期間 $algorithm.dayCount Criteria設定画面の Data Rangeを日数に変換した値
レコメンド結果商品配列 $entities レコメンド結果の商品情報配列
Profile値 $user.プロファイル名 Profile機能で設定したカスタムプロファイル値

Template内で変数を利用したい

これは基本編でも使っていたのですが…使いまわししたいような値や変更することが考えられる値などは変数化すると便利です。

記述方法

#set($変数名 = "値")

#set($countLoop = 5)
#set($priceSuffix = " 円")

$entity.valueのドット表記部分を削りたい

普通に$entity.valueのデータを出力すると 500.00 というような表現になってしまいます。
日本円ではこの記述方法だと使いにくいので…この".00"部分を取り除く方法は以下のようにします。

記述方法(仮に1商品目の価格データを出す場合)

$entity1.value.split(".00").get(0)


上が普通に表示した場合、下が上の記述方法で出力した場合です。

正規表現を使って値の判定をしたい

ちょっと特殊な書き方にはなりますが、正規表現を使って値の判定をすることが可能です。

記述方法
(仮に$entity1.itemTitle という値に対して正規表現を使いたい場合)

#if($entity1.itemTitle.matches("正規表現文字列"))
  ## マッチした時の処理
#end

例([テスト]という文字列があるかどうかを判定)

#if($entity1.itemTitle.matches("^\[テスト\].*$"))
  <h2>テスト商品です</h2>
#end

これらのテクニック及びループ処理やIF文の判定を使うことで、ある程度のデザインカスタマイズがVelocity記法で記述した場合に可能になります。
今回説明した内容含めて以下のヘルプでも様々な例が記載されています。是非こちらも合わせてご確認下さい。

Velocity を使用したデザインのカスタマイズ | Adobe Target

是非Adobe Targetのレコメンデーション機能を使ってお手軽にレコメンド環境を導入してみてください!