Create Promotions Feed for Google Shopping
How to set up the promotions feed for Google Merchant Center using the Google Shopping Feed extension. Showcase special offers and discounts directly in your Google Shopping ads.
What Are Google Merchant Promotions?
Google Merchant Promotions display special offers alongside your Shopping ads:
- Sale badges showing discount amounts
- Promotional text like "Free shipping" or "Buy 2 get 1 free"
- Coupon codes customers can use at checkout
Promotions increase click-through rates and help your ads stand out.
Requirements
Before using promotions:
- Google Merchant Center account with products approved
- Promotions program enrollment - Request access in Merchant Center
- Valid promotions - Must meet Google's promotion policies
Enrolling in Promotions
- Log in to Google Merchant Center
- Go to Marketing → Promotions
- Click Get started or Request access
- Wait for approval (usually 1-2 business days)
Enabling the Promotions Feed
Location: Magmodules → Google Shopping - Promo
| Setting | Description |
|---|---|
| Enable | Turn promotions feed on/off |
When enabled, the extension generates a separate promotions feed alongside your main product feed.
Promotion Types
Google supports several promotion types:
Percent Off
Discount as percentage of original price.
Example: "20% off all shoes"
Amount Off
Fixed amount discount.
Example: "€10 off orders over €50"
Free Gift
Free item with purchase.
Example: "Free tote bag with orders over €75"
Free Shipping
Shipping cost waived.
Example: "Free shipping on all orders"
Buy X Get Y
Quantity-based discounts.
Example: "Buy 2 get 1 free"
Promotion Sources
The extension can pull promotion data from:
Magento Catalog Price Rules
Automatically exports active catalog price rules as promotions.
Configuration:
- Rules with "Apply" actions become promotions
- Rule name becomes promotion title
- Date ranges carry over
Magento Cart Price Rules
Exports cart price rules with coupon codes.
Configuration:
- Coupon code becomes
generic_redemption_code - Rule conditions determine applicability
Special Prices
Products with special prices can show sale badges.
Automatic handling:
sale_priceshows discounted pricesale_price_effective_dateshows validity period
Promotion Feed Attributes
Each promotion includes:
| Attribute | Description |
|---|---|
promotion_id |
Unique identifier for the promotion |
product_applicability |
All products or specific products |
offer_type |
Generic code, no code, or specific code |
generic_redemption_code |
Coupon code (if applicable) |
long_title |
Full promotion title |
promotion_effective_dates |
Start and end dates |
redemption_channel |
Online (always for e-commerce) |
audience |
Target audience (all_users for general promotions) |
Promotion Duration Limits
Maximum Duration: 175 Days
Important: The extension automatically limits promotion duration to 175 days (approximately 5.8 months) to ensure compliance with Google Merchant Center requirements.
Why 175 days?
- Google Merchant Center requires promotions to be 183 days (6 months) or less
- The extension uses 175 days as a safety buffer, providing an 8-day margin
- This ensures your promotions remain compliant even with minor date calculation differences
What Happens to Longer Promotions?
If you create a Magento Cart Price Rule with a duration exceeding 175 days:
- The rule is NOT rejected - It remains active in Magento
- The end date is automatically capped - The feed outputs a maximum 175-day duration
- A log entry is created - Check
var/log/googleshopping_debug.logfor details - No warning appears in admin - The capping happens during feed generation
Example:
Magento Rule:
- From Date: January 1, 2025
- To Date: December 25, 2025 (358 days)
Generated Feed:
- promotion_effective_dates: 2025-01-01T00:00:00Z/2025-06-25T23:59:59Z (175 days)
How to Check if Your Promotions Were Capped
Via Debug Logs:
- Enable debug logging in configuration
- Generate the promotions feed
- Check
var/log/googleshopping_debug.log - Look for entries like:
Promotion Duration Capped: Promotion "Summer Sale" (ID: 123) end date capped from 2025-12-25 to 2025-06-25 (175-day maximum)
Via Feed Inspection:
- Generate the promotions feed
- Open
pub/media/googleshopping/google-promo-{store_id}.xml - Compare
<g:promotion_effective_dates>with your Magento rule dates
Best Practices for Long-Term Promotions
If you need promotions longer than 175 days, consider these approaches:
Option 1: Sequential Promotions
- Create multiple shorter promotions that run consecutively
- Example: "Q1 Sale", "Q2 Sale", etc.
- Each promotion runs for up to 175 days
Option 2: Rolling Promotions
- Update the promotion end date every few months
- Regenerate the feed to reflect the new dates
- Keep each period under 175 days
Option 3: Permanent Discounts
- For year-round offers, consider using catalog price rules instead
- These show as
sale_pricein the product feed rather than as promotions
Promotion Duration Limits
Maximum Duration: 175 Days
Important: The extension automatically limits promotion duration to 175 days (approximately 5.8 months) to ensure compliance with Google Merchant Center requirements.
Why 175 days?
- Google Merchant Center requires promotions to be 183 days (6 months) or less
- The extension uses 175 days as a safety buffer, providing an 8-day margin
- This ensures your promotions remain compliant even with minor date calculation differences
What Happens to Longer Promotions?
If you create a Magento Cart Price Rule with a duration exceeding 175 days:
- The rule is NOT rejected - It remains active in Magento
- The end date is automatically capped - The feed outputs a maximum 175-day duration
- A log entry is created - Check
var/log/googleshopping_debug.logfor details - No warning appears in admin - The capping happens during feed generation
Example:
Magento Rule:
- From Date: January 1, 2025
- To Date: December 25, 2025 (358 days)
Generated Feed:
- promotion_effective_dates: 2025-01-01T00:00:00Z/2025-06-25T23:59:59Z (175 days)
How to Check if Your Promotions Were Capped
Via Debug Logs:
- Enable debug logging in configuration
- Generate the promotions feed
- Check
var/log/googleshopping_debug.log - Look for entries like:
Promotion Duration Capped: Promotion "Summer Sale" (ID: 123) end date capped from 2025-12-25 to 2025-06-25 (175-day maximum)
Via Feed Inspection:
- Generate the promotions feed
- Open
pub/media/googleshopping/google-promo-{store_id}.xml - Compare
<g:promotion_effective_dates>with your Magento rule dates
Best Practices for Long-Term Promotions
If you need promotions longer than 175 days, consider these approaches:
Option 1: Sequential Promotions
- Create multiple shorter promotions that run consecutively
- Example: "Q1 Sale", "Q2 Sale", etc.
- Each promotion runs for up to 175 days
Option 2: Rolling Promotions
- Update the promotion end date every few months
- Regenerate the feed to reflect the new dates
- Keep each period under 175 days
Option 3: Permanent Discounts
- For year-round offers, consider using catalog price rules instead
- These show as
sale_pricein the product feed rather than as promotions
Linking Promotions to Products
Promotions can apply to:
All Products
Promotion applies to entire catalog.
Use for: Sitewide sales, free shipping on all orders
Specific Products
Promotion applies only to certain products.
Use for: Category-specific sales, clearance items
Products are linked via the promotion_id attribute in your main product feed.
Best Practices
Clear Promotion Titles
| Instead of | Use |
|---|---|
| "Sale" | "20% off all winter coats" |
| "Discount" | "Save €15 on orders over €75" |
| "Special offer" | "Free shipping on all shoe orders" |
Accurate Dates
- Set correct start and end dates
- Don't extend expired promotions
- Plan promotions ahead of time
- Keep promotions under 175 days - See Promotion Duration Limits for details
Valid Coupon Codes
- Test codes before submitting feed
- Ensure codes work in checkout
- Match code in feed to code in Magento
Promotion Policies
Google has strict promotion policies:
- Promotion must be clearly displayed on landing page
- Discount must apply at checkout
- Cannot require additional purchases unless stated
- Free shipping must have no hidden fees
Generating the Promotions Feed
Via Admin
The promotions feed generates automatically with your main feed.
Via CLI
# Generate promotions feed for all store views
bin/magento googleshopping:promo:create
# Generate for specific store view
bin/magento googleshopping:promo:create --store-id=1
Feed Location
Promotions feed is stored alongside your main feed:
var/export/googleshopping/googleshopping_promo_{store_id}.xml
Submitting to Google Merchant Center
Register the Promotions Feed
- Go to Marketing → Promotions
- Click Settings (gear icon)
- Select Promotions feed
- Add your promotions feed URL or configure SFTP
Feed Processing
Google processes promotions feeds separately from product feeds:
- Processing can take up to 24 hours
- Check Promotions dashboard for status
- Review any disapprovals
Troubleshooting
Promotions Not Showing
Check:
- Promotions program enrollment approved?
- Feed submitted and processed?
- Promotion dates valid? (Must be under 175 days duration)
- Products correctly linked?
Promotion Disapproved
Common reasons:
- Promotion not visible on landing page
- Discount doesn't apply at checkout
- Unclear or misleading terms
- Missing required information
Fix:
- Review disapproval reason in Merchant Center
- Update promotion or landing page
- Resubmit feed
Coupon Code Not Working
Check:
- Code matches exactly (case-sensitive)
- Rule active in Magento
- Customer meets rule conditions
- Code not usage-limited or expired
Promotion Shows Expired Date in Merchant Center
Problem: Google Merchant Center shows your promotion as expired (e.g., expired on August 17, 2025), but your Magento rule has a later end date (e.g., December 25, 2025).
Cause: Your promotion duration exceeds the 175-day maximum limit. The extension automatically caps the end date to maintain compliance with Google's requirements.
Solution:
- Check
var/log/googleshopping_debug.logto confirm the date was capped - Review your promotion's start and end dates
- Calculate the duration (should be 175 days or less)
- Choose one of these options:
- Option A: Adjust the Magento rule to have a shorter duration (175 days max)
- Option B: Create sequential promotions (e.g., one for Jan-Jun, another for Jul-Dec)
- Option C: Accept the 175-day limit and plan to extend the promotion later
Note: Editing the rule's end date in Magento will NOT fix the issue if the total duration still exceeds 175 days. The extension will continue to cap it during feed generation.
See Promotion Duration Limits for more details.
Promotion Checklist
Before submitting promotions:
- Promotion title clearly describes offer
- Start and end dates are accurate
- Promotion duration is 175 days or less
- Coupon codes tested and working
- Landing pages show promotion prominently
- Terms and conditions available
- Discount applies correctly at checkout
Need More Help?
Documentation:
- All Help Articles - Complete documentation overview
Support:
- Contact Support - Get help from our team