アイテム軸自動レコメンド #
「この商品を見た人はこんな商品も見ています」というタイプのレコメンドを実現するためには、閲覧中のアイテム(ターゲットアイテム)のアイテムコードをRtoasterに通知する必要があります。
これは通常、Rtoaster action+管理画面で設定されたアイテムコード取得正規表現によって商品詳細ページのURLから取得されますが、URLからアイテムコードが取得できない場合はカスタム変数をレコメンドAPIの呼び出し時に指定する必要があります。
アイテムコード指定によるアイテム軸自動レコメンド #
カートページなど URL からカテゴリコード、アイテムコードが取得できないページで商品軸のレコメンドを実行する場合、レコメンドパラメータにアイテムコードをセットして recommend メソッドを実行することにより、商品軸のレコメンドを行うことが可能です。
マルチターゲット アイテム軸自動レコメンド #
複数のエレメントIDについて、それぞれ異なるターゲットアイテムのアイテム軸自動レコメンドを一括して取得できます。
エレメントIDとこれに対応するターゲットアイテムコードの組み合わせをマップ形式で
RecommendationValues
クラスの targetItemCodes
に指定します。
サンプルコード #
do {
let recommendationValues = try RecommendationValues.Builder()
.itemCodes(["item_12345"])
.build()
try Rtoaster.track(.Builder() // レコメンドするためのトラッキング
.location(Location("top_page"))
.build()
)
.onFailure { err in
print("Tracking error: \(error.toMap())")
}
.recommend(.Builder()
.elementIds(["element_1"])
.values(recommendationValues)
.build()
)
.onSuccess { result in
print("SUCCESS: Recommendation")
print(result)
}
.onFailure { err in
print("Recommendation error: \(error.toMap())")
}
} catch {
print("Parameter error: \(error.toMap())")
}
val recommendationValues = RecommendationValues {
itemCodes(arrayOf("item_12345").toSet())
}
try {
Rtoaster.track(TrackingParameter { // レコメンドするためのトラッキング
location(Location("testLocation"))
}).onFailure {
Log.d("Rtoaster", "Tracking error", it)
}.recommend(RecommendationParameter {
elementIds("element_1")
values(recommendationValues)
}).onSuccess {
for (result in it.results) {
Log.d("Rtoaster", "Content: ${result.contents.toString()}")
}
}.onFailure {
Log.d("Rtoaster", "Recommendation error", it)
}
} catch (Exception e) {
Log.e("Rtoaster", "Recommendation Error", e)
}