ruby-on-rails – 无法跟踪rails中的会话
我在使用Mixpanel为我的Rails应用程序计算会话时遇到问题.基本上,每次有人从外部URL(而不是mydomain.com)访问页面时,我都会触发“会话”混合面板跟踪事件.
所以我在我的application_controller.rb中有这样的东西在钩子之前: def count_session referral = request.referer root_url = Figaro.env.root_uri ### If there's a referral and it includes the root domain,then don't ### track because it's the same session if referral && referral.include?(root_url) puts "!!!! NOT TRACKED !!!!!" else puts "!!!!! TRACKED #{id} !!!!!!" mixpanel.track("Session","ID" => current_user.id,"Version" => Figaro.env.ab_version ) end end 为了调试,我能看到“!!!!! TRACKED 4 !!!!!!”在我的控制台中从我的帐户访问该页面时(用户ID:4).但是当我访问MixPanel时,仪表板中没有显示任何事件. 如果我在隐身浏览器中访问(ID为nil),或者如果我访问隐身,然后明确登录到我的帐户,我可以记录会话事件.但目标是在用户从外部URL访问时随时注册事件. 我的其他mixpanel活动正常.知道为什么会话事件不会在这个实例中触发?我该如何进一步调试呢? 谢谢! 编辑:我正在使用Mengpaneel进行ruby实现,这是我的设置: 初始化/ mengpaneel.rb: Mengpaneel.configure do |config| config.token = Figaro.env.mixpanel_token end application_controller.rb: before_action :setup_mixpanel before_action :count_session def setup_mixpanel return unless user_signed_in? mengpaneel.setup do mixpanel.identify(current_user.id) mixpanel.people.set( "ID" => current_user.id,"$email" => current_user.email,"$created" => current_user.created_at,"$last_login" => current_user.current_sign_in_at ) end end 解决方法
要回答问题的调试方面,我首先要确保以正确的方式发送此事件. 到处添加日志!在mengpaneel的跟踪方法中: def track(event,properties = {}) return if @disable_all_events || @disabled_events.include?(event) properties = @properties.merge(properties) super(@distinct_id,event,properties) end 我将通过更新本地gem来记录这些属性来检查@disable_all_events和@disabled_events设置的内容.我还会记录调用super的结果,以防它返回某种错误响应.或者使用ruby调试器. 我知道你说其他电话正在工作,所以也许只是这个电话会被悄悄地丢掉. 另一个选择是弄清楚如何在HTTP请求(即Charles)中间获取代理. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |