絞り込み(リファインメント)
絞り込みは、返されるレコメンデーションにフィルターを適用するために使用されます。これは、プロモーション用ランディングページに合わせてレコメンデーションセットを絞り込む場合や、ガイド付きナビゲーションでのユーザー操作に合わせて結果セットを一致させる場合など、さまざまな理由で使用されます。
複数の絞り込みを使用する場合、それらは AND 条件で評価されます。例:
R3_COMMON.addRefinement('myVar', 'A');
R3_COMMON.addRefinement('myVar', 'C');
この場合、「myVar」がAかつCに設定されているアイテムのみがフィルターに通過します。
IMPORTANT: 重要:絞り込みを追加する際は注意してください。フィルターは推奨される商品セットに対してのみ適用され、カタログ全体には適用されません。過剰なフィルターは、レコメンデーションが表示されなくなる原因になります。
1ページで複数の絞り込みを行う予定がある場合は、Algonomyチームにその旨をお伝えください。
JavaScript統合
コードの使用方法
- Algonomyの技術担当者に、貴サイトでの絞り込み機能の有効化を依頼してください。
- サイト内の各ページにHTML統合およびJSON統合ガイドに従って統合コードを作成します。
- 次の関数を統合コードに追加します:
関数 | 要件 |
---|---|
R3_COMMON.addRefinement('ATTRIBUTE_NAME', 'VALUE'); |
ATTRIBUTE_NAME を、フィルターとして使用する商品属性名に置き換えます。 VALUE を、推奨対象商品が一致すべき値に置き換えます。 |
サンプルコード
Primary Code Block にて addRefinement() を呼び出します。
HTML
<!-- <body> タグのなるべく上部に配置してください -->
<script src="//media.richrelevance.com/rrserver/js/1.2/p13n.js"></script>
<script charset="utf-8" type="text/javascript">
var R3_COMMON = new r3_common();
R3_COMMON.setApiKey('abcd5432e1');
R3_COMMON.setBaseUrl(window.location.protocol+'//integration.richrelevance.com/rrserver/');
R3_COMMON.setClickthruServer(window.location.protocol+"//"+window.location.host);
R3_COMMON.setSessionId('6B4D397B');
R3_COMMON.setUserId('1');
R3_COMMON.addPlacementType('home_page.rr1');
var R3_HOME = new r3_home();
R3_COMMON.addRefinement('Color', 'BLUE');
r3();
</script>
JSON
<!-- <body> タグのなるべく上部に配置してください -->
<script charset="utf-8" type="text/javascript">
var R3_COMMON = new r3_common();
R3_COMMON.setApiKey('abcd5432e1');
R3_COMMON.setBaseUrl(window.location.protocol+'//integration.richrelevance.com/rrserver/');
R3_COMMON.setClickthruServer(window.location.protocol+"//"+window.location.host);
R3_COMMON.setSessionId('6B4D397B');
R3_COMMON.setUserId('10987');
R3_COMMON.addPlacementType('home_page.rr1');
var R3_HOME = new r3_home();
R3_COMMON.addRefinement('Color', 'BLUE');
rr_flush_onload();
r3();
</script>
API
絞り込みは、指定した属性名と値を持つ商品のみが推奨されるようにするために使用されます。個別の絞り込みは「名前:値」の形式で指定します。
例:rfm=name:value
属性の存在のみを指定する場合は、値を省略できます。
例:rfm=name
複数の絞り込みを指定するには、「|(パイプ)」文字で区切ってリスト形式で指定します。
例:rfm=attributeName|attributeName1:value1|attributeName2:value2
詳細は recsForPlacements を参照してください。
過剰なフィルタリングについて
前述のとおり、絞り込みを適用しすぎると、レコメンデーションの最小数を満たせず表示されない可能性があります。デフォルトでは、この場合に絞り込みを削除するフォールバック機能が有効です。これを無効にするには、R3_COMMON.setRefinementFallback(false);
を R3_COMMON.addRefinement
の後に追加してください。フォールバックが発動すると、そのリクエストのすべてのプレースメントで絞り込みが解除されます。