Można zrobić go od kontrolera:
Krok 1: w celu utrzymania to zorganizowane, można utworzyć plik app/controllers/concerns/trackable.rb
o następującej treści:
module Trackable
extend ActiveSupport::Concern
def track_event(category, action)
push_to_google_analytics('event', ec: category, ea: action)
end
def track_page_view
path = Rack::Utils.escape("/#{controller_path}/#{action_name}")
push_to_google_analytics('pageview', dp: path)
end
private
def push_to_google_analytics(event_type, options)
Net::HTTP.get_response URI 'http://www.google-analytics.com/collect?' + {
v: 1, # Google Analytics Version
tid: AppSettings.google_analytics.tracking_id,
cid: '555', # Client ID (555 = Anonymous)
t: event_type
}.merge(options).to_query if Rails.env.production?
end
end
Krok 2: Zamień swój identyfikator śledzenia .
Krok 3: Wreszcie śledzenia konwersji w kontrolerze:
# app/controllers/confirmations_controller.rb
class ConfirmationsController < Devise::ConfirmationsController
include Trackable
after_action :track_conversion, only: :show
private
def track_conversion
track_event('Conversions', 'from_landing_page')
# or # track_event('Conversions', user.email)
end
end
Extra: można również użyć metody track_page_view
śledzenie konkretnych działań, które nie mają widoki (jak żądań API).
Więcej informacji tutaj: https://developers.google.com/analytics/devguides/collection/protocol/v1/devguide.
To działało. Wykorzystując Twój pomysł i ten post http://blog.scoutapp.com/articles/2009/10/27/rails-google-analytics-easy-goal-tracking, odkryłem, że mogę zmienić adres URL kodu Google Analytics czytał http://bit.ly/R01O8l (zmieniając _trackPageview()) – yellowreign