Guide

How to exclude unprofitable products from Performance Max

In Performance Max you stop a product serving by editing the listing groups of each asset group it appears in: subdivide by Item ID (or another attribute) and set that product to Excluded. The campaign keeps running on the same budget and the rest of the feed keeps serving. Choose what to exclude on profit, not ROAS: a product whose POAS is below 1.00× over both the last 7 and the last 30 days, with enough spend to judge, is costing more in advertising than it earns after cost of goods.

Last checked · More guides

The short answer: it is a listing-group edit, per asset group

An exclusion in Performance Max is a setting on an asset group's listing groups, not on the campaign. A listing group is a set of Merchant Center items defined by their attributes (category, brand, item ID, condition, product type, channel or custom label), and it decides which of those items the asset group may advertise.

Set a listing group to Excluded and those items stop serving from that asset group, while the campaign, its budget and every other product carry on. Each asset group has its own listing groups, so a product in three asset groups needs three edits. It can be undone: Google's product-groups help says to change an excluded item's status back to Included.

Decide what to exclude: POAS below 1.00×, over a window you can trust

Exclude on POAS, not ROAS, and only when a long window agrees with a short one. POAS (profit on ad spend) is revenue after refunds, minus cost of goods, divided by ad spend. It breaks even at 1.00× for every product, so there is no per-product target to work out. It counts cost of goods only, so include the shipping you bear and payment fees in cost-per-item, or treat 1.00× as the floor rather than the target.

Worked example (example figures)

Over 30 days a product has €1,200 of revenue after refunds, €780 cost of goods and €500 of ad spend. ROAS = 1,200 ÷ 500 = 2.40×, which is below this product's break-even ROAS of 1,200 ÷ 420 ≈ 2.86× but easy to misread as profitable. POAS = (1,200 − 780) ÷ 500 = 0.84×. Net profit = 1,200 − 780 − 500 = −€80: the advertising cost €80 more than the product earned after paying for the goods.

  • Below 1.00× over 7 and 30 days

    A bad product, not a bad week: the candidate for exclusion. A 60-day figure that agrees makes the case stronger.

  • Below 1.00× this week only

    A bad week. Watch it; one slow week should not condemn a product that pays over the month.

  • Below 1.00× over 30 days only

    Possibly recovering. Check what changed (price, cost, stock) before acting.

  • Above 1.00× in both

    Leave it. Well above break-even, it may deserve more spend, not less.

  • Cost of goods is known for every variant that sold: cost-per-item in Shopify, or a store-wide cost percentage set in Opteno. Without either, POAS cannot be computed, and Opteno shows the figure as unavailable rather than as zero.
  • It has spent enough to judge. A rule of thumb, not a Google or Opteno setting: wait for the gross profit of about three orders. Example figures: a €40 product with €24 cost of goods earns €16 an order, so the floor is €48. Below it, a single sale more or less moves POAS by more than a third of a point, enough to push a product near break-even from one side of 1.00× to the other.
  • The loss is in the whole product. If one variant earns and another loses, exclude only the losing variant's item ID.
  • The loss is not in one country only. If an item ID serves several countries from one asset group, excluding it removes it from all of them.

Exclude a product in Google Ads, step by step

Open the asset group's listing groups, subdivide by Item ID, mark the item Excluded, then repeat in every asset group that lists the product. These steps follow Google's help article on Performance Max listing groups.

  1. Step 1: Open the listing groups

    In Google Ads go to Campaigns, select the Performance Max campaign, select Asset groups, then Listing groups in the page menu.

  2. Step 2: Find the listing group that holds the product

    If the asset group still advertises All products, that is the one. If it is already subdivided, by brand or product type for example, find the branch the product sits in.

  3. Step 3: Subdivide by Item ID

    Click the pencil icon next to the listing group, choose Item ID in the Subdivide by menu, tick the item IDs to act on and select Save.

  4. Step 4: Set it to Excluded

    Click the green circle next to the new subdivision and select Exclude.

  5. Step 5: Repeat in every other asset group

    Make the same edit wherever the product is listed, and note which asset groups you changed: you need that list to undo it.

To exclude one variant, exclude its item ID: Google asks merchants to submit each variant as a separate product with its own ID, sharing an item group ID. Item group ID is not among the attributes Google lists for listing-group subdivisions, so a whole product with six variants means at least six item IDs, and more if your feed submits each variant separately for each country.

For many items, Google recommends a custom label in your product data, targeted in listing groups. A new or changed label can take 24 to 48 hours to reach Google Ads.

Caveats before you exclude

An exclusion is narrow by design: it affects one asset group, within Google's limits, and nothing else.

  • The limit. Google's help says each asset group in a Performance Max campaign can have up to 1,000 listing groups, and that more than 1,000 is not a best practice and performance may suffer. Item-by-item exclusions add listing groups; for large numbers of items, Google recommends grouping them with a custom label and targeting that label in listing groups instead.
  • Other campaigns. An exclusion does nothing to another asset group, another Performance Max campaign or a Standard Shopping campaign that also lists the item. Check where else the item ID can serve.
  • Timing and undo. Google's help on Shopping product groups says changes to product inclusion or eligibility can take 24 to 48 hours to sync between Merchant Center and Google Ads, so allow for that before judging the effect. To bring a product back, set its listing group to Included in each asset group you excluded it from.

The same job in Opteno: planned, dry-run, then approved

Opteno makes the same listing-group change, per offer and per asset group, but validates it with Google first and applies it only after a person approves. Its dashboard also finds the losers: ROAS, POAS and net profit per product over rolling 7, 14, 30 and 60-day windows ending yesterday, with variant, country and market breakdowns.

  1. Step 1: Select the losers

    Sort by net profit or filter on POAS, select the products and choose to exclude them.

  2. Step 2: Opteno reads the asset groups

    It finds the Performance Max asset groups the offers appear in and reads each one's listing-group tree.

  3. Step 3: It plans per offer, per asset group

    An offer in three asset groups is at least three planned changes, not one.

  4. Step 4: It dry-runs the plan with Google

    The plan is validated with Google without being applied. You see which offers will change, which will not, and which are blocked and why; an offer that cannot fit under Google's cap on listing-group filters is reported as blocked, not silently dropped.

  5. Step 5: A person approves

    Only a member holding the exclusion permission can approve. A preview goes stale after 30 minutes, because the account may have moved on, so you preview again rather than apply an old plan.

  6. Step 6: Each offer's outcome is recorded

    Every attempt keeps its state, per-offer outcome and failures, so a partial apply is visible and can be retried.

  7. Step 7: Include again the same way

    Including an offer is the same flow in the other direction.

Or let a rule prepare it

An automation can check POAS, net profit, ROAS and other figures over yesterday or the last 7, 14 or 30 days, on a schedule from hourly to monthly, and prepare exclusions as an approval batch. Nothing reaches Google until someone approves it, and a batch expires after 7 days so a stale proposal cannot be applied against numbers that have moved.

What Opteno never does

Opteno's only write in Google Ads is excluding or including a product offer inside a Performance Max asset group. Everything else stays with you.

  • It never changes a budget or a bid.
  • It never pauses, enables or creates a campaign, and never edits an advert.
  • It does not change Standard Shopping campaigns; exclude a product there in Google Ads.
  • It never applies an exclusion without a person's approval, including one an automation prepared.

Exclusions are part of the Google Ads sync plan: $14.99 a month for one store, falling to $11.99 per store for two and $9.99 per store for three or more, with a 7-day free trial that needs a card. Opteno is new and is being rolled out to a first group of Shopify merchants.

Questions

Can I exclude one product from Performance Max without pausing the campaign?

Yes. Set that product's listing group to Excluded in each asset group it appears in. The campaign keeps its budget and bidding, and the rest of the feed keeps serving.

How do I exclude one variant rather than the whole product?

Exclude the variant's item ID. Google asks for each variant to be submitted as a separate product with its own ID, so each can be excluded on its own. To remove every variant, exclude each item ID or group them under a custom label.

Is there a limit to how many products I can exclude?

Google's help says each Performance Max asset group can have up to 1,000 listing groups, and recommends custom labels rather than very large numbers of them. Opteno reports an offer that cannot fit as blocked, with the reason.

Why is an excluded product still getting spend?

Check whether it is still listed in another asset group, another Performance Max campaign or a Standard Shopping campaign: an exclusion applies to one asset group only. Also allow for sync time. Google's Shopping product-groups help says inclusion changes can take 24 to 48 hours to sync between Merchant Center and Google Ads. In Opteno, spend from before the exclusion stays in the rolling windows until those days roll out.

Can I undo an exclusion?

Yes. In Google Ads, set the listing group back to Included in every asset group you excluded it from. In Opteno, including an offer is the same previewed and approved flow in the other direction.

See which products are losing you money

Connect Shopify and Google Ads in under five minutes. From $14.99 a month, cancel whenever you want, and no change to your store or your campaigns without your approval.

support@opteno.app