通常では、LiftIgniterはプールされたすべてのアイテムの中から、上位のリコメンデーションのアイテムを選定します。特定の制限されたリスト(例: 編集者のピックアップコンテンツなど)からランク付けしてリコメンデーションを選定したい場合は、下記のようにregister関数にItemsToRankのフィールドを指定することで設定できます:
$p('register', {
max: 5,
widget: 'default-widget',
opts: {itemsToRank: ["list","of","items"]},
callback: function(resp) {
console.log(JSON.stringify(resp, null, 2));
}
}
);
$p('fetch');
これは既存のインベントリの中から指定されたリストに合致するアイテムを返すものです。もし、我々のインベントリに存在しないアイテムをランク付けに含めたい場合は、optsにuseinventoryのフィールドにfalseを指定することで設定できます。
$p('register', {
max: 5,
widget: 'default-widget',
opts: {itemsToRank: ["list","of","items"], "useInventory": "false"},
callback: function(resp) {
console.log(JSON.stringify(resp, null, 2));
}
}
);
$p('fetch');
プリフィクスを使用してクエリのURLを簡易化する
ランク付けをするアイテムの数が大量にあり、送信するGETクエリが長くなる場合、ランク付けしたいアイテムの数が25件を超えると、クエリのサイズ制限を超えてしまうことがあります。
これは、アイテムの先頭に共通のプレフィクスを追加することで問題を解決できます。例えば、全てのアイテムがhttp://dummydomain.com/articles/の文字列から始まっている場合、下記のようなクエリを送る代わりに:
$p('register', {
max: 5,
widget: 'default-widget',
opts: {itemsToRank: ["http://www.dummydomain.com/articles/a","http://www.dummydomain.com/articles/b","http://www.dummydomain.com/articles/c"]},
callback: function(resp) {
console.log(JSON.stringify(resp, null, 2));
}
}
);
$p('fetch');
下記のようにクエリを送ることができます。
$p('register', {
max: 5,
widget: 'default-widget',
opts: {itemsToRankPrefix: "http://www.dummydomain.com/articles/", itemsToRank: ["a","b","c"]},
callback: function(resp) {
console.log(JSON.stringify(resp, null, 2));
}
}
);
$p('fetch');