检查浏览器的JavaScript控制台是否显示任何错误。 未处理的错误可能会阻止后续代码正确执行。 如果有错误,请检查导致错误的脚本以及在哪个区域。 脚本的路径可能会指示脚本属于哪些功能。
在某些情况下,在组件级别添加其他语句可能会很有帮助。 由于渲染了组件,因此您可以添加临时标记来显示可能有助于识别潜在问题的变量值。 例如:
<%
log.info("myVariable={}", myVariable);
%>
<!--
<%= myJspVariable %>
-->
<!--
${ myHtlVariable }
-->
有关日志记录的其他详细信息,请参阅日志记录和使用审计记录和日志文件页。
报表导入程序导致CPU/内存使用率高或导致OutOfMemoryError
异常。
要解决此问题,可尝试:
ManagedPollingImporter
配置使用CRON表达式,运行报告导入器。有关在AEM中创建自定义数据导入程序服务的其他详细信息,请阅读以下文章https://helpx.adobe.com/experience-manager/using/polling.html。
设计分析时考虑了继承机制。 通常,通过在页面属性Cloud Services选项卡中添加对Analytics配置的引用,为站点启用Analytics。 然后,该配置会自动继承到所有子页面,无需再次引用它,除非页面需要其他配置。 添加对站点的引用还会自动创建类型cq;PollConfig
的多个节点(AEM 6.3及更早版本的节点12或AEM 6.4的节点6),这些节点将实例化用于将Analytics数据导入AEM的PollingImporters。 因此:
首先,分析error.log可能会让您对活动或已注册的轮询导入器数量有一些了解。 例如:
# 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。
即使在页面属性Cloud Services选项卡中引用了配置,页面中也未正确包含DTM脚本标记。
要解决此问题,可尝试:
确保加密的属性可以解密(请注意,加密可能在每个AEM实例上使用不同的自动生成的密钥)。 有关其他详细信息,请阅读配置属性的加密支持。
重新发布在/etc/cloudservices/dynamictagmanagement
中找到的配置
检查/etc/cloudservices
上的ACL。 ACL应为:
有关管理ACL的详细信息,请阅读用户管理和安全页。
出现此问题的原因是自定义页面组件不包含处理目标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对象并加载与网站关联的云服务库。 对于目标服务,库通过/libs/cq/analytics/components/testandtarget/headlibs.jsp
加载的库集取决于目标配置上使用的目标客户端库(mbox.js
或at.js
)的类型。
使用DTM传送mbox.js
或at.js
时,请确保在呈现内容之前加载库。 使用异步加载这些库的标签管理系统可能会导致执行目标特定JavaScript代码时出现问题。
有关详细信息,请阅读为目标内容进行开发页。
当使用DTM在网站上实现Adobe Analytics并使用自定义代码时,可能会出现此问题。 原因是使用s = new AppMeasurement()
实例化s
对象。
使用s_gi
代替new AppMeasurement
实例化方法。 例如:
var s_account="INSERT-RSID-HERE"
var s=s_gi(s_account)
此问题可能有多个原因:
使用第三方标签管理系统异步加载目标客户端库(mbox.js
或at.js
)可能会随机中断定位。 目标库应同步加载到页面头中。 从AEM提供库时,这一点始终如一。
同时加载两个目标客户端库(at.js
),例如,一个使用DTM,另一个使用AEM中的目标配置。 如果at.js
版本不同,这可能导致adobe.target
定义发生冲突。
您可以尝试以下解决方案:
现成的AEM 6.2和6.3与AT.js版本1.3.0+不兼容。 在AT.js版本1.3.0中引入了API的参数验证后,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
})
},
此问题很可能是A4TAnalytics Cloud配置供应问题。
您需要通过向AEM发出以下验证请求来验证目标帐户是否正确启用了A4T:
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,在对目标问题进行故障诊断时,这些API可能会很有用:
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"
]
}