Skip to content

Basic Data Layer Use Cases

jbcreusat edited this page Sep 29, 2022 · 4 revisions

This is to document the basic use cases and values that any implementation should include. The goal is to have all these values available for any new AEM implementation done using Core Components.

Global values: Page Component

These values are typically collected on all page loads to identify the content and its attributes/context. In other words, what content, which type/version and where this content sits in your site map. Additional values that are specific to AEM can be then used for Governance, so that you can report on all versions of AEM content across all your projects.

  • Content Identification:
    • event: this should load with "cmp:show"
    • page name
    • server (eg: dispatcher name)
    • directory level 1
    • directory level 2
    • directory level 3
    • directory level 4
    • template name
    • publish date
    • last modified date
    • language
  • CMS Specific value
    • event: could be "cmp:show" or could be pushed at the bottom of the page, for performance and since these would be Analytics specific
    • environment (eg: dev/qa/stage/prod)
    • type (eg: author or publish)
    • version (eg: 6.5.8.0)
    • buildDate (eg: 2021-12-15T00:54:52Z)
    • author Id
    • previewMode (eg: true/false)

Specific Use Cases

Typically, these values are being tracked for page events happening after the initial page load, like displaying search results or interacting with forms.

  • Internal Search:
    • event: we need a custom event since search results typically load after "cmp:show"
    • Search keyword
    • Number of search results
  • Form tracking:
    • event:
      • form start
      • form completed
      • form error (when error message is displayed)
    • form name
    • form error message (concatenated list with delimiter)
  • PDF Viewer (using the PDF Viewer component)
    • event:
      • PDF View
      • PDF Download
    • PDF Name
  • Dynamic Media (Videos)
    • note: there is an Tag Extension, "Dynamic Media Viewer", but it would be better if listening to all events were standardized
    • event:
      • video loaded
      • video start
      • video complete
      • video paused
    • Video name (eg: filename.mpg4)
    • Video title (eg: my video title)
    • Video duration
  • Activity Map:
    • Not part of the data layer, since Activity Map use the next div id where your link click occurs to collect the Region name
    • Core Components should allow to provide an custom Activity Map Region ID, so that link tracking by region can be automated