[Alpha]{class="badge informative"}

sendEvent (伺服器SDK)

此頁面說明伺服器SDK sendEvent方法。 若為Web SDK,請參閱sendEvent.

sendEvent方法是從您的伺服器傳送資料至Adobe的主要方式。 其結果也是您擷取個人化內容的方式。 使用xdm物件來傳送對應至您Adobe Experience Platform結構描述的資料,並使用data物件來傳送其他資料。

在configure解析後,呼叫目前訪客的forRequest控制代碼上的sendEvent:

const visitor = alloy.forRequest({ request: req });

const result = await visitor.sendEvent({
  type: "commerce.purchases",
  xdm: {
    identityMap: {
      Email: [{ id: "visitor@example.com", primary: true }]
    },
    commerce: {
      purchases: { value: 1 },
      order: {
        purchaseID: "a8g784hjq1mnp3",
        currencyCode: "USD",
        priceTotal: 999.98
      }
    }
  },
  data: {
    loyaltyTier: "gold"
  },
  personalization: {
    decisionScopes: ["order-confirmation-offer"]
  },
  edgeConfigOverrides: {
    com_adobe_analytics: {
      reportSuites: ["examplersid1"]
    }
  }
});

SDK會將每個事件傳送至位於server.adobedc.net的已驗證Edge Network伺服器API。 請參閱驗證。

需求 requirements

  • 主要身分:每個事件都必須在xdm.identityMap中包含主要身分。 如果不適用,Edge Network會拒絕事件。 請參閱xdm。
  • 大小: SDK傳送的要求最多可達64 KB。 請參閱Edge Network API檔案中的護欄1}。
  • 同意:如果訪客選擇退出,或defaultConsent為"out"且訪客未選擇加入,則sendEvent會以空白物件解析,而不會傳送任何內容。

選項 options

選項
類型
說明
xdm
物件
符合您XDM結構的資料,包括事件的身分。
data
物件
不符合您XDM結構描述的資料。
type
字串
事件型別。 xdm.eventType的捷徑。
personalization
物件
要請求的個人化決策。
decisionScopes
字串陣列
要要求的決定範圍。 personalization.decisionScopes的替代方案。
edgeConfigOverrides
物件
僅此事件的資料流覆寫。

如果您傳遞SDK無法辨識的選項,sendEvent會以Unknown field錯誤拒絕。

對伺服器沒有影響的選項 no-effect

伺服器SDK接受下列Web SDK選項,因此您可以與瀏覽器實作共用事件建置程式碼。 不過,它們取決於瀏覽器,對伺服器沒有影響:

  • renderDecisions: SDK永遠不會轉譯內容。 而是傳回結果中的主張。
  • personalization.sendDisplayEvent、personalization.includeRenderedPropositions、personalization.defaultPersonalizationEnabled和personalization.decisionContext。
  • advertising.

請勿在伺服器上設定documentUnloading。 它不會套用至瀏覽器之外。 對於已有身分的訪客,它會讓SDK以未驗證要求的形式將事件傳送至edgeDomain,而非傳送至已驗證的伺服器API。 該端點未傳回回應,因此sendEvent未傳回主張。

仍接受已棄用的datasetId和mergeId選項。 在edgeConfigOverrides中使用com_adobe_experience_platform.datasets.event.datasetId而非datasetId。

結果物件 result

sendEvent方法傳回Promise。 檢視處理結果。 Promise解析後,結果物件可包含以下屬性:

  • propositions: Edge Network針對您向personalization要求的範圍和介面傳回的個人化主張陣列。 此屬性僅當您要求個人化時才會出現。 SDK不會轉譯主張或將主張標籤為已轉譯。

如果您未要求個人化,或事件因同意或onBeforeEventSend而未傳送,則結果為空白物件。

const { propositions = [] } = await visitor.sendEvent({
  xdm: {
    eventType: "decisioning.propositionFetch",
    identityMap: {
      Email: [{ id: "visitor@example.com", primary: true }]
    }
  },
  personalization: {
    surfaces: ["web://example.com/home"]
  }
});

不同於Web SDK,結果從未包含inferences或destinations。

recommendation-more-help
experience-platform-help-collection