How to fix: Performance Max campaign has no asset groups
TL;DR
A Performance Max campaign without at least one enabled asset group cannot serve a single ad — there are no creatives or theme signals for Google to match against any inventory, so the campaign sits at zero impressions, zero spend, and zero learning while calendar days tick by [1]. The fix is mechanical: open the campaign, locate the missing or draft asset group, complete the 2024 asset minimums, set status to Enabled, then verify impressions appear within 24-48 hours. Almost every instance of this finding traces back to a launch where the first asset group was saved as a draft and never published.
Why it matters
Performance Max is the only Google Ads campaign type where the asset group is the unit of serving, not the ad or the keyword [1]. The campaign object holds budget, bidding strategy, conversion goals, and location/language settings, but the actual creative payload — the headlines, descriptions, images, logos, video, sitelinks, and audience signal that Google needs to assemble an ad — lives entirely inside an asset group. A PMax campaign with zero enabled asset groups is the equivalent of a Search campaign with zero enabled keywords: structurally complete on paper, completely unable to participate in any auction.
The damage compounds in three ways. First, every day the campaign sits at zero impressions is a day budget would otherwise be flowing toward learning — and PMax has a non-trivial cold start. Google's own optimization guidance asks for at least six weeks of continuous run-time before passing meaningful judgment on PMax performance [2]; a campaign that lost the first 14 days to an empty asset group effectively has a 4-week observable window inside a 6-week judgment frame. Second, Smart Bidding cannot enter its learning phase without conversions, and conversions cannot accrue without impressions, so a campaign with no asset groups will be visible to the bidding strategy as "no signal" rather than "learning" — meaning the moment you fix it, you start the 7-14 day learning phase clock from zero, not from where you launched.
Third, the operational tax is high. Account managers who see flat performance often assume the campaign is "still learning" and avoid touching it for another week. The longer the campaign sits in this state, the more downstream questions get asked of unrelated systems: conversion tracking, budget pacing, audience signals, feed quality. None of those are the cause; the cause is the asset group never went live. Whitead's check is deliberately a simple existence test against pmax_asset_groups precisely because this failure mode is so high-leverage to surface early — the rule fires as high severity even on the first audit run, with requires_history_days: 0, because the cost of waiting is paid in dead campaign time.
The most common root cause is launch hygiene. Google's PMax launch flow lets you save an asset group as a draft if you do not have all required assets ready, and the campaign-level status (Enabled) is independent of the asset-group-level status (Draft). An advertiser who has lined up budget, bidding, and goals will see "Enabled" on the campaign and assume the campaign is live, missing that the asset group itself is still in Draft and therefore cannot serve. The second most common cause is a paused asset group with no replacement: a manager pauses an underperforming asset group intending to upload a new creative set later, gets pulled into other work, and the campaign quietly stops serving.
How to fix
- Open the Asset groups tab for the affected campaign (Campaign → Asset groups). This is the single source of truth for what is actually serving — do not rely on the campaign-level status indicator alone.
- Read the Status column for every asset group. Statuses to recognize:
Enabled(serving),Paused(will not serve),DraftorIncomplete(assets missing, will not serve even with Enabled status),Removed(gone, does not count). If every row is anything other thanEnabled, the campaign cannot serve. - If a draft or incomplete asset group exists, finish it first. Click into the asset group and look for the missing-asset warning at the top — it will list the specific minimums you have not met. Populate them to the 2024 specification: 5 short headlines (30 char each), 5 long headlines (90 char), 5 descriptions, 5 images, 5 logos, 1 video, 5 sitelinks, plus at least one audience signal. See fix: PMax asset completeness for the per-asset checklist and quality guidance.
- If no asset group exists at all, create one. Asset groups tab → plus button → name the asset group after the offer or audience theme it represents. Populate the same 2024 minimums in a single working session — split-creating across days tends to leave drafts behind and recreates the original problem.
- Set status to Enabled and Save. The asset group is not live until both the Save action completes and the status indicator shows
Enabled. If you seePendingorIncompleteafter saving, click back in and resolve whatever warning the UI surfaces. - Decide audience signal at the same time. PMax can technically serve without an audience signal, but doing so extends cold start by weeks. Attach at least one Customer Match segment plus one Website visitors segment as the asset group goes live — see fix: PMax audience signals weak for the signal composition playbook.
- Verify the next day. Re-open Asset groups → confirm the Performance column shows a non-zero impression count. Re-open the campaign view → confirm Cost has begun to accrue. If both remain at zero after 48 hours despite an Enabled asset group, the bottleneck is elsewhere (budget exhausted, conversion tracking misconfigured, geographic targeting too narrow) — see the related diagnostics in the wiki.
Common mistakes
- Reading campaign-level status as proof of serving. A PMax campaign in
Enabledstate with all asset groups inDraftis a campaign that does not serve. Always drill into the Asset groups tab. - Trickle-uploading assets across days. Creating an asset group, saving partial assets, then returning the next day is the single most common cause of this finding. Block 45-60 minutes to populate every asset minimum in one sitting.
- Pausing the only asset group without a replacement. If you need to refresh creative, build the new asset group in
Draft, populate it fully, set it to Enabled, and only then pause the old one. Never leave a campaign with zero enabled asset groups. - Skipping the audience signal because it is "optional". Technically optional, practically critical — every asset group without a first-party audience signal pays a multi-week cold start tax. See the audience signals fix article via the wiki link above.
- Assuming a draft auto-publishes when the campaign starts. Drafts never auto-publish. Google explicitly designs the draft state so half-finished creative does not go live by accident.
FAQ
How many asset groups should a PMax campaign have?
At least one enabled asset group is the hard minimum for serving. Operationally, 2-5 asset groups per campaign is the working range — one per distinct offer, audience, or theme. Beyond 5 you start to dilute spend per group below the threshold where each one can hit the 30-conversion learning gate.
Can a feed-only PMax campaign skip asset groups?
A PMax campaign with a Merchant Center feed (sometimes called "feed-only") still has at least one asset group attached at the data-model level — but for retail feed-only campaigns Google can technically serve without supplied creative assets, populating from the product feed. This rule's existence check is still meaningful: the asset group entity must exist with Enabled status, even if it carries no advertiser-supplied creative. If your account has no asset group at all on the campaign, the campaign will not serve, feed or no feed [1].
What if my asset group says "Pending review" — does it serve?
Pending review is a transient state during initial submission. The asset group will not serve while pending, but Google typically clears review within hours. If a group has been Pending for over 48 hours, open the asset group, look for policy warnings on individual assets, and resolve them.
How does this rule interact with pmax_asset_completeness?
This rule (pmax_has_asset_groups) checks for the existence of any asset group on the campaign. The sister rule pmax_asset_completeness checks whether each existing asset group meets the 2024 asset minimums. If both rules fire on the same campaign, fix this one first — there is no asset completeness check to run until an asset group exists. See fix: PMax asset completeness.
Does this also affect Performance Max for retail with auto-generated assets?
Yes. Auto-generation populates within the asset group, not in place of it. The asset group entity must still exist and be enabled for Google's auto-generation pipeline to run and for the campaign to participate in auctions.
Sources
- Google Ads Help — About Performance Max campaigns. Canonical reference for Performance Max campaign structure, including the role of asset groups as the unit that holds creatives, themes, and signals for the campaign to match against inventory.
- Google Ads Help — Optimization tips for Performance Max campaigns for all business types. Recommends a minimum of 6 weeks of continuous run-time before judging Performance Max performance, with explicit guidance on asset diversity (20+ text assets, 7+ images, 1+ video) for strong serving.
- Google Ads Help — About audience signals for Performance Max campaigns. Explains how audience signals are configured beneath each asset group, reinforcing that the asset group is the locus where signals attach to the campaign — and therefore why a campaign with no asset group has no place for signals to bind.