How do you only retrieve the "last" updated ads/adsets/campaigns from Facebook via the Ads API? I mean that I need to update on my database only those campaigns/adsets/ads that have changes, not all of them. I've found that a good technique is via facebook etag, but is there any other technique for this?
You can use the filtering
parameter to filter campaigns
, adsets
and ads
on the updated_time
field.
filtering=[{field: "<object>.updated_time", operator: "GREATER_THAN", value: <unix time>}]
Using the most recent unix time
you have saved of the objects you can get all the more recently updated objects. A full curl version to get all campaigns
updated after 2018-02-01
:
curl -G \
-d 'access_token=<ACCESS_TOKEN>' \
-d 'filtering=[{field:"campaign.updated_time",operator:"GREATER_THAN",value:1517443200}]' \
'https://graph.facebook.com/v2.12/act_<ACCOUNT_ID>/campaigns'
Note: I could only get unix time
to work and have no idea if there is another format that is supported by the API