facebook-ruby-business-sdk icon indicating copy to clipboard operation
facebook-ruby-business-sdk copied to clipboard

fix: AdReportRun can't retain id with post insights

Open mktktmr opened this issue 3 years ago • 0 comments

I'd like to use AdReportRun like below.

ad_account = FacebookAds::AdAccount.get(some_params)

# Generating a job to create report
ad_report_run = ad_account.insights.create(some_params)

# Waiting until the job completed
until ad_report_run.reload! && ad_report_run.async_status == "Job Completed"
  sleep 1
end

# Fetching the report
ad_report_run.insights.all

Unfortunately AdReportRun causes an error with api request in reality, because AdReportRun has report_run_id instead of id. As you know AdObject (and its sub class) try to get data by id.

ad_account = FacebookAds::AdAccount.get(some_params)

ad_report_run = ad_account.insights.create(some_params)

ad_report_run.async_status # error occurred
# => NoMethodError: undefined method `gsub' for nil:NilClass
#    from /usr/src/tmp/facebook-ruby-business-sdk/lib/facebook_ads/session.rb:41:in `request'

That's why I added a process to replace attributes report_run_id to id on AdObject#initialize.

mktktmr avatar Aug 13 '21 11:08 mktktmr