class AdtekioAdnetworks::Cost::Bidmotion
Constants
- API_ENDPOINT
- AUTH_ROUTE
- DATA_ROUTE
- EXPECTED_ARRAY_ORDER
Public Instance Methods
campaign_costs(from, till)
click to toggle source
# File lib/adtekio_adnetworks/importers/cost/bidmotion.rb, line 16 def campaign_costs(from, till) load_data(from, till).reject do |campaign_data| campaign_data[7].to_f == 0 end.map do |campaign_data| country_code = campaign_data[2].downcase device = campaign_data[3].downcase campaign_name = "#{country_code}_#{device}" { :date => Date.parse(campaign_data[0]), :campaign => campaign_name, :clicks => campaign_data[4].to_i, :conversions => campaign_data[5].to_i, :amount => campaign_data[7].to_f, :target_country => country_code, :target_device => device } end end
Private Instance Methods
load_data(from, till)
click to toggle source
# File lib/adtekio_adnetworks/importers/cost/bidmotion.rb, line 57 def load_data(from, till) uri = Addressable::URI.parse("#{API_ENDPOINT}#{DATA_ROUTE}") uri.query_values = { :group_by => "click_date,offer_numeric_id,country_code,device_type,", :click_date_init => from.to_s, :click_date_end => till.to_s } request = Net::HTTP::Get.new(uri.request_uri) request["X-Session-Id"] = session_id response = Net::HTTP.start(uri.host, uri.port) do |http| http.request(request) end response_json = JSON.parse(response.body, :symbolize_names => true) raise "wrong field order: #{response_json[:fields]}" unless valid_field_order?(response_json[:fields]) response_json[:rows] end
session_id()
click to toggle source
# File lib/adtekio_adnetworks/importers/cost/bidmotion.rb, line 38 def session_id @session_id ||= begin uri = URI("#{API_ENDPOINT}#{AUTH_ROUTE}") params = { :user_username => credentials.username, :user_password => credentials.password, :platform_name => credentials.platform } response = Net::HTTP.post_form(uri, params) do |http| http.request(req) end response_json = JSON.parse(response.body, :symbolize_names => true) response_json[:session_id] end end
valid_field_order?(response_fields)
click to toggle source
# File lib/adtekio_adnetworks/importers/cost/bidmotion.rb, line 79 def valid_field_order?(response_fields) response_fields == EXPECTED_ARRAY_ORDER end