Envoi de notifications (Java)
Description
sendNotifications()
est utilisé pour envoyer des notifications d’affichage ou de clic à Adobe Target pour la mesure et la création de rapports.
execute
avec les paramètres requis se trouve dans la requête elle-même, l’impression est incrémentée automatiquement pour les activités admissibles.Les méthodes du SDK qui incrémenteront automatiquement une impression sont les suivantes :
getOffers()
getAttributes()
Lorsqu’un objet prefetch
est transmis dans la requête, l’impression n’est pas automatiquement incrémentée pour les activités comportant des mbox dans l’objet prefetch
. sendNotifications()
doit être utilisé pour les expériences prérécupérées afin d’incrémenter les impressions et les conversions.
Méthode
create
ResponseStatus TargetClient.sendNotifications(TargetDeliveryRequest request)
Exemple
Commençons par créer la requête Target Delivery API pour la prérécupération de contenu pour les mbox home
et product1
.
Prérécupération
List<MboxRequest> mboxRequests = new ArrayList<>();
mboxRequests.add((MboxRequest) new MboxRequest().name("home").index(1));
mboxRequests.add((MboxRequest) new MboxRequest().name("product1").index(2));
PrefetchRequest prefetchMboxesRequest = new PrefetchRequest().setMboxes(mboxRequests)
// Next, we fetch the offers via Target Java SDK getOffers() API
TargetDeliveryResponse targetResponse = targetJavaClient.getOffers(targetDeliveryRequest);
Une réponse réussie contient un objet de réponse Target Delivery API, qui contient le contenu prérécupéré pour les mbox demandées. Un exemple d’objet targetResponse.response
peut se présenter comme suit :
Réponse
{
"status": 200,
"requestId": "e8ac2dbf5f7d4a9f9280f6071f24a01e",
"id": {
"tntId": "08210e2d751a44779b8313e2d2692b96.21_27"
},
"client": "adobetargetmobile",
"edgeHost": "mboxedge21.tt.omtrdc.net",
"prefetch": {
"mboxes": [
{
"index": 0,
"name": "home",
"options": [
{
"type": "html",
"content": "HOME OFFER",
"eventToken": "t0FRvoWosOqHmYL5G18QCZNWHtnQtQrJfmRrQugEa2qCnQ9Y9OaLL2gsdrWQTvE54PwSz67rmXWmSnkXpSSS2Q==",
"responseTokens": {
"profile.memberlevel": "0",
"geo.city": "dublin",
"activity.id": "302740",
"experience.name": "Experience B",
"geo.country": "ireland"
}
}
],
"state": "J+W1Fq18hxliDDJonTPfV0S+mzxapAO3d14M43EsM9f12A6QaqL+E3XKkRFlmq9U"
},
{
"index": 1,
"name": "product1",
"options": [
{
"type": "html",
"content": "TEST OFFER 1",
"eventToken": "t0FRvoWosOqHmYL5G18QCZNWHtnQtQrJfmRrQugEa2qCnQ9Y9OaLL2gsdrWQTvE54PwSz67rmXWmSnkXpSSS2Q==",
"responseTokens": {
"profile.memberlevel": "0",
"geo.city": "dublin",
"activity.id": "302740",
"experience.name": "Experience B",
"geo.country": "ireland"
}
}
],
"state": "J+W1Fq18hxliDDJonTPfV0S+mzxapAO3d14M43EsM9f12A6QaqL+E3XKkRFlmq9U"
}
]
}
}
Notez les champs mbox name
et state
, ainsi que le champ eventToken
, dans chacune des options de contenu Target. Elles doivent être fournies dans la requête sendNotifications()
, dès que chaque option de contenu est affichée. Supposons que la mbox product1
ait été affichée sur un périphérique autre que le navigateur. La demande de notification se présente comme suit :
Demande
TargetDeliveryRequest mboxNotificationRequest = TargetDeliveryRequest.builder().notifications(new ArrayList() {{
add(new Notification()
.id("1")
.timestamp(System.currentTimeMillis())
.type(MetricType.DISPLAY)
.mbox(new NotificationMbox()
.name("product1")
.state("J+W1Fq18hxliDDJonTPfV0S+mzxapAO3d14M43EsM9f12A6QaqL+E3XKkRFlmq9U")
)
.tokens(Arrays.asList(new String[]{"t0FRvoWosOqHmYL5G18QCZNWHtnQtQrJfmRrQugEa2qCnQ9Y9OaLL2gsdrWQTvE54PwSz67rmXWmSnkXpSSS2Q=="}))
);
}}).build();
Notez que nous avons inclus à la fois l’état mbox et le jeton d’événement correspondant à l’offre Target fournie dans la réponse de prérécupération. Une fois la requête de notifications créée, nous pouvons l’envoyer à Target via la méthode d’API sendNotifications()
:
Réponse
ResponseStatus notificationResponse = targetJavaClient.sendNotifications(mboxNotificationRequest);