setAudience

setAudience メソッドを使用して、訪問者のオーディエンス ID とレベルを設定できます。

setAudience(String sessionID, NameValuePairImpl[] audienceID, 
     String audienceLevel, NameValuePairImpl[] parameters)
  • sessionID - セッション ID を識別する文字列。

  • audienceID: オーディエンス ID を定義する NameValuePairImpl オブジェクトの配列。

  • audienceLevel - オーディエンス・レベルを定義する文字列。

  • parameters: setAudience を使用して渡す必要のあるパラメーターを識別する NameValuePairImpl オブジェクト。これらの値はセッション・データに格納され、セグメンテーションに使用できます。

    プロファイルのすべての列に値が必要です。これは、対話式チャネルおよびリアルタイム・データ用に定義されたすべてのテーブルのすべての列のスーパーセットです。startSession または postEvent を使用してすべてのセッション・データを既に追加済みの場合は、新しいパラメーターを送信する必要はありません。

setAudience メソッドは、再セグメンテーションをトリガーします。getOffers メソッドは、実行する前に、再セグメンテーションが完了するまで待機します。したがって、getOffers 呼び出しの直前に setAudience メソッドを呼び出す場合は、遅延が生じる可能性があります。

setAudience メソッドは、オーディエンス ID のプロファイル・データもロードします。setAudience メソッドを使用して、startSession メソッドでロードされる同じプロファイル・データを強制的に再ロードすることができます。

戻り値

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

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

この例の場合、オーディエンス・レベルは同じままですが、匿名ユーザーがログインし、既知のユーザーになる場合のように、ID が変わります。

sessionId および audienceLevel は、このセッションを開始した startSession 呼び出しで使用するセッションおよびオーディエンス・レベルを識別する同じ文字列です。

NameValuePair custId2 = new NameValuePairImpl();
custId2.setName("CustomerId");
custId2.setValueAsNumeric(123.0);
custId2.setValueDataType(NameValuePair.DATA_TYPE_NUMERIC);
       
NameValuePair[] newAudienceId = { custId2 };
        
/** Parameters can be passed in as well.  For this example, there are no parameters, 
* therefore pass in null */
NameValuePair[] noParameters=null;
       
/** Make the call  */
response = api.setAudience(sessionId, newAudienceId, audienceLevel, noParameters);
        
 /** Process the response appropriately */
    // check if response is successful or not
    if(response.getStatusCode() == Response.STATUS_SUCCESS)
    {
        System.out.println("setAudience call processed with no warnings or errors");
    }
    else if(response.getStatusCode() == Response.STATUS_WARNING)
    {
        System.out.println("setAudience call processed with a warning");
    }
    else
    {
        System.out.println("setAudience call processed with an error");
    }
        
    // For any non-successes, there should be advisory messages explaining why
    if(response.getStatusCode() != Response.STATUS_SUCCESS)
        printDetailMessageOfWarningOrError("setAudience",
			response.getAdvisoryMessages());