Get Started
How to set up a Google Merchant Promotions feed - AdTribes
  1. Home
  2. Knowledge Base
  3. Fields & Mapping
  4. How to set up a Google Merchant Promotions feed

How to set up a Google Merchant Promotions feed

Running a sale, but shoppers don’t see it until they land on your site? Google Merchant Promotions lets you display deal badges — like “Special Offer” or “20% off” — directly in Google Search and Shopping results, before shoppers even click through.

Product Feed Pro includes a built-in Google Merchant Promotions Feed channel, so you can create and submit a promotions feed from WooCommerce without writing any code.

This guide walks you through creating the feed, mapping the required fields, and submitting it to Google Merchant Center.

Prerequisites

Before you start, make sure you have:

RequirementDetails
Google Merchant Center accountActive and connected to your WooCommerce store
Active Google Shopping product feedProducts already submitted and approved via a standard Google Shopping feed
Promotions program enabledRequest access in Merchant Center under Marketing → Promotions — Google must approve your account before deal badges appear
Product Feed ProInstalled and activated on your WooCommerce store

Google reviews your account before approving it for the Promotions program. Request access first and wait for approval before creating and submitting your promotions feed.

How it works

A promotions feed is separate from your product feed. Instead of listing products, it lists your active promotions — each one defined by a unique ID, a title, dates, and deal conditions. Google uses the product_applicability and item ID fields you set to match each promotion to the right products in your catalog.

Setting up your Google Merchant Promotions feed

Step 1: Create a new feed

  1. In your WordPress admin, go to Product Feed → Create feed.
  2. Enter a descriptive name (e.g., “Google Promotions – Summer Sale”).
  3. Under Channel, select Google Merchant Promotions Feed from the dropdown.
  4. Click Next.
Channel selection with "Google Merchant Promotions Feed" selected

Step 2: Configure the General tab

On the General tab:

  1. Set File format to XML — Google recommends XML for promotions feeds.
  2. Set a Refresh interval that matches how often your promotions change. Daily work for most stores.
  3. Click Save & Continue.

Step 3: Map the required fields

Go to the Field Mapping tab. You’ll see the promotion attributes pre-loaded. Map each required field — most stores set these to Static value since a promotion’s details don’t change per product.

Required fields:

FieldDescriptionExample value
promotion_idUnique identifier for this promotion. Alphanumeric, no spaces or symbols, max 50 characters, case-sensitive.summer-sale-2026
product_applicabilityWhether the promotion applies to all products or specific items.all_products or specific_products
offer_typeWhether a coupon code is needed to redeem the deal.no_code or generic_code
long_titleHuman-readable promotion title shown to shoppers. Max 60 characters.20% off all footwear
promotion_effective_datesStart and end date/time for the promotion. Format: YYYY-MM-DDTHH:MM:SS±HH:MM/YYYY-MM-DDTHH:MM:SS±HH:MM2026-06-01T00:00:00+00:00/2026-06-30T23:59:59+00:00
redemption_channelWhere the promotion can be redeemed.online, in_store, or in_store, online
promotion_destinationWhere the promotion is eligible to appear. Select it from the field mapping attribute list.Shopping_ads, Free_listings, Buy_on_Google_listings, or Local_inventory_ads

To set a static value for any field: click the Value dropdown next to the attribute, choose Static value, and type the value in the text box that appears.

Using specific_products

If you set product_applicability to specific_products, Google needs to know which products the promotion applies to. The feed generates one row per product, and each row carries a product identifier that Google matches against your catalog.

The most common approach is to filter by item ID:

  1. Go to the Filters tab. In the Include section, add a filter condition to limit the feed to only the products this promotion covers. There are a few ways to do this, depending on how your products are organised:
    • By category — set the attribute to Category, the condition to Contains, and enter the category name. This is the cleanest approach for most stores.
    • By tag — set the attribute to Product tags, the condition to Contains, and enter the tag name.
    • By product ID range — add two conditions in the same filter group: Product Id Greater Than or Equal [start ID] and Product Id Less Than or Equal [end ID]. Both conditions in the same group apply as AND logic.
    • By individual IDs — for a small non-contiguous set, assign a dedicated WooCommerce tag to those products first, then filter on Product tags Contains that tag name. This avoids adding one Equals condition per product ID.
  2. In the Field Mapping tab, select the item_id attribute from the field mapping list.
  3. In the Value dropdown, choose Product Id (the WooCommerce product ID). Each feed row then carries the correct ID for that product.
  4. Keep all other promotion fields — promotion_id, long_title, promotion_effective_dates, etc. — as Static value. These repeat on every row since they describe the same promotion.

The result is one row per included product, all sharing the same promotion details but with a unique item_id per row. Google matches those IDs against your product catalog.

Alternative filter fields — use these instead of item_id when you want to match products by category, brand, or label rather than by individual ID:

FieldMap to
product_typeProduct Type attribute (WooCommerce product type)
brandYour brand attribute or a Static value
custom_label_0custom_label_4The matching custom label attribute or a Static value
item_group_idProduct Id of the parent variable product (for variant groups)

If your promotion covers every product in your store, use all_products instead, no product filter fields are needed.

Field Mapping tab with promotion_id mapped to a static value

Step 4: Map the optional fields

These fields improve how your promotions display and can increase click-through rates:

FieldDescription
promotional_display_datesDate range to show the deal badge — can differ from the effective dates
minimum_purchase_amountMinimum cart value required to use the promotion
generic_redemption_codeThe coupon code (required when offer_type is generic_code)

Also, map one structured discount field to describe the type of deal:

FieldWhen to use
percent_offFor a percentage discount, e.g. 20 for 20% off
money_off_amountFor a fixed monetary discount. Map it to a Static value with your amount (e.g. 10 USD).
buy_this_quantityFor buy-X deals — the “buy” quantity
get_this_quantity_discountedFor BOGO or multi-buy deals — the quantity discounted
free_shippingSet to 1 if the promotion includes free shipping
free_gift_valueMonetary value of a free gift
free_gift_descriptionDescription of the free gift
free_gift_item_idItem ID of the free gift product

Step 5: Save and generate the feed

  1. Click Save & Continue on the Field Mapping tab.
  2. Go to Product Feed → Manage feeds.
  3. Click Refresh Feed next to your promotions feed to generate it.
  4. When the status shows as complete, click the feed URL to open it and confirm the fields are present.

Step 6: Submit to Google Merchant Center

  1. In your Merchant Center account, go to Data sources.
  2. Click Add data source and select Promotions.
  3. Paste your feed URL and set a fetch schedule.
  4. Submit for review.

Google typically reviews and activates promotions within 3–5 business days. Once approved, deal badges appear on your Shopping ads and free listings.

Troubleshooting

My feed shows “0 products” after generating
A promotions feed doesn’t contain products — it contains promotion rows. A count of 0 is expected. Open the feed URL directly to confirm your promotion data is present.
My promotion isn’t showing a deal badge in Google results
Google holds every promotion for review before displaying it. Check the status in Marketing → Promotions in Merchant Center. If rejected, read the reason carefully — most rejections are for formatting errors in required fields.
The promotion_effective_dates field is rejected
The date format must be exactly YYYY-MM-DDTHH:MM:SS±HH:MM/YYYY-MM-DDTHH:MM:SS±HH:MM. Common mistakes: using a space instead of T between date and time, or using Z instead of +00:00 for UTC.
Google rejects my feed because the promotion_destination field
Make sure promotion_destination is mapped. In the Field Mapping tab, find the promotion_destination attribute, set its Value to Static value, and enter your destination. For accepted values, see the required fields table in Step 3.
My generic_redemption_code isn’t being applied
Make sure offer_type is set to generic_code. If it’s set to no_code, Google ignores the generic_redemption_code field entirely.

FAQ

Does this channel require Product Feed Elite?
No. The Google Merchant Promotions Feed channel is available in the free version of Product Feed Pro. You don’t need Product Feed Elite for this feature.
Can I run multiple promotions at the same time?
Yes — but you’ll need to create one feed per promotion. Each promotion feed in Product Feed Pro uses static values, so a single feed represents one promotion. Create additional feeds under Product Feed → Create feed for each active promotion you want to submit.
How long can a promotion run?
Google allows a maximum of 6 months (183 days) per promotion. Set your promotion_effective_dates end date within that limit.
Will Google pick up changes to my promotion automatically?
Yes. Google fetches your feed on the schedule you set in Merchant Center. As long as your feed reflects the latest values and the fetch schedule is active, updates are picked up automatically.
Do I need a separate promotions feed for each country?
If you target multiple countries with different promotions, create a separate feed per country — set the redemption_channel and dates appropriately for each. If the same promotion applies everywhere, one feed is enough.

Need more help?

If you’re on Product Feed Elite, open a support ticket, and the team will help you out.

If you’re on the free version of Product Feed Pro, post your question in the WordPress.org support forum.

Was this article helpful?

Related Articles

Complete Your Purchase
AdTribes WooCommerce Product Feed

The best WooCommerce product feed plugin

  • AdTribes Pty Ltd
    ABN: 40 675 636 816
Product
Resources & Info
Partner Sites
Rymera