class AdtekioAdnetworks::Cost::Glispa
Public Instance Methods
campaign_costs(from, till)
click to toggle source
# File lib/adtekio_adnetworks/importers/cost/glispa.rb, line 42 def campaign_costs(from, till) csv_data(from, till).map do |row| glispa_name = row["Campaign Name"] _, campaign, adgroup, ad, country = parse_glispa_name(glispa_name) next if row["Payout"].to_f == 0.0 { :campaign => campaign, :adgroup => adgroup, :ad => ad, :amount => row["Revenue"].to_f, :date => Date.parse(row["Date"]), :target_country => country, } end.compact end
csv_data(from, till)
click to toggle source
# File lib/adtekio_adnetworks/importers/cost/glispa.rb, line 8 def csv_data(from, till) uri = Addressable::URI. parse("https://www.glispainteractive.com/API/advreport.php") uri.query_values = { :cid => credentials.cid, :token => credentials.token, :bdate => from.strftime("%Y-%m-%d"), :edate => till.strftime("%Y-%m-%d"), :format => :csv } req = Net::HTTP::Get.new(uri.request_uri) res = Net::HTTP.start(uri.host, uri.port, :use_ssl => true, :verify_mode => OpenSSL::SSL::VERIFY_NONE) do |http| http.request(req) end CSV.new(res.body.rstrip, :headers => :first_line, :col_sep => ";") end
parse_glispa_name(glispa_name)
click to toggle source
# File lib/adtekio_adnetworks/importers/cost/glispa.rb, line 29 def parse_glispa_name(glispa_name) app_name, platform, adgroup, *ad = glispa_name.downcase.split(' - ') ad.compact! country = adgroup.length == 2 ? adgroup : nil campaign = if ad.size == 1 && ad.join(" ") != 'gNative' ad.first else "#{country}_#{platform}" end ["", campaign, adgroup, ad.join(" "), country] end