オファー属性で限定されないオファーの重複排除

Interact アプリケーション・プログラミング・インターフェース (API) を使用すると、getOffers getOffersForMultipleInteractionPoints という 2 つの API 呼び出しでオファーが提供されます。getOffersForMultipleInteractionPoints は、OfferID レベルで重複オファーが戻されるのを防ぐことはできますが、オファー・カテゴリーに限定されないオファーの重複排除を行うことはできません。そのため、Interact がオファー・カテゴリーごとに 1 つのオファーだけを戻す場合などでは、これまで回避策が必要でした。startSession API 呼び出しに 2 つのパラメーターが導入されたことにより、オファー属性 (カテゴリーなど) に限定されないオファーの重複排除が可能になりました。

以下のリストは、startSession API 呼び出しに追加されたパラメーターを要約したものです。これらのパラメーターの詳細または Interact API の詳細については、「IBM® Interact 管理者ガイド」または Interact インストール済み環境に含まれている <Interact_Home>/docs/apiJavaDoc の Javadoc ファイルを参照してください。

  • UACIOfferDedupeAttribute。オファー重複排除を指定した startSession API 呼び出しを作成して、後続の getOffer 呼び出しが各カテゴリーからオファーを 1 つだけ返すようにするには、UACIOfferDedupeAttribute パラメーターを API 呼び出しの一部として組み込む必要があります。次に示すように、name,value,type の形式でパラメーターを指定できます。

    UACIOfferDedupeAttribute,<attributeName>,string

    この例では、<attributeName> を、重複排除の基準として使用するオファー属性の名前 (例えば Category) に置き換えることになります。

    注: Interact は、同じ属性値 (例えば Category) が指定されたオファーを調べて、重複を排除します。 その結果、スコアが最も高いオファー以外はすべて削除されます。重複属性を持つオファー間でスコアもまったく同じである場合、Interact は一致するオファーの中からランダムに選択したものを返します。
  • UACINoAttributeDedupeIfFewerOfferstartSession 呼び出しに UACIOfferDedupeAttribute を組み込むときに、この UACINoAttributeDedupeIfFewerOffer パラメーターを設定することにより、重複排除後のオファー・リストに元の要求を満たすだけのオファーが含まれなくなった場合の動作を指定することもできます。

    例えば、オファー・カテゴリーを使用してオファーの重複を排除するように UACIOfferDedupeAttribute が設定されているときに、8 つのオファーを返すよう後続の getOffers 呼び出しが要求した場合、重複排除の結果として、適格オファーが 8 つより少なくなる可能性があります。その場合は、UACINoAttributeDedupeIfFewerOffer パラメーターを true に設定することで、重複オファーのいくつかが適格リストに追加されて、要求されたオファー数を満たすようになります。この例では、パラメーターを false に設定すると、返されるオファーの数は要求された数より少なくなります。

    UACINoAttributeDedupeIfFewerOffer はデフォルトで「true」に設定されます。

例えば、次に示すように、重複排除基準がオファー・カテゴリーであることを startSession のパラメーターとして指定したとします。

UACIOfferDedupeAttribute,Category,string;

UACINoAttributeDedupeIfFewerOffer,1,string

デフォルトでは、UACIOfferDedupeAttribute は、要求した数より返された数が少ない場合は、オファーの重複排除を行いません。しかし、要求したオファーより返されたオファーが少ない場合に重複排除が行われるようにするには、UACINoAttributeDedupeIfFewerOffer パラメーターを指定する必要があり、その値を 1 に設定する必要があります。

これらのパラメーターの組み合わせにより、Interact はオファー属性「Category」に基づいてオファーの重複を排除し、結果のオファー数が要求数より少なくても、重複が排除されたオファーのみ返すようになります (UACINoAttributeDedupeIfFewerOffer は false)。

getOffers API 呼び出しを発行したときに、以下のオファーが元の適格オファー・セットに含まれているとします。

  • Category=Electronics: スコアが 100 のオファー A1、およびスコアが 50 のオファー A2。
  • Category=Smartphones: スコアが 100 のオファー B1、スコアが 80 のオファー B2、およびスコアが 50 のオファー B3。
  • Category=MP3Players: スコアが 100 のオファー C1、およびスコアが 50 のオファー C2。

この場合は、最初のカテゴリーと一致する重複オファーが 2 つ、2 番目のカテゴリーと一致する重複オファーが 3 つ、3 番目のカテゴリーと一致する重複オファーが 2 つあったことになります。返されるオファーは、各カテゴリーの中でスコアリングが最も高いオファー (オファー A1、オファー B1、およびオファー C1) になります。

getOffers API 呼び出しがオファーを 6 つ要求しても、この例では UACINoAttributeDedupeIfFewerOffer が false に設定されているため、返されるオファーは 3 つだけになります。

getOffers getOffers API 呼び出しがオファーを 6 つ要求した場合、この例から UACINoAttributeDedupeIfFewerOffer パラメーターが除外されているか明確に true に設定されていれば、要求された数を満たすために、重複オファーのいくつかが結果に組み込まれることになります。