# How to Automate Facebook Ad Reporting for Agency Clients

> To automate Facebook ad reporting, pull ad data into a Google Sheet with a connector such as Two Minute Reports, group it by client and month with formulas, then use Make.com to run on the first of each month. It finds each active client's summary for the previous month and sends it by email using an HTML template.

Source: https://fluxomate.com/blog/how-to-automate-facebook-ad-reporting.html  
Published by Fluxomate (https://fluxomate.com/), 2025-06-17. Section: Automation templates.
Video: https://www.youtube.com/watch?v=rWObFchnK84

## Key takeaways

- A connector tool such as Two Minute Reports can refresh Facebook ad data in a Google Sheet on a schedule you choose.
- A client sheet and a monthly summary sheet group the data by client and by month.
- A status column lets the automation skip clients who are not active.
- Make.com runs on the first of each month, sets the previous month, finds each client's row and sends an HTML email.
- The same method works for TikTok ads, Google Ads and other platforms.

## How can you automate Facebook ad reporting?

The process has four parts. First, move ad data from Facebook into a database. Second, group that data by client with formulas. Third, build a monthly summary for each client. Fourth, use an automation to send each client a report on a schedule.

Facebook is the example here, but the same approach works for TikTok ad data, Google Ads data and even Instagram impressions. The tools can change. The method stays the same.


## How do you get Facebook ad data into Google Sheets?

We use Two Minute Reports, which connects ad platforms to a Google Sheet. It also supports other sources, including Google Ads, LinkedIn Ads, Snapchat Ads, Instagram insights and YouTube analytics. Any similar tool will do.

1. Sign up to the tool and install its extension in Google Sheets.
2. Go to Extensions, open the tool and launch it in your sheet.
3. Add a connection to your Facebook account and choose the client ad accounts you want to include.
4. Set up a data query for the fields you need. Our example uses date, account name, ad spend, leads and impressions. You can add more, such as campaigns, ad sets, ad preview links, clicks or cost per lead.
5. Set how often the data refreshes. It can update hourly, every few hours or daily.

## How do you group the data by client?

At first, every client's data sits together in one place. Add a new sheet called the client sheet and use a formula to list the unique client names from the account name column. It updates automatically when a new account appears. ChatGPT can write this formula for you.

Next to each client, add identifiers such as an ID and an email address. The email is what the automation later uses to send the report. You can also add a status column with values such as active or not active.

Back on the main data sheet, add a cost per lead column by dividing ad spend by leads.


## How do you build a monthly summary?

Create another sheet called the monthly summary. Use a query formula that groups the data by month and by client. Ask ChatGPT to write it and to put the client name and month in separate columns with headings.

Check the result before you trust it. We filtered the raw data for one client, summed a month of ad spend and compared it with the summary. They matched.

Add a cost per lead column that divides total ad spend by total leads. You now have a month by month view of each client that you can share with your team.


## How do you send the monthly report with Make.com?

Build one scenario in Make.com for the monthly reporting.

1. Set a variable called month. Format today's date minus one month in the same year and month format used in the sheet. Because it runs on the first of the month, this always gives the previous month.
2. Search rows in the client sheet to get all clients.
3. Add a filter so only clients with a status of active continue.
4. Search rows in the monthly summary sheet, filtering by month equal to your variable and client name equal to the current client. Each result holds that client's ad spend, leads, impressions and cost per lead.
5. Add a Gmail module to send an email. Set the subject to monthly report for the client name and the recipient to the client email from the client sheet.
6. Ask ChatGPT to write an HTML email that recaps ad spend, leads and cost per lead, then paste it into the email body and map the fields. HTML formatting looks much cleaner than plain text.
7. Set the schedule to the first day of each month at a time you choose.

## How should you test it?

While testing, add a temporary filter so the email only goes to your own address. Remove it before going live. Run the scenario and check how the email looks in your inbox.

You can also change the schedule to weekly, add branding or personalise the message. You could send the report through Slack or PowerPoint instead of email.


## Should you send these reports to clients?

We prefer to use this mainly inside the agency. A human step adds value, such as collecting input from analysts or media buyers, explaining what is going well and saying what you will do next.

Used internally, the automation gives you a view of client performance without opening each ad account. That matters more as you add clients. You can also push the same data into a dashboard that filters by client and date.


## Questions people ask

### How do I get Facebook ad data into Google Sheets automatically?

Use a connector such as Two Minute Reports. Install its Google Sheets extension, connect your Facebook account, choose the client ad accounts and set a data query. You can set the data to refresh hourly or daily.

### How do I group ad data by client and month?

Use a formula to list unique client names on a client sheet and a query formula to build a monthly summary grouped by month and client. ChatGPT can write both formulas. Check one client's totals against the raw data.

### How do I stop reports going to inactive clients?

Add a status column to the client sheet and a filter in Make.com so only rows marked active continue. Then you do not need to edit the automation when a client stops.

### Does this work for platforms other than Facebook?

Yes. The same process works for TikTok ads, Google Ads, Instagram impressions and other sources, as long as your connector tool supports them. Only the data source changes.

Tools used: Two Minute Reports, Google Sheets, Make.com, Gmail, ChatGPT

Free templates for this guide: https://fluxomate.com/resources.html?r=how-to-automate-facebook-ad-reporting
