🛠️Ad operations automation

Engage Media: a weekly ad-ops engine that surfaces the actions

We built Engage Media's ad-ops team a weekly engine that pulls Google Ads and Meta, runs the analysis they used to do by hand, and emails them the exact moves to make: negatives to add, RSA pins, and fatigued creatives to refresh.

In short

We turned a manual weekly analysis into an automated action list

Engage Media's ad-ops team used to spend part of every week reading search-term reports, checking responsive-search-ad asset performance, and hunting for audience and creative fatigue across separate platforms. We replaced that with a single weekly workflow. It pulls the Google Ads API, the Meta Graph API, and the warehouse, runs three Gemini analyses, search-term cleanup, RSA pinning recommendations, and audience plus creative-fatigue flags, then emails a formatted report. The work that ate hours of scattered analysis now arrives as a clear list of recommended actions. The AI surfaces the moves, the team decides which to make.

🎯The problem

The same manual review, every week, across scattered platforms

Good ad operations is mostly repetition. Every week someone has to read the search-term report to find wasted spend and missed keywords, check which responsive-search-ad assets are pulling their weight, and watch audiences and creatives for fatigue before performance slips. None of it is hard on its own. All of it is tedious, and it has to happen again next week.

The friction was that the data lived in different places. Search terms and RSA assets sit in Google Ads, creative and audience signals sit in Meta, and the historical view sits in the warehouse. Stitching those together by hand every week is slow, easy to skip when things get busy, and the moment it gets skipped, wasted spend and tired creatives go unnoticed.

🧭The approach

Let the engine analyze, let the human decide

The goal was never to let software change live campaigns on its own. Bid and budget moves carry real money and real client trust, so the decision stays with the team. What can be automated is the analysis: gathering the data, spotting the patterns, and proposing specific actions. So we built an engine that does the reading and hands the operator a shortlist.

The split is deliberate. Gemini reads the reports and drafts the recommendations. The thresholds and the bucketing stay deterministic, so a creative is flagged because it crossed a defined frequency threshold, not because a model felt like it. The output is a list of concrete moves, add this negative, pin this asset, refresh this creative, that a human reviews and actions.

⚙️What we built

A weekly cross-platform optimization engine

A weekly n8n workflow that pulls Google Ads, Meta, and the warehouse, runs three Gemini analyses, and emails a formatted report, with a non-blocking error log so one platform failing never kills the run. Built on the Google Ads API, the Meta Graph API, BigQuery, n8n, Gemini, Google Sheets, and Gmail/SMTP.

1

Pull every source

A weekly n8n workflow pulls the Google Ads API, the Meta Graph API, and BigQuery, bringing search terms, RSA assets, creative signals, and historical performance into one run.

2

Search-term cleanup

The first Gemini analysis reads the search-term report and sorts terms into keyword and negative buckets, so wasted spend gets caught and good queries get promoted.

3

RSA pinning recommendations

The second analysis reviews responsive-search-ad asset performance and recommends which headlines and descriptions to pin, so the strongest assets show where they matter.

4

Audience and creative-fatigue flags

The third analysis flags audience and creative fatigue, surfacing creatives that have crossed a defined frequency threshold so they get refreshed before performance drops.

5

Email the report, log the errors

The run emails a formatted HTML report with the recommended actions, and a non-blocking error log means one platform failing is noted but never kills the rest of the run.

🧱The stack

Named, and chosen on purpose

  • Google Ads API for search terms and RSA asset performance
  • Meta Graph API for creative and audience signals
  • BigQuery for the historical performance view
  • n8n orchestrating the weekly run with no execution timeouts
  • Gemini running the three analyses and drafting the recommendations
  • Google Sheets for configuration, and Gmail/SMTP for delivery
📈Outcome

A manual weekly cross-platform analysis became an automated report that lands the same specific actions every week: negatives to add, RSA pins to set, fatigued creatives to refresh. The engine surfaces the recommendations, the team makes the call, and the review no longer gets skipped on a busy week.

  • Weekly manual analysis eliminated across search terms, RSA assets, and fatigue
  • Specific actions surfaced rather than raw data, ready for the team to action
  • Deterministic by design the AI recommends, the human decides on live campaigns
  • Resilient runs a non-blocking error log so one platform failing never kills the report
"Bastien was great to work with. He is very responsive, supportive, and takes strong initiative throughout the project. He is amazing at what he does and the value he offers. He did strong research, stayed accountable, and handled his responsibilities very well. He also completed tasks before the deadline, which made the whole process smooth and reliable. I strongly recommend Bastien to any client looking for someone dependable, proactive, and professional."
Alyssa Phillips, Engage Media
Verified on Upwork
📬Contact

Want your ad ops to run like this?

Book a free audit. We will map the manual analysis eating your team's week and show you exactly what to automate first. One reply, no mailing list.

Book My Free Audit