मुझे अपने रेल ऐप के लिए मिक्सपैनेल में सत्रों की गिनती सत्र हो रही है। असल में, जब भी कोई बाहरी यूआरएल (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 !!!!!!" मेरे कंसोल में मेरे खाते से पेज पर जाकर (उपयोगकर्ता आईडी: 4)। लेकिन जब मैं मिक्सपैनल जाता हूं, तो डैशबोर्ड में दिखाई देने वाली कोई घटना नहीं होती है।
यदि मैं एक गुप्त ब्राउज़र (आईडी: शून्य) में जाता हूं तो मैं लॉग इन करने के लिए सत्र ईवेंट प्राप्त कर सकता हूं या यदि मैं गुप्त पर जाता हूं, तो स्पष्ट रूप से मेरे खाते में लॉगिन करें। लेकिन लक्ष्य यह है कि ईवेंट किसी भी समय बाहरी यूआरएल से उपयोगकर्ता का दौरा करता है।
मेरी अन्य मिश्रित घटनाएं ठीक काम कर रही हैं। कोई विचार क्यों इस घटना में सत्र घटना फायरिंग नहीं होगी? मुझे इसे और डिबग करने के बारे में कैसे जाना चाहिए?
धन्यवाद!
संपादित करें:
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
एफवाईआई: 'current_user? id = current_user.id: id = nil' बेहतर व्यक्त किया जा सकता है 'id = current_user? current_user.id: शून्य '। इससे भी बेहतर, आप टर्नरी ऑपरेटर से छुटकारा पा सकते हैं और 'mixpanel.track (" सत्र "," आईडी "=> current_user.id) का उपयोग कर सकते हैं क्योंकि 'ट्रैक'' शून्य मान मान स्वीकार करता है। – Mohamad
@ मोहम्मद लेकिन यदि कोई current_user नहीं है, तो current_user.id कोई त्रुटि फेंक नहीं देगा? –
हां, यह होगा - कृपया मेरी टिप्पणी के बाद के हिस्से को अनदेखा करें, लेकिन पहले की सलाह अभी भी टर्नरी ऑपरेटर को सरल बनाने के बारे में है। : डी – Mohamad