class Bing::Ads::API::V11::Services::Reporting

Bing::Ads::API::V11::Services::CampaignManagement

Public Class Methods

new(options = {}) click to toggle source
# File lib/bing/ads/api/v11/services/reporting.rb, line 8
def initialize(options = {})
  super(options)
end

Public Instance Methods

poll_generate_report(report_request_id) click to toggle source
# File lib/bing/ads/api/v11/services/reporting.rb, line 19
def poll_generate_report(report_request_id)
  response = call(:poll_generate_report, report_request_id: report_request_id)
  response_body = response_body(response, __method__)
  response_body
end
report_body(report_request_id) click to toggle source
# File lib/bing/ads/api/v11/services/reporting.rb, line 37
def report_body(report_request_id)
  HttpClient.download(report_url(report_request_id))
end
report_ready?(report_request_id) click to toggle source
# File lib/bing/ads/api/v11/services/reporting.rb, line 25
def report_ready?(report_request_id)
  polled = poll_generate_report(report_request_id)
  status = polled.dig(:report_request_status, :status)
  raise "Report status: Error for ID: #{report_request_id}" if status == "Error"
  status == "Success"
end
report_url(report_request_id) click to toggle source
# File lib/bing/ads/api/v11/services/reporting.rb, line 32
def report_url(report_request_id)
  polled = poll_generate_report(report_request_id)
  polled.dig(:report_request_status, :report_download_url)
end
submit_generate_report(type, report_options) click to toggle source
# File lib/bing/ads/api/v11/services/reporting.rb, line 12
def submit_generate_report(type, report_options)
  payload = Bing::Ads::API::V11::Data::ReportRequest.prepare(type, report_options)
  response = call(:submit_generate_report, payload)
  response_body = response_body(response, __method__)
  response_body
end

Private Instance Methods

service_name() click to toggle source
# File lib/bing/ads/api/v11/services/reporting.rb, line 43
def service_name
  'reporting'
end