The following section provides answers to few of the commonly asked FAQs related to an AEM Screens project.
The listed mandatory checks that should be tried by primary support or customer-side support before raising an issue.
http://localhost:24502
. Check if all the content is downloaded correctly.CTRL + ALT +I
to bring up dev console to view the logs.To avoid the blank or grey screens in the field, please create a default global channel or schedule, assigned to every display with the least priority 1. In case, something goes wrong with content updates (due to network, player, server, or replication), since the players have this content already cached on the disk, that should play fine and avoid the grey screens.
All the other content such as channels or schedules will be at priority greater than 1, so the other content takes priority and global channel or schedule content (with priority 1) will only play as a fall-back option.
An Online Channel, will show the updated content in the real time environment whereas an Offline Channel, shows the cached content.
Select the channel and navigate to channel properties from the action bar. Check Developer mode (force channel to be online) under Channel tab to make the channel online.
The Channel Role, is the abstraction of the actual channel that is run so that the author can focus on the generic experience directly. You can think of it as a kind of tag that uniquely identifies the channel in its context (display or schedule).
For static references, the resolution just follows the path that is specified.
For dynamic references, the resolution occurs once the channel is assigned to the display (not the schedule). The display path becomes the context for the channel and the resolution happens as follows (highest to lowest priority):
And so on, until you reach the locations folder and stop there at the moment (so you cannot reference a channel that would be in the channels folder for instance, only channels in the locations sub-tree).
When using a built custom client-side code clientlib
in an AEM Screens channel, the following steps are necessary to make sure that the clientlib
files are loaded successfully in the channel (manifest.json
) and will contain the path of the clientlib
.
Follow the steps below from the channel editor:
clientlib
.Currently Registration is only possible on the author instance. Although the registration service is unauthenticated it will only create a pending device in AEM and will not actually register the device or assign any display.
To register a device (which means creating a user for the device in AEM), you still need to authenticate to AEM and currently manually follow the registration wizard to complete registration. Theoretically, a malicious user may create several pending devices but cannot register any without an AEM login.
The registration request is a POST request.
It is recommended to obtain the device ID from the session rather than passed as parameter. This would clean up the server logs, browser cache, and so on. It is currently not a security issue. Please note that semantically GET is used when there is no state change on the server and POST is used when there is a state change.
You cannot decline the registration requests. Instead the registration requests should expire after a timeout that is configured in Adobe Experience Manager Web Console
. By default, this value is set to one day and is stored in a memory cache.
Please check for the following possibilities to troubleshoot the blank screen issue:
You need to enable the Apache Sling Referrer Filter Allow Empty. This is required for optimal operation of the control protocol between AEM Screens Player and AEM Screens server.
This issue may occur if the player is unable to find the AEM Screens Server DNS. You can try using the IP address to connect. To obtain the IP of server, use: arp <server_dns_name>.
A cross platform Android watchdog using pure Android APIs is already a part of the apk. No additional software is needed but depending on the device you use, you may need to resign the apk to obtain system privileges for a full power cycle (Powermanager api). If it is not resigned using the manufacturer keys, it will quit and restart the application but not power cycle.
For more information on how to implement Android Player, please refer to Implementing Android Player.
Depending on what you desire out of the monitoring and alerts, a new feature AEM Screens Notifications service notifies you if a device has not pinged in a while. The third-party tools will depend on your Operating System (OS), its capabilities and the customer’s specific needs.
For more information on where you can monitor device activity, please refer to AEM Screens Notifications Service.
ChromeOS player can be installed as Chrome Browser plugin in developer mode without requiring actual chrome player device. For installation, follow the steps below:
When AEM Screens player starts, it makes a request to /content/screens/svc.ping.json, when the player gets a 404 error. The player initiates an authentication request to authenticate against the publish instance. If there is a custom error handler in publish instance, please make sure that you return the 404 status code for anonymous user on /content/screens/svc.ping.json.
Follow the steps below to turn on Stay Awake in on any Android player:
There is no window mode in Windows player. It is always full screen mode.
Follow the steps below to troubleshoot an AEM Screens player that continuously sends requests to /content/screens/svc.json
and /libs/granite/core/content/login.validate/j_security_check
:
When AEM Screens player starts, it requests to /content/screens/svc.json
. When the player gets a 404 status code in the response, it initiates an authentication request using /libs/granite/core/content/login.validate/j_security_check
against the publish instance. If there is a custom error handler in the publish instance, make sure to return the 404 status code for anonymous user on /content/screens/svc.json
or /content/screens/svc.ping.json
.
Check if your dispatcher configuration allows these requests in the /filters
.
See Configuring Screens Filters for more details.
Check if your dispatcher rewrite rules are rewriting any of the screens paths to a different path.
Check if you have /etc/map
rules on the author or publish instance and screens paths are matched to sling:match
and internally redirected to a different path. Resolving the exact url in /system/console/jcrresolver
helps in identifying if the publish instance is rewriting these URLs to any other path.
Check if Apache Sling Resource Resolver Factory configuration is causing internal re-writes.
You can get the details of the display and device via:
an internal JS API
a ContextHub store: Three ContextHub stores are defined in /libs/screens/clientlibs/contexthub
to expose channels, device and, display info.
Follow the steps below to use these ContentHub store values:
Edit the channel properties and set the ContextHub path in the personalization tab to the value (as mentioned above)
In the channel JS, you can use:
ContextHub.getStore('screens-device');
ContextHub.getStore('screens-display');
ContextHub.getStore('screens-channels');
In order to disable Livefyre to avoid log errors :
Disable Livefyre bundle:
https://<host>:<port>/system/console/bundles
com.adobe.cq.social.cq-social-livefyre
Disable Livefyre poller:
/etc/importers/polling/livefyre-poller/jcr:content
AEM Screens creates index definitions for the queries used by the product.
If there are any Query Traversal WARNs in the error.log
, create a custom index for your query. Refer to Configuring the Indexes for more details.
You can also refer to an additional resource on Oak Documentation.
For enabling v3 Manifest, you must:
Update Dispatcher.
See Configuring Dispatcher for Manifest Version v3 for more details.
Update Custom Component.
See Template for Custom Handlers for more details.
Disable ContentSync in /system/console/configMgr/configMgr/com.adobe.cq.screens.offlinecontent.impl.ContentSyncCacheFeatureFlag
.
Enable SmartSync in /system/console/configMgr/com.adobe.cq.screens.offlinecontent.impl.OfflineContentServiceImpl
.
Edit channel/experience fragment/page components
.
Navigate to the Offline Config tab.
Enter clientlibs
and folders for static files that need to be added to the manifest.
You must install a minimum version of AEM 6.5 Feature Pack 8 for the AMS connector to work. See the Availability to get the minimum version of Screens feature pack.
The service is used to define the public hostname for the author and publish instances, and the values are then used to update the device server URLs and also for ContextHub targeting.
CQ Link Externalizer service in Screens can be configured via:
http://localhost:4502/system/console/configMgr
author/publish
entries as needed