对于某些交互式图形,我们在HTML页面中使用画布。在画布内部,我们具有“类似链接”的控件,可将用户链接到外部资源。由于使用画布,我们不使用<a href="">
标记,而是通过JS代码打开新的浏览器标签,如下所示:
this.pixiLayout.App.renderer.view.addEventListener('click', () => {
if (this.pixiLayout.externalUrl) {
window.open(this.pixiLayout.externalUrl, '_blank');
}
});
问题:与来自第三方资源的实际“页面浏览量”分析相比,谷歌分析(前端)向我们显示的点击次数要多出10到20倍。这意味着用户单击了链接(并由GA记录了链接),但是由于某种原因,链接没有打开,或者没有打开但没有加载到新标签中。我知道有关广告/弹出窗口阻止程序的信息。某些百分比的用户可能是这种情况。但是像我们一样,对于90%的用户而言并非如此。
而且我们无法在我们拥有的任何设备上重现此行为。
问题:可能是由于正常的浏览器策略或限制(可能会导致像我们这种情况那样)阻止新标签页引起的?就像我不知道的现代浏览器的“新功能”吗?
好吧,问题出在我们自己的代码中。 GA(我们使用自定义事件)的事件触发是在代码的实际位置与window.open()
的不同位置处实现的。应该以相同的用户操作(用户单击)调用它们。但是情况并非如此,特别是针对移动设备。当用户点击该交互式,类似链接的控件并向上或向下移动手指(以进行滚动)时,它将触发负责跟踪“点击”的自定义事件。但是在这种情况下,不会触发实际的“点击”事件。
结论:永远不要在一个位置执行实际操作,而在代码的另一个位置“收集该操作的分析”。