Einfaches Beispiel für Interaktionsplanung
Sie entwerfen eine Interaktion für die Website einer Mobiltelefonfirma. Das folgende Diagramm zeigt das Layout für die Übersichtsseite des Mobilfunkvertrags.
Sample web page showing interaction points
Sie definieren die folgenden Elemente, um den Anforderungen der Übersichtsseite des Mobilfunkvertrags zu entsprechen.
Ein Angebot, das in einer Zone für Upgrade-Angebote angezeigt wird
*
Der Bereich auf der Seite, der das Upgrade-Angebot anzeigt, muss definiert werden. Auch müssen, nachdem Interact ein Angebot zur Anzeige ausgewählt hat, die Informationen protokolliert werden.
Interaktionspunkt: ip_planSummaryBottomRight
Ereignis: evt_logOffer
Zwei Angebote für Telefonupgrades
*
Interaktionspunkt: ip_planSummaryTopRight
Interaktionspunkt: ip_planSummaryBottomLeft
Für Analysezwecke müssen Sie protokollieren, welche Angebote akzeptiert und welche abgelehnt werden.
Ereignis: evt_offerAccept
Ereignis: evt_offerReject
Sie wissen auch, dass Sie den Verfahrenscode eines Angebots übergeben müssen, wenn Sie einen Angebotskontakt, ein Annehmen oder eine Ablehnung protokollieren. Wo notwendig erstellen Sie ein NameValuePair, um den Verfahrenscode aufzunehmen, wie im folgenden Beispiel gezeigt.
NameValuePair evtParam_TreatmentCode = new NameValuePairImpl();
evtParam_TreatmentCode.setName("UACIOfferTrackingCode");
evtParam_TreatmentCode.setValueAsString(offer.getTreatmentCode());
evtParam_TreatmentCode.setValueDataType(NameValuePair.DATA_TYPE_STRING);
Nun können Sie den Designumgebungsbenutzer bitten, für Sie Interaktionspunkte und Ereignisse zu erstellen, während Sie beginnen, die Integration mit Ihrem Touchpoint zu codieren.
Für jeden Interaktionspunkt, der ein Angebot anzeigen wird, müssen Sie zuerst ein Angebot abrufen, um dann die Informationen zu extrahieren, die für die Anzeige des Angebots erforderlich sind. Beispiel: Fordern Sie ein Angebot für den rechten unteren Bereich Ihrer Webseite (planSummaryBottomRight) an.
Response response=getOffers(sessionID, ip_planSummaryBottomRight, 1)
Dies gibt ein Antwortobjekt einschließlich einer Antwort OfferList zurück. Ihre Webseite kann jedoch ein Objekt OfferList nicht verwenden. Sie brauchen eine Bilddatei für das Angebot, die bekanntlich eines der Angebotsattribute (offerImg) ist. Sie müssen das benötigte Angebotsattribut aus OfferList extrahieren.
OfferList offerList=response.getOfferList();
if(offerList.getRecommendedOffers() != null)
{
Offer offer = offerList.getRecommendedOffers()[0];
NameValuePair[] attributes = offer.getAdditionalAttributes();
for(NameValuePair attribute: attributes)
{
if(attribute.getName().equalsIgnoreCase("offerImg"))
{
/* Use this value in your code for the page, for
example: stringHtml = "<img src="+attribute.getValueAsString()+ " > */
}
}
}
Jetzt, da Sie das Angebot anzeigen, möchten Sie es als einen Kontakt protokollieren.
NameValuePair evtParam_TreatmentCode = new NameValuePairImpl();
evtParam_TreatmentCode.setName("UACIOfferTrackingCode");
evtParam_TreatmentCode.setValueAsString(offer.getTreatmentCode());
evtParam_TreatmentCode.setValueDataType(NameValuePair.DATA_TYPE_STRING);
postEvent(
sessionID, evt_logOffer, evtParam_TreatmentCode)
Anstatt jede dieser Methoden einzeln aufzurufen, können Sie die Methode executeBatch verwenden, wie im folgenden Beispiel für den Abschnitt planSummaryBottomLeft der Webseite gezeigt.
Command getOffersCommand = new CommandImpl();
getOffersCommand.setMethodIdentifier(Command.COMMAND_GETOFFERS);
getOffersCommand.setInteractionPoint(ip_planSummaryBottomLeft);
getOffersCommand.setNumberRequested(1);

Command postEventCommand = new CommandImpl();
postEventCommand.setMethodIdentifier(Command.COMMAND_POSTEVENT);
postEventCommand.setEvent(evt_logOffer);

/** Build command array */
Command[] commands =
{
getOffersCommand,
postEventCommand
};

/** Make the call */
BatchResponse batchResponse = api.executeBatch(
sessionId, commands);
Sie müssen in diesem Beispiel UACIOfferTrackingCode nicht definieren, weil der Interact-Laufzeitserver die letzte empfohlene Liste von Verfahren automatisch als Kontakte protokolliert, wenn Sie UACIOfferTrackingCode nicht bereitstellen.
Sie haben auch etwas geschrieben, um das angezeigte Bild im zweiten Bereich auf der Seite alle 30 Sekunden zu ändern, das ein Angebot für ein Telefonupgrade darstellt. Sie haben festgelegt, zwischen drei Bildern zu wechseln, daher sollten Sie das Folgende verwenden, um den Satz von Angeboten abzurufen, um ihn in den Cache zur Verwendung in Ihrem Code zu stellen.
Response response=getOffers(sessionID, ip_planSummaryBottomLeft, 3)
OfferList offerList=response.getOfferList();
if(offerList.getRecommendedOffers() != null)
{
for(int x=0;x<3;x++)
{
Offer offer = offerList.getRecommendedOffers()[x];
if(x==0)
{
// grab offerimg attribute value and store somewhere;
// this will be the first image to display
}
else if(x==1)
{
// grab offerimg attribute value and store somewhere;
// this will be the second image to display
}
else if(x==2)
{
// grab offerimg attribute value and store somewhere;
// this will be the third image to display
}
}
}
Sie müssen Ihren Client-Code zum Abrufen aus dem lokalen Cache und zum Protokollieren als Kontakt nur einmal für jedes Angebot schreiben, nachdem sein Bild angezeigt wird. Um den Kontakt zu protokollieren, muss der Parameter UACITrackingCode wie vorhin bereitgestellt werden. Jedes Angebot wird einen anderen Verfolgungscode haben.
NameValuePair evtParam_TreatmentCodeSTR = new NameValuePairImpl();
NameValuePair evtParam_TreatmentCodeSBR = new NameValuePairImpl();
NameValuePair evtParam_TreatmentCodeSBL = new NameValuePairImpl();

OfferList offerList=response.getOfferList();
if(offerList.getRecommendedOffers() != null)
{
for(int x=0;x<3;x++)
{
Offer offer = offerList.getRecommendedOffers()[x];
if(x==0)
{
evtParam_TreatmentCodeSTR.setName("UACIOfferTrackingCode");
evtParam_TreatmentCodeSTR.setValueAsString(offer.getTreatmentCode());
evtParam_TreatmentCodeSTR.setValueDataType(NameValuePair.DATA_TYPE_STRING);
}
else if(x==1)
{
evtParam_TreatmentCodeSBR.setName("UACIOfferTrackingCode");
evtParam_TreatmentCodeSBR.setValueAsString(offer.getTreatmentCode());
evtParam_TreatmentCodeSBR.setValueDataType(NameValuePair.DATA_TYPE_STRING);
}
else if(x==2)
{
evtParam_TreatmentCodeSBL.setName("UACIOfferTrackingCode");
evtParam_TreatmentCodeSBL.setValueAsString(offer.getTreatmentCode());
evtParam_TreatmentCodeSBL.setValueDataType(NameValuePair.DATA_TYPE_STRING);
}
}
}
Bei jedem Angebot sollten Sie, wenn darauf geklickt wird, das angenommene Angebot und die abgelehnten Angebote protokollieren. (In diesem Szenario werden Angebote, die nicht explizit ausgewählt werden, als abgelehnt bewertet.) Das Folgende ist ein Beispiel, wenn das Angebot ip_planSummaryTopRight ausgewählt wird:
postEvent(sessionID, evt_offerAccept, evtParam_TreatmentCodeSTR)
postEvent(sessionID, evt_offerReject, evtParam_TreatmentCodeSBR)
postEvent(sessionID, evt_offerReject, evtParam_TreatmentCodeSBL)
In der Praxis wäre es das Beste, diese drei postEvent-Aufrufe mit der Methode executeBatch zu senden.
Dies ist ein grundlegendes Beispiel und zeigt nicht die beste Art, die Integration zu schreiben. Beispielsweise umfasst keines dieser Beispiel Fehlerprüfung mithilfe der Antwortklasse.