追加のレスポンス・タイプ
Interact では、Interact API の postEvent メソッドを使用して、オファーの「承認」または「拒否」アクションをログに記録するイベントをトリガーできます。また、システムを補完して、postEvent 呼び出しが追加のレスポンス・タイプ (参照、考慮、確定、調達など) を記録できるようにすることができます。これらのレスポンス・タイプはすべて、Campaign システム・テーブルの UA_UsrResponseType テーブル内に存在する必要があります。postEvent メソッドに特定のイベント・パラメーターを使用することで、追加のレスポンス・タイプを記録し、学習に承認を組み込む必要があるかどうかを定義します。
追加のレスポンス・タイプをログに記録するには、以下のイベント・パラメーターを追加する必要があります。
*
UACIRESPONSETYPECODE - レスポンス・タイプのコードを表すストリング。値は、UA_UsrResponseType テーブルの有効なエントリーでなければなりません。
UA_UsrResponseType で有効なエントリーにするには、CountsAsResponse を含むそのテーブル内のすべての列を定義する必要があります。 CountsAsResponse の有効な値は、0、1、または 2 です。0 はレスポンスがないことを示し、1 はレスポンスがあることを示し、2 は拒否を示します。これらのレスポンスは、レポート用に使用されます。
*
UACILOGTOLEARNING - 1 または 0 の数値。1 は、Interact が学習用の承認としてイベントをログに記録する必要があることを示します。0 は、Interact が学習用にイベントをログに記録する必要がないことを示します。このパラメーターを使用することで、学習に影響を及ぼさずに異なるレスポンス・タイプをログに記録する、複数の postEvent メソッドを作成することができます。UACILOGTOLEARNING を定義しない場合、Interact はデフォルト値の 0 であるとみなします。
「オファー承認をログに記録」アクションで複数のイベント (ログに記録するレスポンス・タイプごとに 1 つ) を作成するか、あるいは「オファー承認をログに記録」アクションを使用して単一のイベントを作成し、異なる複数のレスポンス・タイプをログに記録するために使用するすべての postEvent 呼び出しに使用することができます。
例えば、レスポンスのタイプごとに、「オファー承認をログに記録」アクションでイベントを作成します。UA_UsrResponseType テーブルの「名前 (コード) (as Name (code))」で、「参照 (EXP)」、「考慮 (CON)」、および「確定 (CMT)」というカスタム・レスポンスを定義します。その後、3 つのイベントを作成し、それらに LogAccept_Explore、LogAccept_Consider、および LogAccept_Commit という名前を付けます。 3 つのイベントはすべて (「オファー承認をログに記録」アクションを持つ) 完全に同じものですが、名前が異なるため、その API を使用して作業を行うユーザーは、それらを区別することができます。
また、「オファー承認をログに記録」アクションで単一のイベントを作成して、すべてのカスタム・レスポンス・タイプに使用することもできます。これには、例えば LogCustomResponse という名前を付けます。
この API を使用して作業を行う場合、それらのイベントに機能的な違いはありませんが、この命名規則によってコードがより明確になる場合があります。 また、それぞれのカスタム・レスポンスに別個の名前を付けると、「チャネル・イベント・アクティビティー・サマリー」レポートに表示される情報が、より正確になります。
まず、すべての名前と値のペアをセットアップします。
//Define name value pairs for the UACIRESPONSETYPECODE 
// Response type Explore
NameValuePair responseTypeEXP = new NameValuePairImpl();
responseTypeEXP.setName("UACIRESPONSETYPECODE");
responseTypeEXP.setValueAsString("EXP");
responseTypeEXP.setValueDataType(NameValuePair.DATA_TYPE_STRING);

// Response type Consider
NameValuePair responseTypeCON = new NameValuePairImpl();
responseTypeCON.setName("UACIRESPONSETYPECODE");
responseTypeCON.setValueAsString("CON");
responseTypeCON.setValueDataType(NameValuePair.DATA_TYPE_STRING);

// Response type Commit
NameValuePair responseTypeCMT = new NameValuePairImpl();
responseTypeCMT.setName("UACIRESPONSETYPECODE");
responseTypeCMT.setValueAsString("CMT");
responseTypeCMT.setValueDataType(NameValuePair.DATA_TYPE_STRING);

//Define name value pairs for UACILOGTOLEARNING
//Does not log to learning
NameValuePair noLogToLearning = new NameValuePairImpl();
noLogToLearning.setName("UACILOGTOLEARNING");
noLogToLearning.setValueAsString("0");
noLogToLearning.setValueDataType(NameValuePair.DATA_TYPE_NUMERIC);

//Logs to learning
NameValuePair LogToLearning = new NameValuePairImpl();
LogToLearning.setName("UACILOGTOLEARNING");
LogToLearning.setValueAsString("1");
LogToLearning.setValueDataType(NameValuePair.DATA_TYPE_NUMERIC);
この 1 つ目の例は、個々のイベントを使用する場合を示しています。
//EXAMPLE 1: This set of postEvent calls use the individually named events 
//PostEvent with an Explore response
NameValuePair[] postEventParameters = { responseTypeEXP, noLogToLearning };
response = api.postEvent(sessionId, LogAccept_Explore, postEventParameters);

//PostEvent with a Consider response
NameValuePair[] postEventParameters = { responseTypeCON, noLogToLearning };
response = api.postEvent(sessionId, LogAccept_Consider, postEventParameters);

//PostEvent with a Commit response
NameValuePair[] postEventParameters = { responseTypeCOM, LogToLearning };
response = api.postEvent(sessionId, LogAccept_Commit, postEventParameters);
この 2 つ目の例は、単一のイベントのみを使用する場合を示しています。
//EXAMPLE 2: This set of postEvent calls use the single event 
//PostEvent with an Explore response
NameValuePair[] postEventParameters = { responseTypeEXP, noLogToLearning };
response = api.postEvent(sessionId, LogCustomResponse, postEventParameters);

//PostEvent with a Consider response
NameValuePair[] postEventParameters = { responseTypeCON, noLogToLearning };
response = api.postEvent(sessionId, LogCustomResponse, postEventParameters);

//PostEvent with a Commit response
NameValuePair[] postEventParameters = { responseTypeCOM, LogToLearning };
response = api.postEvent(sessionId, LogCustomResponse, postEventParameters);
どちらの例も、完全に同じアクションを実行していますが、片方がもう 1 つの方よりも読みやすくなる場合があります。