This is how I got my app approved after over 10 requests:
Go to your app dashboard and then App Review > Permissions and Features.
Find ads_managemen and ads_read and request advanced access . You can also request pages_read_engagement and pages_show_list if you plan to use the Facebook Page source in the future.
After that, Facebook wants you to explain and demonstrate how you are going to use each permission and provide a recording of the use case.
Here is an example:
"The app uses the access to fetch ads metrics in an effort to consolidate all marketing related data for the company. "
Before recording, set up the source and a destination (SQL Server for example). To avoid reaching the standard API request limit, set the source to a small time frame with “start date” and “end date”. In the connection settings, make sure to only select one stream: ads_insights. Both of the settings will make sure your sync does not hit the maximum amount of requests per minute. It is important for Facebook to see that your app is working end to end. Test the connection and make sure you are collecting some data without error or hitting the API limit. You can see the current API limit percentage in your Facebook app dashboard.
For the recording, show you have access to your Facebook Ads account by navigating to your assets in Facebook Business Manager. Also show that you own the page if you are requesting pages_read_engagement and pages_show_list. Now show the empty destination, like an empty SQL database or table. After that, start a sync on Airbyte. Show the log and everything working. Show the API percentage not going over 99%. Once the sync is complete, go to your destination and show the data in the database or table. I also added a mock dashboard using the data from the SQL server to demonstrate the use case. It is also important to import a high quality video.
You will also need to verify your business.