O problema com Segment.io Analytics.js é que a vinculação a um envio de formulário não significa que a ação foi bem-sucedida. Eu encontrei uma pequena solução para que eu possa disparar eventos do servidor
Primeiro adicione um track_event
método ao seu controlador de aplicativo
class ApplicationController < ActionController::Base
def track_event(*args)
json_array = args.to_json.stripe
json_args = json_array.slice(1, json_array.length - 2)
flash[:events] ||= Array.new
flash[:events] << json_args
end
end
Então, criamos uma maneira de exibir esses “eventos flash” em nosso modelo. Então crie um ajudante
module LayoutHelper
def analytics_events
Array(flash[:events]).map do |event|
"analytics.track(#{event})"
end.join("n")
end
end
Por último, adicione o seguinte ao seu modelo:
script == analytics_events
Agora, os eventos analíticos do lado do servidor são tão fáceis quanto
track_event('Created account', plan: 'Free')