私のRailsアプリケーションでMixpanelでセッション数をカウントしている問題があります。基本的に、誰かが外部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
を、私が見ることができるよ「!!!!! 4を追跡し!!!!!!」自分のアカウント(ユーザーID:4)からページを訪問したときに私のコンソールに表示されます。しかし、私がMixPanelにアクセスすると、ダッシュボードに表示されるイベントはありません。
シークレットブラウザ(ID:nil)にアクセスするとセッションイベントが記録されることがあります。または、シークレットにアクセスして明示的にアカウントにログインすると、セッションイベントが記録されます。しかし、目標は、ユーザーが外部のURLから訪問するたびにイベントを登録することです。
私の他のミックスパネルイベントは正常に動作しています。このインスタンスでセッションイベントが発生しない理由は何ですか?これをさらにデバッグするにはどうすればよいですか?
ありがとうございます!
編集:私はRubyの実装のためMengpaneelを使用しています、ここに私のセットアップがある:
初期化子/ 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'は、 'id = current_user? current_user.id:nil'。さらに、 'track'が' nil'値を受け入れるように見えるので、三項演算子を取り除き、 'mixpanel.track(" Session "、" ID "=> current_user.id)を使うことができます。 – Mohamad
@モハマドしかし、もしcurrent_userがないなら、current_user.idはエラーを投げませんか? –
はい、それは私のコメントの後半部分を無視してください、しかし、以前のアドバイスはまだ三項演算子を簡略化することを約束しています。 :D – Mohamad