class AdtekioAdnetworks::Cost::Applovin
Public Instance Methods
campaign_costs(from, till)
click to toggle source
# File lib/adtekio_adnetworks/importers/cost/applovin.rb, line 18 def campaign_costs(from, till) uri = Addressable::URI.parse("https://r.applovin.com/report") uri.query_values = { :api_key => credentials.api_key, :start => from.to_s, :end => till.to_s, :columns => "day,campaign,device_type,country,impressions,clicks,conversions,cost", :report_type => "advertiser", :format => :json, } 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 JSON.parse(res.body)['results'].reject do |campaign| campaign["cost"].to_i == 0 end.map do |campaign| date = Date.parse(campaign['day']) { :date => date, :campaign => campaign_name(campaign['country'], campaign['device_type'], date, campaign['campaign']), :impressions => campaign['impressions'].to_i, :clicks => campaign['clicks'].to_i, :conversions => campaign['conversions'].to_i, :amount => campaign['cost'].to_f, :target_country => campaign['country'], :target_device => campaign['device_type'], } end end
campaign_name(country, device, date, campaign_name)
click to toggle source
# File lib/adtekio_adnetworks/importers/cost/applovin.rb, line 8 def campaign_name(country, device, date, campaign_name) name_parts = [country, device] /\{(.*)\}/i.match(campaign_name) do |m| name_parts.push($1) end name_parts.join('_').downcase end