I have creates this code:
import pandas as pd
from facebook_business.api import FacebookAdsApi
from facebook_business.adobjects.adaccount import AdAccount
from facebook_business.adobjects.ad import Ad
from facebook_business.adobjects.user import User
from facebook_business.adobjects.lead import Lead
import requests
from datetime import datetime
import time
# Permanent Access Token
access_token = "my_token"
facebook_api = FacebookAdsApi.init(access_token=access_token)
start_date = '2023-07-01'
end_date = '2023-07-31'
account_id = "my_ad_account_id"
lead_fields = ['campaign_name',"created_time","field_data"]
lead_params = {
'filtering': [{'field': 'time_created', 'operator': 'GREATER_THAN', 'value': start_date},
{'field': 'time_created', 'operator': 'LESS_THAN', 'value': end_date}
]
}
print(f"Getting data from account: {account_name}")
leads_list = []
# Getting ads
ad_account = AdAccount(account_id)
ads = ad_account.get_ads()
for ad in ads:
leads = ad.get_leads(fields=lead_fields,params=lead_params)
for lead in leads:
lead_dic = {}
lead_dic["campaign_name"] = lead["campaign_name"]
lead_dic["created_time"] = lead["created_time"]
field_data = lead["field_data"]
for field in field_data:
lead_dic[field["name"]] = field["values"][0]
leads_list.append(lead_dic)
print(leads_list)
I works for my test account that has few ads, but I get an limit error when I try to use it with my main account.
I figure that I should use batch request, but I could not make it work. Can someone please help to to adapt this code so it does not get limit errors?