RecsForPlacementContext

IMPORTANT: この API は現在、一部のお客様のみに提供されています。使用をご希望の場合は、Algonomy チームにお問い合わせください。

説明

この API を使用すると、複数のプレースメントに対して個別のコンテキストを渡して、単一のリクエストを行うことができます。特定の戦略を強制的に適用したり、属性、カテゴリ、価格のフィルターを適用してレコメンド結果を調整することも可能です。

これにより、1 ページ内に複数のプレースメントを配置し、それぞれが異なるカテゴリに基づくシードを使用することができます。この API は recsForPlacements API と同じパラメーターをすべて受け入れ、コンテキスト情報は POST リクエストのボディに含めて送信されます。

recsForPlacements API と recsForPlacementsContext API の違いは以下の通りです。

>recsForPlacements

>recsForplacementsContext

GET API 呼び出し

POST API 呼び出し

ドキュメント化されたクエリパラメーターを受け入れ

>recsForPlacements のクエリパラメーター + POST ボディ(プレースメントコンテキスト)を受け入れ

ペイロード

>名前

>必須/任意

>説明

attributeConfigs

任意

推奨される商品の条件として満たすべき属性名と値のリスト。

例:  

[{"attributeName": "color", "attributeValues": ["blue", "red"]}]

attributeInfo

任意

さまざまな属性に関する情報と、その適用方法を保持します。

categorySeed

任意

プレースメントで使用されるシードカテゴリ。

enablePartialAttributeMatching

任意

true/false。デフォルトは false。完全一致した商品のみをレスポンスに含めます。

この値を true に設定すると、リクエストで指定した属性フィルターに部分的に一致する商品もレスポンスに含めることができます。商品は一致した属性数に基づいてランク付けされます。複数の属性でフィルターする場合、API はすべてに一致する商品を優先し、プレースメントに一致する商品が足りない場合に部分一致商品を返します。

例: enablePartialAttributeMatching = true

Note: 「enable partial attribute matching」オプションは サイト構成 内で有効にしてください。

enableStrategyDuplication

任意

デフォルトは false。true に設定すると、同じページ内の複数のプレースメントで同じ戦略を複数回実行できます。

例: enableStrategyDuplication = true

filterAtr

任意

属性と値のリストを渡します(OR 条件)。

filterConfig

任意

指定されたプレースメントに対して、レスポンスの商品に適用されるフィルター。

  • minPriceFilter:地域価格、セール価格、またはセール価格がない場合はリスト価格

  • maxPriceFilter:地域価格、セール価格、またはセール価格がない場合はリスト価格

  • categoryFilter:1つ以上のカテゴリに属する商品

例: {minPriceFilter: null, maxPriceFilter: 100}

includeProductsMatchingFilters

任意

true または false。デフォルト値は true。

例: includeProductsMatchingFilters = true

  • 適用対象:attributeConfigs、categoryFilter、minPriceFilter、maxPriceFilter

  • true:フィルターに一致する商品のみを推奨(例:カテゴリ 487553 に属する商品のみを返す)

  • false:フィルターに一致する商品を除外(例:カテゴリ 487553 に属する商品を返さない)

placementConfig

任意

このプレースメントに対して個別に上書き可能な構成を含むオブジェクト(現在は 'strategyConfig' のみ対応)。

placementContextInfo

必須

各プレースメントの情報を保持するリスト。プレースメント名、実行する戦略、カテゴリシード、各種フィルターなどの情報を含む。

placementName

必須

リクエストで指定されたプレースメントの名称。

例:category_page

productIds

任意

ClickCP などの商品シード戦略で使用される productId のリスト。

例:["12345", "67890"]

productsMatchAllAttributes

任意

デフォルトは true。true に設定すると、attributeConfigs に指定されたすべての属性を持つ商品のみを保持します。false に設定すると、少なくとも 1 つの属性に一致する商品を保持します。

例:productsMatchAllAttributes = true

reorder

任意

デフォルトは false。true に設定すると、提供された戦略リストを Algonomy の機械学習アルゴリズム(XO)によって再配置します。false の場合、指定された順番通りに戦略が使用されます。

strategyConfig

任意

戦略の構成を上書きするためのオブジェクト。

例:{"strategies": ["BestSellers", "TopRated"]}

strategies

任意

強制的に実行される戦略のリスト。これらの戦略は、Experience Optimizer(XO)によって選択された戦略や戦略ルールによる優先戦略の前に実行されます。バックフィル戦略を含めることも可能です。指定された戦略で適切なレコメンドが返されない場合、戦略ルールや XO にフォールバックします。

フォールバックの順序:

  1. リクエスト内で定義された戦略

  2. 該当プレースメントに対してターゲット設定された戦略ルールの戦略

  3. ページタイプで有効になっている戦略の中から Experience Optimizer が選択した戦略

例:["CategoryTopSellers", "CategoryTopProducts"]

IMPORTANT: シードが必要なページでは、placementConfig オブジェクト内でシード属性を含める必要があります。たとえば、商品ページやカートページでは productIds 属性を、カテゴリページでは categorySeed 属性を送信する必要があります。

例外

>例外

>条件

>ArgumentNullException

>message が null の場合。

例 1

リクエスト例:

Copy
http://recs.richrelevance.com/rrserver/apiclick?a=5c84741760900058&vg=c12ab4b2...s=1437007681319&pg=1653&p=36714988&ind=0

ペイロード:

Copy
{
    "placementContextInfo" : [
        {
        "placementName" :"item_page.recsmiddle",
        "placementConfig" : {
            "strategyConfig": {
                "strategies" : ["ViewedPurchased","ClickEV", "CategoryTopSellers"],
                "reorder" : false
            },
            "categorySeed" : "electronics",
            "filterConfig" : {
                "includeProductsMatchingFilters" : false,
                "categoryFilters" : ["video"],
                "minPriceFilter": null,
                "maxPriceFilter" : 5000,
                "attributeInfo" : {
                    "productsMatchAllAttributes" : false,
                    "attributeConfigs" : [
                        {
                            "attributeName" : "prime",
                            "attributeValues" : ["false"]
                        },
                        {
                            "attributeName" : "Clearance",
                            "attributeValues" : ["N"]
                        }
                    ]
                }
            },
            "productIds" : ["15847591"]
        }
      }
    ],
    "enableStrategyDuplication" : false
}

上記の例では、クライアントは複数のプレースメントオブジェクトを送信できます。

Note: リクエストで渡されるプレースメント名は、POST ボディ内の placementName と一致している必要があります。

この例では、2 つのプレースメントに対してリクエストが送信されています:

  • item_page.recsmiddle

  • item_page.rr1

しかし、POST ボディには 'recsmiddle' のみが定義されています。したがって 'recsmiddle' プレースメントには指定された戦略が強制的に実行されますが、'item_page.rr1' にはデフォルトのパイプラインが使用されます(上書きコンテキストが渡されていないため、強制戦略はありません)。

レスポンス例:

Copy
{
  "rcs": "eF5j4cotK8lM4TMzsNA11DVkKU32MEkyBAJjM11jYzMzXRNTozRdA0sgYZxiammQaGJmZmaaDABuTQ0O",
  "placements": [
    {
      "htmlElementId": "home_page_0",
      "placementType": "home_page",
      "strategyMessage": "Shop Top Sellers",
      "html": "",
      "placement": "home_page.rr1",
      "recommendedProducts": [
        {
          "clickURL": "https://integration.richrelevance.com/rrserver/apiclick?a=showcaseparent&cak=776cdd80331919e7&ct=http%3A%2F%2Flabs.richrelevance.com%2Fstorre%2Fcatalog%2Fproduct%2Fview%2Fsku%2F22127002&vg=4b121136-3366-452f-092f-3d590a46665c&stid=126&pti=9&pa=11339&pos=0&p=22127002&channelId=776cdd80331919e7&s=827ccb0eea8a706c4c34a16891f84e7b&u=12345&mvtId=-1&mvtTs=1529712166361",
          "regionPriceDescription": "",
          "salePriceRangeCents": [
            1,
            1
          ],
          "rating": 3.884,
          "numReviews": 0,
          "priceRangeCents": [
            1,
            1
          ],
          "categoryIds": [
            "Electronics",
            "Electronics.Computers",
            "Electronics.Computers.Tablet PCs"
          ],
          "clickTrackingURL": "https://integration.richrelevance.com/rrserver/apiclick?a=showcaseparent&cak=776cdd80331919e7&vg=4b121136-3366-452f-092f-3d590a46665c&stid=126&pti=9&pa=11339&pos=0&p=22127002&channelId=776cdd80331919e7&s=827ccb0eea8a706c4c34a16891f84e7b&u=12345&mvtId=-1&mvtTs=1529712166361",
          "salePriceCents": 1,
          "regionalProductSku": "22127002",
          "imageURL": "http://labs.richrelevance.com/storre/media/catalog/product/n/e/nextbook-7quot-tablet-with-8gb-memory-with-google-mobile-services-73fbdb1640b18e99695aa87c7da712f5.jpg",
          "name": "\"Nextbook 7\\\" Tablet with 8GB Memory with Google Mobile Services\"",
          "genre": "default",
          "isRecommendable": true,
          "priceCents": 6900,
          "attributes": {
            "MktplcInd": [
              "W"
            ],
            "Clearance": [
              "N"
            ],
            "97CentShipping": [
              "N"
            ],
            "Rollback": [
              "N"
            ],
            "Online": [
              "Y"
            ],
            "ListPrice": [
              "79"
            ],
            "AddToCart": [
              "Y"
            ],
            "IsReducedPrice": [
              "N"
            ],
            "IsSubmap": [
              "N"
            ],
            "S2S": [
              "Y"
            ]
          },
          "id": "22127002",
          "categories": [
            {
              "hasChildren": false,
              "name": "Electronics",
              "childCategories": [],
              "ancestorCategories": [],
              "id": "Electronics",
              "isActive": false
            },
            {
              "hasChildren": false,
              "name": "Computers",
              "childCategories": [],
              "ancestorCategories": [],
              "id": "Electronics.Computers",
              "isActive": false
            },
            {
              "hasChildren": false,
              "name": "Tablet PCs",
              "childCategories": [],
              "ancestorCategories": [],
              "id": "Electronics.Computers.Tablet PCs",
              "isActive": false
            }
          ],
          "productURL": "http://labs.richrelevance.com/storre/catalog/product/view/sku/22127002",
          "brand": "Nextbook"
        }
      ]
    }
  ],
  "viewGuid": "4b121136-3366-452f-092f-3d590a46665c",
  "status": "ok"
}

 

例 2

リクエスト例:

Copy
http://localhost:8101/rrserver/api/rrPlatform/recsForPlacementsContext?apiClientKey=0503a7f4357b2f36&apiKey=45a98cdf34a56c26&placements=category_page.recsbottom&sessionId=7FzEGpX7iqeNZnWw9hNR6Jegy1kVCh11&rcs=eF4FwbERgCAQBMCEyF7O8eDgoQPb4EFnDMzU-t0Ny_0911yzIphF1labpY0oCWB4xy6fpk7BhxvUzwOmRPSS64gclJcfbskRrQ&l=1&pref=
https://www.build.com/bathroom/c108412&c=976

ペイロード:

Copy
[
    {
        "placementName" :"category_page.recsbottom",
        "placementConfig" : {
            "strategyConfig": {
                "strategies" : [ "CategoryTopProducts","CategoryTopSellers"]
            },
            "categorySeed" : "889",
            "filterConfig" : {
                "includeProductsMatchingFilters" : true,
                "categoryFilters" : ["889-506438", "508606-516708-508608"],
                "minPriceFilter": null,
                "maxPriceFilter" : 2000,
                "attributeConfigs" : [
                    {
                        "attributeName" : "gender",
                        "attributeValues" : ["female"]
                    },
                    {
                        "attributeName" : "is_savings_constant",
                        "attributeValues" : ["true"]
                    }
                ]
            }
        }
    }
]

例 3

このレスポンスでは、'enablePartialAttributeMatching' が true に設定されており、部分的な属性一致が有効になっていることを示しています。これにより、リクエスト本文で指定された属性フィルターに一部一致する商品も返されます。

リクエスト例:

Copy
https://recs.richrelevance.com/rrserver/api/rrPlatform/recsForPlacementsContext?placements=category_page.guided_selling&includeStrategyData=true&excludeItemAttributes=false&excludeHtml=true&categoryData=false&apiClientKey=e720fcd382666696&apiKey=d8baf6848041b078&sessionId=hfws11wljsln&rid=027&excludeItemAttributes=true&rcs=eF4NxbERgCAMBdCGyl3-XRICIRu4BgG5s7BT59fXvLRd731OYtcMtn-xyqUWgTPA6Rn7EdbYV0f4FCiNgK-2oFIiWyZi7R9_cRG9

ペイロード:

Copy
{
  "placementContextInfo": [
    {
      "placementName": "category_page.guided_selling",
      "placementConfig": {
        "strategyConfig": {
          "strategies": ["Category - Top Selling"],
          "reorder": false
        },
        "categorySeed": "mens-fleece-sweaters",
        "filterConfig": {
          "includeProductsMatchingFilters": true,
          "enablePartialAttributeMatching": true,
          "categoryFilters": [],
          "minPriceFilter": null,
          "maxPriceFilter": null,
          "attributeInfo": {
            "productsMatchAllAttributes": true,
            "attributeConfigs": [
              {
                "attributeName": "gender",
                "attributeValues": ["Men's"]
              },
              {
                "attributeName": "size",
                "attributeValues": ["S","M"]
              },
              {
                "attributeName": "color-family",
                "attributeValues": ["black"]
              },
              {
                "attributeName": "best-use",
                "attributeValues": ["Multisport", "Fitness"]
              }
            ]
          }
        },
        "productIds": []
      }
    }
  ],
  "enableStrategyDuplication": false
}

考慮事項

Advanced Merchandising ルールは、Algonomy システム内のすべての戦略(顧客定義戦略または既定の戦略)よりも先に常に実行されます。Advanced Merchandising ルールがプレースメントをターゲットにしており、そのプレースメントがリクエストで指定されていて、ルールがプレースメント要件を満たしている場合、Advanced Merchandising のレコメンドが返され、このコンテキストに基づくリクエストは無視されます。クライアントは、同じプレースメントをターゲットにする Advanced Merchandising ルールが存在しないことを確認する必要があります。