Invia notifiche (Python)
Descrizione
send_notifications() viene utilizzato per inviare notifiche di visualizzazione o clic a Adobe Target per la misurazione e il reporting.
execute con parametri obbligatori si trova all'interno della richiesta stessa, l'impression verrà incrementata automaticamente per le attività idonee.I metodi SDK che incrementano automaticamente un’impression sono:
get_offers()get_attributes()
Quando un oggetto prefetch viene passato all'interno della richiesta, l'impression non viene incrementata automaticamente per le attività con mbox all'interno dell'oggetto prefetch. Send_notifications() deve essere utilizzato per le esperienze preacquisite per incrementare impressioni e conversioni.
Metodo
send_notifications
target_client.send_notifications(options)
Parametri
options ha la seguente struttura:
Restituisce
Returns un TargetDeliveryResponse se chiamato in modo sincrono (impostazione predefinita) o un AsyncResult se chiamato con un callback. TargetDeliveryResponse ha la seguente struttura:
Esempio
Innanzitutto, compiliamo la richiesta Target Delivery API per preacquisire il contenuto per le mbox home e product1.
Python
mboxes = [MboxRequest(name="home"),
MboxRequest(name="product1")]
prefetch = PrefetchRequest(mboxes=mboxes)
delivery_request = DeliveryRequest(prefetch=prefetch)
# Next, we fetch the offers via Target Python SDK getOffers() API
response = target_client.get_offers({ "request": delivery_request })
In caso di esito positivo, la risposta conterrà un oggetto di risposta Target Delivery API contenente contenuto prerecuperato per le mbox richieste. Un oggetto target_response["response"] di esempio (formattato come dict) potrebbe essere visualizzato come segue:
Python
{
"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"
}
]
}
}
Prendere nota dei campi mbox name e state, nonché del campo eventToken, in ciascuna delle opzioni di contenuto di Target. Questi devono essere forniti nella richiesta send_notifications(), non appena viene visualizzata ogni opzione di contenuto. Supponiamo che la mbox product1 sia stata visualizzata su un dispositivo non browser. La richiesta di notifica verrà visualizzata come segue:
Python
notification_mbox = NotificationMbox(name="product1",
state="J+W1Fq18hxliDDJonTPfV0S+mzxapAO3d14M43EsM9f12A6QaqL+E3XKkRFlmq9U")
notification = Notification(
id="1",
type=MetricType.DISPLAY,
timestamp=1621530726000, # Epoch time in milliseconds
mbox=notification_mbox,
tokens=["t0FRvoWosOqHmYL5G18QCZNWHtnQtQrJfmRrQugEa2qCnQ9Y9OaLL2gsdrWQTvE54PwSz67rmXWmSnkXpSSS2Q=="]
)
notification_request = DeliveryRequest(notifications=[notification])
Si noti che sono stati inclusi sia lo stato mbox che il token evento corrispondente all'offerta Target consegnata nella risposta di preacquisizione. Dopo aver generato la richiesta di notifiche, è possibile inviarla a Target tramite il metodo API send_notifications():
Python
response = target_client.send_notifications({ "request": notification_request })