发送通知(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具有以下结构:

名称
类型
必需
默认
描述
request
DeliveryRequest
符合Target Delivery API请求
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具有以下结构:

名称
类型
描述
响应
DeliveryResponse
符合Target Delivery API响应
target_cookie
dict
Target Cookie
target_location_hint_cookie
dict
Target位置提示Cookie
analytics_details
列表[AnalyticsResponse]
Analytics有效负载,适用于客户端Analytics
trace
列表[dict]
response_tokens
列表[dict]
​响应令牌列表
meta
dict
用于设备上决策的其他决策元数据

示例

首先,让我们构建Target Delivery API请求以预取homeproduct1 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 namestate字段以及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