2013-08-13 18 views
5

Używam aplikacji Rails 3.2 z użyciem Devise i chcę mieć możliwość dodawania nowych zarejestrowanych ścieżek jako konwersji w Google Analytics. Chciałbym, aby nowi użytkownicy zostali skierowani na tę samą stronę, do której są przekierowywani, teraz, jeśli to możliwe (tj. Może to być widok przejścia przez przeglądarkę, który przekierowuje na stronę, do której użytkownicy są przekierowywani po utworzeniu).Jak śledzić tworzenie rejestracji użytkownika jako konwersji w Google Analytics

Czy ktoś może mi pomóc w znalezieniu najlepszego sposobu na zrobienie tego z Devise?

Odpowiedz

10

Z góry mojej głowy użyłbym lampy błyskowej.

The flash provides a way to pass temporary objects between actions. Anything you place in the flash will be exposed to the very next action and then cleared out.

Na registrations_controller.rb:

if resource.active_for_authentication? 

    flash[:user_signup] = true # or something that you find more appropriate 

    set_flash_message :notice, :signed_up if is_navigational_format? 
    sign_up(resource_name, resource) 
    respond_with resource, :location => after_sign_up_path_for(resource) 
else 
    set_flash_message :notice, :"signed_up_but_#{resource.inactive_message}" if is_navigational_format? 
    expire_session_data_after_sign_in! 
    respond_with resource, :location => after_inactive_sign_up_path_for(resource) 
end 

Następnie, na widoku, że przekierowanie do po rejestrację, chciałbym uczynić kod niezbędny do uruchomienia zdarzenia Google Analytics na podstawie obecności flash[:user_signup].

+1

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

1

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.

Powiązane problemy