使用虚荣进行A/B测试。该测试依赖于有条件地向某些用户显示的模态。模态包含基于你看到的测试的哪一边的不同激励。
模态的代码在一个部分中,该部分加载在我们应用程序的几个页面上。
示例:
<%= render partial: 'modals/example' %>
该部分包含将显示的内容的条件:
<% if ab_test(:whatever) == "something" %>
<p>Stuff to show</p>
<% else %>
<p>Different stuff to show</p>
<% end %>
我正在相关位置跟踪相关度量。
测试本身在显示内容和转换方面如预期的那样工作。我遇到的问题是,因为即使模态没有显示,分部也会加载。。。所有登录到引用这个分部的页面的人都被添加为"参与者",我只想把真正看过模态的人算作参与者。
我们也使用了mixtpanel,我可以使用它来运行测试。不过,我喜欢虚荣,如果有一个合理的解决方案不会显著增加实施时间,我更愿意使用它。希望SO能指出我遗漏了什么以及如何解决问题。
我会尝试通过ajax发送一篇帖子,其中包含在显示模态后将参与者添加到/vanity/add_participant
所需的数据。
$('#myModal').on('shown', function(){
$.ajax({
type: "POST",
url: '/vanity/add_participant',
data: {
participant_data: participantData
},
success: function(data) {}
})
});
将以下内容添加到application.rb:
Vanity.configure do |config|
config.use_js = true
# Optionally configure the add_participant route that is added with Vanity::Rails::Dashboard,
# make sure that this action does not require authentication
# config.add_participant_route = '/vanity/add_participant'
end
然后添加<%=vanity_js%>到在之后调用A/B测试的任何页面调用ab_test。vanity_js需要在您呼叫后包含ab_test,以便它知道实验的哪个版本参与者是的成员。如果当前页面上没有运行ab_test,因此添加vanity_js到布局的底部是一个不错的选择。请记住,如果你设置了use_js,但在你的视图中不包括vanity_js参与者将被记录下来。
不确定这是否有帮助哈哈。