Tôi gặp sự cố khi đếm phiên trong Mixpanel cho ứng dụng Rails của tôi. Về cơ bản, tôi đang kích hoạt sự kiện theo dõi mixpanel "Phiên" mỗi khi có ai đó truy cập một trang từ một URL bên ngoài (không phải mydomain.com).gặp sự cố khi theo dõi phiên trong đường ray
Vì vậy, tôi có một cái gì đó như thế này trong application_controller.rb tôi trước khi móc:
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
Để gỡ lỗi, tôi có thể nhìn thấy "!!!!! TRACKED 4 !!!!!!" trong bảng điều khiển của tôi khi truy cập trang từ tài khoản của tôi (id người dùng: 4). Nhưng khi tôi ghé thăm MixPanel, không có sự kiện nào xuất hiện trên bảng điều khiển.
Tôi có thể nhận sự kiện phiên để đăng nhập nếu tôi truy cập trong trình duyệt ẩn danh (có id: nil) HOẶC nếu tôi truy cập ẩn danh, sau đó đăng nhập một cách rõ ràng vào tài khoản của tôi. Nhưng mục tiêu là phải đăng ký sự kiện bất cứ lúc nào người dùng truy cập từ url bên ngoài.
Các sự kiện mixpanel khác của tôi đang hoạt động tốt. Bất kỳ ý tưởng nào tại sao sự kiện phiên sẽ không được kích hoạt trong trường hợp này? Làm thế nào tôi nên đi về tiếp tục gỡ lỗi này?
Cảm ơn!
Chỉnh sửa: Tôi đang sử dụng để thực hiện Mengpaneel ruby, đây là thiết lập của tôi:
initializers/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
FYI: 'current_user? id = current_user.id: id = nil' có thể được biểu diễn tốt hơn 'id = current_user? current_user.id: nil'. Thậm chí tốt hơn, bạn có thể loại bỏ toán tử ternary và sử dụng 'mixpanel.track (" Session "," ID "=> current_user.id)' vì 'track' xuất hiện để chấp nhận giá trị' nil'. – Mohamad
@Mohamad nhưng nếu không current_user, sau đó sẽ không current_user.id ném một lỗi? –
Có, nó sẽ - xin vui lòng bỏ qua phần sau của bình luận của tôi, nhưng lời khuyên trước đó vẫn đứng về đơn giản hóa các nhà điều hành ternary. : D – Mohamad