【发布时间】:2014-12-08 11:00:47
【问题描述】:
我在 AEM 6.0 中看到有一个用于页面查看统计的内置组件,在作者站点管理中显示为印象列。但是这个内置不支持过滤站点中的首页视图等。这对于计算每个页面的页面浏览量很有用。我面临着计算超过一千页的首页浏览量的性能问题。有人对此有解决方案吗?非常感谢和感激。
【问题讨论】:
我在 AEM 6.0 中看到有一个用于页面查看统计的内置组件,在作者站点管理中显示为印象列。但是这个内置不支持过滤站点中的首页视图等。这对于计算每个页面的页面浏览量很有用。我面临着计算超过一千页的首页浏览量的性能问题。有人对此有解决方案吗?非常感谢和感激。
【问题讨论】:
虽然展示数据最初看起来很诱人,但它并不适用于最终用户的页面浏览分析。 CQ 与 SiteCatalyst 等的集成旨在用于真正的分析(或第三方解决方案,例如 Google Analytics)。
如果您认为作者显示展示次数,则 1 个以上的发布实例必须将展示数据“反向复制”回作者,然后将其推送回发布实例。
当您考虑 Apache Dispatchers 提供缓存页面而不将请求传递给发布实例时,您可以理解即使您的生产发布实例也看不到所有流量。
【讨论】:
您可以使用选择器创建页面的变体。类似于:页面节点中的 statistics.html.jsp,然后:
http://example.com/a.html是正常页面 http://example.com/a.statistics.html是添加统计组件的页面。
【讨论】:
使用 CQ 提供的 Impression 服务查找前 10 个最受欢迎的页面或根据其受欢迎程度对所有页面进行排序有点棘手,原因如下
要计算超过一千页的首页浏览量,您有三个选项
Adobe 分析:如果您有数千页,请使用 adobe 分析。它将为您提供最佳结果和其他过滤 通过他们的休息服务选项。
修改 OOTB 服务实现。
您不想编写自己的服务,但想使用您可用的 OOTB 服务。唯一的问题是,您有多个发布实例,并且您希望如何将所有数据合并为一个,以便获得准确的图片。从所有发布实例(通过反向复制)获取所有数据然后在作者上组合它们然后再次推送它们有点棘手。但是,您可以使用一个实例来收集所有统计数据(单一事实来源之王,然后每天将其复制回所有实例)
确保通过添加以下行来启用页面浏览跟踪
<cq:include script="/libs/foundation/components/page/stats.jsp" />
然后使用以下配置将所有发布实例配置为指向一个 DNS(您始终可以在 /apps 下覆盖它) /apps/wcm/core/config.publish/com.day.cq.wcm.core.stats.PageViewStatistics /apps/wcm/core/config.publish/com.day.cq.wcm.core.stats.PageViewStatisticsImpl
确保 pageviewstatistics.trackingurl 指向单个域(您需要创建一个域,例如impression.mydomain.com,它将作为独立的 CQ 实例来处理所有展示请求) 现在您已经在一台机器上整合了页面印象 您可以轻松编写一个每晚运行的调度程序,并将所有数据反向复制到作者实例。 一旦它是作者实例,您就可以使用复制器服务复制到所有其他发布实例 然后,您可以调整自定义方法中提到的一些代码以获取流行资源。 如需了解有关自定义实现的更多信息: Implementations instruction:
【讨论】: