Cookie橫幅在Adobe Experience Manager中顯示錯誤行為
在Adobe Experience Manager中,Cookie同意指令碼可能會意外執行、顯示不正確的橫幅內容,或在使用者同意前建立Cookie。 從不同位置(例如使用者端程式庫、Adobe Launch、協力廠商整合或監視工具)插入指令碼時,就會發生這些問題。 若要修正此問題,請識別指令碼來源、驗證同意控制項,並修正實作位置。
說明 description
環境
- Adobe Experience Manager as a Cloud Service
- AEM Managed Services
- AEM Assets Essentials
問題/症狀
- Cookie會在同意前出現,例如Dynatrace的
dtCookie。 - 同意橫幅顯示錯誤的語言,例如英國橫幅顯示冰島文字。
- Cookie橫幅會載入,但因協力廠商指令碼損毀而無法點按按鈕。
- 無法識別將Cookie同意指令碼插入網站的位置。
原因
將Cookie同意指令碼新增到錯誤的位置(例如範本、使用者端程式庫或Adobe Launch)時,就會發生這些問題。 當協力廠商工具自動插入指令碼、語言設定錯誤設定,或使用者期望AEM支援修改不支援的程式碼時,也可能會發生這種情況。
如何確認
- 使用瀏覽器開發人員工具來檢查網路要求、載入的指令碼和Cookie,然後識別建立Cookie的指令碼。
- 暫時停用瀏覽器中可疑的指令碼,並確認Cookie是否停止建立。
- 檢視頁面來源,並確認同意指令碼是否在Analytics或其他相依指令碼之前載入。
- 測試私人瀏覽器工作階段中的橫幅行為,並驗證多個同意選擇的結果,例如接受、拒絕和自訂選擇。
- 如果橫幅損毀,請在簡單的HTML頁面上測試網站外部的相同廠商整合,以判斷問題是否在廠商指令碼本身中。
解決方法 resolution
若要解決非預期的Cookie行為並正確識別來源,請遵循下列步驟:
-
透過檢查瀏覽器DevTools
>網路>指令碼和應用程式>Cookie,確認哪個指令碼設定或載入Cookie -
將偵測到的指令碼名稱或URL與下列已知來源進行比較:
dtCookieDynatrace OneAgent- Adobe Analytics或Adobe Target→的
s_cc、s_sq、AMCV_、mbox CookieInformation JS、OneTrust JS、TrustArc JS→客戶提供的廠商指令碼
-
登入Adobe Launch (Adobe標籤),並檢查下列專案的規則和擴充功能:
- OneTrust、TrustArc和同意規則
- Adobe Analytics和Adobe Target規則(負責許多Cookie)
- 自訂規則插入指令碼
-
在較低的環境中停用規則,並確認Cookie不再出現。
-
使用AEM使用者端資料庫實作指令碼
- Adobe Experience Manager as a Cloud Service:在
/apps/<project>/clientlibs底下實作具有類別的使用者端程式庫,並透過頁面原則或全域範本標頭包含它。 - AEM Managed Services:使用CRXDE Lite建立
/apps/<project>/clientlibs/<clientlib-name>、新增js.txt,並在標頭元件中參照使用者端資料庫。
- Adobe Experience Manager as a Cloud Service:在
-
檢視頁面來源,並確認指令碼標籤出現在Analytics指令碼之前。
-
如果問題仍然存在,請確認程式碼是透過Cloud Manager部署,而且範本包含
customheaderlibs.html。 -
將指令碼包裝在OneTrust控制的標籤中:
<script type="text/plain" class="optanon-category-C0002"> ... </script> -
在私人瀏覽器工作階段中開啟頁面,並確認指令碼只有在使用者按一下 接受 後才會載入。
-
如果驗證失敗,請確認廠商儀表板中的
OneTrust類別對應是否正確。 -
驗證Dynatrace OneAgent是否正在插入
dtCookie(僅限AEMaaCS) -
在Adobe Launch或內嵌網站JavaScript中找出語言對應。 如果對應顯示
IS而非EN-UK(案例2),請在下列檔案中取代不正確的語言代碼:/etc.clientlibs/.../clientlib-site.min.js- Adobe Launch屬性JavaScript
(launch-xxxx.min.js)
-
驗證廠商指令碼是否正常運作。 支援確認問題完全起源於TrustArc端。