SteerAds
Google AdsTutorielOptimisation

Google Ads : Shopify vs PrestaShop setup 2026

Google Merchant Center setup, conversion tracking and Performance Max for Shopify and PrestaShop: technical differences, plugins, gotchas, feed comparison. The 2026 e-commerce guide to picking the right CMS and squeezing the most out of Google Ads on each stack.

Justine
JustineE-commerce & Shopping Lead
···11 min read

Shopify exceeds 12,500 active stores in France by end of 2025 according to BuiltWith data, and PrestaShop remains solidly installed at around 22,000 active stores on the same perimeter — two massive ecosystems with very different user profiles. On Google Shopping, the technical battle plays out at three levels: product feed quality, Merchant Center sync freshness, conversion tracking cleanliness. And that's where the two CMSs diverge radically.

The rule we repeat at every Shopping audit: healthy feed = healthy ROAS. No shortcut through bid strategy, no magic via Performance Max — feed quality amplifies or caps everything downstream. This guide settles the Shopify vs PrestaShop arbitrages for Google Ads in 2026: Merchant Center setup, available plugins, conversion tracking, Performance Max, gotchas observed on both stacks. For overall Shopping strategy, read our Google Shopping setup and optimization guide and our 2026 Google Ads e-commerce playbook alongside.

Shopify vs PrestaShop: market share and user profiles

Shopify is a SaaS platform hosted in tenant mode, billed €27 to €384 per month depending on plan, operated by Shopify Inc. from Ottawa (see official Shopify pricing). PrestaShop is an open-source self-hosted CMS, free to download, but requiring hosting, technical maintenance and paid modules to reach the functional parity of a standard Shopify. Both concentrate the bulk of the DTC market in France outside WooCommerce.

The user profile diverges sharply. Shopify attracts DTC brands wanting a short time-to-launch, operations without technical debt, ready-to-use marketing integrations (Klaviyo, Meta, Google channels, Pinterest, TikTok), and that accept recurring monthly costs plus transaction commission (0% to 2% depending on plan, except Shopify Payments). PrestaShop attracts e-commerce merchants with complex catalogs, multi-brand, multi-language, B2B with customization, or simply brands that prefer technical autonomy and lower marginal scale costs — no transaction commission, no bandwidth cap.

Three points weigh particularly heavily for Google Ads. The native Shopify Google channel automates 80% of Merchant Center setup: automatically generated feed, 15 to 60 min sync, Enhanced Conversions enabled in one click. On the Presta side, these same functions require either an official module (€200 to €250), or technical configuration time. Feed sync freshness is the second critical point: a feed updated every 24h on Presta generates cascading "Item availability mismatch" disapprovals as soon as stock fluctuates rapidly (flash promo, stockout). On Shopify, the 15 to 60 min sync drastically limits this risk. The third gap is B2B catalog flexibility: if you manage prices by customer group, custom business attributes, strict multi-language, PrestaShop remains structurally more solid.

For Shopping vs Search allocation arbitrages, also see our Shopping vs Search allocation guide.

Merchant Center setup: plugin vs native differences

The Google Merchant Center setup is the step that decides whether you launch Shopping in 7 days or in 6 weeks. On Shopify, the operation is nearly trivial via the native channel. On PrestaShop, it requires a module stack choice and a longer but more controlled manual configuration.

Shopify: the native path via Google & YouTube channel

The Shopify Google & YouTube channel is free and installable from the sales channels manager in 2 clicks. Once activated, it automatically connects your store to Google Merchant Center via OAuth, generates a product feed compliant with Google specs (title, description, image, price, GTIN, brand, category, availability, custom_label if filled in), and syncs it 15 to 60 min depending on volume. The Merchant Center documentation details the list of supported attributes.

Three things the channel doesn't handle and that you have to handle by hand. First, domain verification: Shopify connects the Shopify domain (mystore.myshopify.com) but if you serve under mystore.com, you need to manually add the verification meta tag in theme.liquid or via DNS TXT. Second, the 5-level category mappings: the channel proposes a default category based on the Shopify product type, often too generic for niches (Apparel & Accessories > Clothing instead of Apparel & Accessories > Clothing > Activewear > Yoga Pants). Go to Google Merchant > Products > all product sheets and refine manually on the top 50 SKUs by revenue: significant bid relevance gain. Third, custom_label: they aren't defined in native Shopify, you need to either use a metafield, or go through a third-party app (Shoppingfeed, Feed for Google Shopping, DataFeedWatch).

PrestaShop: official module or custom XML

On PrestaShop, three paths to choose from depending on budget and catalog complexity. The official "Google Shopping & Ads" module on the PrestaShop addons store remains the most direct solution for a standard catalog: €200 to €250 once, complete attribute mappings (including custom_label_0 to 4, energy efficiency class, identifier_exists), automatic XML generation, configurable sync. The custom XML path consists of serving an XML/CSV file via an HTTPS endpoint on your PrestaShop server, recrawled by Google Merchant Center at configurable frequency (12 to 24h standard). Requires 4 to 12h of dev for an experienced PrestaShop developer, free at runtime but expensive in setup. The Content API path consists of pushing the feed via the Google Merchant API directly from PrestaShop, which allows near real-time sync — but requires custom development or a dedicated premium module.

Our 2026 recommendation by catalog size: under 500 SKUs, official module suffices. Between 500 and 5,000 SKUs, official module + Content API. Beyond 5,000 SKUs, or with multi-language/multi-country, plan a dedicated premium module budget (Shoppingfeed, ShoppingFlux, Lengow) at €80 to €400 per month.

Warning: the PrestaShop stock drift trap :

On referenced PrestaShop accounts, around one third show a disapproved product rate above 8% on Merchant Center due to price/stock drift between store and feed. The mechanism: the XML feed is generated once a day, Google Merchant crawls it 12h later, so the price/stock gap on the feed side can reach 24 to 36h. During flash promos or fluctuating stock periods, it's guaranteed that products serve at an obsolete price, and Google disapproves them in cascade. Solution: force feed regeneration every 1 to 4h via cron, or enable Content API. This single change raises the approval rate by 8 to 12 points on average.

Product feed: quality, frequency, custom_label, GTIN

Feed quality is the main referee of your Shopping ROAS, ahead of bid strategy and even ahead of campaign structure. A clean feed brings 25 to 45% additional ROAS at iso-budget vs a minimal feed — observed continuously in public benchmarks. Five critical dimensions to master, identical on Shopify and PrestaShop, but with different operational constraints depending on the CMS.

Title: the first 35 characters dictate everything

Google often truncates the title to 35-45 characters depending on placement (mobile Shopping carousel, Free Listings, Edge browser shopping panel). Optimal format: Brand + Model + Key Attribute in the first 35 characters. Example: "Sennheiser HD 660S2 Hi-Fi Wired Audio Headphones" — first 35 = "Sennheiser HD 660S2 Hi-Fi Wired Au". On the audits we conduct, titles with brand in the first 35 characters show CTR 18 to 28% higher than generic titles like "Black wired premium hi-fi studio quality audio headphones".

On Shopify, the product title is the only easily modifiable lever (Edit > Title). On PrestaShop, you can either modify the product name (which also serves as the web page title — SEO risk), or use a dedicated feed attribute feed_title mapped via the official module or a custom module. The second path preserves the freedom of the product name on the store side while optimizing the feed title on the Merchant side.

GTIN, brand, mpn: the holy trinity of identification

Google has tightened its GTIN requirements since 2024 on recognized brands: a product without a valid GTIN at Apple, Sennheiser, Nike, etc. loses 25 to 40% impressions on long-tail brand queries. If you distribute these brands, GTIN is mandatory. For private brands (your own DTC brand without an official GTIN), add identifier_exists = FALSE to the feed and fill in brand + mpn — that's the only combination accepted by Google not to disapprove the SKUs.

On Shopify, the GTIN field is native (Variant > Barcode). On PrestaShop, the EAN13 field is native too but you need to verify that the feed module properly maps ean13 → gtin (often yes, sometimes no depending on module). The brand field is native on both CMSs. The mpn field (Manufacturer Part Number) is native on PrestaShop (product.reference), on Shopify you have to go through a metafield or a third-party app — that's one of the practical gaps where Presta is more complete out of the box.

Custom_label: the margin segmentation that changes everything

The 5 custom_labels (0 to 4) are underused in 80% of referenced accounts, while they decide Shopping profitability. The standard strategy we've been applying for years: custom_label_0 = margin tier (high/mid/low), custom_label_1 = seasonality (peak/normal/off-peak), custom_label_2 = historical ROAS (high/mid/low), custom_label_3 = best-seller boolean, custom_label_4 = free (depending on vertical: new collection, clearance, online exclusive).

This segmentation then conditions the structure of Shopping campaigns: Premium campaign (custom_label_0 = high margin, high target ROAS), Standard campaign (custom_label_0 = mid margin, mid target ROAS), Volume campaign (custom_label_0 = low margin, low target ROAS but scalable volume). Same logic transposed to Performance Max via segmented asset groups.

On Shopify, defining custom_labels is done via metafields (Settings > Custom data > Products > add metafield definition custom.label_0) then exposed via third-party app to the feed. On PrestaShop, the official Google Shopping module allows you to map directly any product feature or custom attribute to custom_label_0 to 4 — more direct and without dependence on a third-party app.

Conversion tracking: Enhanced Conversions and e-com events

Tracking is the second pillar after the feed. Smart Bidding (Target ROAS, Target CPA, Maximize Conversion Value) optimizes toward the signal it receives. If a significant share of your conversions is poorly tracked, the algorithm optimizes toward a truncated signal and performs 16 to 26% below its potential depending on vertical. It's the number-one bug we see in audits. For overall tracking strategy, see our Google Ads conversion tracking guide.

Shopify: Enhanced Conversions in one toggle

The Shopify Google channel automatically pushes Enhanced Conversions parameters on every conversion sent to Google Ads, provided three things are activated. First, in Google Ads, enable Enhanced Conversions for Web on the main conversion (Tools > Conversions > select > enable Enhanced Conversions). Second, in Shopify, allow customer data sharing (Settings > Customer privacy > marketing). Third, verify that the Google Ads pixel is properly injected via the channel and not duplicated via a third-party app (otherwise double conversion counting, distorted attribution).

Standard e-commerce events are also handled natively: view_item, add_to_cart, begin_checkout, purchase. These events feed dynamic remarketing and GA4 audiences without additional configuration. On Shopify audits, the most frequent bug is not a lack of tracking but a duplicate: an account that has Google channel + custom GTM + a third-party analytics app all three pushing the Google Ads pixel, multiplying conversions by 2 to 3. Solution: a single injection point.

PrestaShop: server-side GTM or dedicated module

On PrestaShop, tracking requires a stack choice. Path 1: dedicated module type "Google Tag Manager" or "Google Ads Conversion Tracking" on the addons store, which injects the pixel and handles e-com events. Cost €80 to €200 once, turnkey operation, but Enhanced Conversions often as additional paid option. Path 2: server-side GTM (recommended for mature accounts) — install GTM on the client side then push a server-side container hosted on Cloud Run or App Engine, which hashes customer data (email, phone, first/last name) before sending to Google Ads. It's the most robust path for signal quality post-iOS 14 and post-third-party cookie phase-out.

The practical gap between the two paths: the dedicated module deploys in 2-4h, server-side GTM in 1 to 3 days depending on dev experience. On Presta accounts with high Shopping volume (more than €30,000 per month), server-side GTM pays off within a few weeks via Smart Bidding signal quality.

Performance Max and asset groups: CMS integration

Performance Max has become the dominant format on the Google Ads side since 2023, with an e-commerce spend share exceeding 55% according to accounts observed in public Google Ads benchmarks 2025-2026. The format directly exploits the Merchant Center feed for inventory ads (Shopping equivalent integrated into PMax) and complements with asset groups for Display, YouTube, Discover, Gmail placements.

The CMS-side integration weighs on two dimensions: feed image quality (size, background, format) that feeds inventory ads, and ease of creating/maintaining complementary asset groups.

Shopify and PrestaShop workflow to Performance MaxShopifyGoogle & YouTube channelAuto sync 15-60 minPrestaShopOfficial module or XMLSync 24h or 1-4hGoogle Merchant CenterValidation 24-72hcustom_label preservesPerformance MaxInventory ads (from feed)Asset groups (manual)Search / Display / YouTubeDiscover / Gmail / Maps

CMS to Performance Max e-commerce workflow

Asset groups segmented by custom_label_0 margin = more stable ROAS

Asset groups segmented by margin

The classic mistake on PMax e-commerce is to create a single asset group with the entire catalog and a generic image set. Result: the algorithm distributes the budget uniformly, low-margin SKUs capture as much spend as high-margin, real margin ROAS collapses.

The structure we recommend in 2026: one asset group per margin tier (custom_label_0 = high/mid/low). Each asset group has its own target ROAS aligned with product margin (e.g., target ROAS 6 on high-margin, target ROAS 3 on low-margin), its own category hero images, its own titles and descriptions adapted to the value proposition. This segmentation outperforms a monolithic asset group by 22 to 38% on aggregate margin ROAS observed in aggregate Google Ads benchmarks.

On Shopify, asset group creation is done directly in Google Ads (PMax > Asset groups > New). On PrestaShop, same. The difference isn't in the tool but in the source image quality: Shopify standardizes framing and resolution better, PrestaShop lets through 400x400 non-white background images that drag down Display placements. Mandatory audit of the top 50 revenue SKUs before PMax launch to harmonize. For full PMax strategy, see our complete Performance Max 2026 guide.

Key insight: healthy feed = healthy ROAS :

The ROAS gap observed between a Shopify account with native channel properly enabled and a PrestaShop account with unmaintained 24h XML feed quantifies to between 18 and 35% at iso-vertical and iso-budget. That's not the CMS's fault — it's the process's fault. A PrestaShop with Content API + premium module + server-side GTM is just as performant as a Shopify, sometimes more. Conversely, a Shopify with duplicate tracking apps and a poorly configured channel underperforms a well-maintained PrestaShop. The CMS doesn't make ROAS — feed and tracking operations make it.

Comparison of gotchas and typical mistakes

Each CMS carries its recurring traps. Knowing the 6 most frequent ones avoids losing 4 to 8 weeks diagnosing underperforming ROAS.

Shopify side: 3 recurring traps

Trap 1: double pixel. A Shopify store activated in parallel with Google channel + a third-party tracking app (Triple Whale, Northbeam, Aftership Marketing) that also pushes the Google Ads pixel in the background. Result: conversions are counted twice, apparent ROAS is multiplied by 1.8 to 2.2, Smart Bidding optimizes on an inflated signal, real ROAS collapses as soon as one of the sources is cut. Solution: a single Google Ads pixel injection point, ideally the native channel.

Trap 2: product type too generic. The Shopify product_type is mapped by default to the Google category. If your product types are generic ("Clothing", "Accessories", "Sport"), your Google category is also generic, and bid relevance drops 12 to 18% on long-tail queries. Solution: refine the Google category manually on 5 levels for the top 50 SKUs.

Trap 3: GMC sync after promo price change. Shopify syncs the feed every 15 to 60 min, which is fast but not instantaneous. If you launch a 12h flash promo, Google Merchant may only reflect the new price 30 to 60 min later. During this delay, ads serve at the old price, conversions at wrong average cart, biased Smart Bidding data. Solution: don't start the promo until you've verified in GMC that the updated price is reflected. Our average cart calculator gives the AOV with benchmarks per e-commerce vertical.

PrestaShop side: 3 recurring traps

Trap 1: XML feed refreshed once a day. It's the costliest and most frequent trap. The standard module generates an XML every 24h, Google Merchant crawls it 12h later. Stock mismatch guaranteed as soon as a SKU fluctuates rapidly. Solution: force regeneration via cron every 1 to 4h, or enable Content API.

Trap 2: special characters not encoded in the feed. Poorly encoded French characters (é, è, à, ç, œ) in the XML generate Merchant warnings that can escalate to disapproval. Verify that the feed encoding is strict UTF-8 (not ISO-8859-1, not Windows-1252). Solution: module that forces UTF-8 or manual XML validation produced before submit.

Trap 3: product images too small. PrestaShop allows by default 400x400 images or even less, while Google Shopping recommends 800x800 minimum (1200x1200 for PMax inventory ads on Display). SKUs with image below 800x800 typically lose 25 to 40% impressions on Edge, MSN, Discover placements. Solution: complete image audit on the top 200 SKUs and upgrade to 1200x1200 minimum.

Migration Shopify to PrestaShop (and vice versa): impact on feeds

A CMS migration happens more often than people think — typically when a legacy Presta cracks under technical debt and you switch to Shopify to start clean, or conversely when a Shopify reaches its B2B functional ceiling and migrates to Presta. The impact on Google Ads is underestimated.

Risk number one: conversion history rupture

Smart Bidding optimizes from the conversion history accumulated on the campaign, attached to a Google Ads account. If you change CMS and reconfigure tracking, you risk breaking the path between the conversion event and its Google Ads recording. For 1 to 2 weeks, conversions don't come up (or come up doubled if you left the old pixel active), Smart Bidding enters chaotic learning phase, CPA temporarily explodes.

Standard solution over 30 days pre-migration: prepare tracking on the new CMS in parallel, test in staging, then switch in hot-swap mode over 24h with minute-by-minute Google Ads conversion monitoring. Never migrate a CMS during a seasonal peak (BF/CM, sales, end of year).

Risk number two: product ID rupture

If your product ids change between old and new CMS (typically, a Presta with numeric IDs migrates to Shopify with alphanumeric IDs), Google Merchant Center treats all products as new, the feed enters reapproval for 24-72h, and per-SKU performance history is lost. This particularly impacts accounts that exploit custom_labels for campaign segmentation.

Solution: preserve the old product IDs as much as possible by remapping them via a dedicated attribute (item_group_id or id directly copied). For Shopify, this is done via metafield. For migrated PrestaShop, via module mapping.

Risk number three: loss of sync freshness

If you migrate from Shopify (15 to 60 min sync) to PrestaShop (24h sync default), the sync freshness degradation generates stock disapprovals you didn't have before. Anticipate by enabling Content API or a 1-4h cron from day 1 of the new Presta stack.

For complex migrations, a pre-migration audit pays off: it identifies risk areas (lost custom_labels, broken IDs, degraded sync) before the migration breaks Google Ads performance. Our free SteerAds audit covers these points in 3 minutes of OAuth connection, and proposes a migration plan without rupture over 14 to 30 days.

For strategic arbitrages between App promo, classic Shopping and Performance Max e-commerce on the Google Ads ecosystem, also read our 2026 Android and iOS App Promo guide — useful if your e-commerce catalog is also available as a native app.

The Shopify vs PrestaShop choice is not binary for Google Ads. Shopify gives a time-to-launch and operational simplicity advantage that translates into ROAS gain over the first 3 to 6 months. PrestaShop, operated rigorously (Content API, server-side GTM, premium modules), reaches the same performance and offers superior flexibility long-term and on complex catalogs. The determining factor isn't the CMS itself, it's the quality of feed, tracking and margin segmentation operations. Choose the CMS that matches your operational velocity — not the one that promises magic — also see official Google Ads documentation for more details.

To go further, also see our guides Google Ads local restaurant, Google Ads legal services worldwide, Google Ads real estate lead gen.

Sources

Official sources consulted for this guide:

FAQ

Shopify or PrestaShop to start an e-commerce store designed to scale on Google Ads?

For a project aiming for fast scale on Google Shopping and Performance Max, Shopify remains quicker to set up: native Google channel, automatically generated feed, near real-time GMC sync, Enhanced Conversions clickable in 5 min. PrestaShop requires more initial configuration (Doofinder module, EnvoiMoinsCher, paid feed modules or custom XML), but offers superior flexibility for complex catalogs (multi-language, multi-currency, custom business attributes, B2B customizations). For 90% of DTC brands starting out, Shopify gives a faster time-to-revenue. For e-commerce merchants already on PrestaShop with seasoned operations, migrating to Shopify solely for Google Ads rarely justifies itself — better to invest in a proper feed module on the Presta side.

Should I pay for a Shopping feed module or use the native PrestaShop?

PrestaShop doesn't offer native generation of a Google Shopping feed compliant with 2026 specifications in the standard version. The official "Google Shopping & Ads" module on the PrestaShop addons store costs around 200 to 250 euros once and remains the most directly maintained option. Alternative: a community module ("Simple Google Shopping XML feed") free or low-cost, but with fewer advanced attribute mappings (custom_label, identifier_exists, energy efficiency class). For a catalog under 500 SKUs and a standard setup, a community module may suffice. Beyond that, the cost of the official module pays off very quickly through feed approval quality and therefore ROAS.

Does the native Shopify Google channel handle Enhanced Conversions without code?

Yes since 2024. The Shopify Google & YouTube channel automatically pushes Enhanced Conversions parameters (hashed email, hashed phone, first/last name) on every conversion sent to Google Ads, without dev intervention. You just need to enable Enhanced Conversions in Google Ads (Tools > Conversions > select the conversion > enable Enhanced Conversions for Web), and confirm in Shopify that customer data sharing is allowed. On PrestaShop, enabling Enhanced Conversions requires either a specific module (often paid), or a server-side GTM configuration. It's one of the operational gaps that weighs the most on ease of operation between the two CMSs.

What's the feed update frequency between Shopify and PrestaShop?

Shopify with its native Google channel syncs the feed in near real-time (every 15 to 60 minutes depending on volume), which avoids price/stock drift between store and Merchant Center — critical during flash promo periods or stockouts. PrestaShop typically generates an XML file recrawled by Google Merchant every 24h in standard mode. To switch to higher frequency on Presta, you need to enable Content API (via dedicated module) or push an XML feed served over HTTPS refreshed by cron every 1 to 4h. The 24h stock drift is one of the main contributors to "Item availability mismatch" disapprovals observed in Presta audits.

Does Performance Max work equally well on both CMSs?

PMax works on both as soon as the feed is healthy and the tracking clean, but the gap comes from asset groups. Shopify doesn't make it easy to create asset groups from the channel: you have to go through Google Ads and manually upload images / videos / titles. PrestaShop is in the same situation, but with the added risk on product image quality (often too small, non-white background). For both CMSs, 2026 recommendation: export product sheets into one asset group per margin tier (high/mid/low) based on custom_label_0, rather than going with a single asset group for the entire catalog. The margin segmentation logic is covered in our 2026 e-commerce playbook.

Ready to optimize your campaigns?

Start a free audit in 2 minutes and discover the ROI potential of your accounts.

Start my free audit

Free audit — no credit card required

Keep reading