module VWO::Common::ImpressionUtils
Public Instance Methods
build_event(settings_file, campaign_id, variation_id, user_id, goal_id = nil, revenue = nil)
click to toggle source
Trigger the goal by sending it to server
@param :settings_file Settings file object @param :campaign_id Campaign identifier @param :variation_id Variation identifier @param :user_id User identifier @param :goal_id Goal identifier, if building track impression @param[String|Float|Integer|nil) :revenue Number value, in any representation, if building track impression
@return None if campaign ID or variation ID is invalid,
Else Properties(dict)
# File lib/vwo/common/impression_utils.rb, line 31 def build_event(settings_file, campaign_id, variation_id, user_id, goal_id = nil, revenue = nil) return unless valid_number?(campaign_id) && valid_string?(user_id) is_track_user_api = true is_track_user_api = false unless goal_id.nil? account_id = settings_file['accountId'] properties = { account_id: account_id, experiment_id: campaign_id, ap: PLATFORM, uId: CGI.escape(user_id.encode('utf-8')), combination: variation_id, random: get_random_number, sId: get_current_unix_timestamp, u: generator_for(user_id, account_id) } # Version and SDK constants sdk_version = Gem.loaded_specs['vwo_sdk'] ? Gem.loaded_specs['vwo_sdk'].version : VWO::SDK_VERSION properties['sdk'] = 'ruby' properties['sdk-v'] = sdk_version url = HTTPS_PROTOCOL + ENDPOINTS::BASE_URL logger = VWO::CustomLogger.get_instance if is_track_user_api properties['ed'] = JSON.generate(p: 'server') properties['url'] = "#{url}#{ENDPOINTS::TRACK_USER}" logger.log( LogLevelEnum::DEBUG, format( LogMessageEnum::DebugMessages::IMPRESSION_FOR_TRACK_USER, file: FileNameEnum::ImpressionUtil, properties: JSON.generate(properties) ) ) else properties['url'] = url + ENDPOINTS::TRACK_GOAL properties['goal_id'] = goal_id properties['r'] = revenue if revenue logger.log( LogLevelEnum::DEBUG, format( LogMessageEnum::DebugMessages::IMPRESSION_FOR_TRACK_GOAL, file: FileNameEnum::ImpressionUtil, properties: JSON.generate(properties) ) ) end properties end