像piwik / google analytics / omniture等网络分析软件包如何确定一组网址中的唯一网页?
E.g。 a)网站可以有以下产品目录页面
或b)使用查询字符串
在任何一种情况下,您都可以为联盟链接或其他用途提供额外的查询字符串变量,那么您如何确定它的页面相同?
e.g。这两个都是针对上面列出的foo产品页面。
如果忽略所有查询字符串,则catalogue.xxx中的所有产品都会整理到一个页面视图中。
如果不忽略查询字符串,那么任何额外的查询字符串参数看起来都像不同的页面。
如果您正在与第三方网站打交道,那么您不能假设他们正在使用任何一种方法或依赖规范链接正确的内容。
你怎么解决这个问题?
答案 0 :(得分:1)
如果您正在与第三方网站打交道,则不能假设其网址也遵循任何特定格式。您可以尝试下载页面并在本地进行比较,但由于旋转广告,时间戳等问题,即使这样也不可靠。
如果您正在处理单个站点(或其中的一小部分),您可以创建一个模式以将每个URL与规范(for you)表单相匹配。但是,这将很快变得无法管理。
当然,这就是像谷歌这样的搜索引擎建议在页眉中使用rel='canonical
'链接的原因;如果谷歌有问题将这些页面分开,这不是一个小问题。
答案 1 :(得分:1)
不同的跟踪工具会以不同方式处理它,但您可以明确设置所有工具的报告网址。
例如,Omniture不关心查询字符串。它会将其删除,即使您没有指定pageName并且它默认为页面报告中的URL,它仍然会删除查询字符串。
GA每次都会记录包含查询字符串的完整网址。
Yahoo Web Analytics仅在访问的第一页上记录查询字符串,之后每个页面都会将其删除。
但如上所述,所有工具都有一种方法可以显式指定要报告的URL,并且很容易编写一些javascript来从URL中删除Query字符串并将其作为要报告的URL传递。 / p>
您提到将跟踪代码提供给第三方。由于您已经为他们提供了跟踪代码,因此将这些额外的javascript添加到您已经提供的跟踪代码中非常容易。
例如,使用GA(异步版本),而不是
_gaq.push(['_trackPageview']);
你会做类似
的事情var page = location.href.split('?');
_gaq.push(['_trackPageview',page[0]]);
编辑:
或者......对于GA,您实际上可以指定在报告工具中排除它们。不同的工具可能会或可能不会为您执行此操作,因此代码示例可以应用于任何工具(但显然会弹出其特定的URL变量)