Module: VWO::Utils::Campaign
- Included in:
- VWO, Core::VariationDecider, Services::SettingsFileProcessor
- Defined in:
- lib/vwo/utils/campaign.rb
Constant Summary
Constants included from CONSTANTS
CONSTANTS::API_VERSION, CONSTANTS::DEFAULT_EVENTS_PER_REQUEST, CONSTANTS::DEFAULT_REQUEST_TIME_INTERVAL, CONSTANTS::GOAL_TYPES, CONSTANTS::HTTPS_PROTOCOL, CONSTANTS::HTTP_PROTOCOL, CONSTANTS::LIBRARY_PATH, CONSTANTS::MAX_EVENTS_PER_REQUEST, CONSTANTS::MAX_RANGE, CONSTANTS::MAX_TRAFFIC_PERCENT, CONSTANTS::MAX_TRAFFIC_VALUE, CONSTANTS::MIN_EVENTS_PER_REQUEST, CONSTANTS::MIN_REQUEST_TIME_INTERVAL, CONSTANTS::PLATFORM, CONSTANTS::RUBY_VARIABLE_TYPES, CONSTANTS::SDK_NAME, CONSTANTS::SDK_VERSION, CONSTANTS::SEED_VALUE, CONSTANTS::STATUS_RUNNING, CONSTANTS::URL_NAMESPACE, CONSTANTS::VWO_DELIMITER
Instance Method Summary collapse
-
#get_campaign_goal(campaign, goal_identifier) ⇒ Object
Returns goal from given campaign_key and gaol_identifier.
- #get_control_variation(campaign) ⇒ Object
- #get_segments(campaign) ⇒ Object
-
#get_variable(variables, variable_key) ⇒ Object
Returns variable from given variables list.
-
#set_campaign_allocation(campaigns) ⇒ Object
Sets campaign allocation range in the provided campaigns list.
-
#set_variation_allocation(campaign) ⇒ Object
Sets variation allocation range in the provided campaign.
Instance Method Details
#get_campaign_goal(campaign, goal_identifier) ⇒ Object
85 86 87 88 89 90 91 |
# File 'lib/vwo/utils/campaign.rb', line 85 def get_campaign_goal(campaign, goal_identifier) return unless campaign && goal_identifier campaign['goals'].find do |goal| goal['identifier'] == goal_identifier end end |
#get_control_variation(campaign) ⇒ Object
105 106 107 108 109 |
# File 'lib/vwo/utils/campaign.rb', line 105 def get_control_variation(campaign) campaign['variations'].find do |variation| variation['id'] == 1 end end |
#get_segments(campaign) ⇒ Object
97 98 99 |
# File 'lib/vwo/utils/campaign.rb', line 97 def get_segments(campaign) campaign['segments'] end |
#get_variable(variables, variable_key) ⇒ Object
116 117 118 119 120 |
# File 'lib/vwo/utils/campaign.rb', line 116 def get_variable(variables, variable_key) variables.find do |variable| variable['key'] == variable_key end end |
#set_campaign_allocation(campaigns) ⇒ Object
Sets campaign allocation range in the provided campaigns list
62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 |
# File 'lib/vwo/utils/campaign.rb', line 62 def set_campaign_allocation(campaigns) current_allocation = 0 campaigns.each do |campaign| step_factor = get_variation_bucketing_range(campaign['weight']) if step_factor > 0 start_range = current_allocation + 1 end_range = current_allocation + step_factor campaign['min_range'] = start_range campaign['max_range'] = end_range current_allocation += step_factor else campaign['min_range'] = -1 campaign['max_range'] = -1 end end end |
#set_variation_allocation(campaign) ⇒ Object
Sets variation allocation range in the provided campaign
30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 |
# File 'lib/vwo/utils/campaign.rb', line 30 def set_variation_allocation(campaign) current_allocation = 0 campaign['variations'].each do |variation| step_factor = get_variation_bucketing_range(variation['weight']) if step_factor > 0 start_range = current_allocation + 1 end_range = current_allocation + step_factor variation['start_variation_allocation'] = start_range variation['end_variation_allocation'] = end_range current_allocation += step_factor else variation['start_variation_allocation'] = -1 variation['end_variation_allocation'] = -1 end Logger.log( LogLevelEnum::DEBUG, 'VARIATION_RANGE_ALLOCATION', { '{file}' => FileNameEnum::CAMPAIGN_UTIL, '{campaignKey}' => campaign['key'], '{variationName}' => variation['name'], '{variationWeight}' => variation['weight'], '{start}' => variation['start_variation_allocation'], '{end}' => variation['end_variation_allocation'] } ) end end |