Abingo 的工作方式是以一致的方式向不同的“身份”发出不同的选项,以便以后可以再次将结果聚合在一起。有几种方法可以做到这一点,例如通过IP地址,通过session_id,或通过注册帐户,所有这些都是有效的,可以结合使用。实际上,特定身份将始终获得相同的随机选项选择。
文档中有关分配身份的示例是作为 ApplicationController 中的处理程序:
before_filter :set_abingo_identity
def set_abingo_identity
if @user
# Assign identity based on user
Abingo.identity = @user.abingo_identity
else
# Assign identity for anonymous user
session[:abingo_identity] ||= rand(10 ** 10).to_i.to_s
Abingo.identity = session[:abingo_identity]
end
end
当您想根据使用的 A/B 选项跟踪操作时,您需要在控制器中注入调用。另一个例子:
def show
# Track conversion for active Abingo identity
bingo!("show_info_page")
end
用户导航到该特定页面的机制完全是任意的,可以通过链接、表单提交、JavaScript 重定向或单击电子邮件。唯一重要的是 A/B 选项的显示和后面跟踪活动的控制器操作都分配了相同的 Abingo 身份。