2

アプリで omniauth を使用して、ユーザーに Google oAuth2 を使用して認証させるために、ユーザーを次の場所にリダイレクトします。

/users/auth/google_oauth2

ユーザーがリクエストを承認すると、AuthenticationsController#create が呼び出されます。

AuthenticationsController#create を使用すると、イベント トラッキングを追加して、Google 認証を承認したユーザーの数を記録できます。私が持っていないのは、承認のために送信した数です。つまり、コンバージョン率はありません。

接続要求を行う際に URL にアクセスした人の数を追跡するにはどうすればよいですか。

4

2 に答える 2

0

厄介な解決策は、メソッド Strategy#request_call の周りにフィルターを構築し、そこで追跡を行うことです。

初期化子の内部:

OmniAuth::Strategy.class_eval do
  def request_call_with_tracking
    log :info, "Im running before the actual request_call"
    Tracker.hit(name) #name will return the provider
    request_call_without_tracking
  end
  alias_method_chain :request_call, :tracking
end
于 2013-08-20T02:11:53.877 に答える
0

これは、OmniAuth セットアップ フェーズを使用して実現できます。:setup認証が実行される前に実行される proc を使用して、OmniAuth プロバイダーにオプションを渡すことができます。この proc 内にイベント トラッキングを追加できます。

したがって、トラッカー クラスがある場合は、次のようにすることができます。

use OmniAuth::Builder do
  provider :google_oauth2, ENV['GOOGLE_KEY'], ENV['GOOGLE_SECRET'],
    :setup => lambda { |env|
      Tracker.track
    }
end

詳細については、このテーマに関する Avdi Grimm のすばらしいブログ投稿を参照してください。

于 2013-09-03T01:36:59.197 に答える