发送通知(Python)
描述
send_notifications()
用于向Adobe Target发送显示或单击通知以进行测量和报告。
NOTE
当具有所需参数的
execute
对象位于请求本身中时,展示次数将自动递增,以用于符合条件的活动。将自动增加展示次数的SDK方法为:
get_offers()
get_attributes()
在请求中传递prefetch
对象时,对具有prefetch
对象中的mbox的活动,展示次数不会自动递增。 Send_notifications()
必须用于预获取的体验,以增加展示次数和转化次数。
方法
send_notifications
target_client.send_notifications(options)
参数
options
具有以下结构:
名称
类型
必需
默认
描述
target_cookie
str
否
无
Target Cookie
target_location_hint
str
否
无
Target位置提示
consumer_id
str
否
无
在拼接多个调用时,应提供不同的消费者ID
customer_ids
列表[CustomerId]
否
无
与VisitorId兼容的格式的客户ID列表
session_id
str
否
无
用于链接多个请求
callback
可调用
否
无
如果异步处理请求,则会在响应就绪时调用回调
err_callback
可调用
否
无
如果异步处理请求,则在引发异常时会调用错误回调
返回值
Returns
TargetDeliveryResponse
(如果同步调用)(默认),或AsyncResult
(如果使用回调调用)。 TargetDeliveryResponse
具有以下结构:
名称
类型
描述
target_cookie
dict
Target Cookie
target_location_hint_cookie
dict
Target位置提示Cookie
analytics_details
列表[AnalyticsResponse]
Analytics有效负载,适用于客户端Analytics
trace
列表[dict]
meta
dict
用于设备上决策的其他决策元数据
示例
首先,让我们构建Target Delivery API请求以预取home
和product1
mbox的内容。
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 })
成功的响应将包含Target Delivery API响应对象,其中包含所请求mbox的预获取内容。 示例target_response["response"]
对象(格式为dict)可能如下所示:
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"
}
]
}
}
记下每个Target内容选项中的mbox name
和state
字段以及eventToken
字段。 每个内容选项显示后,即应在send_notifications()
请求中提供这些选项。 假设product1
mbox已显示在非浏览器设备上。 通知请求将显示如下:
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])
请注意,我们已在预获取响应中包含与投放的Target选件相对应的mbox状态和事件令牌。 生成通知请求后,我们可以通过send_notifications()
API方法将其发送给Target:
Python
response = target_client.send_notifications({ "request": notification_request })
recommendation-more-help
6906415f-169c-422b-89d3-7118e147c4e3