class AdtekioAdnetworks::Cost::Fyber
Public Instance Methods
apps()
click to toggle source
# File lib/adtekio_adnetworks/importers/cost/fyber.rb, line 8 def apps uri = Addressable::URI. parse("https://api.sponsorpay.com/advertiser/v1/application_list") req = Net::HTTP::Get.new(uri.request_uri) req.basic_auth credentials.username, credentials.password res = Net::HTTP.start(uri.host, uri.port, :use_ssl => true, :verify_mode => OpenSSL::SSL::VERIFY_NONE) do |http| http.request(req) end JSON.parse(res.body, :symbolize_names => true)[:data] end
campaign_costs(from, till)
click to toggle source
# File lib/adtekio_adnetworks/importers/cost/fyber.rb, line 22 def campaign_costs(from, till) apps.map do |app_data| next if app_data[:bundle_id].nil? uri = Addressable::URI. parse("https://api.sponsorpay.com/advertiser/v1/campaign_aggregate") uri.query_values = { :app_id => app_data[:app_id], :start_day => from.strftime("%Y-%m-%d"), :end_day => till.strftime("%Y-%m-%d"), } req = Net::HTTP::Get.new(uri.request_uri) req.basic_auth credentials.username, credentials.password res = Net::HTTP.start(uri.host, uri.port, :use_ssl => true, :verify_mode => OpenSSL::SSL::VERIFY_NONE) do |http| http.request(req) end JSON.parse(res.body, :symbolize_names => true)[:data].map do |campaign| next if campaign[:spend].to_f == 0 { :date => Date.parse(campaign[:day]), :campaign => campaign[:campaign_name].split(' ').first, :impressions => campaign[:impressions].to_i, :clicks => campaign[:clicks].to_i, :conversions => campaign[:downloads].to_i, :amount => campaign[:spend].to_f/100, } end.compact end.flatten end