class AdtekioAdnetworks::Cost::Lifestreet

Public Instance Methods

campaign_costs(from, till) click to toggle source
# File lib/adtekio_adnetworks/importers/cost/lifestreet.rb, line 8
def campaign_costs(from, till)
  uri = Addressable::URI.
    parse("https://my.lifestreetmedia.com/reporting/run/")

  req = Net::HTTP::Post.new(uri.request_uri)
  req.form_data = {:data => {
      :measurements => {
        :Impressions => :adImps,
        :Conversions => :adConvs,
        :Cost        => :adRevenue,
        :Clicks      => :adClicks,
      },
      :dimensions => {
        :Date       => :Date,
        :Campaign   => "Campaign.name",
        :Country    => :Country
      },
      :start_date   => from.strftime("%Y-%m-%d"),
      :end_date     => till.strftime("%Y-%m-%d"),
    }.to_json}

  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)["data"].map do |values|
    {
      :date        => Date.parse(values["Date"]),
      :campaign    => values["Campaign.name"],
      :adgroup     => values["Country"],
      :impressions => values["adImps"].to_i,
      :clicks      => values["adClicks"].to_i,
      :conversions => values["adConvs"].to_i,
      :amount      => values["adRevenue"].to_f,
      :target_country => values["Country"]
    }
  end
end