2013-04-23 65 views
1

我在嘗試對Umbraco中的節點樹中的特定節點進行A/B測試時遇到問題。 我想要做的是將節點樹中的節點複製到特定地點,並使用Google分析結果使用該B結構查看哪些結構效果最好。Umbraco:A/B測試,結構中的鏈接

例如我們有兩個節點結構,我們稱它們爲「Private」和「Sweden」。 它們的結構與childnodes和屬性完全相同。它們之間唯一的區別是屬性值(內容)。 「私人」 - 網址是www.mysite.com/Private,「瑞典」網址是www.mysite.com/Sweden。

我想要做的就是改變每個鏈接在B結構,以便它指向它在A結構的匹配。問題是,由於它是兩種不同的結構,它將有兩個不同的替代鏈接。

換句話說,它應該是一個進入B結構的投幣,然後在下一次點擊時移回到A結構。

我們使用腳本管理要加載的頁面(A節點或B節點),以便每個節點有50%的機會,並且如果它位於B節點上,Google分析將保存數據。我們無法管理的是,該頁面上的每個鏈接都將發送到A節點。

我很感激任何幫助,我可以得到。

問候, 大衛

回答

1

有一對夫婦,似乎可能至少給你一個啓動方式。

/config/urlrewriting.config文件允許您在umbraco中設置多個重定向規則,因此像以下部分可能在發送所有請求(無論是(/ sweden/pagename /或/ private/pagename /)) 。私人結構不知道如何GA將處理它:

rewriteUrlParameter="ExcludeFromClientQueryString" destinationUrl="http://www.mysite.com/private/$1" redirect="Domain" redirectMode="Permanent" ignoreCase="true" /> 

其次一個簡單的HTTP模塊(http://support.microsoft.com/kb/307996)可以處理所有的頁面請求,並根據需要重定向 - 你可以直接或間接地做了gaq_push這裏

我很想知道你是怎麼開始的 - 這似乎是Umbraco擴展的一個很好的領域。

+0

Hi amelvin! 我明白你的觀點。問題是我不想重定向到另一個頁面,當進入B結構時,我仍然想要在B節點上查看在那裏創建的屬性變化,並從該節點(例如,當我單擊鏈接時headermenu)被鏈接到A結構中的匹配頁面。 難解難分,至少在我的腦海裏。 – 2013-04-24 11:46:43

+0

@DavidNyqvist答案(我認爲)然後是添加一個httpmodule,從那裏重定向到A/B,並使用它來填充模塊中的谷歌事件。然後,導航和一切都可以從雙重結構中解脫出來。 – amelvin 2013-04-24 12:22:43

+0

感謝您的意見,我會放棄並回饋給您! – 2013-04-25 09:01:52

1

我不確定我已經完全理解你需要做什麼,所以請原諒任何可能被誤認的假設。這是我的想法:

由於A節點應該共享相同的html內容(除了鏈接當然),爲什麼不通過在模板或宏中使用一些剃鬚刀來使鏈接href屬性動態化:

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

如果您使用的是網頁表單,類似的方法也適用。

+0

你好,elolos!感謝您的輸入。這可能是一個想法,我會仔細研究一下這個解決方案,如果它能夠工作的話,請回復你。事情是我們有一些通過JavaScript的鏈接,所以這可能是一個問題,創建動態鏈接的方式,不幸的是。我會放手一搏! – 2013-04-26 06:57:02

0

我們終於來到了使用替代模板解決方案的最終決定。由於似乎沒有針對此問題的通用解決方案,因此我們必須創建具有特定宏的替代模板來呈現我們正在使用的每種文檔類型的不同信息。

爲這個項目的這個階段創建動態鏈接對於每個頁面來說都是一個地獄,因爲有很多頁面和鏈接。還有一些鏈接是用javascript製作的,所以還有另外一個問題。

我將a結構複製到另一個節點,只是爲了能夠更改屬性值。雖然Google Analytics(分析)可能會記錄和跟蹤信息,但這是我們在此項目中的下一步。在我們的替代模板中,我們從b結構中獲取屬性值。

不過,如果有人有更好的解決方案,我會非常感激!

Regards, David