Luigi.
How we moved Google Ads optimization from the platform UI into a Power BI analytics environment — lifting ROAS 53% while nearly doubling revenue on an already optimized account.
+50% revenue and +15% ROAS on top of an already great year
2019 had been an exceptional year for Luigi — 25% revenue growth, a fully optimized account, every textbook lever already pulled. Going into 2020 the brief was harder: +50% revenue year-over-year, and +15% higher ROAS at the same time. Growth without efficiency is easy. Growth with better efficiency, on top of an already-great account, is a different problem entirely.
At that level of account maturity, the wins still on the table are not visible in the Google Ads UI. The platform surfaces aggregate performance by campaign or ad group, but the high-leverage patterns live one level deeper — in the interaction of account structure × query performance × bid dynamics × audience segments × time-of-day. Those patterns can only be observed in an analytics environment purpose-built for joining and slicing the underlying data, not a reporting dashboard designed around the platform's native hierarchy.
The second problem was execution hygiene. The account had grown organically over three years, and even with diligent manual management, drift had crept in: inconsistent campaign naming, ad groups with mixed intent, negative keyword coverage that varied by age. A full restructure was needed — but a hand-rebuilt account would just re-accumulate the same drift in another year. The restructure itself had to be automated if the wins were going to persist.
Automate the restructure, then optimize with BI
Step one was the account restructure — executed automatically by frontier custom software built in-house. The software takes the Merchant Center feed and a set of structural rules as input, and produces the entire Google Ads account as output: campaigns, ad groups, keyword pools, ad copy, and asset associations. Every campaign follows the same programmatic template, which eliminates drift at the source and makes future refactors idempotent rather than risky.
Step two was the data layer. We extracted account-level performance data through ELT services into a dedicated data warehouse, joined it with GA4 revenue data, Merchant Center catalog state, and first-party order data from the eshop. The warehouse became the single source of truth — reporting off it, rather than off the Google Ads UI, immediately surfaced patterns that were invisible in the platform: keyword-level query waste, time-of-day efficiency gaps, cross-campaign cannibalization, audience ROAS differentials.
Step three was the optimization loop. Power BI dashboards translated the warehouse signals into weekly optimization actions — which negative keywords to add, which day-parts to suppress, which audiences to split, which campaigns to consolidate. Each action is logged, executed, and measured against a baseline. The loop closes faster than any manual workflow could, and every week the account gets measurably closer to its theoretical efficiency ceiling.
Platform UI is not enough
Automated Restructure
Custom software rebuilt the entire Google Ads account programmatically from the Merchant Center feed — same source, perfect uniformity, zero manual effort. This became the baseline for every optimization that followed, and the idempotent rebuild capability meant future refactors could be executed with one command instead of a week of manual work.
ELT Pipeline
ELT jobs extract daily Google Ads performance data into a data warehouse alongside GA4, Merchant Center, and first-party order data. The join key — campaign × query × audience × hour — surfaces patterns that no single-platform report can see. The warehouse owns the data; the platform becomes the execution layer.
Power BI Analytics Loop
Power BI dashboards translate warehouse signals into weekly optimization actions — query waste to eliminate, cannibalization to resolve, audience ROAS gaps to close. Every action is logged and measured against a baseline, so the loop compounds: each week the account gets closer to its theoretical efficiency ceiling.
The Results
Revenue Growth
Revenue grew 94% year-over-year, nearly 2x the brief's 50% target. The lift came from BI-driven optimization actions that the Google Ads UI could not surface — mostly around query waste elimination and cross-campaign cannibalization.
Transactions
Transaction volume expanded 72%, with tighter efficiency from eliminating query waste and fixing audience cannibalization. Order value also rose slightly as better-targeted audiences converted on higher-margin SKUs.
ROAS Lift
ROAS increased 53% — more than 3x the +15% target — proving that BI-driven optimization exceeds what is achievable from the Google Ads UI alone. The gap between the two environments is real, measurable, and compounds over time.
Account Uniformity
Post-restructure, every campaign, ad group, keyword, and ad follows the same programmatic template. Future refactors are idempotent and single-click — which means the account can keep evolving without re-accumulating the drift that limited the previous year.
More Case Studies
View allReady to break the Google Ads UI ceiling?
Let's ELT your ad data into a proper BI environment and find the ROAS levers the platform hides.
Start a conversation