Facebook Ads Scraper avatar

Facebook Ads Scraper

Try for free

Pay $5.00 for 1,000 Campaigns

View all Actors
Facebook Ads Scraper

Facebook Ads Scraper

apify/facebook-ads-scraper
Try for free

Pay $5.00 for 1,000 Campaigns

Extract advertising data from one or multiple Facebook Pages. Get page details, reach estimates, publisher platforms, report count, number of impressions, ad IDs, timestamps, and more. Download Facebook ads data in JSON, CSV, and Excel and use it in apps, spreadsheets, and reports.

Do you want to learn more about this Actor?

Get a demo
BM

Understanding fields after format update

Closed

beneficial_mess opened this issue
a month ago

Hi, I've seen new top-level fields introduced into this actor's output after recent FB changes. I'd like to understand which fields to use when there appear to be duplicate fields.

For instance, what is the difference between:

isActive is_active

or another example:

adArchiveID ad_archive_id

Should i prefer one over the other? Is one likely to be deprecated?

Thank you.

BM

beneficial_mess

a month ago

Following up on this, the removal of the "ad_details" field in 0.0.57 version is causing my data pipeline problems. I don't understand why this breaking schema change was necessary unless FB made major changes to the information displayed in the ad library.

It'd be great to have somewhere to go for communications when an actor needs to react to upstream changes on the target. For instance, did information get added or removed or was it just a change to the code in the UI without any changes to the information itself?

Similarly it appears that v0.0.57 is transitional (as the page info seems to have disappeared, but I read on another ticket that you're working on re-adding). It'd be very useful to understand which versions are transitional and which are stable. This would allow me to choose which version changes to react to on my data pipeline.

alexey avatar

Hi!

Duplicated values is partial remapping from new FB data format to previous format: actor just forwarding FB data and since now its changed in ads library some values like "isActive" remapped to keep partial compatibility. Not all values because its too many of them. In other words breaking changes caused by Meta itself - now they have totally new web app based on new data format so even if for web user it looks the same - scraping results are different. "snapshot" inherited most of all naming, the rest changed to various degree.

Finalized changes announced in changelog, so if new build released without mention in changelog its transitional.

I will keep informing you about the progress in this thread.

Sorry for caused inconvenience, with scraping such emergencies are rare, but always expected. Targeted data changed, we forced to follow changes.

BM

beneficial_mess

a month ago

Thanks for the explanation.

One thing which would increase stability would be for APIfy to adopt an API schema that more naturally aligns with the information shown on the page - that way if the underlying FB data model changes but the displayed information does not, you could transparently remap under the hood and may even be able to avoid a version change when restoring the API.

For now, I'm going to do this mapping on my side and maintain a mapping job from the raw APIfy fields to this more abstract data format. It'd save me work if this mapping were done on the APIfy side.

alexey avatar

Hi!

Just released final version, all values transformed to camelCase from raw meta format and will be kept this way. Its only viable choice to manage mapping since otherwise its too many values to match with visual output or something else.

Thanks for your feedback, can not directly follow it since FB Ads now based on react app and they have complex logic to manage data as visual output, for actor its too hard to follow it precisely.

I´m going to close the issue now, but if there would be anything else we could help with, please let us know.

Developer
Maintained by Apify
Actor metrics
  • 333 monthly users
  • 43 stars
  • 100.0% runs succeeded
  • 5 days response time
  • Created in Apr 2023
  • Modified 1 day ago