Attribute Guide
Google Shopping promotion_id Attribute: Merchant Promotions Setup Guide
Complete guide to the promotion_id attribute in Google Merchant Center. How to link products to Merchant Promotions, enable the "Special offer" badge,…
Nike Air Max 270 — Women's — Black
"Special offer" badge visible in the ad — shopper sees the deal before clicking. Higher CTR, same budget spend. The promotion details expand on click without leaving the ad.
Nike Air Max 270 — Women's — Black
Plain listing. No promotion signal. Shopper has no reason to click this over a competitor at the same price — and doesn't know there's a 15% discount available.
The "Special offer" annotation appears in Shopping ads and free listings when a valid promotion_id is linked to an active promotion in Merchant Center's Promotions tool. The badge makes the listing visually distinct and surfaces the promotion details without requiring a landing page visit — a significant CTR driver in competitive Shopping auctions.
What is the promotion_id attribute?
The promotion_id attribute links a product in your Google Merchant Center feed to a promotion you’ve created in Merchant Center’s Promotions tool. When the link is established (by matching the promotion_id string exactly), Google surfaces a “Special offer” badge in your Shopping ads and free listings — an expandable annotation that shows shoppers the promotion details (e.g., “15% off with code SUMMER15”, “Free shipping”, “Buy 2, get 1 free”) directly within the Shopping interface, before they even click through to your site.
This is the only attribute in the Google Merchant Center feed that creates a direct connection between product-level data and the Merchant Promotions system. Without promotion_id, promotions you create in Merchant Center cannot be attached to specific products in your Shopping listings — they either apply to your entire catalog (if set as “all products” promotions) or don’t surface at all.
Technical specifications
| Feed name | promotion_id |
| Required | Required when using product-specific Merchant Promotions |
| Max length | 50 characters |
| Format | String — must exactly match the promotion ID in Merchant Center (case-sensitive) |
| Multiple values | Comma-separated list (e.g., PROMO_SUMMER, PROMO_FREESHIP) |
| Case sensitivity | Yes — SUMMER_SALE and summer_sale are different IDs |
| Approval timeline | 24–72 hours for Google to review and activate a new promotion |
Where it displays
-
Shopping Ads (PLAs) — The primary and most impactful placement. When a product has an active linked promotion, a green “Special offer” badge appears in the Shopping ad card. Shoppers can click the badge to expand promotion details — the offer copy, any promo code, and basic terms — without navigating away from the Shopping results page. This reduces click-through friction for promotion-motivated shoppers and significantly increases CTR compared to unlabeled listings in the same auction.
-
Free Product Listings — The “Special offer” annotation also appears in organic Shopping tab listings, giving your free listing an additional visual differentiator over competitors without promotions. In the free listings channel, this is essentially free CTR uplift.
-
Google Search — product rich results — For some product searches, Google surfaces a promotion callout in the product rich snippet or Knowledge Panel shown in organic search results. Products with active promotions linked via promotion_id may appear with a promotion annotation in this context, driving organic search CTR.
-
Google Images — Products shown in Google Images can include a product overlay with price and promotion details. Active promotions linked via promotion_id surface in this overlay.
Rules
-
The promotion_id must exactly match the ID in Merchant Center — Including case, spaces, and special characters. “SUMMER_SALE_2026” and “summer_sale_2026” are different IDs and will not link. Double-check the ID character by character when setting up.
-
The linked promotion must be active and approved — Pending, expired, or disapproved promotions do not produce a badge. The product must have a valid promotion_id that points to a currently active, approved promotion.
-
Promotion must be created in Merchant Center Promotions before it can be referenced — You cannot create a promotion_id in the feed and have it work without a corresponding promotion record in the Promotions tool.
-
Maximum 50 characters per promotion ID — IDs exceeding this length will not match and the promotion will not surface.
-
Comma-separated for multiple promotions — No space before the comma, or a space after: “PROMO1, PROMO2” (space after comma) is the standard format. Do not use other delimiters.
-
Promotion content must be accurate and comply with Google’s promotion policies — Misleading promotion copy, expired offers still shown as active, and mandatory purchase conditions not disclosed in the promo copy are policy violations and cause promotion disapproval.
Best practices
Promotion type guide
Google Merchant Promotions supports these types — choose based on your actual offer:
| Type | Example offer | Best for |
| Percentage discount | "15% off all footwear" | Sitewide or category sales — highest perceived value |
| Amount off | "€20 off orders over €100" | Increasing AOV while offering discount |
| Free shipping | "Free next-day delivery" | Reducing cart abandonment — shipping cost is top reason for abandonment |
| Free gift | "Free tote bag with €50 purchase" | Premium/lifestyle brands — reward without discounting core product |
| BOGO | "Buy 2, get 1 free" | Moving volume, clearing inventory — works well for FMCG and apparel |
Promotion ID naming convention
Use a consistent, human-readable naming convention for promotion IDs so they’re maintainable at scale:
-
Format:
[CATEGORY]_[TYPE]_[DATE/SEASON] -
Examples:
SHOES_PCT15_SUMMER26,ALL_FREESHIP_Q2,ELECTRONICS_20OFF_BLACKFRIDAY -
Avoid generic names like
PROMO1orDEAL— these become ambiguous when you have dozens of promotions
Promotion launch timeline
To ensure promotions are active when your sale starts:
-
Day -5 or earlier: Create the promotion in Merchant Center with the correct start date, end date, and offer copy. Note the promotion ID.
-
Day -4: Add or update promotion_id in your product feed (or supplemental feed). Submit the feed.
-
Day -3 to -2: Google reviews and approves the promotion (typically 24–72 hours).
-
Day 0 (sale start): Promotion is active and badge appears automatically.
Never set up a promotion the day before the sale — approval delays mean shoppers won’t see the badge during the critical first hours of the promotion window.
Impact on performance
-
CTR uplift from the “Special offer” badge — The promotion badge is one of the few controllable visual differentiators in Shopping ads. Google’s internal data and advertiser-reported results consistently show 10–20% CTR improvement for listings with active promotions compared to identical listings without, holding other factors constant. In competitive categories where multiple listings appear at similar prices, the badge is often the deciding click factor.
-
Higher conversion rate for promotion-motivated shoppers — Shoppers who click on a “Special offer” badge are explicitly interested in the promotion. They arrive at your product page already aware of the offer — no surprise, no friction. This typically produces higher conversion rates than general Shopping ad traffic.
-
Free listings CTR uplift — The promotion badge on free listings is essentially zero-cost CTR improvement. You’ve already created the promotion for your Shopping ads — extending it to free listings via the same promotion_id adds no additional cost and drives incremental organic traffic.
-
Competitive differentiation during sale events — During high-competition windows (Black Friday, seasonal sales), most competitors run promotions. Without promotion_id, you may be running a promotion that shoppers never see in the Shopping interface — while competitors’ “Special offer” badges attract the click. Linking your promotions via promotion_id ensures your offer is visible at the decision moment.
Common mistakes
-
Promotion ID mismatch between the feed and Merchant Center (typos, case differences, trailing spaces) — the most common cause of promotions not appearing
-
Creating the promotion in Merchant Center the day before the sale — insufficient time for Google approval
-
Leaving expired promotion IDs in the product feed (they’re harmless but create confusing feed audits)
-
Setting up a promotion in Merchant Center but forgetting to add the promotion_id to the product feed — the promotion exists but is not linked to any products
-
Applying the same promotion ID to products that are excluded from the promotion — Google may show the badge on ineligible products, leading to landing page mismatch and shopper frustration
-
Using more than 50 characters in a promotion ID — the ID is silently truncated and does not match the Merchant Center record
-
Creating a new promotion ID for the same recurring sale every year (e.g., BLACKFRIDAY_2024, BLACKFRIDAY_2025) without updating product feeds — feed promotions can point to the expired prior year’s promotion ID if not updated
Pro tips
-
Use supplemental feeds to manage promotion_id at scale — For large catalogs, a supplemental feed containing only
id+promotion_idlets you activate or deactivate promotions across thousands of products in a single feed refresh, without regenerating or touching the primary product feed. This is the standard approach for retailers running frequent promotional cycles. -
Create “always-on” promotions for permanent offers — If you always offer free shipping over a certain threshold, create a permanent free-shipping promotion with a stable ID and include it in all eligible products’ promotion_id fields indefinitely. This ensures the free shipping badge is always visible without requiring any promotional calendar management.
-
A/B test promotion types to find what drives CTR in your category — Run a percentage discount promotion and a free shipping promotion simultaneously on different product subsets (use custom labels to segment), then compare CTR and conversion rate. In some categories, free shipping is more compelling than 10% off; in others, the opposite is true. The data will tell you where to invest promotion budget.
-
Monitor promotion approval status in Merchant Center before the sale starts — Check the Promotions section in Merchant Center 24 hours before your promotion go-live date. If the promotion shows “Under review” or “Disapproved”, you have time to correct the issue (typically copy compliance) and resubmit before the sale window opens. Checking on launch day is too late.
Frequently asked questions
What is a promotion_id and how does it work?
promotion_id attribute contains the ID of a promotion you've created in Google Merchant Center's Promotions tool. When a product's promotion_id matches an active promotion's ID exactly, Google links the promotion to that product and displays a "Special offer" badge in Shopping ads and free listings. The badge expands to show the promotion details (e.g., "15% off with code SUMMER15") when clicked — without the shopper leaving the ad.Where do I create the promotions that promotion_id links to?
promotion_id attribute in your product feed. The linkage is an exact string match — the promotion_id in your feed must be identical to the promotion ID in Merchant Center, including case.Can one product be linked to multiple promotions?
PROMO_SUMMER, PROMO_FREE_SHIP. The product will display all active linked promotions in the Shopping listing. However, limit the number of concurrent promotions per product to avoid shopper confusion — 2–3 concurrent promotions is usually the practical maximum. When too many promotions are stacked, the "Special offer" badge shows the highest-value one and lists others in the expanded view.What promotion types are supported in Merchant Promotions?
How long does it take for a promotion to appear in Shopping ads after setup?
promotion_id in your feed, Google needs to review and approve the promotion. Approval typically takes 24–72 hours. Plan promotions at least 3–4 days before the intended start date to ensure they're active in time. Once approved, the "Special offer" badge appears within one feed refresh cycle (usually within a few hours).Does promotion_id work in Performance Max campaigns?
promotion_id linkages are carried through to Performance Max campaigns. When a promotion is active and linked via promotion_id, the "Special offer" badge appears in Shopping placements within PMax campaigns automatically. You do not need to set up anything separately in the PMax campaign — the badge is driven by the product feed and Merchant Center promotions data.What happens when a promotion expires?
promotion_id in the product feed after expiry (it simply has no effect until linked to an active promotion again), or remove it during the next feed update. The product listing returns to its standard appearance with no penalty.