絞り込み(リファインメント)

絞り込みは、返されるレコメンデーションにフィルターを適用するために使用されます。これは、プロモーション用ランディングページに合わせてレコメンデーションセットを絞り込む場合や、ガイド付きナビゲーションでのユーザー操作に合わせて結果セットを一致させる場合など、さまざまな理由で使用されます。

複数の絞り込みを使用する場合、それらは AND 条件で評価されます。例:

コピー
R3_COMMON.addRefinement('myVar', 'A');
R3_COMMON.addRefinement('myVar', 'C');

この場合、「myVar」がAかつCに設定されているアイテムのみがフィルターに通過します。

IMPORTANT: 重要:絞り込みを追加する際は注意してください。フィルターは推奨される商品セットに対してのみ適用され、カタログ全体には適用されません。過剰なフィルターは、レコメンデーションが表示されなくなる原因になります。

1ページで複数の絞り込みを行う予定がある場合は、Algonomyチームにその旨をお伝えください。

JavaScript統合

コードの使用方法

  1. Algonomyの技術担当者に、貴サイトでの絞り込み機能の有効化を依頼してください。
  2. サイト内の各ページにHTML統合およびJSON統合ガイドに従って統合コードを作成します。
  3. 次の関数を統合コードに追加します:
関数 要件
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 の後に追加してください。フォールバックが発動すると、そのリクエストのすべてのプレースメントで絞り込みが解除されます。