class AdtekioAdnetworks::Revenue::Adcolony

Constants

BASE_URL
CsvOptions

Public Instance Methods

csv_data(date) click to toggle source
# File lib/adtekio_adnetworks/importers/revenue/adcolony.rb, line 56
def csv_data(date)
  uri = Addressable::URI.new
  uri.query_values = {
    :user_credentials => credentials.api_key,
    :date             => date.strftime("%m%d%Y"),
    :format           => 'csv',
  }
  datauri = URI.parse("%s?%s" % [BASE_URL, uri.query])

  Net::HTTP::Persistent.new('adcolony').request(datauri).body
end
report(from, to) click to toggle source
# File lib/adtekio_adnetworks/importers/revenue/adcolony.rb, line 46
def report(from, to)
  (from..to).map do |day|
    csv_data(day)
  end
end
revenues(from, to) click to toggle source
# File lib/adtekio_adnetworks/importers/revenue/adcolony.rb, line 16
def revenues(from, to)
  (from..to).map do |day|
    store = Hash.new {|h,k| h[k] = Hash.new { |h1,k1| h1[k1]=Hash.new(0)}}
    csv_data = csv_data(day)

    CSV(csv_data, CsvOptions).each do |row|
      next if zero_row?(row)
      hsh = store[row["App Name"]][row["Start Date"]]

      ["Earnings ($)", "Clicks", "Impressions", "Requests"].
        each do |colname|
        hsh[colname] += row[colname].to_f
      end
    end

    store.map do |title, data|
      data.map do |date, hsh|
        {
          :impressions => hsh["Impressions"].to_i,
          :requests    => hsh["Requests"].to_i,
          :clicks      => hsh["Clicks"].to_i,
          :amount      => hsh["Earnings ($)"].to_f,
          :date        => Date.strptime(date, "%Y-%m-%d"),
          :appname     => title
        }
      end
    end.flatten
  end.flatten
end
zero_row?(csvrow) click to toggle source
# File lib/adtekio_adnetworks/importers/revenue/adcolony.rb, line 52
def zero_row?(csvrow)
  csvrow["Earnings ($)"] == "0" && csvrow["Impressions"] == "0"
end