此頁面說明伺服器SDK getIdentity方法。 若為Web SDK,請參閱getIdentity.
getIdentity方法會傳回訪客的Experience Cloud ID (ECID),但不傳送事件資料。 當您呼叫sendEvent時,Edge Network會自動建立訪客的身分識別,因此只有在您的伺服器需要ECID本身時才使用getIdentity。 例如,用它來儲存ECID和您自己的記錄,或將其傳遞至另一個系統。
在訪客的forRequest控制代碼上呼叫getIdentity:
const visitor = alloy.forRequest({ request: req, cookie: visitorCookies });
const result = await visitor.getIdentity({
namespaces: ["ECID"]
});
console.log(result.identity.ECID);
SDK會使用以下流程傳回ECID:
- SDK會檢查同意是否允許其繼續。 如果訪客已選擇退出,
getIdentity會以空白物件解析。 - 如果訪客的身分識別Cookie可透過您傳遞至
forRequest的Cookie服務使用,則SDK會從其中讀取ECID,而不會連絡Adobe。 - 否則,SDK會向Edge Network要求訪客的身分,透過Cookie服務寫入身分Cookie,並傳回ECID。
對Edge Network的請求未經過驗證。 請確定您的資料流接受未驗證的請求。 請參閱設定資料流存取型別。
如果您未將Cookie服務傳遞至forRequest,SDK將無法找到現有的身分,因此每個forRequest控制代碼都會取得新的ECID。 請參閱執行個體和要求。
選項 options
getIdentity方法接受具有下列屬性的選用物件:
namespaces:要傳回的身分名稱空間陣列。 支援的值為"ECID"和"CORE"。 預設值為["ECID"]。 只有當thirdPartyCookiesEnabled是true時,您才能要求"CORE"名稱空間。 否則,getIdentity會拒絕。edgeConfigOverrides:此要求的資料流設定覆寫物件。
結果物件 result
getIdentity方法傳回Promise。 解析時,結果物件包含下列屬性:
identity.ECID:包含訪客ECID的字串。identity.CORE:包含訪客核心ID的字串(如果您要求CORE名稱空間)。edge.regionId:識別處理請求的Edge Network地區的整數。 此屬性只有在SDK聯絡Edge Network以取得身分時才會出現。
const { identity } = await visitor.getIdentity();
console.log(identity.ECID);
recommendation-more-help
experience-platform-help-collection