Solution
To fix this issue you can try the following:
- Ensure there is not a vast amount of PollingImporters registered (see the “Shutdown takes a long time due to PollingImporter” section below).
- Run Report Importers at a certain time of the day by using CRON expressions for the
ManagedPollingImporter
configurations in the OSGi console.
For additional details about creating custom data importer services in AEM, read the following article https://helpx.adobe.com/experience-manager/using/polling.html.
Shutdown takes a long time due to the PollingImporter
Analytics has been designed with an inheritance mechanism in mind. Usually, you enable Analytics for a site by adding a reference to an Analytics configuration within the page properties Cloud Services tab. The configuration is then inherited to all sub-pages automatically without the need to reference it again unless a page requires a different configuration. Adding a reference to a site also automatically creates several nodes (12 for AEM 6.3 and earlier or 6 for AEM 6.4 and later) of the type cq;PollConfig
which instantiates PollingImporters used to import Analytics data into AEM. As a result:
- Having lots of pages referencing Analytics leads to a high amount of PollingImporters.
- Additionally, copying and pasting pages with a reference to an Analytics configuration leads to a duplication of its PollingImporters.
Solution
Firstly, analyzing the error.log might give you some insight about the amount of active or registered PollingImporters. For example:
# 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
Secondly, make sure that only top pages (high up in the hierarchy) have an Analytics configuration referenced.
For additional details about creating custom data importer services in AEM, read the following article https://helpx.adobe.com/experience-manager/using/polling.html.
DTM(Legacy) Issues
The DTM script tag is not rendered in the page source
The DTM script tag is not properly included in the page even though the configuration has been referenced in the page properties Cloud Services tab.
Solution
To fix the issue, you can try the following:
-
Make sure encrypted properties can be decrypted (note that encryption might use a different automatically generated key on each AEM instance). For additional details, also read Encryption Support for Configuration Properties.
-
Republish the configurations found in
/etc/cloudservices/dynamictagmanagement
-
Check ACLs on
/etc/cloudservices
. The ACLs should be:- allow; jcr:read; webservice-support-servicelibfinder
- allow; jcr:read; everyone;
rep:glob:
*/defaults/
* - allow; jcr:read; everyone;
rep:glob:
*/defaults
- allow; jcr:read; everyone;
rep:glob:
*/public/
* - allow; jcr:read; everyone;
rep:glob:
*/public
For more information about managing ACLs, read the User Administration and Security page.
Target Integration Issues
Targeted content not visible in Preview mode when using custom page components
This issue happens because custom page components do not include the correct JSP or client libraries that handle the Target DTM integrations.
Solution
You can try the following solutions:
- Make sure the custom
headlibs.jsp
(if any/apps/<CUSTOM-COMPONENTS-PATH>/headlibs.jsp
) includes the following:
<%@include file="/libs/cq/cloudserviceconfigs/components/servicelibs/servicelibs.jsp" %>
<sly data-sly-resource="${'contexthub' @ resourceType='granite/contexthub/components/contexthub'}"/>
- Make sure the custom
head.html
(if any/apps/<CUSTOM-COMPONENTS-PATH>/head.html
) does not selectively include specific integration headlibs like the example below:
<!-- DO NOT MANUALLY INCLUDE SPECIFIC CLOUD SERVICE HEADLIBS LIKE THIS -->
<meta data-sly-include="/libs/cq/dtm/components/dynamictagmanagement/headlibs.jsp" data-sly-unwrap/>
The servicelibs.jsp
adds the required analytics JavaScript objects and loads the cloud service libraries associated with the web site. For Target service, the libraries are loaded via the /libs/cq/analytics/components/testandtarget/headlibs.jsp
The set of libraries that are loaded depend on the type of target client library ( mbox.js
or at.js
) used on the Target configuration.
When using DTM to deliver mbox.js
or at.js
make sure the libraries are loaded before the content is rendered. Using Tag Management Systems that load these libraries asynchronously could cause issues in executing the target specific JavaScript code.
For additional information, read the Developing for Targeted Content page.
The error “Missing Report Suite ID in AppMeasurement initialization” is displayed in the browser console
This issue may appear when Adobe Analytics is implemented on the website by using DTM and uses Custom Code. The cause is using the s = new AppMeasurement()
to instantiate the s
object.
Solution
Use s_gi
instead of the new AppMeasurement
instantiation method. For example:
var s_account="INSERT-RSID-HERE"
var s=s_gi(s_account)
A default offer is randomly displayed instead of the correct offer
This issue can have multiple causes:
-
Loading Target client libraries (
mbox.js
orat.js
) asynchronously using 3rd-party Tag Management Systems may randomly break targeting. The Target libraries are supposed to be loaded synchronously in the page head. This is always true when the libraries are delivered from AEM. -
Loading two Target client libraries (
at.js
) simultaneously, for example, one using DTM and one using the Target configuration in AEM. This can cause clashes for theadobe.target
definition if theat.js
versions differ.
Solution
You can try the following solutions:
- Make sure the customer code loading the DTM-like libraries (which in turn load the Target libraries) is executed synchronously in the page head.
- if the site is configured to use DTM to deliver Target libraries ensure that the Clientlib delivered by DTM option is checked in the Target configuration for the site.
A default offer is always displayed instead of correct offer when using AT.js 1.3+
Out of the box AEM 6.2 and 6.3 is not compatible with AT.js version 1.3.0+. With AT.js version 1.3.0 introducing parameter validation for its APIs, adobe.target.applyOffer()
requires an “mbox” parameter which is not provided by the atjs-itegration.js
code.
Solution
To solve this issue edit atjs-itegration.js
and add the "mbox": mboxName
field in the parameter object for adobe.target.applyOffer()
as follows:
adobe.target.getOffer({
"mbox": mboxName,
"params": params,
"success": function (response) {
adobe.target.applyOffer({
"mbox": mboxName, //<--- ADDED PARAM
"selector": "#" + mboxName,
"offer": response
})
},
The Goals & Settings page does not show the Reporting Sources section
This issue is most likely an A4T Analytics Cloud Configuration provisioning issue.
Solution
You need to verify that A4T is properly enabled for your Target account by issuing the following verification request to AEM:
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"
}
If the response contains the line a4tEnabled:false
, contanct Adobe Customer Care to get your account provisioned correctly.
Helpful Target APIs
Presented below are two Target APIs that might be useful when troubleshooting Target issues:
- Retrieve the Target endpoint for a given clientcode
https://admin.testandtarget.omniture.com/rest/v1/endpoint/<CLIENTCODE>.json
{"api":"https://admin<N>.testandtarget.omniture.com/admin/rest/v1"}
- Retrieve a client’s profile
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"
]
}
Experience Manager
Adobe Experience Manager Sites at Summit
Register for these admin sessions:
- Elevate and Empower Teams with Agentic AI for Exceptional Experiences (attend online)
- How Adobe Uses GenStudio to Supercharge Its Global Marketing Organization
- 3 Pillars of Purpose-driven Experiences: Trust, Data, and GenAI
- Revolutionizing Pharma Content Velocity & MLR with Automation & AI
- Unlocking Content at Scale with Havas POP and Adobe GenStudio
Connect with Experience League at Summit!
Get front-row access to top sessions, hands-on activities, and networking—wherever you are!
Learn more