Loading tutorials…
Loading tutorials…
Most Shopify owners install the Google channel app, see 'Connected,' and assume the feed is live. Then 60% of products land in 'Pending' or 'Disapproved' a week later. Here's the full setup with validation that actually works.
Who this is forShopify owners launching Google Shopping campaigns or already running them with a high disapproval rate. If your monthly Shopping spend is over $1K and you have under 70% feed approval, every day of bad feed data is wasted budget.
What you'll need
Step 1
Use the official Google channel app — not a third-party feed app. Shopify Admin → Sales channels → Add (+) → Google & YouTube.
Open Shopify Admin → Sales channels (left sidebar) → click the "+" next to Sales channels.
Search "Google & YouTube" and install. This is the only official, supported Shopify-to-Merchant-Center path. Avoid older feed apps unless you have a specific reason — they break on Shopify Markets and Shopify Online Store 2.0 sections.
Approve the OAuth permissions. Shopify needs read access to products, variants, inventory, and shipping rules to build the feed.
On first launch, the app asks you to connect a Google account. Use the one that owns Google Merchant Center and Google Ads — switching accounts later is painful.
Step 2
Inside the Google channel app, link or create Merchant Center. Verify and claim the store domain via Shopify (one-click).
In the Google channel app, go to "Overview" → "Set up Merchant Center."
If you already have a Merchant Center account, select it. If not, the app creates one tied to your store URL.
Domain verification and claiming is one-click via the Shopify integration — much simpler than the manual TXT-record path. Click 'Verify and claim.'
In Merchant Center → Tools → Business information, fill out: legal business name, customer service phone, customer service email, and return policy URL. Missing any of these will land your feed in "Account suspended" within 30 days.
Add the shipping policy URL (Shopify auto-generates one at /policies/shipping-policy) and refund policy URL. Google checks these on every account review.
Step 3
In the Google channel app, set the target country, language, currency, and which Shopify product fields map to which Merchant Center attributes.
Google channel app → Settings → Product feed. Choose your target country (must match where you ship). Add multiple countries only if you actually fulfill there — multi-country with broken shipping rules is the #1 cause of account suspension.
Set the language and currency. These must match the country target (US → English + USD).
Field mapping defaults are usually fine: title → title, body_html → description, vendor → brand. The one you almost always need to override is 'google_product_category' — set this via Shopify metafields or manually per collection.
For variants, ensure "Variant title" is being appended to the product title in the feed. Otherwise all 12 sizes of one t-shirt show up as duplicate listings.
Save. Shopify pushes the initial feed to Merchant Center within 15-60 minutes.
Step 4
Open Merchant Center → Products → Diagnostics. Filter for 'Disapproved' and 'Pending' — fix the source data in Shopify, not in Merchant Center.
In Merchant Center, navigate to Products → Diagnostics. The summary shows total Active, Pending, and Disapproved items.
First-pass approvals on a clean Shopify store usually land at 70-85%. Below 70% means a structural feed issue, not random product errors.
Sort the issues table by "Affected items" descending. The top 3 issues usually account for 80% of disapprovals. Common ones: "Missing GTIN," "Image too small," "Promotional overlay on image," "Mismatched value: Color."
Fix every issue at the source in Shopify (product page, variants, images, metafields). Editing in Merchant Center is a one-time patch — the next feed sync overwrites it.
After fixing, wait 24-48 hours for Shopify to re-sync and Merchant Center to re-crawl. Don't request manual re-review until you're confident the fix is in.
Step 5
In Merchant Center → Settings → Linked accounts → Google Ads, link your Ads account. This is required before any Shopping or Performance Max campaign can use the feed.
Merchant Center → gear icon → Linked accounts → Google Ads tab → "Link account."
Enter your Google Ads customer ID. Approve the request from inside Google Ads → Admin → Linked accounts → Merchant Center.
Once linked, the feed becomes available in Google Ads as a "Listing source" for Shopping and Performance Max campaigns.
In Google Ads, create a Shopping campaign or Performance Max campaign with the feed selected. Start with a low daily budget ($20-50/day) to validate before scaling.
Step 6
Enable Google's enhanced conversions for web in Google Ads, install the conversion tracking pixel via Shopify checkout settings, and validate with a test purchase.
In Shopify Admin → Settings → Customer events → Add custom pixel (or via Google channel app, which auto-installs).
The Google channel app handles the gtag for you in 90% of stores. If you have checkout extensibility enabled (required since August 2025), the conversion fires server-side via the Customer Events API.
In Google Ads → Goals → Conversions, verify the 'Purchase' conversion action shows status 'Recording.' If it shows 'No recent conversions,' the pixel isn't firing on /thank-you.
Run a real test purchase in incognito mode (use a real card — refund yourself after). Within 24 hours, the conversion should appear in Google Ads with the correct order value.
Enable Enhanced Conversions in Google Ads → Goals → Conversions → click the purchase action → Enhanced conversions → ON.
Step 7
Start with a Standard Shopping campaign (not Performance Max) on a small budget so you can read product-level performance before scaling.
In Google Ads → Campaigns → "+" → Sales → Shopping → Standard Shopping.
Select the Merchant Center account and country. Pick "Manual CPC" or "Maximize Clicks" for the first 14 days — Smart Bidding strategies need 30+ conversions to function.
Set daily budget at $20-50. Don't subdivide product groups yet — let everything bid as 'All products' for the first week to gather baseline data.
After 14 days, pull the Products report. Pause anything with 200+ clicks and zero conversions (the data is statistically significant). Subdivide top performers by product into their own ad groups.
Only move to Performance Max once you have a Standard Shopping baseline. P-Max is a black box; you need the baseline to know if it's actually helping.
Common mistakes
Using a third-party feed app instead of the official Google channel
What goes wrong: Third-party apps lag behind Shopify Markets and Online Store 2.0 changes. You get stale feeds, missed variant updates, and broken multi-country support. Result: 20-30% lower approval rate.
How to avoid: Uninstall the third-party app. Install Shopify's official Google & YouTube channel from the App Store. Re-link Merchant Center.
Skipping google_product_category metafield setup
What goes wrong: Google guesses categories and gets it wrong ~30% of the time. Wrong category = your $50 silk scarf competes in the auction with $5 bandanas. CPC inflates, conversion rate drops, and you blame the bid strategy.
How to avoid: Bulk-set google_product_category via Shopify metafields. Use the Google taxonomy ID format (e.g., '5697' for Apparel & Accessories > Clothing > Dresses).
Ignoring "Pending" status for too long
What goes wrong: Products in Pending generate zero impressions. If 30% of your catalog sits in Pending for 14 days, you have effectively cut available inventory by 30% — your daily budget chases the wrong products.
How to avoid: Run Diagnostics weekly. Anything Pending for 7+ days needs investigation — usually a missing identifier (GTIN/MPN) or image quality issue. Fix at source in Shopify.
Missing customer service info in Merchant Center
What goes wrong: Google suspends accounts that lack a phone, email, return policy URL, and shipping policy URL. Suspension cuts all Shopping traffic instantly. Reinstatement takes 7-21 days.
How to avoid: Merchant Center → Tools → Business information → fill every field. Add policies via Shopify Settings → Policies (auto-creates the /policies/ URLs Google needs).
Jumping straight to Performance Max
What goes wrong: P-Max bundles Shopping, Display, YouTube, and Discover impressions. Without a Standard Shopping baseline, you can't tell if revenue lift is from new shoppers or just cannibalized brand search. ROAS reports look great while incremental revenue is flat.
How to avoid: Run Standard Shopping for 30 days to establish a product-level baseline. Then run P-Max in parallel for 30 days. Compare incremental — not total — conversions.
Letting variants compete with the parent product
What goes wrong: If variant title doesn't append properly, Google indexes 12 listings for the same t-shirt. Your own variants outbid each other, inflating CPC by 30-50%.
How to avoid: In Google channel app → Settings → Product feed, ensure 'Include variant title in product title' is ON. Verify in Merchant Center → Products: each variant should have a unique title.
Recap
Done — what's next
How to set up Shopify checkout extensibility
Read the next tutorial
Hand it off
Most Shopify owners get Merchant Center 'working' but not optimized. The gap between connected and approved-and-converting is where specialists earn their fee. A vetted Shopify marketing specialist can audit your feed, clean product data, and launch your first Shopping campaign in 1-2 weeks at $14-16/hr — typically $400-800 total for the setup, $300-600/mo to maintain.
See specialist rates
No, the Google & YouTube sales channel is free on every Shopify plan including Basic. Shopping campaign spend is paid directly to Google Ads, separate from Shopify billing.
Initial sync: 15-60 minutes. First-pass approval: 24-72 hours. Anything still Pending after 7 days has a structural issue — check Diagnostics. Anything Disapproved needs you to fix in Shopify, then wait 24-48 hours for re-crawl.
Three usual culprits: (1) Merchant Center isn't linked to Google Ads — verify in Tools → Linked accounts. (2) Campaign budget is below auction floor — raise to $20+/day. (3) Bid strategy is too aggressive — switch from Target ROAS to Maximize Clicks for the first 14 days to gather data.
Yes, if you actually fulfill in those countries. Shopify Markets creates per-country product feeds with the right currency, language, and shipping rules. Setting it up wrong (e.g., enabling a market without shipping rates) causes Merchant Center suspension within 30 days. Test with one secondary country before scaling.
Yes, via metafields. Shopify has a built-in 'cost per item' field that maps to Merchant Center's cost_of_goods_sold attribute. Setting this unlocks ROAS optimization based on profit margin — a meaningful upgrade for any store with mixed margins.
Checkout extensibility is Shopify's new checkout system that replaced checkout.liquid in August 2025. It's mandatory on all stores now. The Google channel app handles the conversion tracking via Customer Events (server-side) — but if you customized checkout.liquid before, you need to migrate that logic to Web Pixels API.
Shopify
Shopify killed checkout.liquid in August 2025. If you haven't migrated, your old pixels and order-confirmation customizations are silently broken. Here's the full checkout extensibility migration — pixels, CAPI, and post-purchase logic.
Shopify
Your Meta pixel was firing yesterday. Today, Events Manager shows zero purchases. Welcome to one of the most common Shopify-stack failures — and one of the most expensive if it goes unnoticed. Here's the diagnostic sequence.
Shopify
Shopify ships with decent SEO defaults but several land mines. Wrong title template, duplicate collection URLs, missing structured data — these are the issues that cap your organic ceiling no matter how much you blog. Here's the foundation, done right.
Shopify
DIY Shopify marketing is a great idea — until it isn't. This is the honest framework: when the cost of self-managing exceeds the cost of hiring, and how to tell which side you're on.
Google Analytics 4
Shopify's native Google channel app is now the right way to install GA4 — not the old liquid-snippet hacks that haunt half the tutorials online. Here's the current, supported path.