Как сделать Я использую пользовательские события Google Analytics в моем контроллере rails?

Я хочу использовать отслеживание настраиваемых событий Google Analytics из моих контроллеров, где выполняется логика. Я не совсем уверен, как поместить код javascript в свой контроллер и возможно ли это вообще. Как бы я мог поместить что-то подобное в свой контроллер:

_trackEvent(category, action, opt_label, opt_value, opt_noninteraction)

или

_gaq.push(['_trackEvent', 'Videos', 'Play', 'Gone With the Wind']);

спасибо! И какой из них я должен использовать? РЕДАКТИРОВАТЬ:

Вот как я настроил его на основе предложения:

частичный код отслеживания:

<script type="text/javascript">

  var _gaq = _gaq || [];
  _gaq.push(['_setAccount', 'UA-ACCOUNT']);
  _gaq.push(['_setDomainName', 'sitename.com']);
  _gaq.push(['_trackPageview']);
  <%= render "layouts/ga_events" %>

  (function() {
    var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
    ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
    var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
  })();

</script>

_ga_events.html.erb (я добавил в параметр «значение»)

<% unless session[:events].nil? %>
  <% session[:events].each do |event|%>
     _gaq.push(['_trackEvent', '<%= event[:category]%>', '<%= event[:action]%>', '<%= event[:label]%>', '<%= event[:value]%>']);
  <% end %>
<% end %>

<% session[:events] = Array.new %>

контроллер приложения (добавленное «значение» param)

  protected
    # GA event logger
    def log_event(category, action, label = nil, value = nil)
      session[:events] ||= Array.new
      session[:events] << {:category => category, :action => action, :label => label, :value => value}
    end

тестирую его в моем контроллере задач:

def create
    @task = @user.tasks.build(params[:task])
    @task.author = current_user unless @user == current_user

    if @task.save
        log_event("Tasks", "Created", current_user.email, "123")
        redirect_back tasks_path, :notice => t('tasks.created')
    else
        redirect_back tasks_path, :alert => @task.errors.full_messages
    end
end

РЕДАКТИРОВАТЬ: вот мой выходной код GA, похоже, все правильно:

<script type="text/javascript">

  var _gaq = _gaq || [];
  _gaq.push(['_setAccount', 'UA_CODE']);
  _gaq.push(['_setDomainName', 'SUBDOMAIN']);
  _gaq.push(['_trackPageview']);
       _gaq.push(['_trackEvent', 'Priority', 'Created (day)', 'Label info', '']);



  (function() {
    var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
    ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
    var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
  })();

</script>
9
задан Matthew Berman 15 February 2012 в 18:38
поделиться