google ads16 min readBy Phloz teamUpdated

Google Ads MCC for agencies: the operational playbook

The five things every Google Ads MCC needs from day one, the four per-account checks, and the cross-account patterns that scale past 50 clients.

TL;DR

Google Ads Manager (formerly MCC — My Client Center) is the parent account that holds every client's Ads account under one login + one billing relationship. It's easy to inherit an MCC from a previous owner, or build one ad hoc, and never restructure it. The result: orphan accounts nobody owns, conversion actions scattered across accounts with inconsistent definitions, audiences trapped per-account when they should be portable, billing relationships that break when a client's card expires. This post: the 5 things every MCC needs from day one, the 4 things to verify per Ads account inside the MCC, where conversion actions should live so they survive a client leaving, and the audience-portability + reporting patterns that scale to 50+ client accounts. Includes specific access tiers, naming conventions, and a verification cadence to start from.


If you've run a digital agency for any length of time, you've inherited at least one Google Ads MCC and you've felt the pain. It's named something like "Old Agency Group" with three former employees still on it, eight client accounts that haven't run in two years, billing on a card that bounced last quarter, and a sub-MCC nested two levels deep that nobody can explain.

It's an easy state to drift into. Google Ads Manager (Google's official rename of MCC; we'll use both terms interchangeably) is one of the most powerful agency tools, and an easy one to mismanage. The cost of mismanagement is real — it shows up as conversion-tracking fragmentation, audience portability gaps, billing drift, and access-control accidents that occasionally end in legal conversations.

Below: the operational playbook. Everything below assumes a "standard" agency MCC managing 5-50 client Ads accounts. Patterns scale up; for 100+ accounts you'd add another layer of structure, but the principles hold. (This post is deliberately Google-specific — the cross-platform architecture that sits above it, covering Meta and TikTok parent entities, asset-ownership rules, and billing blast radius, is the managing multiple ad accounts at scale pillar.)

What an MCC actually is (and isn't)

An MCC is a parent account that:

  • Holds child accounts: every client's Google Ads account links to your MCC. The link can be revoked by either side.
  • Centralizes login: your team accesses every linked account through one Google login + one MCC dashboard.
  • Centralizes billing (optionally): the MCC can pay for child accounts via consolidated billing — useful for a few patterns we'll cover, harmful for others.
  • Owns conversion actions across accounts (optionally): with cross-account conversion tracking, a long-standing manager-account feature, you create conversion actions in a manager account and point accounts at them. It's built for one business with several accounts, not for a book of unrelated clients (more in point 3 below).
  • Aggregates reports: cross-account reports surface in the MCC dashboard. Looker Studio (now Data Studio) + native reports both work at MCC level.

What an MCC is NOT:

  • It's not a billing entity Google holds money from. Each child account has its own billing relationship + payment method by default.
  • It's not a conversion-tracking source of truth. Conversion actions live on child accounts unless you explicitly create them at MCC level.
  • It's not Google Workspace. The login is via your standard Google account; MCC permissions are separate from any Workspace org access.

The 5 things every MCC needs from day one

Every link to a child account has a display name visible in the MCC dashboard. Default is whatever the client named the account. Result: you scan a list of 30 accounts and 12 of them are called variants of "Marketing" or "Ads Account."

The fix: rename links to a standardized format. Try [Client Slug] | [Service Type], e.g. acme-foods | search-only or bright-app | search+shopping. Client slug is the same identifier you use everywhere else (your CRM, your project tool, your tracking infrastructure map). Service type is short — search, display, pmax, search+shopping, video. Nobody types out "Performance Max."

This is renames-on-link, not renames-on-account. The client's view of their own account name doesn't change.

2. Access tiers — minimum 3, maximum 4

Google Ads access has 5 levels: Email-only, Read-only, Standard, Admin, Billing. It's tempting to grant Admin to everyone on the team and nobody else.

The agency-shaped tiering:

Access LevelWhoWhy
AdminSenior leads, financeFull control including user management + billing
StandardPPC specialists, account managersCan edit campaigns, can't manage users or billing
Read-onlyReports analysts, junior staff in shadowingView only, useful for training + report-building
Email-onlyClient stakeholders who want notifications without loginReceives reports, no dashboard access

Avoid the 5th level (Billing) unless a specific contractor needs invoices without dashboard access. It's confusing.

Audit cadence: quarterly. Pull the user list per the MCC + every linked account; compare against your actual team roster. Look first for off-boarded contractors who still hold Admin.

3. One conversion template, built in each client's own account

This is a big leverage point, and an easy one to miss.

By default, conversion actions live in each account. Each client has their own set, and "purchase" on Client A isn't the same conversion entity as "purchase" on Client B — separate definitions, separate measurement, separate reporting. That is the right place for them: the client keeps them if they leave. What goes wrong is that every set was built differently.

The fix is a template, not a shared action. Write down the agency's canonical conversions once (purchase, lead-form-submission, qualified-lead, phone-call) with their event source, count rule, conversion window and value source, and build each client's conversion actions from it, in the client's account, under the same names. This means:

  • Cross-client reporting adds up like with like: "which clients drove the most purchases this quarter" joins on names that mean the same thing.
  • New clients onboard faster: the template is a checklist, not a design session.
  • The client keeps their conversion actions and their history if they move agencies — the asset rule from the multiple-ad-accounts pillar: the client owns what measures their business.

Why not one shared set in your MCC? Cross-account conversion tracking — a manager-account feature for years, not a new one — lets you create conversion actions in a manager account and have client accounts use them (Google Ads Help). It's built for one business running several Google Ads accounts: one tag instead of one per account, and attribution reports that follow a person across every account using it before they convert. Pointed at unrelated clients, those reports read Client A's ads and Client B's ads as one advertiser's funnel. It also breaks at churn: when a client unlinks from your MCC, the manager's tag stops recording conversions for clicks after the unlink, and the client's own tracking comes back only if their own tag is still on the site (Google Ads Help).

Where it does fit: one client running several Ads accounts for one site (per region, or brand and non-brand in separate accounts). There it means one tag, and less risk of counting a sale twice when the buyer clicked ads in two of those accounts. Keep those conversions in a manager account for that client — ideally the client's own, linked under your MCC — not in your agency's top-level MCC, where every account pointed at it would share them. The setup: sign in to that manager and create the conversions there, then point each of the client's accounts at them: Accounts → Sub-account settings → the account's Conversion account cell → "This manager" (Google Ads Help).

It's all or nothing per account: an account uses its own conversion actions or the manager's, never both, and it can see the manager's but not edit them. Every account pointed at the manager inherits its definitions, so a change there (the count setting, or the attribution model from data-driven to last click — the only two models Google Ads has offered since first-click, linear, time-decay and position-based were retired in 2023) propagates to every one of them.

Watch for: accounts that already had their own conversions when you took the client over. They don't migrate, and because an account uses one set or the other, the move is a cut-over rather than a gradual share-down: put the manager conversion's tag on the site first and watch it register for a week (per conversion tracking verification), then switch the account's conversion account to the manager and update any campaign goals that named the old actions.

4. Cross-account billing strategy

Three billing patterns:

  • Per-account direct (default): each client has their own card on their own account. Agency manages campaigns; client pays Google directly.
  • Consolidated MCC billing: MCC pays Google; agency invoices clients separately. Simpler client UX (one bill from agency), more cash-flow burden on the agency (you front the spend).
  • Hybrid: some clients direct-billed, some via consolidated. Easy to end up here without deciding to.

The right choice depends on your agency's cash-flow position + the client tier. Strategic-tier clients on consolidated; everyone else direct.

The trap: card-bounce blast radius on consolidated billing. If your MCC card declines, every child account on consolidated billing pauses simultaneously. Picture that happening on the Friday before Black Friday weekend. Risk-mitigation: keep two cards on file at the MCC (one primary, one backup), set up balance alerts, never let a single card carry more than $10K/day in spend.

5. The audit cadence

The MCC + every child account needs a verification pass on a documented cadence. Without it, configuration drifts: conversion actions get created off-MCC, audiences expire, sitelinks point at dead URLs, ad groups accumulate that aren't running anything.

A cadence to start from:

  • Weekly per active account: PPC specialist's standard optimization loop (see department workflows). Catches campaign-level drift.
  • Monthly per account: account-level health check — billing, access list, conversion firing rates, audience freshness. ~15 minutes per account.
  • Quarterly at MCC level: all linked accounts audited, all MCC users audited, every client's conversions checked against the template (and any manager-level ones reviewed), all sub-managers (if any) verified. ~3-4 hours.
  • Annually: full restructure pass — kill orphan accounts, archive linked accounts that haven't run in 6 months, re-validate the entire access tier.

Tools split along the same cadence: the weekly loop is where an optimization suite earns its keep; the monthly and quarterly passes are operations work no bid tool covers.

The artifact that holds this state is your tracking infrastructure map. Each Google Ads account is a node; conversion actions are nodes connected to their accounts; audiences go in the account's notes or on as Custom nodes. Health states (working / broken / missing / unverified) record what the last check found — "did the conversion fire in the last 7 days?", "is the audience still receiving members?" — and when someone last checked.

The 4 things to verify per Ads account

Inside the MCC, every linked Ads account needs these four things checked — at onboarding, then on the cadence above.

Conversion actions firing correctly

For every conversion configured on the account:

  • Is it firing? Check the Conversions report → last 7 days. Zero firings = either the campaign isn't running OR the conversion is broken. Both are problems.
  • Is the count rule correct? "One per click" vs "Every conversion" — affects ROAS math materially. Ecommerce purchases = "Every"; lead forms = "One per click."
  • Is the attribution model intentional? Default in 2026 is data-driven for most accounts, but legacy accounts may still be on last-click. Check + standardize.
  • Is the value parameter correct? Lead forms with "value: 1" report ROAS that's meaningless. Either pass actual value (where measurable) or set Value: don't report.

Customer-list uploads still synced

Customer-list audiences (CRM-uploaded users for retargeting + lookalikes) need ongoing refresh. Upload once at engagement start and forget, and the list goes stale: every customer since the upload is missing from it.

The fix: a documented refresh cadence per client (monthly is a sensible default) + an integration that automates it (the CRM's or email platform's own Google Ads sync, where it has one — on a Phloz map that sync is a pushes audiences to edge from the client's CRM or email node to the Ads account: documented there, not run by Phloz).

Audit check: in Audience Manager → Your data sources → Customer list. Look at "List size" + "Date last uploaded." Anything older than 60 days = flag.

Negative keyword lists current

Search campaigns accumulate wasted spend on irrelevant queries. The negatives list should be reviewed weekly per active account.

Two common mistakes:

  1. No shared negative list. Each campaign has its own. Result: when you find a new negative, you add it to one campaign + miss the others. Use shared negative lists (managed at account or MCC level) for branded negatives + competitor names.
  2. Negative-only mode. Some accounts inherit a negative-list-only practice from a previous agency where every search query gets reactively negated. This blocks future relevant queries forever. Better: negate aggressively in the first 3 months, then trust the bidding strategy + match-types.

Quality Score across active ad groups

Quality Score isn't a Google-published metric anymore in the same way it was — but the underlying signals (expected CTR, ad relevance, landing-page experience) still drive auction dynamics + cost-per-conversion.

Audit: pull the historical Quality Score column for active ad groups. Treat anything 5/10 or below as a structural problem — look for mismatched ad copy / landing page, or a keyword theme that's too broad. Fix the ad group structure or kill the underperforming keywords.

This is harder to systematize than the other three items because the fix depends on the specific account. Senior PPC time, not junior.

Cross-account patterns that matter

Three operational patterns that come up frequently at MCC scale:

Audience portability across accounts

Google's audience-sharing model is partial. A manager account can share the data segments it owns — website-visitor and app-user lists built from its tag, and combined segments — with some or all of its client accounts, and continuous sharing hands them to every new sub-account too (Google Ads Help). Video, Floodlight-based and licensed segments can't be shared, and a segment a client account owns needs that client's permission to share.

Practical agency workflow:

  • Custom segments: create at MCC, share to every account. Define once, reuse.
  • Customer lists: ideally upload once at MCC, share down. In practice you'll upload per-account, because the customer-data source is per-client.
  • Remarketing lists: shareable down from the MCC — but only between accounts a visitor would recognise as the same brand. Google restricts sharing a list with an unaffiliated advertiser, so Client A's site visitors are never Client B's audience.
  • Similar audiences: gone since 2023 — Google stopped generating them on May 1, 2023 and removed them from campaigns that August. The replacements are optimized targeting (your first-party segments as signals), audience expansion for video reach, and lookalike segments in Demand Gen campaigns (Google). A client's docs that still list a similar audience describe something that stopped serving in 2023.

Cross-account reporting

Looker Studio + Google Ads MCC connector pulls data from every linked account. For agency-level dashboards (e.g. "total spend across all clients", "best-performing campaign across all clients"), this is the right tool.

Two common mistakes:

  1. Joining on conversion-action name without normalizing. Client A's "Purchase", Client B's "purchase - website" and Client C's "Transactions" are one outcome under three names, and they may count it three ways. The fix is the conversion template above: the same names and the same settings in every client's account.
  2. Aggregating cost-per-conversion across clients. This metric isn't comparable across industries — a $50 CPL might be excellent for B2B SaaS and terrible for ecommerce. Aggregate metrics that ARE comparable (ROAS within a client, growth-vs-prior-period across clients) instead.

Sub-MCC structure (when you actually need one)

Some agencies build sub-MCCs to segment their book of business — e.g. one sub-MCC per client portfolio, or one per geographic region. Do NOT do this until you're past 50 active clients.

Reasons sub-MCCs add friction:

  • User permissions are inherited downward but not flat — you grant access at sub-MCC level, not MCC level. Tracking who has what access becomes harder.
  • Reporting aggregation is per-MCC, not across sub-MCCs (mostly — Looker Studio can join across, but that's another tool layer).

The legitimate use cases for sub-MCCs: regulated-industry agencies that need access boundaries between jurisdictions, white-label agencies running on top of another agency's MCC, and a client with several Ads accounts that share conversions (point 3 above; best as the client's own manager account, linked under yours). For everyone else, one MCC is the right answer until it isn't.

The Phloz angle

Phloz models every Google Ads account as a node on the tracking infrastructure map — typed, with health states, with documented relationships to GA4 properties, GTM containers, and conversion actions. Each account node records its MCC's ID in the manager ID field.

The advantage: when a conversion action breaks, the client's map shows everything wired to it — the account, the GA4 property, the GTM container that feeds it. Finding every account under one MCC is still the MCC's job; the map makes each client's piece of it legible, and on Growth and up, Ads Health's weekly Google Ads audit flags a conversion action that stopped recording. Without that record, the agency discovers the breakage only when ROAS drops on a Wednesday and somebody starts asking why.

We don't replace Google Ads (or any ad platform). We model the structure so the senior team knows what's where without keeping it in their heads.

Closing

If you've inherited an MCC and never restructured it, the highest-leverage thing this quarter is the audit pass: rename child-account links, kill orphans, tier access, build every client's conversions from one template, document the audit cadence. Budget 8-12 senior hours to do it once + 30 minutes/week to maintain.

The compounding payback: every new client onboards faster (the conversion template = a checklist, not a design session), every audit takes less time (documented baseline), every off-boarding closes cleanly (access tier + link list = clear boundary). For an agency running 15+ Google Ads accounts, this is one of the highest-ROI 12-hour blocks you can spend this quarter.

Try Phloz free (1 active client, 2 seats) to see the tracking-infrastructure model in action, or see pricing for the full breakdown.