疑難排解整合問題

一般疑難排解提示

確保沒有JavaScript錯誤

檢查瀏覽器的JavaScript主控台是否顯示任何錯誤。 未處理的錯誤可能會導致後續代碼無法正確執行。 如果有錯誤,請檢查導致錯誤的指令碼以及哪個區域。 指向指令碼的路徑可能會指示指令碼屬於哪些功能。

登錄元件級別

在某些情況下,在元件層級新增其他陳述式可能會有所幫助。 由於元件已轉譯,因此您可以新增暫時標籤來顯示可能有助於識別潛在問題的變數值。 例如:

<%
log.info("myVariable={}", myVariable);
%>

<!--
<%= myJspVariable %>
-->

<!--
${ myHtlVariable }
-->

有關日誌記錄的其他詳細資訊,請參閱Logging使用審計記錄和日誌檔案頁。

Analytics整合問題

Report Importer導致CPU/記憶體使用量偏高

Report Importer會導致CPU/記憶體使用量高或導致OutOfMemoryError例外。

解決方案

若要修正此問題,您可以嘗試下列方式:

  • 請確定註冊的PollingImporter數量不多(請參閱下方的「由於PollingImporter而導致關機需要很長時間」一節)。
  • OSGi控制台中的ManagedPollingImporter配置使用CRON表達式,在一天的某一時間運行報告導入程式。

如需在AEM中建立自訂資料匯入工具服務的其他詳細資訊,請閱讀下列文章https://helpx.adobe.com/experience-manager/using/polling.html

由於PollingImporter,關機需要很長時間

Analytics的設計考量到繼承機制。 通常,您會在頁面屬性雲端服務標籤中新增對Analytics設定的參考,以啟用網站的Analytics。 然後,除非頁面需要不同的設定,否則設定會自動繼承至所有子頁面,而不需要再次參照。 新增網站參考也會自動建立數個節點(AEM 6.3和舊版為12,AEM 6.4為6) 和更新版本),此類型會執行個體化用於將Analytics資料匯入AEM的PollingImporters。 cq;PollConfig因此:

  • 有許多頁面參照Analytics會導致大量的PollingImporter。
  • 此外,複製並貼上參考Analytics設定的頁面會導致PollingImporters重複。

解決方案

首先,分析error.log可讓您瞭解PollingImporters的作用中或已註冊數量。 例如:

# Count PollingImporter entries
$ sed -n "s/.*(aem-analytics-integration-.*).*target=\(.*\),interval.*/\1/p" error.log | wc -l
86415
# Count PollingImporter entries for last30days
$ sed -n "s/.*(aem-analytics-integration-last30Days).*target=\(.*\),interval.*/\1/p" error.log | wc -l
14531
# Count unique paths of PollingImporter registrations
sed -n "s/.*(aem-analytics-integration-.*).*target=\(.*\)\/jcr:content.*/\1/p" error.log | sort | uniq -c
28115

其次,請確定只有頂層頁面(階層中的上層)有參考的Analytics設定。

如需在AEM中建立自訂資料匯入工具服務的其他詳細資訊,請閱讀下列文章https://helpx.adobe.com/experience-manager/using/polling.html

DTM(舊版)問題

DTM指令碼標籤不會在頁面來源中呈現

即使頁面屬性雲端服務標籤中已參考設定,頁面中仍未正確包含DTM指令碼標籤。

解決方案

若要修正此問題,您可以嘗試下列方式:

  • 請確定加密的屬性可以解密(請注意,加密可能會在每個AEM例項上使用不同的自動產生金鑰)。 有關其他詳細資訊,請閱讀配置屬性的加密支援

  • 重新發佈/etc/cloudservices/dynamictagmanagement中找到的配置

  • 檢查/etc/cloudservices上的ACL。 ACL應為:

    • 允許;jcr:read;webservice-support-servicelibfinder
    • 允許;jcr:read;每個人;rep:glob:&ast;/defaults/&ast;
    • 允許;jcr:read;每個人;rep:glob:&ast;/defaults
    • 允許;jcr:read;每個人;rep:glob:&ast;/public/&ast;
    • 允許;jcr:read;每個人;rep:glob:&ast;/public

有關管理ACL的詳細資訊,請閱讀用戶管理和安全頁。

目標整合問題

使用自訂頁面元件時,「預覽」模式中無法顯示目標內容

發生此問題是因為自訂頁面元件不包含處理Target DTM整合的正確JSP或用戶端程式庫。

解決方案

您可以試用下列解決方案:

  • 請確定自訂headlibs.jsp(如果有/apps/<CUSTOM-COMPONENTS-PATH>/headlibs.jsp)包含下列項目:
<%@include file="/libs/cq/cloudserviceconfigs/components/servicelibs/servicelibs.jsp" %>
<sly data-sly-resource="${'contexthub' @ resourceType='granite/contexthub/components/contexthub'}"/>
  • 請確定自訂head.html(如果有/apps/<CUSTOM-COMPONENTS-PATH>/head.html不會選擇性地包含特定的整合標題,如以下範例:
<!-- DO NOT MANUALLY INCLUDE SPECIFIC CLOUD SERVICE HEADLIBS LIKE THIS -->
<meta data-sly-include="/libs/cq/dtm/components/dynamictagmanagement/headlibs.jsp" data-sly-unwrap/>

servicelibs.jsp會新增所需的分析JavaScript物件,並載入與網站相關的雲端服務程式庫。 對於Target服務,程式庫會透過/libs/cq/analytics/components/testandtarget/headlibs.jsp

載入的庫集取決於目標配置上使用的目標客戶端庫(mbox.jsat.js)的類型。

使用DTM傳送mbox.jsat.js時,請確定程式庫已載入,然後再轉譯內容。 使用非同步載入這些程式庫的標籤管理系統,可能會在執行目標特定JavaScript程式碼時造成問題。

如需詳細資訊,請閱讀開發目標內容頁面。

瀏覽器控制台中會顯示「AppMeasurement初始化中遺失報表套裝ID」錯誤

當Adobe Analytics透過使用DTM在網站上實作且使用自訂代碼時,可能會出現此問題。 原因是使用s = new AppMeasurement()實例化s對象。

解決方案

使用s_gi取代new AppMeasurement實例化方法。 例如:

var s_account="INSERT-RSID-HERE"
var s=s_gi(s_account)

預設選件會隨機顯示,而非正確的選件

此問題可能有多種原因:

  • 使用第三方標籤管理系統以非同步方式載入目標用戶端程式庫(mbox.jsat.js)可能會隨機中斷定位。 Target程式庫應同步載入頁面標題中。 從AEM傳送資料庫時,這一律正確。

  • 同時載入兩個Target用戶端程式庫(at.js),例如,一個使用DTM,另一個使用AEM中的Target設定。 如果at.js版本不同,這可能會對adobe.target定義造成衝突。

解決方案

您可以試用下列解決方案:

  • 請確定載入DTM樣程式庫(接著載入Target程式庫)的客戶程式碼會在頁首中同步執行。
  • 如果網站設定為使用DTM來傳送Target程式庫,請確定已在網站的Target組態中勾選由DTM 傳送的 Clientlib選項。

使用AT.js 1.3+時,一律會顯示預設選件,而非正確選件

現成可用的AEM 6.2和6.3與AT.js 1.3.0+版不相容。 在AT.js 1.3.0版中,adobe.target.applyOffer()需要「mbox」參數,但atjs-itegration.js程式碼未提供此參數。

解決方案

要解決此問題,請編輯atjs-itegration.js並在adobe.target.applyOffer()的參數對象中添加"mbox": mboxName欄位,如下所示:

adobe.target.getOffer({
    "mbox": mboxName,
    "params": params,
    "success": function (response) {
        adobe.target.applyOffer({
            "mbox": mboxName, //<--- ADDED PARAM
            "selector": "#" + mboxName,
            "offer": response
        })
    },

「目標與設定」頁面不會顯示「報告來源」區段

此問題很可能是A4T Analytics Cloud設定布建問題。

解決方案

您必須向AEM發出下列驗證要求,以確認A4T是否已正確啟用您的Target帳戶:

http://localhost:4502/etc/cloudservices/testandtarget/<YOUR-CONFIG>/jcr:content.a4t.json

{
    "a4tEnabled": true,
    "sharedsecret": "SECRET",
    "proxyUrl": "/libs/cq/contentinsight/content/proxy.reportingservices.json",
    "active": "true",
    "pageName": "",
    "url": "https://api5.omniture.com/rs/0.5/",
    "username": "USER@DOMAIN"
}

如果回應包含行a4tEnabled:false,請連絡Adobe客戶服務以正確布建您的帳戶。

實用的目標API

以下是兩個Target API,在疑難排解Target問題時可能會很有用:

  • 擷取特定用戶端程式碼的Target端點
https://admin.testandtarget.omniture.com/rest/v1/endpoint/<CLIENTCODE>.json

{"api":"https://admin<N>.testandtarget.omniture.com/admin/rest/v1"}
  • 檢索客戶機的配置檔案
https://admin<N>.testandtarget.omniture.com/admin/rest/v1/clients/<CLIENT>?email=<EMAIL>&password=<PASSWORD>

Response for N=4, CLIENT-dayintegrationintern
{
    "clientCode": "dayintegrationintern",
    "companyName": "Day Integration - Internal",
    "omnitureCompanyId": "Day Integration Internal",
    "softTraxId": -1,
    "address1": "XYZ",
    "city": "San Francisco",
    "state": "ca",
    "zip": "94107",
    "country": "UNITED STATES",
    "locale": "de_DE",
    "timeZone": "Europe/Berlin",
    "phone": "XX-XX-XXXX",
    "serviceLevel": "Up to 100,000",
    "privileges": [
        "a4t",
        "hosts",
        "TnT-SC-integration",
        "mvt",
        "steps",
        "testing-campaigns",
        "view-snapshot",
        "on-site-editor",
        "optimizing-campaign",
        "third-party-id-support",
        "landing-page-campaigns",
        "segment",
        "rest-create-user",
        "advanced-targeting",
        "mobile-device-targeting",
        "beta",
        "geolocation"
    ]
}

本頁內容