getOffers

getOffers メソッドを使用して、ランタイム・サーバーからのオファーを要求できます。

getOffers(String sessionID, String interactionPoint, int numberOfOffers)
  • sessionID - 現行セッションを識別する文字列。

  • interactionPoint - このメソッドが参照するインタラクション・ポイントの名前を識別する文字列。

    注: この名前は、対話式チャネルで定義されているインタラクション・ポイントの名前と正確に一致する必要があります。
  • numberOfOffers - 要求されるオファーの数を識別する整数。

getOffers メソッドは、segmentationMaxWaitTimeInMS プロパティーに定義された時間 (ミリ秒単位) 待機し、すべての再セグメンテーションが完了してから実行されます。したがって、getOffers 呼び出しの直前に、再セグメンテーションまたは setAudience メソッドをトリガーする postEvent メソッドを呼び出す場合は、遅延が生じる可能性があります。

戻り値

ランタイム・サーバーは、以下の属性が設定されたレスポンス・オブジェクトを使用して getOffers に応答します。

  • AdvisoryMessages
  • ApiVersion
  • OfferList
  • セッション ID
  • StatusCode
  • NameValuePair

この例は、Overview Page Banner 1 インタラクション・ポイントに対する単一オファーの要求と、その応答を処理する方法を示します。

sessionId は、このセッションを開始した startSession 呼び出しで使用されるランタイム・セッションを識別する同じ文字列です。

String interactionPoint = "Overview Page Banner 1";
int numberRequested=1;
        
/** Make the call */
response = api.getOffers(sessionId, interactionPoint, numberRequested);
       
/** Process the response appropriately */
	// check if response is successful or not
	if(response.getStatusCode() == Response.STATUS_SUCCESS)
	{
  System.out.println("getOffers call processed with no warnings or errors");
    
        /** Check to see if there are any offers */
        OfferList offerList=response.getOfferList();
            
        if(offerList.getRecommendedOffers() != null)
        {
            for(Offer offer : offerList.getRecommendedOffers())
            {
                // print offer
                System.out.println("Offer Name:"+offer.getOfferName());
            }
        }
        else // count on the default Offer String
        System.out.println("Default offer:"+offerList.getDefaultString());
    }
    else if(response.getStatusCode() == Response.STATUS_WARNING)
    {
        System.out.println("getOffers call processed with a warning");
    }
    else
    {
        System.out.println("getOffers call processed with an error");
    }
    // For any non-successes, there should be advisory messages explaining why
    if(response.getStatusCode() != Response.STATUS_SUCCESS)
        printDetailMessageOfWarningOrError("getOffers",
			response.getAdvisoryMessages());

オファー・スコアの小数部が名前値のペアの getOffer 応答で返されます。オファーが要求中のインバウンド・チャネルに返される場合、チャネルはこのスコアを使用してオファーの優先順位を付けます。小数部の桁が削除されないので、チャネルは、10 進数が返された場合に、より高いスコアのオファーがわかります。