Merchgain
EN
Available now
Next, in this order
  • DeutschDE
  • EspañolES
  • FrançaisFR
  • ItalianoIT
  • PortuguêsPT
  • NederlandsNL

A language shows up here once its pages are actually written. Nothing on this site is machine-translated.

Install freeInstall
← All answers

Does Google Automated Discounts need the cost of goods from my WooCommerce store?

Google asks for the cost of each product before it discounts it in Shopping ads. How the WooCommerce cost field gets into the feed, and what else the setup needs.

Group
Getting the cost data in
Source
R — behaviour of WooCommerce core
Code
GAD
Updated

The short answer

Yes — Google wants the cost of each product, or at least a margin percentage for a group of products. Automated discounts lowers prices in your Shopping ads to raise your gross profit, and it cannot estimate profit without knowing what the goods cost you. The Merchant Center product specification marks the cost_of_goods_sold attribute “Required for automated discounts and dynamic promotions”. The alternative Google offers is one gross margin percentage for a whole group of products, which its own help page calls less accurate.

On WooCommerce the cost already has a home: the core cost field, there since version 10.3. Two free feed plugins can send it to Merchant Center — we generated a feed with each. But the cost is one of five setup steps, and the step that makes your shop charge Google’s price is the one where WooCommerce needs a partner plugin.

What Google asks for

Google’s setup guide has five steps (read on 16 October 2026):

  1. add the add-on in Merchant Center (Settings → Add-ons → Automated discounts);
  2. choose the store platform and a reporting currency;
  3. add products, in one of two ways:
    • per product, in your feed — cost_of_goods_sold, 5% to 95% below the current price, and a minimum price, auto_pricing_min_price, which must not be lower than the cost;
    • by group — products picked by brand, product type or label, with one gross profit margin (5–95%) and one maximum discount (5–40%) for all of them;
  4. conversions with cart data — purchase conversions in Google Ads that carry each product’s ID and price;
  5. discounted prices in your store — the ad link carries a signed token with Google’s price (the pv2 parameter), and the store has to show that price on the product page for at least 30 minutes and keep it in the cart and checkout for at least 48 hours.

Three details that are easy to miss:

  • 20% is a recommendation, not an entry gate. Google recommends adding enough products that they account for at least 20% of your Shopping-ad impressions. Below 20% Merchant Center asks you to add more; at 0% it stops changing prices.
  • Tax has to be treated the same way twice. If the cost includes VAT, the prices in your cart data must include it too; if not, neither may. Minimum prices include VAT everywhere except the US and Canada.
  • No country list. The help pages do not list where the add-on is offered, but they spell out prior-price rules for countries in the European Economic Area, so it is not US-only. Whether you have it shows in your own Merchant Center account, under Add-ons.

What to do about it

Costs first. Switch on the core cost field and enter costs — how to switch it on. Start with the products that get the most impressions in your Shopping ads: those are the ones Google recommends choosing, and every product without a cost is a product your feed sends without cost_of_goods_sold. For a large catalogue, filling in costs in bulk.

Then the feed. Neither of the two plugins adds the cost on its own — you map the field once:

  • Product Feed PRO (AdTribes) reads the core cost when the feature is on. In the feed’s field mapping, add Cost of goods sold (cogs) and choose the source with the same name.
  • CTX Feed (WebAppick) has no source called “cost”. Map cost_of_goods_sold to the custom field _cogs_total_value — the place where WooCommerce stores the product’s cost.

We checked both on a test shop (WooCommerce 11.2.1, Product Feed PRO 13.5.8, CTX Feed 8.0.37, 16 October 2026): a product with a cost of 80 came out as <g:cost_of_goods_sold>80.00 USD</g:cost_of_goods_sold> from Product Feed PRO and as 80 USD from CTX Feed; a product with no cost got no element in the first and an empty one in the second. We added the currency code as a suffix, the format Google’s specification shows. Google for WooCommerce, the official extension, does not send the cost at all — there is no such field anywhere in its code (version 3.9.6).

Then the minimum price and the store side. WooCommerce has no minimum-price field and does not read Google’s price token, and neither do the feed plugins. Google’s setup page sends WooCommerce shops to two channel partners, Simprosys and SweetCode. SweetCode’s documentation on woocommerce.com says its extension adds the minimum price for the feed plugin to send and applies Google’s price for the 48-hour cart session; it does not build the feed itself. For costs it names two separate cost plugins, not the core field. The cost Google uses comes from your feed either way, but ask the partner whether its own settings read the core field before you buy.

How Merchgain reports it

Merchgain sends nothing to Google and does not touch your feed — it only reads. What it adds here is the list you need before step 3: how many products have no cost, each one linked straight to its product editor, and how much of your revenue that gap represents. Every product you fix there is a product your feed starts sending with a cost.

Once discounts are running, the same report shows revenue, cost of goods, gross profit and margin per period and per product, from the cost WooCommerce recorded on each order line. That is your own count of what the discounted sales earned, next to the estimate Google shows in Merchant Center.

See this on a real report

Disagrees with what you see in your shop? Write to us — every message is read. contact@merchgain.com