The first thing most people check in a Shopping account is the approval count in Merchant Center. Four hundred products, four hundred approved, no disapprovals, no warnings. It reads like a clean bill of health, and it is not one. It is a policy verdict and a data quality verdict, and neither of those is a promise that a single one of those products will ever be shown.
Two different systems sharing one word
Approval says the product data is acceptable and the item does not break a policy. Whether it can actually enter an auction is decided somewhere else entirely, by campaign targeting, listing group filters, feed labels, the bid, inventory status, the countries of sale and the shipping configuration. That second layer has no error message. It produces silence, and silence looks exactly like everything being fine.
Approval is a permission. Eligibility is a decision. Only one of them writes you a message when it says no.
The measurement that finds it
Stop counting approved products. Count the distinct product identifiers that recorded at least one impression in the period, and diff that set against the approved set. The difference is the part of the catalogue you are paying somebody to maintain and not paying anybody to show.
If four hundred products are approved and ninety of them were seen by a human being last month, your catalogue is ninety products. Everything else is a spreadsheet. That single query changes the conversation from feed hygiene, which everyone enjoys, to assortment strategy, which is where the money is.
Four traps specific to Performance Max
- One feed label per campaign. Two campaigns you believe are pointed at the same catalogue can be looking at two different subsets of it. Comparing their return then compares two different assortments and tells you nothing about the campaigns.
- Asset level rows double count. The reporting attributes the same click to every asset in the group it came from. Sum the rows and you will confidently report several times the traffic you actually had.
- Removed assets leave tombstones. Filter on the enabled status or your export quietly includes assets that stopped running months ago, dragging every average with them.
- A budget is not a pot. Unspent budget does not accumulate and cannot be reused later. The two figures that matter are budget lost impression share and the percentage of the monthly limit actually spent. Neither of them appears by default.
The checklist we run on a new account
- Distinct product identifiers with impressions, against approved products, for the last thirty days.
- Which feed label each campaign is actually reading, written down next to the campaign name.
- Listing group filters per asset group, in full, including the everything else bucket that people forget is a filter.
- Budget lost impression share by campaign, and the share of the monthly limit used.
- Inventory status and country of sale on the products with zero impressions, because that is usually where the answer is.
- The same query again a month later, because the number that matters is whether the visible catalogue is growing.
This is the audit that runs before we touch a bid. How the rest of the channel is run is on the Google page.