Sha256: 5a9eb908e70d01c92acb3934330847c141440339faaf732c77004a462ce01616
Contents?: true
Size: 1.41 KB
Versions: 2
Compression:
Stored size: 1.41 KB
Contents
module Mixpanel::Event EVENT_PROPERTIES = %w{initial_referrer initial_referring_domain search_engine os browser referrer referring_domain} TRACK_URL = 'http://api.mixpanel.com/track/' IMPORT_URL = 'http://api.mixpanel.com/import/' def track(event, properties={}, options={}) track_event event, properties, options, TRACK_URL end def import(event, properties={}, options={}) track_event event, properties, options, IMPORT_URL end def append_track(event, properties={}) append 'track', event, track_properties(properties, false) end protected def track_event(event, properties, options, default_url) options.reverse_merge! :url => default_url, :async => @async, :api_key => @api_key data = build_event event, track_properties(properties) url = "#{options[:url]}?data=#{encoded_data(data)}" url += "&api_key=#{options[:api_key]}" if options[:api_key].present? parse_response request(url, options[:async]) end def ip (@env['HTTP_X_FORWARDED_FOR'] || @env['REMOTE_ADDR'] || '').split(',').last end def track_properties(properties, include_token=true) properties.reverse_merge! :time => Time.now, :ip => ip properties.reverse_merge! :token => @token if include_token properties_hash properties, EVENT_PROPERTIES end def build_event(event, properties) { :event => event, :properties => properties_hash(properties, EVENT_PROPERTIES) } end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
mixpanel-3.0.2 | lib/mixpanel/event.rb |
mixpanel-3.0.1 | lib/mixpanel/event.rb |