Explore with AI
ChatGPTClaudeGeminiPerplexity
5 min read

How to Build Unified Google Ads Reporting Across Multiple MCC Accounts

Mike Richie

Cover image for How to Build Unified Google Ads Reporting Across Multiple MCC Accounts

Managing multiple Google Ads accounts under an MCC? Most teams either struggle with Looker Studio's limitations or end up stitching together Fivetran, BigQuery, and Looker just to get a unified dashboard. Definite gives you a simpler path: sync your entire MCC to a managed data warehouse, build unified dashboards, and ask questions in plain English.

Table of Contents


The Problem with MCC Reporting

If you've ever tried to build unified reporting across multiple Google Ads accounts, you know the pain.

Most teams go one of two routes:

Option 1: Use a BI Tool with Native Connectors

The simplest approach is connecting a BI tool directly to Google Ads:

  • Looker Studio (free, native Google Ads connector)
  • Tableau (Google Ads connector via CData or direct)
  • Power BI (Google Ads connector)
  • Metabase or Preset (community connectors)

This works for basic reporting. But these tools hit walls quickly: multi-currency accounts break cost data, you can't blend Google Ads with Shopify or Stripe, and you're limited to whatever the native connector exposes.

Option 2: Build a Data Stack

When BI tools aren't enough, teams stitch together a full data stack:

  • ETL tool (Fivetran, Airbyte, Stitch) to sync Google Ads data
  • Data warehouse (BigQuery, Snowflake, Redshift) to store it
  • Transformation layer (dbt) to model and clean it
  • BI tool (Looker, Tableau, Metabase) to visualize it

This gives you flexibility, but now you're managing four vendors, four contracts, and four tools. You need someone who knows SQL. And the bill adds up fast.

Multi-Currency Breaks Cost Data

If your MCC has accounts in different currencies (USD, EUR, GBP), Looker Studio's native connector cannot display cost data. You'll see $0 across the board. This forces you into the full data stack approach.

Data Is Always 24 Hours Behind

BigQuery's native Google Ads data transfer runs once per day. For performance marketers who need to react to spend anomalies quickly, a 24-hour delay is frustrating.

Brand Names Don't Match

Google Ads account names rarely match the brand names in your other systems. Here's what this looks like in practice:

BrandGoogle Ads Account NameShopify Store NameStripe AccountInternal Name
VerdeMCC - Verde Homeverde-home-storeVerde Home LLCVerde
OasisMCC - Oasis Livingoasis-officialOasis & CoOasis
SummitSummit_Ads_2024summit-gearSummit Outdoor IncSummit
BloomMCC_Bloom_Brandbloom-beauty-usBloom Beauty LLCBloom
CoastalCoastal - Maincoastal-shopCoastal ProductsCoastal

When you try to join Google Ads spend with Shopify revenue, nothing matches. You end up building spreadsheets to map account names manually, and those spreadsheets break every time someone renames an account or adds a new brand.

These aren't edge cases. They're the standard experience for any team managing more than a handful of Google Ads accounts.


What the Alternatives Get Wrong

Teams that outgrow Looker Studio typically explore these options:

SolutionAnnual CostWhat You GetThe Problem
Supermetrics + Looker Studio$3,500-$5,000Data transfer onlyPricing scales quickly; still need separate BI
AgencyAnalytics$6,000-$10,000Client dashboardsData accuracy issues; limited customization
Funnel.io$12,000-$73,500Data platformEnterprise pricing; FlexPoints unpredictable
Fivetran + BigQuery + Looker$15,000-$50,000Full stackHigh complexity; requires data engineer
Custom API BuildEngineering timeFull controlSQL learning curve; OAuth maintenance

The gap: None of these solutions give you a complete data stack (warehouse + ETL + semantic layer + BI + AI) at a price under $12K/year without requiring a data engineer.

That's the gap Definite fills.


How to Build Unified MCC Reporting in Definite

We recently built unified Google Ads reporting for a holding company managing 13+ e-commerce brands. Here's exactly how we did it.

Step 1: Connect the MCC

In Definite, you create a custom Google Ads integration with four credentials:

  1. Developer Token (from Google Ads API Center)
  2. Client ID and Client Secret (from Google Cloud Console)
  3. Refresh Token (from OAuth Playground)
  4. Customer ID (your MCC account number, without dashes)

Yes, you still need to gather these credentials. But once they're in Definite, you don't have to manage OAuth refresh or API rate limits yourself.

Step 2: Sync Data to the Data Warehouse

Once connected, all your Google Ads data syncs automatically to Definite's managed DuckDB data warehouse (DuckLake).

You don't need to provision Snowflake or BigQuery. You don't need to manage infrastructure. The data lands in tables you can query immediately.

For this client, we synced 13+ accounts with full historical data going back to 2023.

Step 3: Build Data Models in the Semantic Layer

In Definite's semantic layer (powered by Cube.js), you define your metrics and dimensions once:

TypeExamples
MeasuresSpend, Impressions, Clicks, Conversions, CTR, CPC, ROAS
DimensionsBrand, Account Name, Campaign, Date, Month

You also create joins. For this client, we joined Google Ads data with:

Step 4: Create Brand Mapping

Google Ads account names rarely match the brand names you use internally. "MCC - Verde Home" in Google Ads might be "Verde" in your Shopify data.

In Definite, you create a simple mapping table:

Google Ads Account NameBrand
MCC - Verde HomeVerde
MCC - Oasis LivingOasis
Summit_Ads_2024Summit

Join this in the semantic layer, and every dashboard, report, and query uses the same standardized brand names.

How brand mapping works in Definite

Step 5: Build the Dashboard

Now you have everything you need:

  • Total spend across all brands
  • ROAS by brand
  • CTR and CPC trends over time
  • Brand comparison tables
  • Blended view with Shopify revenue

Unified MCC dashboard

Step 6: Ask Fi

Instead of writing SQL, ask Fi:

  • "Which brand has the highest ROAS this month?"
  • "Show me spend by brand for the last 30 days"
  • "Compare Google Ads spend to Shopify revenue by brand"

Fi understands your semantic model, writes the query, and returns the answer with a chart. No SQL required.


What You Get

ComponentWhat It Does
Managed Data WarehouseAll MCC accounts sync to DuckLake automatically
Semantic LayerDefine metrics once, use everywhere
Brand MappingStandardize messy account names across sources
Unified DashboardAll brands in one view, blended with Shopify/Stripe
AI Queries (Fi)Ask questions in plain English, no SQL required
Scheduled AutomationDaily syncs, automatic refreshes

Cost Comparison

SolutionAnnual Cost
Looker Studio + MCCFree (no data blending, no multi-currency)
Supermetrics + Looker Studio$3,500-$5,000
AgencyAnalytics$6,000-$10,000
Funnel.io$12,000-$73,500
Fivetran + BigQuery + Looker$15,000-$50,000
Definite$12,000-$30,000 (full stack + AI)

Who Is This For?

  • Agencies managing 20+ client Google Ads accounts who spend 15+ hours/week on manual reporting
  • Holding companies (Thrasio model) with 50-200+ brands under management
  • E-commerce operators running multiple storefronts with separate ad accounts
  • Performance marketing teams who want to blend Google Ads data with Shopify, Stripe, or HubSpot

If you're tired of managing four separate tools for MCC reporting or paying enterprise prices for basic multi-account analytics, this is worth exploring.


Get Started

Connect your Google Ads MCC, sync all accounts to a managed data warehouse, and build unified dashboards in one platform.

Data doesn't need to be so hard

Get the new standard in analytics. Sign up below or get in touch and we'll set you up in under 30 minutes.