識別圖連結規則疑難排解指南
測試和驗證身分圖表連結規則時,您可能會遇到一些與資料擷取和圖表行為相關的問題。 請閱讀本檔案,瞭解如何疑難排解使用身分圖表連結規則時可能會遇到的一些常見問題。
資料擷取流程概觀 data-ingestion-flow-overview
下圖是資料如何流入Adobe Experience Platform和應用程式的簡化表示。 使用此圖表作為參考,協助您更清楚瞭解此頁面的內容。
請務必注意下列因素:
- 對於串流資料,即時客戶設定檔、身分服務和資料湖將在資料傳送後開始處理資料。 不過,完成資料處理的延遲需視服務而定。 通常而言,與設定檔和身分識別相比,資料湖需要更長的時間來處理。
- 如果資料在數小時後對資料集執行查詢時仍沒有顯示,則資料很可能未內嵌到Experience Platform中。
- 針對批次資料,所有資料將先流入資料湖,然後如果資料集已啟用設定檔和身分功能,資料將傳播到設定檔和身分識別中。
- 對於內嵌相關問題,務必要在服務層級隔離問題,以便進行精確的偵錯和疑難排解。 需要考慮三種潛在問題型別:
資料擷取問題 data-ingestion-issues
-
本節假設資料已成功擷取至Data Lake,且沒有語法或其他錯誤會防止資料從一開始就擷取至Experience Platform。
-
這些範例使用ECID作為Cookie名稱空間,使用CRMID作為人員名稱空間。
我的身分未內嵌到Identity Service中 my-identities-are-not-getting-ingested-into-identity-service
發生此情形有多種原因,包括但不限於下列各項:
在身分圖表連結規則的內容中,可能會拒絕身分服務的記錄,因為傳入事件有兩個或多個具有相同唯一名稱空間但不同身分值的身分。 發生此情形通常是因為實作錯誤。
考量下列事件有兩個假設:
- 欄位名稱CRMID會以名稱空間CRMID標示為身分。
- 名稱空間CRMID定義為唯一的名稱空間。
下列事件將傳回錯誤訊息,指出擷取失敗。
{
"_id": "random_string",
"eventType": "web browsing event",
"identityMap": {
"ECID": [
{
"id": "11111111111111111111111111111111111111",
"primary": false
}
],
"CRMID": [
{
"id": "Alice",
"primary": true
}
]
},
"CRMID": "Bob",
"timestamp": "2024-08-17T15:22:51+00:00",
"web": {
"webPageDetails": {
"URL": "https://www.adobe.com/acrobat.html",
"name": "Adobe Acrobat"
}
}
}
疑難排解步驟
若要解決此錯誤,您必須先收集下列資訊:
- 您預期要在身分圖形中內嵌的身分值(
identity_value
)。 - 傳送事件的資料集(
dataset_name
)。
接下來,使用Adobe Experience Platform查詢服務並執行下列查詢:
dataset_name
和identity_value
取代為您收集的資訊。 SELECT key, col.id as identityValue, timestamp, _id, identityMap, *
FROM (SELECT key, explode(value), *
FROM (SELECT explode(identityMap), *
FROM dataset_name)) WHERE col.id = 'identity_value'
執行查詢後,尋找您預期產生圖形的事件記錄,然後驗證同一列中的身分值是否不同。 檢視下列影像以取得範例:
驗證後ExperienceEvents被歸因到錯誤的已驗證設定檔
名稱空間優先順序在事件片段判斷主要身分的方式中會扮演重要角色。
為了將已驗證的使用者事件繫結至人員名稱空間,所有已驗證的事件都必須包含人員名稱空間(CRMID)。 這表示即使使用者登入後,每個已驗證的事件上仍必須存在人員名稱空間。
在設定檔檢視器中查詢設定檔時,您可能會繼續看到primary=true
個「事件」標幟。 不過,此專案會被忽略,且不會由設定檔使用。
預設會封鎖AAID。 因此,如果您使用Adobe Analytics來源聯結器,您必須確定ECID的優先順序高於ECID,讓未驗證的事件具有ECID的主要身分識別。
疑難排解步驟
- 若要驗證驗證事件是否同時包含人員和Cookie名稱空間,請閱讀疑難排解未擷取至身分識別服務之資料的錯誤一節中概述的步驟。
- 若要驗證驗證事件是否具有人員名稱空間的主要身分(例如CRMID),請使用不拼接合併原則(這是不使用私人圖表的合併原則)在設定檔檢視器上搜尋人員名稱空間。 此搜尋只會傳回與人員名稱空間關聯的事件。
我的體驗事件片段未內嵌到設定檔中 my-experience-event-fragments-are-not-getting-ingested-into-profile
您的體驗事件片段未擷取至設定檔中的原因有很多,包含但不限於:
在名稱空間優先順序的情境下,設定檔將拒絕:
- 任何包含兩個以上具有最高名稱空間優先順序的身分識別的事件。 例如,如果GAID未標籤為唯一的名稱空間,且有兩個身分都具有GAID名稱空間和不同的身分值傳入,則設定檔不會儲存任何事件。
- 任何具有最高優先順序的名稱空間是空字串的事件。
疑難排解步驟
如果您的資料已傳送至Data Lake但未傳送設定檔,而您認為這是因為在單一事件中傳送了兩個以上具有最高名稱空間優先順序的身分,則可執行下列查詢以驗證針對相同名稱空間傳送了兩個不同的身分值:
- 以傳送身分的路徑取代
_testimsorg.identification.core.email
。 - 以最高優先順序的名稱空間取代
Email
。 這是未擷取的相同名稱空間。 - 以您要查詢的資料集取代
dataset_name
。
SELECT identityMap, key, col.id as identityValue, _testimsorg.identification.core.email, _id, timestamp
FROM (SELECT key, explode(value), *
FROM (SELECT explode(identityMap), *
FROM dataset_name)) WHERE col.id != _testimsorg.identification.core.email and key = 'Email'
您也可以執行以下查詢來檢查對設定檔的擷取是否由於最高的名稱空間具有空白字串而並未發生:
SELECT identityMap, key, col.id as identityValue, _testimsorg.identification.core.email, _id, timestamp
FROM (SELECT key, explode(value), *
FROM (SELECT explode(identityMap), *
FROM dataset_name)) WHERE (col.id = '' or _testimsorg.identification.core.email = '') and key = 'Email'
這兩個查詢假設如下:
- 一個身分會從identityMap傳送,另一個身分會從身分描述項傳送。 注意:在Experience Data Model (XDM)結構描述中,身分描述項是標示為身分的欄位。
- CRMID會透過identityMap傳送。 如果CRMID是以欄位傳送,請從WHERE子句移除
key='Email'
。
圖表行為相關問題 graph-behavior-related-issues
本節概述您可能會遇到的有關身分圖表行為方式的常見問題。
未驗證的ExperienceEvents被附加到錯誤的已驗證設定檔
身分最佳化演演算法會接受最近建立的連結,並移除最舊的連結。 因此,啟用此功能後,ECID可能會從一個人重新指派(重新連結)至另一個人。 若要瞭解身分在一段時間內如何連結的歷史記錄,請遵循下列步驟:
疑難排解步驟
-
單一資料集正在使用中(這不會查詢多個資料集)。
-
由於進階資料生命週期管理、Privacy Service或執行刪除的其他服務已刪除,因此資料不會從資料湖中刪除。
首先,您必須收集下列資訊:
- 已傳送之Cookie名稱空間(例如ECID)和人員名稱空間(例如CRMID)的身分符號(namespaceCode)。
1.1.針對Web SDK實作,這些通常是identityMap中包含的名稱空間。
1.2.對於Analytics來源聯結器實作,這些是identityMap中包含的Cookie識別碼。 個人識別碼是標示為身分的eVar欄位。 - 在中傳送事件的資料集(dataset_name)。
- 要查閱的Cookie名稱空間身分值(identity_value)。
身分符號(namespaceCode)區分大小寫。 若要擷取identityMap中指定資料集的所有身分符號,請執行以下查詢:
SELECT distinct explode(*)FROM (SELECT map_keys(identityMap) FROM dataset_name)
如果您不知道Cookie識別碼的身分值,而想要搜尋已連結至多個人員識別碼的Cookie ID,則必須執行下列查詢。 此查詢假設ECID為Cookie名稱空間,CRMID為人員名稱空間。
code language-sql |
---|
|
code language-sql |
---|
|
注意: 人員ID參考描述項的路徑。 您可以在結構描述下找到此資訊。
現在您已識別連結至多個人員ID的Cookie值,請從結果中取一個,並在以下查詢中使用它來取得該Cookie值連結至不同人員ID時的時間順序檢視:
code language-sql |
---|
|
code language-sql |
---|
|
注意:此範例假設eVar10
已標示為身分。 針對您的設定,您必須根據自己組織的實作變更eVar。
身分最佳化演演算法未如預期「運作」
疑難排解步驟
請參閱有關身分最佳化演演算法的檔案,以及支援的圖表結構型別。
您也可以在UI🔗中使用圖形模擬工具來模擬事件,並設定您自己的唯一名稱空間和名稱空間優先順序設定。 這麼做有助於您基本瞭解身分最佳化演演算法應該如何運作。
如果您的模擬結果與圖形行為預期相符,則可以檢查您的身分設定是否與您在模擬中設定的設定相符。
即使在設定身分設定後,我仍會在沙箱中看到摺疊的圖表
在儲存設定後 身分圖表將遵循您設定的唯一名稱空間和名稱空間優先順序。 在 之前您儲存新設定的任何「摺疊」圖形,在擷取新資料以更新摺疊的圖形之前,都不會受到影響。 即使名稱空間優先順序有所變更,即時客戶設定檔上的事件片段的主要身分也不會更新。
疑難排解步驟
您可以使用身分圖表檢視器來檢查您的圖表是在設定之前或之後擷取。 檢查連結屬性下上次更新的時間戳記,以檢視Identity Service何時擷取圖形。 如果時間戳記在設定之前,則表示在啟用功能之前已建立「摺疊」圖形。
我想知道我的沙箱中有多少「摺疊」的圖表
使用身分儀表板來深入分析身分圖表的狀態,例如身分計數和圖表。 請參閱量度「具有多個名稱空間的圖表計數」,以取得已收合的圖表計數 — 這些圖表包含兩個或多個具有相同名稱空間的身分。 假設沙箱沒有資料,並且您已將名稱空間(例如CRMID)設定為唯一,則預期應該有零個具有兩個或更多CRMID的圖表。 在下列範例中,有兩個圖表包含兩個或多個電子郵件地址。
您可以執行下列查詢,在Data Lake的設定檔快照匯出資料集中找到詳細的劃分:
-
將
dataset_name
取代為您的資料集實際名稱。 -
這些計數可能並不完全相符。 身分儀表板是以身分圖表計數為基礎,而以下查詢是以具有兩個或多個身分的設定檔計數為基礎。 資料會由服務獨立處理和更新。
SELECT key, identityCountInGraph, count(identityCountInGraph) as graphCount
FROM (SELECT key, cardinality(value) as identityCountInGraph
FROM (SELECT explode(identityMap)
FROM dataset_name
WHERE cardinality(identityMap) > 1)) /* by definition, graphs have 2 or more identities */
WHERE key not in ('ecid', 'aaid', 'idfa', 'gaid') /* filter out common device/cookie namespaces */
GROUP BY 1, 2
ORDER BY 1, 2 asc
您可以在設定檔快照匯出資料集中使用以下查詢,以從「摺疊」的圖形取得範例身分。
SELECT identityMap
FROM dataset_name
WHERE cardinality(identityMap['CRMID'])>1 /* any graphs with 2+ CRMID. Change CRMID namespace if needed */
常見問題 faq
本節概述有關身分圖表連結規則常見問題的解答清單。
身分最佳化演演算法 identity-optimization-algorithm
請閱讀本節,瞭解有關身分最佳化演演算法的常見問題解答。
我的每個企業單位(B2C CRMID、B2B CRMID)都有一個CRMID,但我所有的設定檔中沒有唯一的名稱空間。 如果我將B2C CRMID和B2B CRMID標示為唯一,並啟用我的身分設定,會發生什麼事?
此情境不受支援。 因此,當使用者使用其B2C CRMID登入,而另一個使用者使用其B2B CRMID登入時,您可能會看到圖形摺疊。 如需詳細資訊,請參閱實作頁面中單一人員名稱空間需求一節。
身分最佳化演演算法是否會「修正」現有的收合圖形?
現有收合的圖形只有在您儲存新設定後更新時,才會受到圖形演演算法的影響(「固定」)。
如果兩個人使用同一部裝置登入和登出,事件會發生什麼事? 所有事件是否會轉移給最後驗證的使用者?
- 匿名事件(在即時客戶個人檔案上以ECID為主要身分的事件)將傳輸給最後驗證的使用者。 這是因為ECID將連結至上次驗證使用者(位於Identity Service)的CRMID。
- 所有已驗證的事件(CRMID定義為主要身分的事件)將保留在人員身分。
如需詳細資訊,請閱讀判斷體驗事件的主要身分的指南。
當ECID從一個人傳輸至另一個人時,Adobe Journey Optimizer中的歷程會受到哪些影響?
上次驗證使用者的CRMID將會連結至ECID (共用裝置)。 ECID可根據使用者行為從一個人重新指派給另一個人。 影響將取決於如何建構歷程,因此客戶在開發沙箱環境中測試歷程以驗證行為非常重要。
重點如下:
-
設定檔進入歷程後,ECID重新指派不會導致設定檔在歷程中結束。
- 圖表變更不會觸發歷程退出。
-
如果設定檔不再與ECID相關聯,則在使用對象資格的條件時,這可能會導致變更歷程路徑。
- ECID移除可能會變更與設定檔相關聯的事件,進而導致對象資格變更。
-
歷程的重新進入取決於歷程屬性。
- 如果您停用重新進入歷程,當設定檔從該歷程退出時,相同的設定檔將在91天內不會重新進入(根據全域歷程逾時)。
-
如果歷程以ECID名稱空間開始,則進入的設定檔和收到動作的設定檔(例如 電子郵件、選件)可能會因歷程的設計方式而異。
- 例如,如果動作之間存在等待條件,且在等待期間會傳輸ECID,則可能會鎖定不同的設定檔。
- 透過此功能,ECID不再一律與一個設定檔相關聯。
- 建議使用人員名稱空間(CRMID)開始歷程。
- ECID及非唯一電子郵件/電話名稱空間可從一個人移動至另一個人。
- 如果歷程有等待條件,且如果這些非唯一名稱空間用於在歷程中查詢設定檔,則歷程訊息可能會傳送給錯誤的人。
命名空間優先等級
請閱讀本節,瞭解有關名稱空間優先順序的常見問題解答。
我已啟用我的身分設定。 如果在啟用設定後新增自訂名稱空間,我的設定會發生什麼事?
名稱空間有兩個「貯體」:人員名稱空間和裝置/Cookie名稱空間。 新建立的自訂名稱空間在每個「貯體」中的優先順序最低,因此這個新的自訂名稱空間不會影響現有的資料擷取。
如果即時客戶設定檔不再使用identityMap上的「主要」標幟,是否仍需傳送此值?
是,identityMap上的「主要」旗標已由其他服務使用。 如需詳細資訊,請閱讀名稱空間優先順序對其他Experience Platform服務的影響的指南。
名稱空間優先順序是否會套用至即時客戶個人檔案中的個人檔案記錄資料集?
不可以。 名稱空間優先順序僅適用於使用XDM ExperienceEvent類別的體驗事件資料集。
此功能如何與每個圖表50個身分的身分圖表護欄搭配運作? 名稱空間優先順序是否會影響此系統定義的護欄?
身分最佳化演演算法將先套用,以確保個人實體表示。 之後,如果圖表嘗試超過身分圖表護欄 (每個圖表50個身分),則會套用此邏輯。 名稱空間優先順序不會影響50身分/圖表護欄的刪除邏輯。
測試
請參閱本節,以取得有關測試和偵錯身分圖表連結規則中功能的常見問題解答。
我應該在開發沙箱環境中測試哪些情境?
一般而言,在開發沙箱上測試應模擬您打算在生產沙箱上執行的使用案例。 請參考下表以瞭解進行全面測試時需驗證的一些關鍵區域:
- 模擬匿名瀏覽
- 模擬兩個使用者(John、Jane)使用相同裝置登入
- John和Jane都應該與其屬性和已驗證事件相關聯。
- 最後驗證的使用者應與匿名瀏覽事件相關聯。
建立四個區段定義(注意:每一對區段定義都應該使用批次評估一個區段定義,並使用另一個串流評估。)
- 區段定義A:根據John的已驗證事件和/或屬性的區段資格。
- 區段定義B:根據Jane的已驗證事件和/或屬性的區段資格。
- 從對象資格活動(例如上面建立的串流細分)開始建立歷程。
- 建立以單一事件開始的歷程。 此單一事件應為已驗證的事件。
- 建立這些歷程時,您必須停用重新進入。
- 無論共用裝置情況為何,John和Jane都應觸發其應輸入的個別歷程。
- 當ECID傳回給John和Jane時,他們不應重新進入歷程。
如何驗證此功能是否如預期運作?
使用圖表模擬工具來驗證功能是否可在個別的圖表層級運作。
若要在沙箱層級驗證功能,請參閱身分儀表板中具有多個名稱空間的圖表計數區段。