Vulnerability in EPiServer.Forms
I am trying out EPiServer 7.5 CMO trying to give the users the possibility to do A/B-testing and I can not get it to work.Everything seems to be installed ok and it gives me no error but it does not give different versions of the page.
Any good tips and tricks on how to get it to work?
I have now tried it on a new site installed by Deployment Center and it is still not working and I can not figure out what I am doing wrong :(
Are you testing with different browsers?
Tested both with chrome and IE, both with "standard" sessions and with private sessions.
Can't even get it to work with a Alloy-site, so I am propably missing something in the setup
Have you setup A/B based on our user guide? http://world.episerver.com/Documents/Manuals/EPiServer%20CMO/EPiServer%207.5%20CMO/EPiServer%207.5%20CMO%20User%20Guide%20(print)%20in%20English.pdf
Did you update your CMO installation via NuGet or just test with the default CMO installation?
Hi, I have the exact same issue. I've installed CMO to site that was previously upgraded from 7.1->7.5. I create test and lauch but I see no difference whatsover, tested with multiple browsers and with multiple persons. And yes, I did the A/B test based on the user guide mentioned above.
We'll try and reproduce the problem on our end - could be a bug in CMO 7.5. Henrik said he couldn't get it working on a brand new site using Deployment Center, so it seems that the CMO A/B testing is broken regardless of CMS version, but we'll check it out :).
Thank you Richly
I will try out to do it in a 7.0 site also.
Good to know is that I have both 7.0 and 7.5 installed on my machine.
I will put my money now on quess that this is more general issue in DataFactory events:
I was debugging my project and can confirm that neither CMO event handlers nor Find indexing event handlers hooked to DataFactory Save/load events are fired.
Someone call Batman!!
Looks like I'm able to get A/B testing working on a standard alloy site. I did the following:
1. Install new 7.5 site via deployment center with CMO 7.5
2. Install Alloy Site templates on top of that empty site
3. Set up basic A/B testing in Alloy Plan page (original + new version). I'm able to get it working just fine by testing it in a separate browser.
So it *should* work out of the box (before CMS updates).
Next step is to test and see if we can see the issues Janne is seeing with 7.10/7.11.
On the computer where you have gotten it to work, do you have both 7.1 and 7.5 installed?
I have tried now in a fresh VM with only 7.0 and there it works out of the box.
I bet there is something to do with having both 7.0 and 7.5 installed on the same computer
This is likley caused by the issue with content events (see http://world.episerver.com/Modules/Forum/Pages/Thread.aspx?id=89363&epslanguage=en) as Janne pointed out. Have you seen any problem on a older version of EPiServer.CMS.Core 7.8??
@Henrik It was on a VM running just 7.5 instances. I'll see if the issue occurs with an environment with both 7.0 and 7.5.
Thanks Johan for the bug findings, can't wait to test out the 7.13.1 release :).
Johan, do you have a release date for a bugfix for that?
The fix is done. If everything goes as planned it will be incuded in 7.13.1 that goes out on upcoming friday or monday.
Do you like to verify that it indeed solves your issues? if so then I could put a prerelease package in our feed so you can try it out.
I would be interested in verifying that the fix will - hmm - fix the CMO issues, so if you can put prerelease out, please do!
I am also interested to test that out.
@Henrik Just to note that I tested in a VM with 7.1 and 7.5 sites installed and CMO A/B testing works in the 7.5 site. I would check and see if somehow CMO Aggregation services was turned off. When doing another install of CMO, you get prompted to stop the service to ensure that the new CMO installation via deployment center completes.
There is now a package EPiServer.CMS.Core 7.13.1-pre-000578 in the feed with the fix included. You are most welcome to try it out!
Johan, I can't find it in the feed, is it another feed than the usual?
Strange, getting this error after adding that patch and after running the db-update scriptMissing configuration section: episerver
I have this in my web.config
Ok, I tried to create a new project from VS extension and then upgraded package and it worked fine....
Ok, must be something at my site then, will check it out
All my visitors are still getting the published version of the page in my A/B test. I've tried different sessions in different browsers. I am now on EPiServer.CMS.Core 7.12.0.If I build a new site using Deployment Centre and installed CMO v 7.5 into a CMS v 7.5 site all works. Any ideas?
Hey Scott, did you try updating to latest CMS update? The fix for CMO should be there.
We are not able to test two different URL's.
I can add the first page (A version of the test) which is selected from the tree diagram of all the pages on the site.
When it comes to selecting the alternate page ( B version of the test), I dont get to choose from all the pages on the site. It seems to look for a different version of page A.
Are two different page URL's beyond the scope of testing for CMO module?
Thanks for your help.
Hi Richly, yeah I'm up-to-date using NuGet for all the EPiServer products that I'm using. I also uninstalled all the EPiServer applications from my machine and checked that all my project references are the latest versions. As far as I can see I'm as up-to-date as I can be.
Art, A/B testing in CMO is designed to compare different versions of the same page ... you need to select the published version of the page and compare it to an unpublished version of the same page, the alternate page (B in your case) selector are the other versions of page A that you can select, not alternative pages.
I installed new site and sql server database EPiServer CMS v7.5.394.2 from deployment centre.
Applied the Alloy MVC templates.
I then installed v EPiServer 7.5 CMO module, all options except the services.
Now I created a draft of the start page by moving around the blocks in the first content area and set as "ready to publish".
I then created my first A/B test selecting the original Start Page and this draft page as version 1 and the about page as the conversion page and set it to 50% visitors.
Now when I clear my cookies and browse to the home page I get seemingly random number of cookies and values for the cookies.
Sometimes I just get 1 cookie
EPiServer.CMO.LPO:(http://mymachine:17001/)5_5 with no value. (where 5_5 is the original version of the start page)
Clicking the About us link from here doesn't appear to register as a conversion in the CMO !
Sometimes I get 2 cookies
EPiServer.CMO.LPO:(http://mymachine:17001/)16_16 with value 5_5. (where 16_16 is the conversion page, i.e. the about us page)
EPiServer.CMO.LPO:(http://mymachine:17001/)5_5 with value 5_5. (where 5_5 is the original version of the start page)
Clicking the About us link from here does register as a conversion in the CMO
Sometimes I get same 2 cookies with the alternative start page as the value (5_199)
EPiServer.CMO.LPO:(http://mymachine:17001/)16_16 with value 5_199. (where 16_16 is the conversion page, i.e. the about us page)
EPiServer.CMO.LPO:(http://mymachine:17001/)5_5 with value 5_199. (where 5_199 is the alternative version of the start page)
Clicking the About us link from here does register as a conversion in the CMO against the alternative page.
So looks like maybe 50% of the time I may get the alternative but for some reason the markup returned is NOT for the alternative page with the blocks rearranged ?
Its also concerning that I don't consistently get the same cookies set, when clearly the absense of the conversion page cookie stops the click through being registered as a conversion when it should ?
Any ideas? or any pointers on how exactly this CMO thing is supposed to work ?
Ok, my mistake with the cookies...
I should set the % to 100 so all requests are considered for A/B testing.
The cookies will appear consistently for my testing then.
Clicking through to the conversion page also registers the conversion for the correct version based on the cookies.
However I still cannot get the alternative markup to come through ?
I'm simply changing the first paragraph in the Alloy Plan page, adding "Alternative Version" to the start of the paragraph. This never gets rendered in any browser even though the cookies seem to suggest I am getting the alternative version ?
Rickly, how exactly did you test this with a clean Site and CMO installation because as far as I can see I have followed your steps to see if this works ?
Hi Danny, thank you for reporting your findings. One of our devs found a bug with CMO And MVC templates where the A/B tests will always show the published version and not the alternative version (which is what you're currently seeing now). The bug is currently being investigated and not publicly trackable yet, but rest assured that this is a known issue and we're working on getting it fixed. Thanks!
Yeah I tested with a new Site with WebForms (Non Mvc) Alloy template and it does serve the correct markup for the alternative.
Some more observations, I did notice that the currentPage injected into the controller action was always the published version.
But if you call the DataFactory/IContentRepository.Get with the ContentLink of the currentPage, it did infact return the alternative version!
var content = DataFactory.Instance.Get(EPiServer.Core.ContentReference.Parse(currentPage.ContentLink.ToString()));
var content2 = EPiServer.ServiceLocation.ServiceLocator.Current.GetInstance().Get(EPiServer.Core.ContentReference.Parse(currentPage.ContentLink.ToString()));
This led me to believe there was something wrong with the model binder.
Both the ContentDataModelBinder and the ContentRepository use a DefaultContentLoader which contains a collection of events, but I did notice that the entries weren't quite the same.
The DefaultContentLoader in the ContentRepository as observed from the controller action container 32 events, one of which is "LoadedContentEvent", which I believe CMO hooks into to swap out the versions of the page is needed.
The DefaultContentLoader in the ContenDataModelBinder as observed through a breakpoint on the contructor of the ContentDataModelBinder however doesn't have this event.
I dunno if this will help?
Thank you DMurphy for your findings, I can pass on to the CMOs devs as additioanal feedback. You noticed this all happening on the CMO webforms site you created? Or were these observations made on the faulty MVC site?
Those findings were observed on an Alloy MVC with CMO project.
So to summarize this thread current situation is that we cannot use CMO A/B testing in MVC project as there is bug that causes alternative content not being rendered. I could not find publicly visible bug about this, why not? Our customer is eagerly waiting to get CMO with A/B testing up and running, is there any schedule I can give them? This is kind of fundamental issue with CMO and makes is totally unusable currently in MVC project.
I know that dev has been actively working on getting A/B testing working with MVC projects. Expect some news fairly soon :).
Richly, How does this progress go, I also have a customer that is waiting on this to start to work
The new package has been sent to QA testing. Waiting word when the new package will be published on NuGet.
The bug this thread is refering to is #113589. Package including a fix is being tested and we plan to make it available early next week.