如何处理多个域的Google Analytics跟踪代码以及某些域具有不同的根文件夹

时间:2014-03-21 12:36:01

标签: javascript asp.net google-analytics analytics multiple-domains

通过使用“setDomainName”属性,我能够正确处理多个域。问题是某些域是不同的根文件夹,而有些域没有。例如

http://www.example.com/intro.aspx

http://www.example.com/myexample/intro.aspx

http://www.example.com/YetAnotherExample/intro.aspx

我希望intro.aspx的命中率都相同。

我知道我可以在服务器端应用谷歌分析的一些过滤器。但是在我的情况下,每天都会添加新域名。问题是1)服务器端不允许对这些过滤器进行后处理2)当我找出要过滤掉的根文件夹时,它们已经在我的系统中并且数据搞砸了。

我想我需要在跟踪代码中添加一些东西来过滤掉额外的根文件夹,但我不确定如何。我也对其他选择持开放态度。

我正在使用ASP .NET和JavaScript Google分析跟踪代码 感谢

1 个答案:

答案 0 :(得分:2)

可以使用GA界面中的过滤器更改页面名称值。如果您转到管理员处获取帐户或个人资料,则会在帐户部分左侧列出“所有过滤器”链接(如果您使用的是帐户级别),或者“视图”部分下方的“过滤器”链接正确的。单击其中一个(哪一个取决于您的帐户/配置文件/视图的设置方式以及要为其应用过滤器的范围),然后单击红色的“新过滤器”按钮。

然后,为过滤器类型选择“自定义过滤器”,然后您可以使用“搜索和替换”或“高级”单选按钮选项并使用“请求uri”。这将在进入报告之前更改该值。

然而,这种方法是有限的,因为你需要在那个级别知道所有的根路径是什么,即使你可以得到一个列表,正则表达式将是漫长而凌乱的,你将不得不保持列表已更新。

备用(以及更好的IMO)方法是将责任放在页面的网站所有者身上。您可以通过在_trackPageview推送中将其指定为第二个数组元素来覆盖GA的默认页面名称值:

_gaq.push(['_trackPageview','custom page name here']);

例如,你这样做:

// the root you want to exclude. Make site owners fill this out
var rootPath = '/myexample/'; 

/** now here's logic to specify page name with the root path removed **/
// this replicates GA's default page name
var pageName = location.pathname+location.search;
// replace rootPath with '/'
if (typeof rootPath != 'undefined')
  pageName=pageName.replace( (new RegExp("^"+String(rootPath),"")) , '/' )

// now specify the custom page name 
_gaq.push(['_trackPageview',pageName]);

提醒:

我不知道您对这些“域名”的具体情况是什么,但默认情况下,GA不报告域名的页面名称,只报告路径+查询字符串。因此,如果您有多个域都指向同一个帐户,则会聚合具有相似路径的页面。

示例:

www.site1.com/intro.aspx
www.site2.com/intro.aspx

默认情况下,这两者都会在报告中显示为同一页面。从您展示的那些网址中删除“根路径”只会使情况恶化。但也许这真的是你想要发生的事情,所以也许你对此很好。

我只是提出这个问题,因为没有额外的上下文,我不清楚为什么你真的想要从不同的域中剥离“根路径”。 通常人都有一个汇总个人资料/视图,其中包含所有内容,通常人员会过滤或以其他方式更改页面名称以包含域前缀或类似于页面名称,这样他们就不会汇总到一个页面。但这只是猜测,因为你没有真正详细了解你的情况,所以你可能已经或可能没有解决过这个问题,或者它甚至可能适用于你。 ..无论如何,我所展示的内容应该适用于您的直接问题。