adobe.target.sendNotifications(options)

此函式會在體驗呈現時傳送通知給Target邊緣,而不需要使用adobe.target.applyOffer()或adobe.target.applyOffers()。

NOTE
此函數已在 at.js 2.1.0 中推出,且將適用於 2.1.0 以上的任何版本。
索引鍵
類型
必要?
說明
consumerId
字串
無
如果未提供,預設值為用戶端的全域 mbox。 此機碼可用來產生用於 A4T 整合的補充資料 ID。
請求
物件
是
請參閱下方的「要求」表格。
timeout
數字
無
請求逾時。 如果未指定,則會使用預設的 at.js 逾時。

請求

欄位名稱
類型
必要?
限制
說明
Request > notifications
物件陣列
是
顯示內容、點擊選取器及/或已造訪的檢視或 mbox 的通知。
Request > notifications > address
物件
無
Request > notifications > address > url
字串
無
觸發通知的來源 URL。
Request > notifications > address > referringUrl
字串
無
觸發通知的來源引用 URL。
Request > notifications > parameters
字串
無

不允許在參數中使用下列名稱:

  • orderId
  • orderTotal
  • productPurchasedIds

考慮以下事項:

  • 上限為 50 個參數。
  • 參數名稱不得空白。
  • 參數名稱長度上限為 128。
  • 參數名稱的開頭不得為「輪廓」。
  • 參數值長度上限為 5000。
Request > notifications > profileParameters
字串
無

不允許在參數中使用下列名稱:

  • orderId
  • orderTotal
  • productPurchasedIds

考慮以下事項:

  • 上限為 50 個參數。
  • 參數名稱不得空白。
  • 參數名稱長度上限為 128。
  • 參數名稱的開頭不得為「輪廓」。
  • 參數值長度上限為 5000。
Request > notifications > order
物件
無
說明訂單詳細資料的物件。
Request > notifications > order > id
字串
無
<= 250 個字元。
訂購 ID.
Request > notifications > order > total
字串
無
>= 0
訂購總計.
Request > notifications > order > purchasedProductIds
字串陣列
無
  • 不允許使用任何空白值。
  • 每個產品 ID 長度上限為 50。
  • 產品 ID,以逗號分隔並串連,總長度不得超過 250。
訂購產品 ID。
Request > notifications > product
物件
無
Request > notifications > product > id
字串
無
<= 128 個字元;不得空白。
產品 ID.
Request > notifications > product > categoryId
字串
無
<= 128 個字元;不得空白。
類別 ID。
Request > notifications > id
字串
是
<= 200 個字元。
回應中將傳回通知 ID,且會包含已成功處理的通知。
Request > notifications > impressionId
字串
無
<= 128 個字元。
Impression ID 可用來拼接 (連結) 目前的通知與先前的通知或執行要求。 在兩者彼此相符的情況下,第二個和其他後續要求將不會對活動或體驗產生新曝光次數。
Request > notifications > type
字串
是
支援「按一下」或「顯示」。
通知類型。
Request > notifications > timestamp
數字<int64>
是
自 UNIX 紀元以來經過時間之通知的時間戳記 (以毫秒為單位)。
Request > notifications > tokens
字串陣列
是
根據通知類型,顯示內容或點擊選取器的 Token 清單。
Request > notifications > mbox
物件
無
mbox 的通知。
Request > notifications > mbox > name
字串
無

不允許使用任何空白值。

允許的字元:請參閱此表格後的備註。

mBox 名稱。
Request > notifications > mbox > state
字串
無
mbox 狀態 Token。
Request > notifications > view
物件
無
Request > notifications > view > id
整數 <int64>
無
檢視 ID。 透過檢視 API 建立檢視時,已指派給檢視的 ID。
Request > notifications > view > name
字串
無
<= 128 個字元。
檢視的名稱。
Request > notifications > view > key
字串
無
<= 512 個字元。
檢視金鑰。 已透過 API 使用檢視設定的金鑰。
Request > notifications > view > state
字串
無
檢視狀態 Token。

注意: Request > notifications > mbox > name不允許​下列字元:

- '-, ./=`:;&!@#$%^&*()+|?~[]{}'

呈現預先擷取 mbox 後的 sendNotifications() 呼叫

function createTokens(options) {
  return options.map(e => e.eventToken);
}

function createNotification(mbox, type, tokens) {
  const id = 11111; // here we should use a random ID like UUID
  const timestamp = Date.now();
  const { name, state, parameters, profileParameters, order, product } = mbox;
  const result = {
    id,
    type,
    timestamp,
    parameters,
    profileParameters,
    order,
    product
  };

  result.mbox = { name, state };
  result.tokens = tokens;

  return result;
}

adobe.target.getOffers({
  request: {
    prefetch: {
      mboxes: [
        {
          index: 0,
          name: "a1-serverside-ab"
        }
      ]
    }
  }
})
.then(response => {
  const mboxes = response.prefetch.mboxes;
  const notifications = mboxes.map(mbox => {
    const type = "display";
    const tokens = createTokens(mbox.options);

    return createNotification(mbox, type, tokens);
  });

  adobe.target.sendNotifications({
    request: { notifications }
  });
})
NOTE
如果您使用Adobe Analytics、getOffers()且僅具有預先擷取,而且使用sendNotifications(),則必須在執行sendNotifications()之後觸發Analytics要求。 其目的在於確保sendNotifications()產生的SDID符合傳送給Analytics和Target的SDID。
recommendation-more-help
target-dev-help-dev