Returns
Returns
a TargetDeliveryResponse
if called synchronously (default), or an AsyncResult
if called with a callback. TargetDeliveryResponse
has the following structure:
Name | Type | Description |
---|---|---|
response | DeliveryResponse | Conforms to the Target Delivery API response |
target_cookie | dict | Target cookie |
target_location_hint_cookie | dict | Target location hint cookie |
analytics_details | list[AnalyticsResponse] | Analytics payload, in case of client-side Analytics usage |
trace | list[dict] | |
response_tokens | list[dict] | A list of Response Tokens |
meta | dict | Additional decisioning metadata for use with on-device-decisioning |
Example
First, let’s build the Target Delivery API request for prefetching content for the home
and product1
mboxes.
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 })
A successful response will contain a Target Delivery API response object, which contains prefetched content for the requested mboxes. A sample target_response["response"]
object (formatted as a dict) may appear as follows:
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"
}
]
}
}
Note the mbox name
and state
fields, as well as the eventToken
field, in each of the Target content options. These should be provided in the send_notifications()
request, as soon as each content option is displayed. Let’s suppose the product1
mbox has been displayed on a non-browser device. The notifications request will appear as follows:
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])
Notice we have included both the mbox state and the event token corresponding to the Target offer delivered in the prefetch response. Having built the notifications request, we can send it to Target via the send_notifications()
API method:
Python
response = target_client.send_notifications({ "request": notification_request })
Personalization & Experiementation Excellence with Recommendations and AI
Adobe Customer Success Webinars
Tuesday, Mar 4, 4:00 PM UTC
Adobe Target innovations, including GenAI, and best practices on AI-powered personalization and experimentation at scale.
RegisterAdobe Target at Summit
Register for these developer sessions:
- Put the Customer at the Center and Build Relationships That Last a Lifetime (attend online)
- B2B Transformation Series: Adobe on Adobe Digital Marketing
- AI-Powered Personalization: Prudential's Secret to a 135% Engagement Boost
- Soaring Above the Ordinary with End-to-End Omnichannel Personalization
- Get Inspired and Scale Faster with Generative Experiments
Connect with Experience League at Summit!
Get front-row access to top sessions, hands-on activities, and networking—wherever you are!
Learn more