文件Target開發人員指南

傳送通知(Node.js)

最後更新: 2024年7月20日
  • 主題:

建立對象:

  • undefined

說明

sendNotifications()是用來傳送顯示或點選通知給Adobe Target以進行測量和報告。

注意
當具有必要引數的execute物件位於請求本身中時,曝光將自動遞增以符合活動資格。

會自動增加曝光次數的SDK方法為:

  • getOffers()
  • getAttributes()

當在要求中傳遞prefetch物件時,曝光次數不會自動遞增到具有prefetch物件中mbox的活動。 sendNotifications()必須用於預先擷取的體驗,以增加曝光次數和轉換次數。

方法

建立

TargetClient.sendNotifications(options: Object): Promise

參數

options具有以下結構:

名稱類型必要預設值
請求物件是無

範例

首先,讓我們建置Target D傳遞API要求,以預先擷取home和product1 mbox的內容。

Node.js

const prefetchMboxesRequest = {
  prefetch: {
    mboxes: [
      { name: "home" },
      { name: "product1" }
    ]
  }
};
// Next, we fetch the offers via Target Node.js SDK getOffers() API
const targetResponse = await targetClient.getOffers({ request: prefetchMboxesRequest });

成功的回應將包含Target Delivery API回應物件,其中包含要求mbox的預先擷取內容。 範例targetResponse.response物件可能顯示如下:

Node.js

{
  "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欄位。 每個內容選項一顯示,即應在sendNotifications()請求中提供這些選項。 假設product1 mbox已顯示在非瀏覽器裝置上。 通知要求會顯示如下:

Node.js

const mboxNotificationRequest = {
  notifications: [{
    id: "1",
    timestamp: Date.now(),
    type: "display",
    mbox: {
      name: "product1",
      state: "J+W1Fq18hxliDDJonTPfV0S+mzxapAO3d14M43EsM9f12A6QaqL+E3XKkRFlmq9U"
    },
    tokens: [ "t0FRvoWosOqHmYL5G18QCZNWHtnQtQrJfmRrQugEa2qCnQ9Y9OaLL2gsdrWQTvE54PwSz67rmXWmSnkXpSSS2Q==" ]
  }]
};

請注意,我們已在預先擷取回應中納入與已傳遞之Target選件相對應的mbox狀態和事件權杖。 建立通知要求後,我們可以透過sendNotifications() API方法將其傳送至Target:

Node.js

const notificationResponse = await targetClient.sendNotifications({ request: mboxNotificationRequest });
recommendation-more-help
6906415f-169c-422b-89d3-7118e147c4e3