Testing Umbraco:A/B测试,结构中的链接

Testing Umbraco:A/B测试,结构中的链接,testing,hyperlink,umbraco,ab-testing,abtest,Testing,Hyperlink,Umbraco,Ab Testing,Abtest,在Umbraco中尝试对节点树中的某些节点进行a/B测试时遇到问题。 我想做的是将节点树中的一个节点复制到一个特定的位置,并使用该B结构,使用Google analytics查看哪个结构工作得最好 例如,我们有两个节点结构,我们称它们为“Private”和“Sweden”。 它们的子节点结构和属性完全相同。它们之间唯一的区别是PropertyValue(内容)。“私有”URL是www.mysite.com/Private,“瑞典”URL是www.mysite.com/Sweden 我想做的是更改

在Umbraco中尝试对节点树中的某些节点进行a/B测试时遇到问题。 我想做的是将节点树中的一个节点复制到一个特定的位置,并使用该B结构,使用Google analytics查看哪个结构工作得最好

例如,我们有两个节点结构,我们称它们为“Private”和“Sweden”。 它们的子节点结构和属性完全相同。它们之间唯一的区别是PropertyValue(内容)。“私有”URL是www.mysite.com/Private,“瑞典”URL是www.mysite.com/Sweden

我想做的是更改B结构上的每个链接,使其指向A结构上的匹配项。问题是,由于它是两个不同的结构,它将有两个不同的替代链接

换句话说,它应该是一个共同点,即它进入B结构,然后在下一次单击中移回a结构

我们用脚本管理它应该加载的页面(A节点或B节点),这样每个节点都有50%的机会,如果它登陆B节点,Google analytics将保存数据。我们无法管理的是,该页面上的每个链接都将指向A节点

如果能得到任何帮助,我将不胜感激

问候,,
大卫

至少有两种方法可以让你有一个开始

/config/urlrewriting.config文件允许您在umbraco中设置多个重定向规则,因此类似于以下的部分可以将所有请求(无论是(/sweden/pagename/还是/private/pagename/)发送回私有结构。不确定GA将如何处理它:

rewriteUrlParameter="ExcludeFromClientQueryString" destinationUrl="http://www.mysite.com/private/$1" redirect="Domain" redirectMode="Permanent" ignoreCase="true" />
其次,一个简单的httpmodule()可以处理所有页面请求并根据需要重定向-您可以直接或间接地在这里进行gaq_推送


我很想知道你的进展如何-这似乎是一个很好的扩展到Umbraco的地方。

我不确定我是否完全理解你需要做什么,所以请原谅任何可能被证明是错误的假设。以下是我的想法:

既然A&B节点应该共享相同的html内容(当然除了链接之外),为什么不在模板或宏中使用一点razor使link href属性成为动态的呢:

    @{var isANode = CurrentPage.Parent.Name == "Sweden"; }
    <a href="/@(isANode ? "Private": "Sweden")/something/somethingelse.aspx"></a>
@{var isANode=CurrentPage.Parent.Name==“瑞典”;}

如果您使用的是web表单,则类似的方法也会起作用。

我们最终决定使用替代模板解决方案。对于我的问题,似乎没有通用的解决方案,因此我们必须创建一个具有特定宏的替代模板,以便为我们使用的每个文档类型呈现不同的信息g

在项目的这个阶段,为每个页面创建动态链接是一项非常艰巨的工作,因为有太多的页面和链接。还有一些链接是用javascript制作的,所以还有另一个问题

我将a结构复制到另一个节点,只是为了能够更改PropertyValue。不过,使用Google Analytics记录和跟踪信息可能会有问题,所以这是我们在该项目中的下一步。在我们的替代模板中,我们从b结构获取PropertyValue

不过,如果有人有更好的解决方案,我会非常感激

问候,,
David

Hi amelvin!我明白你的意思。问题是我不想重定向到另一个页面,当进入B结构时,我仍然希望在B节点上查看在那里进行的属性更改,以及从该节点(例如,当我单击headermenu中的链接时)链接到A结构中匹配的页面。至少在我看来,很难解决。@DavidNyqvist答案(我想)然后是添加一个httpmodule,从那里重定向到A/B,并使用它在模块中填充google事件。然后导航和所有内容都可以从双重结构中释放出来。感谢您的输入,我会尝试一下,然后再返回给您!考虑一下,我仍然不确定这是否是一种方式。导航不会从中释放出来他使用了双重结构,因为它仍然有来自umbraco的备选链接。这意味着默认情况下,它将有这些链接。在我的代码中,所有链接都是相对的,因为模板可以用于多个页面。你好,埃洛洛斯!感谢你的输入。这可能也是一个想法,我会仔细研究该解决方案,如果它有效,我会与你联系。问题是我们也有一些通过javascript的链接,所以用这种方式创建动态链接可能会有问题,不幸的是,我会尝试一下!