You read the case for a feed-only Performance Max campaign and you were convinced. No creative assets, no budget leaking into YouTube impressions, the algorithm constrained to the Shopping network where the buyers actually are.
Now the catch. The moment you strip the assets out of a Performance Max campaign, your product feed becomes the entire ad. There is no headline to carry a weak product title. There is no lifestyle image to compensate for a bad product photo. The feed does all the work, and a weak feed has nowhere to hide.
I see store owners get the campaign structure exactly right and then hand it a feed they built in five minutes. The campaign is the easy half. The feed is where this is won or lost.
This is a build guide. Part one is the feed, attribute by attribute, in WP Product Feed Manager. Part two is the feed-only campaign itself, including the workaround Google forces on you. Follow it in order and you will have a feed-only setup live by the end.
Why the Feed Carries Everything Here
In a standard Performance Max campaign, your assets act as a cushion. A vague title gets covered by the headline. A poor product image gets covered by a lifestyle photo and a video. The asset stack hides the cracks in your product data.
Feed-only removes the cushion. Every weakness in your feed is exposed directly to the auction. A thin title matches fewer queries. A missing GTIN filters the product out before it competes. A bad image quietly kills your click-through rate, and you have nothing else to show.
That is the reason to build the feed properly first. Get it right and feed-only is the most precise Shopping setup available to a WooCommerce store. So we start with the feed.
Part One: Build the Feed in WP Product Feed Manager
I build these feeds in WP Product Feed Manager, because feed-only leaves no room for the approximations a generic export produces. When the feed is the ad, you need control over every attribute. The steps below assume the plugin is installed and your license is active.
Step 1: Create the Feed and Pick the Channel
In WordPress admin, go to the “Product Feed” menu and open “Manage Channels”. Find Google Shopping in the list and click “Install”. You only do this once per channel.
Then create a new feed and give it a descriptive name. Choose the Google channel, set the country you are targeting, and set a default Google product category for your catalogue. This default is the fallback Google uses when a product has no more specific category, so pick the one that fits the bulk of your range.
Step 2: Set the Update Schedule
Set the feed to refresh automatically. This is the schedule on which the plugin rebuilds the feed so prices, stock, and new or removed products stay current.
Do this now, at creation, rather than later. A feed-only campaign concentrates all your spend on Shopping, which means stale price or stock data does direct damage. An out-of-date feed gets products disapproved in Merchant Center, and disapproved products in a feed-only setup are pure dead weight. Set the refresh and the feed keeps itself honest.
Step 3: Map Your Categories to Google Categories
Use the category mapping tool to select which WooCommerce categories go into the feed, and map each one to the right Google product category.
Do not leave this on the default for everything. The Google category is part of how Google decides which queries your product is eligible for. In feed-only, where the feed alone decides what you match against, precise categorisation is precise matching. Map each category deliberately.
Step 4: Decide How Variations Appear
If you sell variable products, open the variations setting and choose how they appear in the feed: the parent product, individual variations, or a combination.
For most Shopping setups you want individual variations, so each colour or size becomes its own product the shopper can match and click. There is one trap here worth knowing. If you map a parent-level attribute, the feed outputs every variation value comma-separated in one field, “30ml, 50ml, 100ml” in a single row, instead of a clean row per variant. Map the variation-level field so each feed row carries its own value.
Step 5: Build the Title, Your Only Ad Copy
This is the step that decides a feed-only campaign, and it is the one most stores get wrong.
Each feed attribute has a source dropdown next to it that controls where the plugin pulls the value from. The default behaviour for the title attribute is to take the raw WooCommerce product name. So the feed goes out with a title like “Blue Shirt”. In a normal campaign that survives, because the headline fills the gap. In feed-only there is no headline. That title is the only copy Google has to match against a search, and “Blue Shirt” matches almost nothing a buyer types.
Build a structured title instead. In the title attribute’s source dropdown, choose “Combine source fields”. This lets you stitch several WooCommerce fields, and static text, into one title. Combine them so “Blue Shirt” becomes “Brand + Men’s Cotton Shirt + Blue + Size L”. Now you match searches for the brand, the material, the colour, and the size, the exact terms high-intent shoppers use. Same product, far more of the right traffic.
Set this once with the combine function and every product follows the same pattern. This is the single highest-leverage thing you will do in the whole build.
Step 6: Set GTIN and Brand, the Eligibility Gate
A product with a missing or wrong GTIN can be filtered out before it reaches the auction. It does not lose, it does not even compete. Missing GTIN, MPN, and brand are among the most common reasons Merchant Center rejects products.
In the feed builder, map the GTIN attribute to the WooCommerce field where you store it, and map brand to an accurate source. Do not leave GTIN blank and do not let it fill with something arbitrary. If you genuinely have no GTIN for a product line, that is a different conversation about identifier exemptions, but never ship a wrong one. This is the gate that decides whether a product is allowed into the auction at all.
Step 7: Get the Image Right
In a feed-only setup the product image is the whole creative. There is no second image, no video, no lifestyle shot. What is in the feed is what the shopper sees.
By default the feed pulls the featured product image into the image_link attribute. Check it is a clean product shot, the correct product, with no watermarks or promotional text overlaid, those get products rejected. On size, Google is raising the minimum to 500×500 pixels for all products from 31 January 2027, and recommends 1500×1500, so build to at least 500×500 now rather than the old 100×100 floor that is about to expire. An undersized image does not get the product disapproved. It simply will not be shown, which is exactly the kind of quiet failure that costs you traffic with nothing flagging it. If you want to supply more angles, scroll to the bottom of the feed editor, click “Add optional output”, select additional_image_link, and map it to your image library.
Step 8: Add Custom Labels for Control
Custom labels are how you take back control inside a campaign that otherwise runs on autopilot. They do two jobs, and WP Product Feed Manager can build both from your real store data.
Turn on Performance Prioritizing. The plugin ranks every product into High, Mid, and Low tiers based on actual WooCommerce sales data over a period you set. Map that tier to a custom label, for example custom_label_0, and you can separate your proven performers from dead stock inside the campaign and push budget toward what converts.
For the second job, segmentation by economics, map a second custom label to margin or price tier. Now you can treat your high-margin lines differently from the rest instead of letting every product compete on equal footing regardless of what it earns you. Keep this light to start. Even a performance label and a margin label give you more control than most feed-only campaigns ever use.
Step 9: Generate and Submit
Generate the feed. The plugin produces the feed URL. Submit that URL in Google Merchant Center so your products are live and approved there. With the automatic update from Step 2 running, the feed now keeps itself in sync.
That is the feed built. Now the campaign.
Part Two: Build the Feed-Only Campaign
With a clean, complete feed in Merchant Center, you create the campaign. This is where Google works against you, because it does not make a feed-only campaign easy to set up by design.
Step 1: Create the Campaign From Merchant Center, Not Google Ads
Google Ads now blocks you from saving an asset group with no headlines and no images. Build the campaign directly in Google Ads and the interface will not let you finish.
The way around it: create the campaign from inside Google Merchant Center, under “Marketing” then “Ad Campaigns”. Built from there, it comes through with a single asset group and without forcing assets on you. Once it appears in Google Ads, you finish the configuration there.
Step 2: Turn Off the Two Settings That Undo Feed-Only
In Google Ads, two settings will quietly rebuild the asset behaviour you just avoided unless you switch them off.
Turn off Final URL Expansion. Left on, Google sends traffic to URLs it picks across your site rather than the product pages your feed points to.
Turn off Automatically Created Assets. Left on, Google scrapes your site and generates its own headlines and images, which puts you straight back into the asset-driven behaviour feed-only exists to prevent.
Both off. This is the step that actually makes the campaign feed-only rather than feed-only in name.
Step 3: Set Location Targeting to Presence
Set location targeting to “Presence”, people in or regularly in your targeted locations. Google’s default also includes people who merely show interest in your locations, which widens your reach into traffic far less likely to buy. Presence keeps you on the people who are actually there.
Step 4: Fill Only the Mandatory Asset Fields
You still have to fill the mandatory fields even though you are adding no creative. Leave every headline, description, image, and video field blank. Complete your Business Name and a Call-to-Action. The campaign will not run without those two, and they do not pull you out of feed-only.
What Success Looks Like
A correctly built feed-only campaign concentrates almost entirely on the Shopping network. In a typical setup, around 95% of traffic goes to Shopping, because that is where the buying intent is and, with no assets, it is the only place Google can show your products.
You confirm this with the PMax Insights script. It produces the channel breakdown the standard Google Ads interface hides, so you can see exactly where your budget went. If Shopping is carrying the overwhelming majority of your traffic and revenue, the setup is doing its job. If meaningful spend is still leaking elsewhere, go back and check the two settings in Part Two, Step 2.
The Takeaway
The campaign structure is the easy half. The workaround is a fixed set of steps you do once. The feed is where a feed-only setup is actually won or lost, and the product title is where most feeds lose it. A campaign built perfectly on top of “Blue Shirt” titles will underperform a sloppier campaign built on titles that match what buyers search for.
Build the feed as if it is the only thing running, because in a feed-only setup, it is.
Once your campaign is live, run the PMax Insights script and look at your channel split. That single chart tells you whether the setup is doing what you built it to do.