<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Andres Reitsnik &#8211; scandiweb</title>
	<atom:link href="https://scandiweb.com/blog/author/andres-reitsnik/feed/" rel="self" type="application/rss+xml" />
	<link>https://scandiweb.com/blog</link>
	<description>Success Stories &#124; scandiweb blog</description>
	<lastBuildDate>Mon, 02 Nov 2026 11:50:03 +0000</lastBuildDate>
	<language>en-US</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=7.0.8</generator>

<image>
	<url>https://scandiweb.com/blog/wp-content/uploads/2022/08/6277b7d3d3ca4eb3c978a38c_favicon-1.png</url>
	<title>Andres Reitsnik &#8211; scandiweb</title>
	<link>https://scandiweb.com/blog</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>Why GA4 Doesn&#8217;t Match Your Orders: Unassigned Traffic, (not set), and Missing Sales</title>
		<link>https://scandiweb.com/blog/ga4-unassigned-traffic/</link>
		
		<dc:creator><![CDATA[Andres Reitsnik]]></dc:creator>
		<pubDate>Wed, 21 Oct 2026 11:00:00 +0000</pubDate>
				<category><![CDATA[Collection]]></category>
		<category><![CDATA[Data Analytics]]></category>
		<category><![CDATA[Digital Growth]]></category>
		<category><![CDATA[Data Tracking]]></category>
		<category><![CDATA[ecommerce data analytics]]></category>
		<category><![CDATA[GA4]]></category>
		<category><![CDATA[GA4 unassigned traffic]]></category>
		<category><![CDATA[Google Analytics]]></category>
		<category><![CDATA[Google Analytics 4]]></category>
		<category><![CDATA[Google Consent Mode]]></category>
		<category><![CDATA[Google Tag Manager]]></category>
		<guid isPermaLink="false">https://scandiweb.com/blog/?p=26062</guid>

					<description><![CDATA[<p>GA4 unassigned traffic, (not set) and missing orders explained: which gaps are normal, what to fix, and a monthly check against your store.</p>
<p>The post <a rel="nofollow" href="https://scandiweb.com/blog/ga4-unassigned-traffic/">Why GA4 Doesn&#8217;t Match Your Orders: Unassigned Traffic, (not set), and Missing Sales</a> appeared first on <a rel="nofollow" href="https://scandiweb.com/blog">scandiweb</a>.</p>
]]></description>
										<content:encoded><![CDATA[<div class="lazyblock-related-Ga4Ut wp-block-lazyblock-related"><div class="related-services">
  <h3>Related Services</h3>
  <ul>
    
    <li>
      <a  href="https://scandiweb.com/services/analytics" target=_blank >
        Analytics
      </a>
    </li>
    
    <li>
      <a  href="https://scandiweb.com/ga4-migration-consultancy" target=_blank >
        GA4 Migration and Setup
      </a>
    </li>
    
    <li>
      <a  href="https://scandiweb.com/services/google-analytics-4-support" target=_blank >
        GA4 Support
      </a>
    </li>
    
  </ul>
</div>
</div>


<p class="wp-block-paragraph">If your store backend shows more orders than GA4 again this month, or if the Unassigned row in your traffic report keeps growing, you&#8217;re probably asking one question: is this a tracking problem, or are we really selling less?</p>



<p class="wp-block-paragraph">GA4 unassigned traffic, (not set) values, and missing purchases usually point at the same few causes: consent, blocked tags, payment pages that send shoppers back as referrals, purchase events that fire twice or not at all, and bots. Below, we go through each cause and how to confirm it in your own reports. The guide ends with a monthly check that compares GA4 with your order database, so the next gap gets caught in weeks.</p>



<h2 class="wp-block-heading">Is the gap between GA4 and your orders normal?</h2>



<p class="wp-block-paragraph">GA4 will never match your order database exactly, and it isn&#8217;t meant to. The backend records every paid order. GA4 records the purchases it was allowed to see and managed to receive. A stable gap is normal. A gap that suddenly grows, sits on one payment method, or comes with a jump in GA4 unassigned traffic usually means something in the tracking broke.</p>



<h3 class="wp-block-heading">Gaps you should expect</h3>



<p class="wp-block-paragraph">Some orders never reach GA4 by design.</p>



<ul class="wp-block-list">
<li>Shoppers who decline analytics cookies, when consent mode blocks the Google tag</li>


<li>Browsers and extensions that block requests to Google Analytics</li>


<li>Phone, marketplace, and manually created orders that never pass through the website</li>


<li>Orders completed on a payment provider&#8217;s page when the shopper never comes back to the confirmation page</li>

</ul>



<p class="wp-block-paragraph">Other differences come from how each system counts. GA4 reports in the property&#8217;s time zone, so orders placed near midnight can land on a different day than in the backend. Standard GA4 properties also keep processing data for 24–48 hours, so yesterday&#8217;s numbers may still change. And refunds or cancellations only reduce GA4 revenue if your store sends a refund event.</p>



<h3 class="wp-block-heading">Signs the gap is a tracking problem</h3>



<figure class="wp-block-table"><table><thead><tr><th>What you see</th><th>What it usually means</th></tr></thead><tbody><tr><td>The gap jumps after a theme, checkout, or app release</td><td>The purchase tag or dataLayer changed</td></tr><tr><td>GA4 shows more purchases than the backend</td><td>Purchase events fire twice, often on confirmation page reloads</td></tr><tr><td>The gap sits on one payment method</td><td>Shoppers don&#8217;t return from that provider&#8217;s page</td></tr><tr><td>paypal.com or a bank domain appears as a referral</td><td>Payment domains are missing from the unwanted referrals list</td></tr><tr><td>Unassigned or (not set) share grows month over month</td><td>Tags fire in the wrong order, or UTM values don&#8217;t match channel rules</td></tr><tr><td>Revenue matches but order counts don&#8217;t</td><td>Transaction IDs are missing or reused</td></tr></tbody></table><figcaption class="wp-element-caption">Signs that a GA4 gap is a tracking problem, and what each one usually means</figcaption></figure>



<p class="wp-block-paragraph">If the gap opened right after a replatform, start with tracking before you look at rankings. The traffic-drop triage in our <a href="https://scandiweb.com/blog/seo-migration-checklist/" target="_blank" rel="noopener">SEO migration checklist</a> puts the same check first.</p>



<div class="wp-block-image aligncenter size-large"><figure class="aligncenter size-large"><img loading="lazy" decoding="async" loading="lazy" width="1672" height="941" src="https://scandiweb.com/blog/wp-content/uploads/2026/10/ga4-unassigned-traffic-order-gap-causes.png" alt="Waterfall chart comparing store backend orders with GA4 purchases, with bars for consent, blocked tags, payment redirects and duplicates" class="wp-image-26057" style="display:block;margin:0 auto;max-width:100%;height:auto;" srcset="https://scandiweb.com/blog/wp-content/uploads/2026/10/ga4-unassigned-traffic-order-gap-causes.png 1672w, https://scandiweb.com/blog/wp-content/uploads/2026/10/ga4-unassigned-traffic-order-gap-causes-300x169.png 300w, https://scandiweb.com/blog/wp-content/uploads/2026/10/ga4-unassigned-traffic-order-gap-causes-1024x576.png 1024w, https://scandiweb.com/blog/wp-content/uploads/2026/10/ga4-unassigned-traffic-order-gap-causes-150x84.png 150w, https://scandiweb.com/blog/wp-content/uploads/2026/10/ga4-unassigned-traffic-order-gap-causes-768x432.png 768w, https://scandiweb.com/blog/wp-content/uploads/2026/10/ga4-unassigned-traffic-order-gap-causes-1536x864.png 1536w, https://scandiweb.com/blog/wp-content/uploads/2026/10/ga4-unassigned-traffic-order-gap-causes-1600x900.png 1600w" sizes="auto, (max-width: 1672px) 100vw, 1672px" /><figcaption style="display:block;position:static;background:none;color:inherit;width:auto;padding:8px 0 0;margin:0.5em 0 1em;font-size:14px;text-align:center;max-height:none;">Where orders fall out between your store backend and GA4</figcaption></figure></div>



<style>  .box-new {    background-color: #f8f4ef;    padding: 20px 30px 30px 30px; /* top, right, bottom, left */    border: none;  }  .box-new p {    margin-top: 0;    margin-bottom: 1em;  }  .box-new p:last-child {    margin-bottom: 0;  }</style><div class="box-new">  <p><strong>🚀 Quick takeaway</strong></p>  <p>Watch how the gap moves from month to month. If consent costs you around 15% of orders every month, that&#8217;s your baseline. If the gap jumps from 8% to 20% in one week, look for a broken tag.</p></div>



<h2 class="wp-block-heading">What is unassigned traffic in GA4?</h2>



<p class="wp-block-paragraph">Unassigned traffic in GA4 is traffic that GA4 couldn&#8217;t place in any default channel. Google defines Unassigned as &#8220;the value Analytics uses when there are no other channel rules that match the event data.&#8221; It usually appears when a UTM source or medium doesn&#8217;t match any channel rule, or when events reach GA4 without the session or user details that attribution needs.</p>



<p class="wp-block-paragraph">Direct is a separate channel with its own rule: the source has to be exactly &#8220;(direct)&#8221; with no medium. A session lands in Unassigned when GA4 got a source it couldn&#8217;t match to any rule, or got no usable source at all.</p>



<h3 class="wp-block-heading">Common causes of GA4 unassigned traffic</h3>



<p class="wp-block-paragraph">The most common cause is campaign tagging. GA4 puts a session in Email only when the source or medium is &#8220;email&#8221;, &#8220;e-mail&#8221;, &#8220;e_mail&#8221; or &#8220;e mail&#8221;, so a link tagged utm_medium=newsletter matches no rule and lands in Unassigned. Medium values like &#8220;banner&#8221; or &#8220;influencer&#8221;, or a campaign name typed into the medium field, end up in the same place.</p>



<p class="wp-block-paragraph">The other causes are technical.</p>



<ul class="wp-block-list">
<li>Purchase or lead events sent from your server through the Measurement Protocol, without the browser&#8217;s client ID and session ID, can&#8217;t be joined to a session</li>


<li>Custom events that fire before the Google tag&#8217;s config command can&#8217;t be tied to a session properly, and Google lists this as a cause of both unassigned and (not set) values</li>


<li>A cookie prefix that differs between pages, or a cross-domain linker that changes the client ID, splits one visit into short sessions that GA4 can&#8217;t attribute</li>

</ul>



<h3 class="wp-block-heading">How to fix unassigned traffic in GA4</h3>



<p class="wp-block-paragraph">Start by finding out what is inside the Unassigned row. In Reports, open Acquisition, then Traffic acquisition, and change the primary dimension to Session source / medium while filtering for Unassigned. Each row points to a cause.</p>



<ol class="wp-block-list">
<li>Readable source and medium values, such as &#8220;klaviyo / newsletter&#8221;, mean your UTM naming doesn&#8217;t match GA4&#8217;s rules. Agree a naming convention with the marketing team and fix the links at the source. A custom channel group can relabel these sessions in reports, but the links stay wrong until someone retags them.</li>


<li>&#8220;(not set) / (not set)&#8221; usually means missing session data. Check that the Google tag fires first, on the Initialization trigger in Google Tag Manager, before any event tags.</li>


<li>Unassigned traffic that rises around purchase or lead events usually comes from server-side events. Send the client ID and session ID with every Measurement Protocol event.</li>

</ol>



<div class="wp-block-image aligncenter size-large"><figure class="aligncenter size-large"><img loading="lazy" decoding="async" loading="lazy" width="1672" height="941" src="https://scandiweb.com/blog/wp-content/uploads/2026/10/ga4-unassigned-traffic-acquisition-report.png" alt="GA4 traffic acquisition table with the unassigned channel highlighted and a panel of source and medium values behind it" class="wp-image-26058" style="display:block;margin:0 auto;max-width:100%;height:auto;" srcset="https://scandiweb.com/blog/wp-content/uploads/2026/10/ga4-unassigned-traffic-acquisition-report.png 1672w, https://scandiweb.com/blog/wp-content/uploads/2026/10/ga4-unassigned-traffic-acquisition-report-300x169.png 300w, https://scandiweb.com/blog/wp-content/uploads/2026/10/ga4-unassigned-traffic-acquisition-report-1024x576.png 1024w, https://scandiweb.com/blog/wp-content/uploads/2026/10/ga4-unassigned-traffic-acquisition-report-150x84.png 150w, https://scandiweb.com/blog/wp-content/uploads/2026/10/ga4-unassigned-traffic-acquisition-report-768x432.png 768w, https://scandiweb.com/blog/wp-content/uploads/2026/10/ga4-unassigned-traffic-acquisition-report-1536x864.png 1536w, https://scandiweb.com/blog/wp-content/uploads/2026/10/ga4-unassigned-traffic-acquisition-report-1600x900.png 1600w" sizes="auto, (max-width: 1672px) 100vw, 1672px" /><figcaption style="display:block;position:static;background:none;color:inherit;width:auto;padding:8px 0 0;margin:0.5em 0 1em;font-size:14px;text-align:center;max-height:none;">The source / medium values inside the Unassigned row show what to fix</figcaption></figure></div>



<style>  .box-new {    background-color: #f8f4ef;    padding: 20px 30px 30px 30px; /* top, right, bottom, left */    border: none;  }  .box-new p {    margin-top: 0;    margin-bottom: 1em;  }  .box-new p:last-child {    margin-bottom: 0;  }</style><div class="box-new">  <p><strong>🚀 Quick takeaway</strong></p>  <p>Check the campaign links before you touch the tags. A one-page UTM naming guide for everyone who builds links, agencies included, often clears more of the Unassigned row than a developer can.</p></div>



<h2 class="wp-block-heading">What does (not set) mean in GA4?</h2>



<p class="wp-block-paragraph">(not set) in GA4 means a dimension had no value: GA4 received the data without a piece of information it expected. The same label appears in many reports, and the cause depends on which dimension shows it, so check the dimension before changing any tags.</p>



<ul class="wp-block-list">
<li>In Session source / medium, (not set) means the session has no session_start event, and Google&#8217;s fix is to fire the Google tag on the &#8220;Initialization &#8211; All pages&#8221; trigger in Google Tag Manager</li>


<li>In Landing page, it means the session has no page_view event, which happens when a session starts with another event, such as a purchase sent from a server</li>


<li>In Google Ads dimensions, it means the Ads account isn&#8217;t linked to GA4 or auto-tagging is off</li>


<li>In a newly registered custom parameter, it can show for the first 24 hours</li>

</ul>



<p class="wp-block-paragraph">Consent settings can also cause (not set). Google notes that calling the consent default command again when a shopper changes their choice, instead of the update command, can drop the session_start event. Sending events marked as denied after the shopper has accepted cookies does the same. If your consent banner went live around the time (not set) appeared, check how it sends consent changes. Our guide to <a href="https://scandiweb.com/blog/google-consent-mode-v2/" target="_blank" rel="noopener">Google Consent Mode v2</a> covers the setup itself.</p>



<h2 class="wp-block-heading">Why GA4 is missing transactions</h2>



<p class="wp-block-paragraph">When GA4 shows fewer purchases than your backend, the cause is usually one of three things: the shopper didn&#8217;t come back from the payment page, consent or a blocker stopped the tag, or the purchase event fired wrongly. Check them in that order, because the first one leaves the clearest trace in your reports.</p>



<h3 class="wp-block-heading">Payment redirects and self-referrals</h3>



<p class="wp-block-paragraph">Many payment flows send the shopper away from your store: PayPal, Klarna, bank transfer pages, or a bank&#8217;s 3-D Secure check. Two things can go wrong.</p>



<p class="wp-block-paragraph">The shopper pays but closes the tab before the confirmation page loads, so the purchase event never fires. The order exists in the backend and is missing from GA4.</p>



<p class="wp-block-paragraph">Or the shopper returns, and GA4 treats the payment domain as a new referral. The purchase then gets credited to paypal.com instead of the ad or email that brought the shopper in. To stop that, add every payment and 3-D Secure domain to the unwanted referrals list in the GA4 data stream settings. GA4 allows up to 50 conditions per stream. The list only works going forward, so sessions already credited to those domains stay as they are.</p>



<p class="wp-block-paragraph">For the orders that never reach the confirmation page, the only full fix is to <a href="https://scandiweb.com/blog/server-side-tracking/">send the purchase from your server</a> when the order is created, through the Measurement Protocol, with the shopper&#8217;s client ID and session ID attached. Without those IDs, the purchase shows up in GA4 as unassigned.</p>



<div class="wp-block-image aligncenter size-large"><figure class="aligncenter size-large"><img loading="lazy" decoding="async" loading="lazy" width="1672" height="941" src="https://scandiweb.com/blog/wp-content/uploads/2026/10/ga4-missing-transactions-payment-redirect.png" alt="Diagram of a checkout leaving the store for a payment page and returning, with the points where GA4 loses or misattributes the purchase" class="wp-image-26059" style="display:block;margin:0 auto;max-width:100%;height:auto;" srcset="https://scandiweb.com/blog/wp-content/uploads/2026/10/ga4-missing-transactions-payment-redirect.png 1672w, https://scandiweb.com/blog/wp-content/uploads/2026/10/ga4-missing-transactions-payment-redirect-300x169.png 300w, https://scandiweb.com/blog/wp-content/uploads/2026/10/ga4-missing-transactions-payment-redirect-1024x576.png 1024w, https://scandiweb.com/blog/wp-content/uploads/2026/10/ga4-missing-transactions-payment-redirect-150x84.png 150w, https://scandiweb.com/blog/wp-content/uploads/2026/10/ga4-missing-transactions-payment-redirect-768x432.png 768w, https://scandiweb.com/blog/wp-content/uploads/2026/10/ga4-missing-transactions-payment-redirect-1536x864.png 1536w, https://scandiweb.com/blog/wp-content/uploads/2026/10/ga4-missing-transactions-payment-redirect-1600x900.png 1600w" sizes="auto, (max-width: 1672px) 100vw, 1672px" /><figcaption style="display:block;position:static;background:none;color:inherit;width:auto;padding:8px 0 0;margin:0.5em 0 1em;font-size:14px;text-align:center;max-height:none;">Where payment redirects lose purchases and create self-referrals in GA4</figcaption></figure></div>



<h3 class="wp-block-heading">Consent, ad blockers, and short cookies</h3>



<p class="wp-block-paragraph">Shoppers who decline analytics cookies, or browse with a blocker, don&#8217;t send observed purchases to GA4. That gap is real and permanent. With advanced consent mode, GA4 can model some of the missing behavior, but only once the property passes Google&#8217;s thresholds: at least 1,000 events a day with analytics consent denied for 7 days, and at least 1,000 daily users who accepted on 7 of the last 28 days. Smaller stores often never qualify.</p>



<p class="wp-block-paragraph">Safari also <a href="https://scandiweb.com/blog/ready-for-cookieless-future/">limits cookies set by JavaScript to seven days</a>. A shopper who comes back after two weeks looks like a new user, and the earlier campaign gets no credit for the sale. The order still reaches GA4, but the campaign that won it shows up as Direct.</p>



<p class="wp-block-paragraph">How much consent costs you depends on your markets and your banner. Compare the gap for EU countries with the gap for countries where you don&#8217;t show a banner, and you&#8217;ll see the size of it. The <a href="https://scandiweb.com/blog/google-consent-mode-v2/" target="_blank" rel="noopener">consent mode guide</a> explains the basic and advanced options.</p>



<h3 class="wp-block-heading">Purchase events that fire twice or not at all</h3>



<p class="wp-block-paragraph">GA4 removes duplicate purchases when they share the same transaction ID, but only for the same user and only on web data streams. That covers most confirmation page reloads. These four problems get through anyway.</p>



<ul class="wp-block-list">
<li>An empty transaction ID: Google says GA4 deduplicates every purchase sent with transaction_id=&#8221;&#8221;, so they collapse into one and you undercount</li>


<li>Two tags for one purchase, such as a platform app and a Google Tag Manager tag, where only one of them sends the transaction ID</li>


<li>A cart ID or quote ID sent in place of the order number, which makes different orders look like duplicates</li>


<li>A purchase tag that fires on page load before the order data is in the dataLayer, so it sends no value or no items</li>

</ul>



<p class="wp-block-paragraph">Test this with real orders. Place orders with each payment method in GA4&#8217;s DebugView and compare the transaction ID, value, and currency with the backend. Our guide to <a href="https://scandiweb.com/blog/data-tracking-setup-datalayer/" target="_blank" rel="noopener">dataLayer QA</a> covers the checks for each eCommerce event.</p>



<style>  .box-new {    background-color: #f8f4ef;    padding: 20px 30px 30px 30px; /* top, right, bottom, left */    border: none;  }  .box-new p {    margin-top: 0;    margin-bottom: 1em;  }  .box-new p:last-child {    margin-bottom: 0;  }</style><div class="box-new">  <p><strong>🚀 Quick takeaway</strong></p>  <p>Export a month of GA4 transaction IDs and match them against backend order numbers. The orders that are missing tell you more than the totals do: if most of them used one payment method, you&#8217;ve found the leak.</p></div>



<h2 class="wp-block-heading">How to spot and filter bot traffic in GA4</h2>



<p class="wp-block-paragraph">GA4 removes traffic from known bots and spiders automatically, using Google&#8217;s research and the IAB&#8217;s International Spiders and Bots List. You can&#8217;t turn this off, and you can&#8217;t see how much it removed. Bots that aren&#8217;t on the list still get through, and they often appear as sudden spikes in Direct, Unassigned, or Referral traffic.</p>



<p class="wp-block-paragraph">GA4 bot traffic usually follows a pattern you can see in an exploration.</p>



<ul class="wp-block-list">
<li>A spike in sessions with no matching rise in orders or add-to-carts</li>


<li>Average engagement time close to zero and an engagement rate far below normal</li>


<li>Most sessions from one city, often near a data center, or from one unusual screen resolution</li>


<li>One landing page, or a hostname that isn&#8217;t your store</li>

</ul>



<p class="wp-block-paragraph">Once you&#8217;ve confirmed a spike, you have three options. For reporting, build a segment or a report filter that excludes the pattern, which hides it without deleting anything. For future data, GA4&#8217;s data filters cover internal traffic, developer traffic, and traffic from other hostnames. Those filters are permanent and only apply from the day you activate them, so test them on a copy of the report first. For the bots themselves, block them at your CDN or firewall, before they reach the store.</p>



<p class="wp-block-paragraph">Bots don&#8217;t only inflate traffic. Card-testing bots also create real failed or fraudulent orders in your backend, which makes the GA4 gap look worse than it is. Our guide to <a href="https://scandiweb.com/blog/magento-fraud-prevention/" target="_blank" rel="noopener">Magento fraud prevention</a> explains how to spot card testing.</p>



<h2 class="wp-block-heading">A monthly GA4 reconciliation routine</h2>



<p class="wp-block-paragraph">A monthly reconciliation compares GA4 with your order database on the same terms, so you know your normal gap and spot a new one within weeks. Once the exports are scheduled, it&#8217;s a short monthly job.</p>



<ol class="wp-block-list">
<li>Export last month&#8217;s paid orders from the backend, without test orders, and with the order number, payment method, country, and total</li>


<li>Export GA4 purchases for the same month with transaction ID, payment method if you send it, country, and purchase revenue</li>


<li>Set both exports to the same time zone and currency before comparing</li>


<li>Calculate the capture rate: GA4 purchases divided by backend orders</li>


<li>Match transaction IDs to order numbers and list the missing orders by payment method and country</li>


<li>Check for transaction IDs that appear more than once in GA4</li>


<li>Record the share of Unassigned and (not set) sessions, and note any traffic spikes</li>


<li>Compare everything with the last three months, next to a log of site releases and changes to the consent banner or payment methods</li>

</ol>



<p class="wp-block-paragraph">On Magento, the order export can be scheduled, so step 1 runs on its own. Our guide to <a href="https://scandiweb.com/blog/how-to-export-orders-magento-2/" target="_blank" rel="noopener">exporting orders in Magento 2</a> shows the options.</p>



<div class="wp-block-image aligncenter size-large"><figure class="aligncenter size-large"><img loading="lazy" decoding="async" loading="lazy" width="1672" height="941" src="https://scandiweb.com/blog/wp-content/uploads/2026/10/ga4-unassigned-traffic-monthly-reconciliation-sheet.png" alt="Spreadsheet comparing monthly backend orders with GA4 purchases, capture rate and unassigned share, with one month flagged" class="wp-image-26060" style="display:block;margin:0 auto;max-width:100%;height:auto;" srcset="https://scandiweb.com/blog/wp-content/uploads/2026/10/ga4-unassigned-traffic-monthly-reconciliation-sheet.png 1672w, https://scandiweb.com/blog/wp-content/uploads/2026/10/ga4-unassigned-traffic-monthly-reconciliation-sheet-300x169.png 300w, https://scandiweb.com/blog/wp-content/uploads/2026/10/ga4-unassigned-traffic-monthly-reconciliation-sheet-1024x576.png 1024w, https://scandiweb.com/blog/wp-content/uploads/2026/10/ga4-unassigned-traffic-monthly-reconciliation-sheet-150x84.png 150w, https://scandiweb.com/blog/wp-content/uploads/2026/10/ga4-unassigned-traffic-monthly-reconciliation-sheet-768x432.png 768w, https://scandiweb.com/blog/wp-content/uploads/2026/10/ga4-unassigned-traffic-monthly-reconciliation-sheet-1536x864.png 1536w, https://scandiweb.com/blog/wp-content/uploads/2026/10/ga4-unassigned-traffic-monthly-reconciliation-sheet-1600x900.png 1600w" sizes="auto, (max-width: 1672px) 100vw, 1672px" /><figcaption style="display:block;position:static;background:none;color:inherit;width:auto;padding:8px 0 0;margin:0.5em 0 1em;font-size:14px;text-align:center;max-height:none;">A monthly GA4 reconciliation sheet shows when the gap changes</figcaption></figure></div>



<p class="wp-block-paragraph">When the capture rate moves by more than a few points from its three-month average, treat it as a tracking incident first. Most of the time, the cause is in the release log from the same week.</p>



<style>  .box-new {    background-color: #f8f4ef;    padding: 20px 30px 30px 30px; /* top, right, bottom, left */    border: none;  }  .box-new p {    margin-top: 0;    margin-bottom: 1em;  }  .box-new p:last-child {    margin-bottom: 0;  }</style><div class="box-new">  <p><strong>🚀 Quick takeaway</strong></p>  <p>Add a column for the release log to the reconciliation sheet. When the capture rate drops, the cause is usually listed a row above it, as a theme update or a new checkout app.</p></div>



<h2 class="wp-block-heading">Frequently asked questions about GA4 unassigned traffic</h2>



<h3 class="wp-block-heading">Why is GA4 showing unassigned traffic?</h3>



<p class="wp-block-paragraph">GA4 shows unassigned traffic when it can&#8217;t match a session&#8217;s source and medium to any default channel rule. The most common cause is UTM tagging that doesn&#8217;t follow GA4&#8217;s naming, such as utm_medium=newsletter instead of email. Server-side events without a client ID and session ID, and tags that fire before the Google tag&#8217;s config command, also create unassigned sessions.</p>



<h3 class="wp-block-heading">What does (not set) mean in Google Analytics 4?</h3>



<p class="wp-block-paragraph">(not set) means GA4 received data without a value for that dimension. For session source / medium, the session is missing its session_start event. For landing page, the session has no page_view event. For Google Ads dimensions, the Ads account isn&#8217;t linked. The fix depends on the dimension, so check which report shows it before changing tags.</p>



<h3 class="wp-block-heading">Why doesn&#8217;t GA4 revenue match Shopify or Magento?</h3>



<p class="wp-block-paragraph">GA4 revenue rarely matches Shopify or Magento because the store records every paid order, while GA4 only records purchases it is allowed to see. Declined consent, blocked tags, shoppers who don&#8217;t return from payment pages, time zone differences, and refunds that aren&#8217;t sent to GA4 all widen the gap. A stable gap is normal, and a sudden change points to a tracking fault.</p>



<h3 class="wp-block-heading">Does GA4 filter bot traffic automatically?</h3>



<p class="wp-block-paragraph">Yes, GA4 automatically excludes known bots and spiders using Google&#8217;s research and the IAB International Spiders and Bots List. You can&#8217;t turn it off or see how much traffic it removed. Bots that aren&#8217;t on the list still get through, so spikes with near-zero engagement time need a segment, a data filter, or blocking at your CDN or firewall.</p>



<h3 class="wp-block-heading">How do I stop PayPal from showing as a referral in GA4?</h3>



<p class="wp-block-paragraph">Add paypal.com, and every other payment or 3-D Secure domain your checkout uses, to the unwanted referrals list in your GA4 web data stream settings. GA4 then ignores those domains as traffic sources when shoppers return to your store. The change only applies to new data, so sessions already credited to PayPal stay in past reports.</p>



<h3 class="wp-block-heading">How much difference between GA4 and backend orders is normal?</h3>



<p class="wp-block-paragraph">There is no single normal figure, because it depends on your markets, consent banner, and payment methods. Stores that show a consent banner to EU shoppers can expect a bigger gap than stores without one. What matters is that the gap stays stable from month to month. Track the capture rate each month and investigate when it moves by more than a few points.</p>



<h2 class="wp-block-heading">Tracking problem or real drop: how to tell</h2>



<p class="wp-block-paragraph">GA4 unassigned traffic, (not set) values, and missing orders are almost always tracking questions before they are sales questions. Check the gap against your own baseline, look inside the Unassigned row, follow the missing orders by payment method, and filter out bots before anyone cuts a budget. If the capture rate holds steady while orders fall in both systems, the drop is real, and the conversation can move on to demand and pricing.</p>



<script type="application/ld+json">{"@context": "https://schema.org", "@type": "FAQPage", "mainEntity": [{"@type": "Question", "name": "Why is GA4 showing unassigned traffic?", "acceptedAnswer": {"@type": "Answer", "text": "GA4 shows unassigned traffic when it can't match a session's source and medium to any default channel rule. The most common cause is UTM tagging that doesn't follow GA4's naming, such as utm_medium=newsletter instead of email. Server-side events without a client ID and session ID, and tags that fire before the Google tag's config command, also create unassigned sessions."}}, {"@type": "Question", "name": "What does (not set) mean in Google Analytics 4?", "acceptedAnswer": {"@type": "Answer", "text": "(not set) means GA4 received data without a value for that dimension. For session source / medium, the session is missing its session_start event. For landing page, the session has no page_view event. For Google Ads dimensions, the Ads account isn't linked. The fix depends on the dimension, so check which report shows it before changing tags."}}, {"@type": "Question", "name": "Why doesn't GA4 revenue match Shopify or Magento?", "acceptedAnswer": {"@type": "Answer", "text": "GA4 revenue rarely matches Shopify or Magento because the store records every paid order, while GA4 only records purchases it is allowed to see. Declined consent, blocked tags, shoppers who don't return from payment pages, time zone differences, and refunds that aren't sent to GA4 all widen the gap. A stable gap is normal, and a sudden change points to a tracking fault."}}, {"@type": "Question", "name": "Does GA4 filter bot traffic automatically?", "acceptedAnswer": {"@type": "Answer", "text": "Yes, GA4 automatically excludes known bots and spiders using Google's research and the IAB International Spiders and Bots List. You can't turn it off or see how much traffic it removed. Bots that aren't on the list still get through, so spikes with near-zero engagement time need a segment, a data filter, or blocking at your CDN or firewall."}}, {"@type": "Question", "name": "How do I stop PayPal from showing as a referral in GA4?", "acceptedAnswer": {"@type": "Answer", "text": "Add paypal.com, and every other payment or 3-D Secure domain your checkout uses, to the unwanted referrals list in your GA4 web data stream settings. GA4 then ignores those domains as traffic sources when shoppers return to your store. The change only applies to new data, so sessions already credited to PayPal stay in past reports."}}, {"@type": "Question", "name": "How much difference between GA4 and backend orders is normal?", "acceptedAnswer": {"@type": "Answer", "text": "There is no single normal figure, because it depends on your markets, consent banner, and payment methods. Stores that show a consent banner to EU shoppers can expect a bigger gap than stores without one. What matters is that the gap stays stable from month to month. Track the capture rate each month and investigate when it moves by more than a few points."}}]}</script>



<div style="height:20px" aria-hidden="true" class="wp-block-spacer"></div>



<p><style> p.box { border: 1px solid black; padding-top: 30px; padding-right: 30px; padding-bottom: 30px; padding-left: 30px; } </style> <p class="box"><em>Not sure whether your GA4 gap is tracking or real? </em><a href="https://scandiweb.com/contact" target="_blank" rel="noreferrer noopener"><em>Send us your last month&#x27;s numbers</em></a><em>, and we&#x27;ll show you where the orders go missing.</em></p></p>
<p>The post <a rel="nofollow" href="https://scandiweb.com/blog/ga4-unassigned-traffic/">Why GA4 Doesn&#8217;t Match Your Orders: Unassigned Traffic, (not set), and Missing Sales</a> appeared first on <a rel="nofollow" href="https://scandiweb.com/blog">scandiweb</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Shopify B2B Explained: Features, Plan Limits, and Workarounds</title>
		<link>https://scandiweb.com/blog/shopify-b2b/</link>
		
		<dc:creator><![CDATA[Andres Reitsnik]]></dc:creator>
		<pubDate>Wed, 21 Oct 2026 07:00:00 +0000</pubDate>
				<category><![CDATA[Collection]]></category>
		<category><![CDATA[Platform Comparisons]]></category>
		<category><![CDATA[Shopify]]></category>
		<category><![CDATA[adobe commerce]]></category>
		<category><![CDATA[b2b]]></category>
		<category><![CDATA[B2B eCommerce]]></category>
		<category><![CDATA[ecommerce platform]]></category>
		<category><![CDATA[ERP]]></category>
		<category><![CDATA[magento]]></category>
		<category><![CDATA[Shopify B2B]]></category>
		<category><![CDATA[Shopify Plus]]></category>
		<guid isPermaLink="false">https://scandiweb.com/blog/?p=26087</guid>

					<description><![CDATA[<p>Shopify B2B now runs on every plan from Basic to Plus. See how catalogs, buyer roles, and net terms work, and where the limits are.</p>
<p>The post <a rel="nofollow" href="https://scandiweb.com/blog/shopify-b2b/">Shopify B2B Explained: Features, Plan Limits, and Workarounds</a> appeared first on <a rel="nofollow" href="https://scandiweb.com/blog">scandiweb</a>.</p>
]]></description>
										<content:encoded><![CDATA[<div class="lazyblock-related-Sb2Bx wp-block-lazyblock-related"><div class="related-services">
  <h3>Related Services</h3>
  <ul>
    
    <li>
      <a  href="https://scandiweb.com/shopify-services/development" target=_blank >
        Shopify Development
      </a>
    </li>
    
    <li>
      <a  href="https://scandiweb.com/shopify-services/integrations" target=_blank >
        Shopify Integrations
      </a>
    </li>
    
    <li>
      <a  href="https://scandiweb.com/magento-b2b" target=_blank >
        Magento B2B Development
      </a>
    </li>
    
  </ul>
</div>
</div>


<p class="wp-block-paragraph">If your trade customers still email orders that someone retypes into Shopify, or if you&#8217;re trying to work out whether Shopify B2B can carry your price lists and payment terms without a pile of apps, this guide gives you the honest version. We build B2B stores on both Shopify and Magento, so we see where each platform does the job and where the custom work starts.</p>



<p class="wp-block-paragraph">Since April 2026, Shopify B2B is no longer a Plus-only feature. Below, we cover what it includes on each plan, how company accounts, catalogs, and payment terms work, where the limits are, and when a Magento B2B build is the better fit.</p>



<h2 class="wp-block-heading">What is Shopify B2B?</h2>



<p class="wp-block-paragraph">Shopify B2B is the set of wholesale features built into the Shopify admin. It lets you sell to business customers from the same store and checkout as your retail shoppers. Buyers belong to company accounts with their own locations, catalogs with negotiated prices, quantity rules, and payment terms such as Net 30. It runs on the Basic, Grow, Advanced, and Plus plans, with Plus unlocking customer-specific catalogs, deposits, and partial payments.</p>



<p class="wp-block-paragraph">The model has four layers, and almost every limit in this guide comes from how they connect.</p>



<ul class="wp-block-list">
<li><strong>Company:</strong> the business you sell to, such as a retailer or a contractor</li>


<li><strong>Company location:</strong> a branch, store, or warehouse of that company, each with its own addresses, catalogs, payment terms, tax settings, and checkout rules</li>


<li><strong>Customer:</strong> a person who buys on behalf of a location, with a role that controls what they can do</li>


<li><strong>Catalog:</strong> the products and prices a location can see, built from a price list and a product publication</li>

</ul>



<div class="wp-block-image aligncenter size-large"><figure class="aligncenter size-large"><img loading="lazy" decoding="async" loading="lazy" width="1672" height="941" src="https://scandiweb.com/blog/wp-content/uploads/2026/10/shopify-b2b-company-location-catalog-model.png" alt="Shopify B2B diagram showing a company with two locations, their buyers and roles, catalogs and Net 30 payment terms" class="wp-image-26082" style="display:block;margin:0 auto;max-width:100%;height:auto;" srcset="https://scandiweb.com/blog/wp-content/uploads/2026/10/shopify-b2b-company-location-catalog-model.png 1672w, https://scandiweb.com/blog/wp-content/uploads/2026/10/shopify-b2b-company-location-catalog-model-300x169.png 300w, https://scandiweb.com/blog/wp-content/uploads/2026/10/shopify-b2b-company-location-catalog-model-1024x576.png 1024w, https://scandiweb.com/blog/wp-content/uploads/2026/10/shopify-b2b-company-location-catalog-model-150x84.png 150w, https://scandiweb.com/blog/wp-content/uploads/2026/10/shopify-b2b-company-location-catalog-model-768x432.png 768w, https://scandiweb.com/blog/wp-content/uploads/2026/10/shopify-b2b-company-location-catalog-model-1536x864.png 1536w, https://scandiweb.com/blog/wp-content/uploads/2026/10/shopify-b2b-company-location-catalog-model-1600x900.png 1600w" sizes="auto, (max-width: 1672px) 100vw, 1672px" /><figcaption style="display:block;position:static;background:none;color:inherit;width:auto;padding:8px 0 0;margin:0.5em 0 1em;font-size:14px;text-align:center;max-height:none;">How Shopify B2B links companies, locations, buyers, catalogs, and payment terms</figcaption></figure></div>



<p class="wp-block-paragraph">Most settings belong to the location, which suits buyers with many branches. A hardware chain with 40 stores can give its head office Net 60 and its franchise stores card payment at checkout, all under one company record. You can run B2B inside your retail store (a &#8220;blended&#8221; store) or as a separate store for wholesale only, using Shopify&#8217;s Trade theme, which can hide prices from visitors who aren&#8217;t logged in.</p>



<h2 class="wp-block-heading">Shopify B2B vs Shopify Plus B2B: what each plan includes</h2>



<p class="wp-block-paragraph">On 2 April 2026, Shopify <a href="https://www.shopify.com/news/b2b-for-all" target="_blank" rel="noopener">extended native B2B</a> to the Basic, Grow, and Advanced plans at no extra cost. Before that, Shopify Plus B2B was the only native option, and most guides you&#8217;ll find still say so. Starter and Retail plans don&#8217;t include B2B.</p>



<figure class="wp-block-table"><table><thead><tr><th>Feature</th><th>Basic, Grow</th><th>Advanced</th><th>Plus</th></tr></thead><tbody><tr><td>Companies, locations, buyer roles</td><td><span style="display:inline-block;padding:4px 8px;background-color:#e7e9f8;color:#3f4aaf;border-radius:4px;font-weight:600;">Yes</span></td><td><span style="display:inline-block;padding:4px 8px;background-color:#e7e9f8;color:#3f4aaf;border-radius:4px;font-weight:600;">Yes</span></td><td><span style="display:inline-block;padding:4px 8px;background-color:#e7e9f8;color:#3f4aaf;border-radius:4px;font-weight:600;">Yes</span></td></tr><tr><td>B2B catalogs</td><td>Up to 3</td><td>Up to 3</td><td>Unlimited</td></tr><tr><td>Catalogs assigned directly to a company location</td><td>Not included</td><td>Not included</td><td><span style="display:inline-block;padding:4px 8px;background-color:#e7e9f8;color:#3f4aaf;border-radius:4px;font-weight:600;">Yes</span></td></tr><tr><td>Quantity rules and volume pricing</td><td><span style="display:inline-block;padding:4px 8px;background-color:#e7e9f8;color:#3f4aaf;border-radius:4px;font-weight:600;">Yes</span></td><td><span style="display:inline-block;padding:4px 8px;background-color:#e7e9f8;color:#3f4aaf;border-radius:4px;font-weight:600;">Yes</span></td><td><span style="display:inline-block;padding:4px 8px;background-color:#e7e9f8;color:#3f4aaf;border-radius:4px;font-weight:600;">Yes</span></td></tr><tr><td>Net terms, vaulted cards, PO numbers</td><td><span style="display:inline-block;padding:4px 8px;background-color:#e7e9f8;color:#3f4aaf;border-radius:4px;font-weight:600;">Yes</span></td><td><span style="display:inline-block;padding:4px 8px;background-color:#e7e9f8;color:#3f4aaf;border-radius:4px;font-weight:600;">Yes</span></td><td><span style="display:inline-block;padding:4px 8px;background-color:#e7e9f8;color:#3f4aaf;border-radius:4px;font-weight:600;">Yes</span></td></tr><tr><td>Draft orders, checkout to draft, reorders</td><td><span style="display:inline-block;padding:4px 8px;background-color:#e7e9f8;color:#3f4aaf;border-radius:4px;font-weight:600;">Yes</span></td><td><span style="display:inline-block;padding:4px 8px;background-color:#e7e9f8;color:#3f4aaf;border-radius:4px;font-weight:600;">Yes</span></td><td><span style="display:inline-block;padding:4px 8px;background-color:#e7e9f8;color:#3f4aaf;border-radius:4px;font-weight:600;">Yes</span></td></tr><tr><td>Deposits and partial payments</td><td>Not included</td><td>Not included</td><td><span style="display:inline-block;padding:4px 8px;background-color:#e7e9f8;color:#3f4aaf;border-radius:4px;font-weight:600;">Yes</span></td></tr><tr><td>Different storefront and checkout content for B2B buyers</td><td>Not included</td><td><span style="display:inline-block;padding:4px 8px;background-color:#e7e9f8;color:#3f4aaf;border-radius:4px;font-weight:600;">Yes</span></td><td><span style="display:inline-block;padding:4px 8px;background-color:#e7e9f8;color:#3f4aaf;border-radius:4px;font-weight:600;">Yes</span></td></tr></tbody></table><figcaption class="wp-element-caption">Shopify B2B features by plan, Basic to Shopify Plus</figcaption></figure>



<p class="wp-block-paragraph">The three-catalog cap applies across all your B2B markets, so on a non-Plus plan you get three price tiers in total, such as &#8220;trade&#8221;, &#8220;distributor&#8221;, and &#8220;key accounts&#8221;. On these plans, catalogs attach to B2B markets, and a single company can&#8217;t get a catalog of its own. If every customer has their own negotiated prices, Shopify B2B without Plus won&#8217;t hold them. The non-Plus catalog features also require the new <a href="https://scandiweb.com/blog/shopify-markets/" target="_blank" rel="noopener">Shopify Markets</a> setup.</p>



<p class="wp-block-paragraph">Plus removes the cap and lets you assign a catalog straight to one company location, which is how customer-specific pricing works on Shopify. For the wider differences in fees, checkout, and expansion stores, see our comparison of <a href="https://scandiweb.com/blog/shopify-vs-shopify-plus/" target="_blank" rel="noopener">Shopify vs Shopify Plus</a>, and check <a href="https://www.shopify.com/plus/pricing" target="_blank" rel="noopener">Shopify&#8217;s pricing page</a> for the current Plus fee.</p>



<style>  .box-new {    background-color: #f8f4ef;    padding: 20px 30px 30px 30px; /* top, right, bottom, left */    border: none;  }  .box-new p {    margin-top: 0;    margin-bottom: 1em;  }  .box-new p:last-child {    margin-bottom: 0;  }</style><div class="box-new">  <p><strong>🚀 Quick takeaway</strong></p>  <p>Your plan depends on whether prices are set per tier or per customer. Up to three tiers fit Grow or Advanced, and per-customer pricing needs Plus.</p></div>



<h2 class="wp-block-heading">Company accounts and buyer roles</h2>



<p class="wp-block-paragraph">Company accounts are where Shopify B2B wholesale starts. You create a company in the admin, invite buyers by email, or let them apply through a request form on your store. Existing retail customers and their order history can be moved into a company, which helps when trade buyers have been ordering through your normal checkout with discount codes.</p>



<h3 class="wp-block-heading">How companies, locations, and buyers fit together</h3>



<p class="wp-block-paragraph">Each company can have up to 10,000 locations and 10,000 customers. Each location can have up to 50 customers with permissions on it. The 50-buyer cap rarely matters for a small wholesaler, but it does for a national account where every site manager orders for the same distribution center.</p>



<p class="wp-block-paragraph">Buyers sign in through Shopify&#8217;s customer accounts, and that login is what shows them wholesale prices, their catalogs, and their payment terms. If you use a corporate login provider, Shopify supports third-party identity providers through OpenID Connect.</p>



<h3 class="wp-block-heading">Buyer roles and order approvals</h3>



<p class="wp-block-paragraph">As of October 2026, Shopify has two B2B buyer roles per location.</p>



<ul class="wp-block-list">
<li><strong>Ordering only:</strong> places orders for the location and sees their own orders, which is the default for a new contact</li>


<li><strong>Location admin:</strong> places orders, sees every order for the location, edits its shipping and billing addresses, reorders, and submits returns</li>

</ul>



<p class="wp-block-paragraph">There are no custom buyer roles. You can&#8217;t create a &#8220;requester&#8221; who builds a cart for a manager to approve, or a finance user who sees invoices without ordering. Shopify&#8217;s developer community has an open feature request for custom roles, and Shopify staff have acknowledged the gap.</p>



<p class="wp-block-paragraph">Approvals work at the merchant level instead. You can set a location to &#8220;Submit all orders as drafts for review&#8221;, and its buyers then see a &#8220;Submit for approval&#8221; button at checkout instead of paying. In this flow your team approves the order. If the buyer&#8217;s own manager has to sign off first, you need an app or custom work.</p>



<div class="wp-block-image aligncenter size-large"><figure class="aligncenter size-large"><img loading="lazy" decoding="async" loading="lazy" width="1672" height="941" src="https://scandiweb.com/blog/wp-content/uploads/2026/10/shopify-b2b-checkout-net-30-submit-for-approval.png" alt="Shopify B2B checkout for a company buyer with a PO number, Net 30 payment terms and a Submit for approval button" class="wp-image-26083" style="display:block;margin:0 auto;max-width:100%;height:auto;" srcset="https://scandiweb.com/blog/wp-content/uploads/2026/10/shopify-b2b-checkout-net-30-submit-for-approval.png 1672w, https://scandiweb.com/blog/wp-content/uploads/2026/10/shopify-b2b-checkout-net-30-submit-for-approval-300x169.png 300w, https://scandiweb.com/blog/wp-content/uploads/2026/10/shopify-b2b-checkout-net-30-submit-for-approval-1024x576.png 1024w, https://scandiweb.com/blog/wp-content/uploads/2026/10/shopify-b2b-checkout-net-30-submit-for-approval-150x84.png 150w, https://scandiweb.com/blog/wp-content/uploads/2026/10/shopify-b2b-checkout-net-30-submit-for-approval-768x432.png 768w, https://scandiweb.com/blog/wp-content/uploads/2026/10/shopify-b2b-checkout-net-30-submit-for-approval-1536x864.png 1536w, https://scandiweb.com/blog/wp-content/uploads/2026/10/shopify-b2b-checkout-net-30-submit-for-approval-1600x900.png 1600w" sizes="auto, (max-width: 1672px) 100vw, 1672px" /><figcaption style="display:block;position:static;background:none;color:inherit;width:auto;padding:8px 0 0;margin:0.5em 0 1em;font-size:14px;text-align:center;max-height:none;">A Shopify B2B checkout with Net 30 terms and draft review switched on</figcaption></figure></div>



<h2 class="wp-block-heading">How Shopify B2B pricing works: catalogs and price lists</h2>



<p class="wp-block-paragraph">Shopify B2B pricing runs through catalogs. A catalog sets which products a company location can see and what it pays, using either an overall percentage adjustment, such as 30% off retail, or fixed prices per product or variant. Fixed prices override the percentage. When a location has several catalogs that price the same product, the buyer sees the lowest price.</p>



<p class="wp-block-paragraph">In the API, every catalog has one price list and one product publication, and a location can carry up to 25 catalogs. A buyer who qualifies for a &#8220;distributor&#8221; catalog and a &#8220;spring promotion&#8221; catalog gets whichever price is lower. If your contract says a key account pays a fixed net price that never stacks with promotions, Shopify won&#8217;t enforce that by itself. You have to design the catalogs so the overlap never happens.</p>



<div class="wp-block-image aligncenter size-large"><figure class="aligncenter size-large"><img loading="lazy" decoding="async" loading="lazy" width="1672" height="941" src="https://scandiweb.com/blog/wp-content/uploads/2026/10/shopify-b2b-catalog-price-resolution-lowest-price.png" alt="Diagram of a product priced in three Shopify B2B catalogs, with the lowest price of $70 shown to the buyer" class="wp-image-26084" style="display:block;margin:0 auto;max-width:100%;height:auto;" srcset="https://scandiweb.com/blog/wp-content/uploads/2026/10/shopify-b2b-catalog-price-resolution-lowest-price.png 1672w, https://scandiweb.com/blog/wp-content/uploads/2026/10/shopify-b2b-catalog-price-resolution-lowest-price-300x169.png 300w, https://scandiweb.com/blog/wp-content/uploads/2026/10/shopify-b2b-catalog-price-resolution-lowest-price-1024x576.png 1024w, https://scandiweb.com/blog/wp-content/uploads/2026/10/shopify-b2b-catalog-price-resolution-lowest-price-150x84.png 150w, https://scandiweb.com/blog/wp-content/uploads/2026/10/shopify-b2b-catalog-price-resolution-lowest-price-768x432.png 768w, https://scandiweb.com/blog/wp-content/uploads/2026/10/shopify-b2b-catalog-price-resolution-lowest-price-1536x864.png 1536w, https://scandiweb.com/blog/wp-content/uploads/2026/10/shopify-b2b-catalog-price-resolution-lowest-price-1600x900.png 1600w" sizes="auto, (max-width: 1672px) 100vw, 1672px" /><figcaption style="display:block;position:static;background:none;color:inherit;width:auto;padding:8px 0 0;margin:0.5em 0 1em;font-size:14px;text-align:center;max-height:none;">When catalogs overlap, Shopify B2B shows the buyer the lowest price</figcaption></figure></div>



<p class="wp-block-paragraph">The other pricing tools stack on top of catalogs.</p>



<ul class="wp-block-list">
<li><strong>Quantity rules:</strong> a minimum, maximum, or increment per variant, such as cases of 12</li>


<li><strong>Volume pricing:</strong> up to 10 price breaks per product within a catalog, such as $8 each from 100 units</li>


<li><strong>B2B discounts:</strong> automatic discounts or codes limited to B2B markets, and custom discount logic through Shopify Functions</li>


<li><strong>Price lists by CSV:</strong> fixed prices import and export per catalog, which is how most teams load prices from an ERP before an integration exists</li>

</ul>



<p class="wp-block-paragraph">Most wholesalers keep their prices in an ERP. Once you pass a few thousand fixed prices that change every month, the CSV routine becomes a weekly chore, and that&#8217;s the point where teams connect the ERP to Shopify&#8217;s B2B APIs. Our <a href="https://scandiweb.com/shopify-services/integrations" target="_blank" rel="noopener">Shopify integrations</a> work usually starts with exactly that price sync.</p>



<style>  .box-new {    background-color: #f8f4ef;    padding: 20px 30px 30px 30px; /* top, right, bottom, left */    border: none;  }  .box-new p {    margin-top: 0;    margin-bottom: 1em;  }  .box-new p:last-child {    margin-bottom: 0;  }</style><div class="box-new">  <p><strong>🚀 Quick takeaway</strong></p>  <p>Every B2B price on Shopify comes from a catalog, and when catalogs overlap the lowest price wins. Contract pricing works when you design the catalogs so they never overlap on the same product.</p></div>



<h2 class="wp-block-heading">Payment terms, net terms, and draft orders</h2>



<p class="wp-block-paragraph">Shopify B2B payment terms are set per company location: due immediately, Net 7, 15, 30, 45, 60, or 90, or due on fulfillment. Terms start on the day the order is placed. Draft orders can also use a fixed due date. Buyers can pay early from their customer account, and unpaid orders turn overdue when the terms run out.</p>



<h3 class="wp-block-heading">What the payment settings do and don&#8217;t do</h3>



<p class="wp-block-paragraph">Three details catch finance teams out.</p>



<ul class="wp-block-list">
<li><strong>Nothing is charged automatically when terms expire.</strong> If a buyer has a card saved on file, your team still charges it manually in the admin</li>


<li><strong>There&#8217;s no native credit limit.</strong> Shopify doesn&#8217;t stop a buyer on Net 30 from placing a new order while an old one is overdue, so credit control stays in your ERP, an app, or a manual check</li>


<li><strong>Deposits are Plus only.</strong> A percentage deposit at checkout, or on a draft order, needs Shopify Plus, and it&#8217;s calculated on the subtotal only</li>

</ul>



<p class="wp-block-paragraph">Payment reminders on the due date run through Shopify Flow. ACH payments are available in the US. If terms should change by order value or cart contents, you can build that with the Payment Customization Function or a third-party app.</p>



<h3 class="wp-block-heading">Shopify draft orders as quotes</h3>



<p class="wp-block-paragraph">Shopify has no quote-request button. Draft orders do that job. A sales rep creates a draft for a company location, sets a custom price on any line, locks the prices, and sends it as an invoice. The buyer pays by card or accepts the terms, and the draft becomes an order. Price locks keep the quoted prices fixed even if the catalog changes, though they don&#8217;t work on product bundles.</p>



<p class="wp-block-paragraph">The &#8220;checkout to draft&#8221; setting from the roles section turns any cart into a draft for review, which covers &#8220;send us your order and we&#8217;ll confirm prices and freight&#8221;. It doesn&#8217;t cover back-and-forth negotiation in the storefront, where a buyer asks for a better price on 500 units and your team counters. That workflow needs a quote app or custom development on top of draft orders.</p>



<style>  .box-new {    background-color: #f8f4ef;    padding: 20px 30px 30px 30px; /* top, right, bottom, left */    border: none;  }  .box-new p {    margin-top: 0;    margin-bottom: 1em;  }  .box-new p:last-child {    margin-bottom: 0;  }</style><div class="box-new">  <p><strong>🚀 Quick takeaway</strong></p>  <p>Net terms on Shopify set a due date and nothing more. If your finance team needs credit limits and order holds, decide which system enforces them before launch.</p></div>



<h2 class="wp-block-heading">Where Shopify B2B runs out</h2>



<p class="wp-block-paragraph">The native feature set covers standard wholesale well: tiered prices, case quantities, net terms, reorders, and a clean checkout. It runs out at the edges that make B2B different from retail, mainly per-customer pricing at scale, negotiation, buyer-side approvals, credit control, and ERP-owned catalogs.</p>



<figure class="wp-block-table"><table><thead><tr><th>Limit</th><th>What happens</th><th>Fix</th></tr></thead><tbody><tr><td>3 catalogs on Basic, Grow, and Advanced</td><td>No room for per-customer price lists</td><td>Upgrade to Plus, or group customers into 3 tiers</td></tr><tr><td>Lowest price wins across catalogs</td><td>Promotions undercut contract prices</td><td>Design non-overlapping catalogs, or move logic to Shopify Functions</td></tr><tr><td>No quote negotiation</td><td>Buyers email for prices on large orders</td><td>Draft orders plus a quote app or admin extension</td></tr><tr><td>Two buyer roles only</td><td>No requester, approver, or finance-only user</td><td>B2B portal app or custom customer account extension</td></tr><tr><td>No credit limits</td><td>Overdue buyers keep ordering</td><td>ERP check through an app or Shopify Flow</td></tr><tr><td>ERP owns prices, stock, and customers</td><td>Manual CSV updates and mismatched prices</td><td>Middleware or custom integration to the B2B APIs</td></tr><tr><td>Shopify Scripts retired on 30 June 2026</td><td>Old wholesale pricing scripts stopped running</td><td>Rebuild them as Shopify Functions</td></tr></tbody></table><figcaption class="wp-element-caption">Shopify B2B limits and the usual workarounds</figcaption></figure>



<p class="wp-block-paragraph">Two of these come up in nearly every B2B project on Shopify that we scope. The first is per-customer pricing on a non-Plus plan, which usually decides the plan. The second is the ERP. If customer accounts, price agreements, and stock live in an ERP, Shopify becomes the ordering layer on top of it, and the integration is the real project.</p>



<p class="wp-block-paragraph">The old Shopify Plus Wholesale channel closed on 30 April 2024, so any setup guide that still mentions &#8220;the wholesale channel&#8221; describes a retired product.</p>



<h2 class="wp-block-heading">How teams fill the gaps: apps, Functions, and ERP integration</h2>



<p class="wp-block-paragraph">Most B2B stores on Shopify close the gaps with a mix of four kinds of tools. The right mix depends on how much of your B2B logic you want inside Shopify.</p>



<ol class="wp-block-list">
<li><strong>Shopify B2B apps</strong> add quotes, credit limits, buyer portals, and registration flows. They&#8217;re the fastest route, but each one adds a monthly fee and its own data model, so check how they handle catalogs and company locations before you install two that overlap</li>


<li><strong>Shopify Functions</strong> replace the retired Scripts for discounts, payment methods, delivery options, and cart validation. Use them for rules like &#8220;hide Net 60 for orders under $2,000&#8221; or &#8220;block checkout below the case quantity&#8221;</li>


<li><strong>Checkout and customer account extensions</strong> change what buyers see, such as a custom approval screen or an account page that shows open invoices from your ERP</li>


<li><strong>ERP integration</strong> syncs companies, locations, catalogs, prices, stock, and orders through Shopify&#8217;s B2B APIs, either with a connector or a custom service. Our guide to <a href="https://scandiweb.com/blog/ecommerce-erp-integration/" target="_blank" rel="noopener">eCommerce ERP integration</a> covers how to scope it</li>

</ol>



<p class="wp-block-paragraph">Our advice is to keep the source of truth where it already is, usually the ERP, and let Shopify display prices and collect orders based on what the ERP decides. Teams that rebuild ERP pricing logic in Shopify apps end up maintaining it twice. When the fill list grows past a few apps and a pricing sync, it&#8217;s worth scoping it as a <a href="https://scandiweb.com/shopify-services/development" target="_blank" rel="noopener">Shopify development</a> project before launch rather than adding pieces after it.</p>



<style>  .box-new {    background-color: #f8f4ef;    padding: 20px 30px 30px 30px; /* top, right, bottom, left */    border: none;  }  .box-new p {    margin-top: 0;    margin-bottom: 1em;  }  .box-new p:last-child {    margin-bottom: 0;  }</style><div class="box-new">  <p><strong>🚀 Quick takeaway</strong></p>  <p>Two apps and a price sync is a normal B2B setup on Shopify. Six apps plus custom approval logic usually means the platform choice deserves a second look.</p></div>



<h2 class="wp-block-heading">Shopify B2B vs Magento B2B: who should choose which</h2>



<p class="wp-block-paragraph">Choose Shopify B2B when your wholesale model is close to standard: tiered or customer-specific prices, case quantities, net terms, and buyers who mostly reorder. Choose Magento, in practice Adobe Commerce with its B2B module, when buyers negotiate quotes in the storefront, companies need custom roles and approval chains, or you need company credit lines inside the platform.</p>



<figure class="wp-block-table"><table><thead><tr><th>Capability</th><th>Shopify B2B</th><th>Adobe Commerce B2B</th></tr></thead><tbody><tr><td>Company accounts</td><td>Companies with locations</td><td>Companies with divisions and parent-child hierarchy</td></tr><tr><td>Buyer roles</td><td>2 fixed roles</td><td>Custom roles and permissions set by the company admin</td></tr><tr><td>Customer-specific prices</td><td>Plus, catalog per location</td><td>Shared catalogs per company</td></tr><tr><td>Quotes</td><td>Draft orders, quote apps</td><td>Native negotiable quotes</td></tr><tr><td>Purchase approvals</td><td>Merchant draft review</td><td>Purchase orders with approval rules</td></tr><tr><td>Credit limits</td><td>Not native</td><td>Company credit with Pay on Account</td></tr><tr><td>Reorder tools</td><td>Reorders, quick order list</td><td>Requisition lists, quick order by SKU</td></tr><tr><td>Hosting and upgrades</td><td>Managed by Shopify</td><td>Your team or partner, or Adobe&#8217;s cloud options</td></tr></tbody></table><figcaption class="wp-element-caption">Shopify B2B vs Adobe Commerce B2B compared</figcaption></figure>



<p class="wp-block-paragraph">Adobe Commerce covers more of the B2B workflow natively, which our overview of <a href="https://scandiweb.com/blog/top-9-adobe-commerce-b2b-features/" target="_blank" rel="noopener">Adobe Commerce B2B features</a> walks through feature by feature. You pay for that in license, <a href="https://scandiweb.com/blog/website-maintenance-cost/" target="_blank" rel="noopener">hosting, and development cost</a>. Shopify gives you less B2B logic but takes hosting, security patches, and checkout upkeep off your team.</p>



<div class="wp-block-image aligncenter size-large"><figure class="aligncenter size-large"><img loading="lazy" decoding="async" loading="lazy" width="1672" height="941" src="https://scandiweb.com/blog/wp-content/uploads/2026/10/shopify-b2b-vs-magento-b2b-capabilities.png" alt="Comparison grid of Shopify B2B and Adobe Commerce B2B features with native, app, and custom markers for each" class="wp-image-26085" style="display:block;margin:0 auto;max-width:100%;height:auto;" srcset="https://scandiweb.com/blog/wp-content/uploads/2026/10/shopify-b2b-vs-magento-b2b-capabilities.png 1672w, https://scandiweb.com/blog/wp-content/uploads/2026/10/shopify-b2b-vs-magento-b2b-capabilities-300x169.png 300w, https://scandiweb.com/blog/wp-content/uploads/2026/10/shopify-b2b-vs-magento-b2b-capabilities-1024x576.png 1024w, https://scandiweb.com/blog/wp-content/uploads/2026/10/shopify-b2b-vs-magento-b2b-capabilities-150x84.png 150w, https://scandiweb.com/blog/wp-content/uploads/2026/10/shopify-b2b-vs-magento-b2b-capabilities-768x432.png 768w, https://scandiweb.com/blog/wp-content/uploads/2026/10/shopify-b2b-vs-magento-b2b-capabilities-1536x864.png 1536w, https://scandiweb.com/blog/wp-content/uploads/2026/10/shopify-b2b-vs-magento-b2b-capabilities-1600x900.png 1600w" sizes="auto, (max-width: 1672px) 100vw, 1672px" /><figcaption style="display:block;position:static;background:none;color:inherit;width:auto;padding:8px 0 0;margin:0.5em 0 1em;font-size:14px;text-align:center;max-height:none;">Shopify B2B vs Magento B2B: which features are native on each platform</figcaption></figure></div>



<p class="wp-block-paragraph"><strong>Choose Shopify B2B if</strong></p>



<ul class="wp-block-list">
<li>You sell to a few price tiers, or to named accounts you can fit into Plus catalogs</li>


<li>Your buyers mostly reorder known products at agreed prices</li>


<li>You run retail and wholesale from the same catalog and want one admin</li>


<li>Credit control and invoicing already happen in your ERP or accounting system</li>


<li>You&#8217;d rather not run hosting, <a href="https://scandiweb.com/blog/magento-end-of-life/" target="_blank" rel="noopener">upgrades, and security patches</a> yourself</li>

</ul>



<p class="wp-block-paragraph"><strong>Choose Magento B2B if</strong></p>



<ul class="wp-block-list">
<li>Your buyers negotiate prices on large orders in the storefront</li>


<li>Customer companies need their own roles, budgets, and approval chains</li>


<li>You extend credit lines and want them enforced at checkout</li>


<li>Your catalog, pricing, or ordering flow depends on custom logic your competitors don&#8217;t have</li>


<li>You already run Magento with deep ERP integration that works</li>

</ul>



<p class="wp-block-paragraph">If you&#8217;re on Magento today and weighing the move, our guide to <a href="https://scandiweb.com/blog/magento-to-shopify-migration/" target="_blank" rel="noopener">Magento to Shopify migration</a> covers costs, data, and how to decide. If the answer is to stay, our <a href="https://scandiweb.com/magento-b2b" target="_blank" rel="noopener">Magento B2B development</a> team builds and extends Adobe Commerce B2B stores.</p>



<h2 class="wp-block-heading">Frequently asked questions about Shopify B2B</h2>



<h3 class="wp-block-heading">Is Shopify B2B only available on Shopify Plus?</h3>



<p class="wp-block-paragraph">No. Since 2 April 2026, it&#8217;s available on the Basic, Grow, Advanced, and Plus plans. Non-Plus plans get company accounts, up to three B2B catalogs, quantity rules, volume pricing, and payment terms. Plus adds unlimited catalogs, catalogs assigned to individual company locations, deposits, and partial payments. Starter and Retail plans don&#8217;t include B2B.</p>



<h3 class="wp-block-heading">How much does Shopify B2B cost?</h3>



<p class="wp-block-paragraph">There&#8217;s no separate fee for B2B. The features are included in your Shopify plan, from Basic up to Plus, and Shopify&#8217;s pricing page lists the current plan fees. The real costs are usually elsewhere: B2B apps for quotes or credit limits, an ERP integration, and Plus itself if you need customer-specific pricing.</p>



<h3 class="wp-block-heading">Can Shopify B2B handle quotes?</h3>



<p class="wp-block-paragraph">Partly. Shopify has no native quote-request button, but draft orders work as quotes. Your team sets custom line prices, locks them, and sends the draft as an invoice the buyer can pay or accept on terms. For buyers to request and negotiate quotes in the storefront, you need a quote app or custom development.</p>



<h3 class="wp-block-heading">Can you sell B2B and B2C on one Shopify store?</h3>



<p class="wp-block-paragraph">Yes. A blended store serves retail shoppers and logged-in business buyers from the same storefront, catalog, and checkout. B2B buyers see their own catalogs, prices, and payment terms after they log in. On Advanced and Plus, you can also show different content and checkout options to B2B buyers.</p>



<h3 class="wp-block-heading">Does Shopify B2B support credit limits?</h3>



<p class="wp-block-paragraph">No, not natively. Shopify supports net payment terms, but it doesn&#8217;t track a credit limit or block new orders when a buyer has overdue invoices. Merchants usually handle credit control in their ERP or accounting system and connect it to Shopify, or add a B2B app that checks credit before checkout.</p>



<h3 class="wp-block-heading">Can Shopify B2B connect to an ERP?</h3>



<p class="wp-block-paragraph">Yes. Shopify&#8217;s B2B APIs let an ERP create and update companies, locations, catalogs, fixed prices, payment terms, and orders. Most wholesalers sync prices and stock from the ERP into Shopify and send orders back. You can use a ready-made connector for common ERPs or build a custom integration for ERPs with unusual pricing logic.</p>



<h2 class="wp-block-heading">Is Shopify B2B enough for your wholesale business?</h2>



<p class="wp-block-paragraph">Shopify B2B is now a real option on every plan from Basic to Plus, and for tiered pricing, case quantities, and net terms, it does the job without much custom work. Check three things before you commit: whether your prices are set per tier or per customer, where credit control lives, and how much of your ERP logic has to reach the storefront. The answers tell you which plan you need, which apps you&#8217;ll add, or whether Magento B2B or another <a href="https://scandiweb.com/blog/shopify-alternatives-buyers-guide/" target="_blank" rel="noopener">Shopify alternative</a> is the better fit. For what&#8217;s changing in wholesale buying more widely, see our <a href="https://scandiweb.com/blog/b2b-ecommerce-trends/" target="_blank" rel="noopener">B2B eCommerce trends</a>, and once the store is live, our <a href="https://scandiweb.com/blog/b2b-seo/" target="_blank" rel="noopener">B2B SEO guide</a> covers how buyers find it.</p>



<script type="application/ld+json">{"@context": "https://schema.org", "@type": "FAQPage", "mainEntity": [{"@type": "Question", "name": "Is Shopify B2B only available on Shopify Plus?", "acceptedAnswer": {"@type": "Answer", "text": "No. Since 2 April 2026, it's available on the Basic, Grow, Advanced, and Plus plans. Non-Plus plans get company accounts, up to three B2B catalogs, quantity rules, volume pricing, and payment terms. Plus adds unlimited catalogs, catalogs assigned to individual company locations, deposits, and partial payments. Starter and Retail plans don't include B2B."}}, {"@type": "Question", "name": "How much does Shopify B2B cost?", "acceptedAnswer": {"@type": "Answer", "text": "There's no separate fee for B2B. The features are included in your Shopify plan, from Basic up to Plus, and Shopify's pricing page lists the current plan fees. The real costs are usually elsewhere: B2B apps for quotes or credit limits, an ERP integration, and Plus itself if you need customer-specific pricing."}}, {"@type": "Question", "name": "Can Shopify B2B handle quotes?", "acceptedAnswer": {"@type": "Answer", "text": "Partly. Shopify has no native quote-request button, but draft orders work as quotes. Your team sets custom line prices, locks them, and sends the draft as an invoice the buyer can pay or accept on terms. For buyers to request and negotiate quotes in the storefront, you need a quote app or custom development."}}, {"@type": "Question", "name": "Can you sell B2B and B2C on one Shopify store?", "acceptedAnswer": {"@type": "Answer", "text": "Yes. A blended store serves retail shoppers and logged-in business buyers from the same storefront, catalog, and checkout. B2B buyers see their own catalogs, prices, and payment terms after they log in. On Advanced and Plus, you can also show different content and checkout options to B2B buyers."}}, {"@type": "Question", "name": "Does Shopify B2B support credit limits?", "acceptedAnswer": {"@type": "Answer", "text": "No, not natively. Shopify supports net payment terms, but it doesn't track a credit limit or block new orders when a buyer has overdue invoices. Merchants usually handle credit control in their ERP or accounting system and connect it to Shopify, or add a B2B app that checks credit before checkout."}}, {"@type": "Question", "name": "Can Shopify B2B connect to an ERP?", "acceptedAnswer": {"@type": "Answer", "text": "Yes. Shopify's B2B APIs let an ERP create and update companies, locations, catalogs, fixed prices, payment terms, and orders. Most wholesalers sync prices and stock from the ERP into Shopify and send orders back. You can use a ready-made connector for common ERPs or build a custom integration for ERPs with unusual pricing logic."}}]}</script>



<div style="height:20px" aria-hidden="true" class="wp-block-spacer"></div>



<p><style> p.box { border: 1px solid black; padding-top: 30px; padding-right: 30px; padding-bottom: 30px; padding-left: 30px; } </style> <p class="box"><em>Not sure whether your price lists and terms fit Shopify B2B or need Magento? </em><a href="https://scandiweb.com/contact" target="_blank" rel="noreferrer noopener"><em>Send us how your wholesale pricing works today</em></a><em>, and we&#x27;ll tell you what each platform would need to run it.</em></p></p>
<p>The post <a rel="nofollow" href="https://scandiweb.com/blog/shopify-b2b/">Shopify B2B Explained: Features, Plan Limits, and Workarounds</a> appeared first on <a rel="nofollow" href="https://scandiweb.com/blog">scandiweb</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Shopify Markets vs Expansion Stores: How to Sell in Multiple Countries</title>
		<link>https://scandiweb.com/blog/shopify-markets/</link>
		
		<dc:creator><![CDATA[Andres Reitsnik]]></dc:creator>
		<pubDate>Tue, 20 Oct 2026 16:00:00 +0000</pubDate>
				<category><![CDATA[Collection]]></category>
		<category><![CDATA[Shopify]]></category>
		<category><![CDATA[hreflang]]></category>
		<category><![CDATA[International]]></category>
		<category><![CDATA[international seo]]></category>
		<category><![CDATA[localization]]></category>
		<category><![CDATA[market expansion]]></category>
		<category><![CDATA[multi-store]]></category>
		<category><![CDATA[Shopify Markets]]></category>
		<category><![CDATA[Shopify Plus]]></category>
		<guid isPermaLink="false">https://scandiweb.com/blog/?p=26113</guid>

					<description><![CDATA[<p>Shopify Markets or a store per country? See what Markets handles, when expansion stores win, and how currencies, VAT, and hreflang work.</p>
<p>The post <a rel="nofollow" href="https://scandiweb.com/blog/shopify-markets/">Shopify Markets vs Expansion Stores: How to Sell in Multiple Countries</a> appeared first on <a rel="nofollow" href="https://scandiweb.com/blog">scandiweb</a>.</p>
]]></description>
										<content:encoded><![CDATA[<div class="lazyblock-related-ShMk7 wp-block-lazyblock-related"><div class="related-services">
  <h3>Related Services</h3>
  <ul>
    
    <li>
      <a  href="https://scandiweb.com/shopify-services/consulting" target=_blank >
        Shopify Consulting
      </a>
    </li>
    
    <li>
      <a  href="https://scandiweb.com/shopify-services/shopify-plus" target=_blank >
        Shopify Plus Development
      </a>
    </li>
    
    <li>
      <a  href="https://scandiweb.com/shopify-services/seo" target=_blank >
        Shopify SEO
      </a>
    </li>
    
  </ul>
</div>
</div>


<p class="wp-block-paragraph">If you&#8217;re <a href="https://scandiweb.com/blog/ecommerce-market-research-guide/">adding a new country</a> and someone on the team has asked whether that means a new Shopify store, or if you already run three country stores and wonder whether Shopify Markets could fold them back into one, this guide gives you the rules to decide. Markets lets one store sell to many countries with local currencies, prices, languages, domains, and duties. Expansion stores are separate Shopify Plus stores under one organization, each with its own admin, catalog, and checkout.</p>



<p class="wp-block-paragraph">Most brands should start with Markets. The ones that shouldn&#8217;t usually find out from their ERP or their catalog, months before the storefront shows a problem. Shopify updates Markets several times a year, so the plan limits below are the ones in Shopify&#8217;s help center in October 2026.</p>



<h2 class="wp-block-heading">Shopify Markets or expansion stores: the short answer</h2>



<p class="wp-block-paragraph">Use Shopify Markets when every country sells mostly the same products, run by one team, and the differences are currency, price, language, domain, and duties. Markets handles all of those inside one store. Use expansion stores when a country needs its own catalog structure, its own apps or checkout, its own ERP company, or a team that works apart from the others. Expansion stores need Shopify Plus, which includes nine of them.</p>



<p class="wp-block-paragraph">In the client conversations we track, two questions come up again and again: &#8220;Markets or a separate store per country?&#8221; and &#8220;How do we handle currencies, VAT, and languages?&#8221; The answer to the second one usually settles the first. Once you know what Markets can localize inside one store, whatever is left over is the case for a second store.</p>



<h2 class="wp-block-heading">What Shopify Markets handles inside one store</h2>



<p class="wp-block-paragraph">Shopify Markets groups customers by country or region, B2B company, retail location, or sales channel, and changes what each group sees. Inside one store you can set local currencies, catalogs with adjusted or fixed prices, languages, a domain or subfolder, and how duties and taxes appear at checkout. Creating regional markets is free on every Shopify plan. A few settings, such as a different theme per market, need the Advanced or Plus plan.</p>



<p class="wp-block-paragraph">Each market has conditions (who it applies to) and customizations (what they see). A submarket, such as Germany inside a Europe market, inherits its parent&#8217;s settings and can override them. Shoppers who match no market get your backup region, which is your store&#8217;s home country by default, according to Shopify&#8217;s <a href="https://help.shopify.com/en/manual/markets/getting-started/overview" target="_blank" rel="noopener">Markets overview</a>.</p>



<figure class="wp-block-table"><table><thead><tr><th>Markets setting</th><th>What it changes</th><th>Plan notes</th></tr></thead><tbody><tr><td>Currency</td><td>Local prices with automatic or manual exchange rates and optional rounding</td><td>Needs Shopify Payments or Adyen to charge in local currency</td></tr><tr><td>Catalogs</td><td>Which products a market can buy, percentage price changes, fixed prices per product</td><td>All plans. B2B: 3 active catalogs on Basic, Grow, and Advanced</td></tr><tr><td>Languages</td><td>Translated storefront and checkout</td><td>Up to 20 languages, 30 on Plus</td></tr><tr><td>Domains</td><td>Subfolder, subdomain, or separate domain per market</td><td>All plans</td></tr><tr><td>Duties and taxes</td><td>Tax-inclusive prices, duties at checkout or included in the price</td><td>Transaction fee when duties are calculated</td></tr><tr><td>Theme and checkout</td><td>Theme content and checkout pages per market</td><td>Advanced and Plus. Checkout blocks per market on Plus only</td></tr><tr><td>Business entities</td><td>Which legal entity takes payment in a market</td><td>Plus only, with several Shopify Payments accounts</td></tr></tbody></table><figcaption class="wp-element-caption">What Shopify Markets can change per market, with plan notes</figcaption></figure>



<div class="wp-block-image aligncenter size-large"><figure class="aligncenter size-large"><img loading="lazy" decoding="async" loading="lazy" width="1672" height="941" src="https://scandiweb.com/blog/wp-content/uploads/2026/10/shopify-markets-admin-market-list.png" alt="Shopify Markets admin list showing Europe, UK, US and B2B markets with currencies, subfolders and languages per market" class="wp-image-26108" style="display:block;margin:0 auto;max-width:100%;height:auto;" srcset="https://scandiweb.com/blog/wp-content/uploads/2026/10/shopify-markets-admin-market-list.png 1672w, https://scandiweb.com/blog/wp-content/uploads/2026/10/shopify-markets-admin-market-list-300x169.png 300w, https://scandiweb.com/blog/wp-content/uploads/2026/10/shopify-markets-admin-market-list-1024x576.png 1024w, https://scandiweb.com/blog/wp-content/uploads/2026/10/shopify-markets-admin-market-list-150x84.png 150w, https://scandiweb.com/blog/wp-content/uploads/2026/10/shopify-markets-admin-market-list-768x432.png 768w, https://scandiweb.com/blog/wp-content/uploads/2026/10/shopify-markets-admin-market-list-1536x864.png 1536w, https://scandiweb.com/blog/wp-content/uploads/2026/10/shopify-markets-admin-market-list-1600x900.png 1600w" sizes="auto, (max-width: 1672px) 100vw, 1672px" /><figcaption style="display:block;position:static;background:none;color:inherit;width:auto;padding:8px 0 0;margin:0.5em 0 1em;font-size:14px;text-align:center;max-height:none;">One Shopify store with Markets: each market gets its own currency, URL, and language</figcaption></figure></div>



<h3 class="wp-block-heading">Currencies and prices across markets</h3>



<p class="wp-block-paragraph">To charge shoppers in their own currency, your store has to use <a href="https://scandiweb.com/blog/adyen-vs-stripe/">Shopify Payments or Adyen</a>. With any other payment provider, customers pay in your store currency. Automatic exchange rates follow the market rate and build Shopify&#8217;s conversion fee, 1.5% or 2% depending on where your store is based, into the price the shopper sees. Manual rates hold a price in place and take the fee from your payouts instead. Rounding turns a converted €9.73 into €10.00, per Shopify&#8217;s <a href="https://help.shopify.com/en/manual/markets/customizations/local-currencies" target="_blank" rel="noopener">currency guide</a>.</p>



<p class="wp-block-paragraph">Exchange rates don&#8217;t set your price positioning. Catalogs do. A catalog decides which products a market can buy and lets you raise or lower every price in it by a percentage. You can then set a fixed price on individual products, which is how a €49 price in Germany and a £45 price in the UK stay put when the exchange rate moves.</p>



<h3 class="wp-block-heading">Duties, taxes, and VAT</h3>



<p class="wp-block-paragraph">Each market has its own tax display. Shopify can show tax-inclusive prices where shoppers expect them, such as the EU and Australia, and add tax at checkout in the US and Canada. Before Shopify collects VAT or sales tax for a market, you need to add your tax registration for the regions in it. Markets calculates and displays the tax, and the registration and filing stay with you.</p>



<p class="wp-block-paragraph">Duties are also set per market. You can add them at checkout as a line item, or include them in your prices and absorb them. Accurate estimates need an HS code and a country of origin on every product. Calculating duties at checkout carries a transaction fee: temporarily 0.5% since February 2, 2025, against a standard 0.85% when Shopify Payments is your main gateway and 1.5% with other providers, according to Shopify&#8217;s <a href="https://help.shopify.com/en/manual/international/duties-and-import-taxes/charging-duties" target="_blank" rel="noopener">duties guide</a>.</p>



<h3 class="wp-block-heading">Domains, subfolders, and languages</h3>



<p class="wp-block-paragraph">Every market can run on a subfolder (yourstore.com/de/), a subdomain (de.yourstore.com), or its own domain (yourstore.de). You can sell in up to 20 languages on Basic, Grow, and Advanced, and up to 30 on Plus. Shopify&#8217;s Translate &amp; Adapt app machine-translates up to two languages for free and lets you change copy per market, for example British and American spelling.</p>



<p class="wp-block-paragraph">Shopify&#8217;s <a href="https://help.shopify.com/en/manual/international/languages/requirements" target="_blank" rel="noopener">language requirements</a> list two limits that catch teams out. Product, article, and blog tags can&#8217;t be translated. URL slugs can be translated per language but can&#8217;t be customized per market, so Germany and Austria on German share the same product URLs.</p>



<h3 class="wp-block-heading">B2B markets</h3>



<p class="wp-block-paragraph">B2B markets group company locations, so a wholesale buyer in France can see a different catalog from a retail shopper in France. On Basic, Grow, and Advanced you can assign up to 3 active catalogs across all your B2B markets, and Plus removes that cap. If your wholesale pricing runs on dozens of <a href="https://scandiweb.com/blog/shopify-b2b/">customer-specific price lists</a>, that cap decides your plan before it decides your store setup.</p>



<h3 class="wp-block-heading">What Shopify Managed Markets adds</h3>



<p class="wp-block-paragraph">Managed Markets, the product formerly called Markets Pro, makes Global-e the merchant of record in the countries you turn on. As the legal seller, Global-e collects and pays duties and taxes, so you don&#8217;t need a tax registration in each country, and it adds local payment methods. It&#8217;s open to merchants based in the continental US and to certain stores in Canada and the UK.</p>



<p class="wp-block-paragraph">Since August 24, 2026, Managed Markets no longer supports delivered duty unpaid (DDU) in countries where it supports delivered duty paid (DDP), according to Shopify&#8217;s <a href="https://changelog.shopify.com/posts/managed-markets-is-ending-delivered-duty-unpaid-ddu-support" target="_blank" rel="noopener">changelog</a>. Shoppers in those countries now pay duties at checkout instead of to the carrier. Shopify&#8217;s own pages quote different Managed Markets fees, so confirm the current rate with Shopify before you model margins.</p>



<style>  .box-new {    background-color: #f8f4ef;    padding: 20px 30px 30px 30px; /* top, right, bottom, left */    border: none;  }  .box-new p {    margin-top: 0;    margin-bottom: 1em;  }  .box-new p:last-child {    margin-bottom: 0;  }</style><div class="box-new">  <p><strong>🚀 Quick takeaway</strong></p>  <p>Most of what teams picture as a reason for a second store, such as euro prices, German copy, a .de domain, or VAT-inclusive pricing, is a market setting. Test your plan against Markets before anyone budgets a second theme build.</p></div>



<h2 class="wp-block-heading">Where one store with Markets stops working</h2>



<p class="wp-block-paragraph">One store with Markets stops working when countries need different things behind the storefront. The usual breaking points are regional catalogs with a different structure, apps or checkout logic that must differ by country, an ERP that runs each country as a separate company, and regional teams that need their own admin. Differences in price, language, and currency alone rarely justify a second store.</p>



<p class="wp-block-paragraph">Start with the catalog. Markets can hide products and change prices, but every market shares the same products, variants, options, and metafields. If your EU range uses different variant structures, product data, or compliance fields than your US range, one store forces a single catalog model on both ranges.</p>



<p class="wp-block-paragraph">Apps and checkout come next. Apps are installed once per store, so if the US needs <a href="https://scandiweb.com/blog/ecommerce-subscription-integration/">a subscription app</a> and Europe needs a different invoicing app, one store means running both for everyone and configuring around them. A theme customized per market needs Advanced or Plus, and checkout blocks per market need Plus.</p>



<p class="wp-block-paragraph">The back office is where most decisions are made. Many ERP setups run one company per country, and each company expects its own sales channel. On Plus, <a href="https://help.shopify.com/en/manual/markets/customizations/business-entities" target="_blank" rel="noopener">business entities</a> let a different legal entity take payment in each market from one store, which solves payouts. Orders, stock, and invoices still have to land in the right ERP company, and that mapping is integration work in either setup. Our <a href="https://scandiweb.com/blog/ecommerce-erp-integration/" target="_blank" rel="noopener">ERP integration guide</a> covers how to scope it.</p>



<p class="wp-block-paragraph">Teams are the last test. Shopify has no per-market staff permissions, so anyone who can edit markets can edit all of them. A regional team that should only touch its own prices and content has no clean boundary in a single store.</p>



<style>  .box-new {    background-color: #f8f4ef;    padding: 20px 30px 30px 30px; /* top, right, bottom, left */    border: none;  }  .box-new p {    margin-top: 0;    margin-bottom: 1em;  }  .box-new p:last-child {    margin-bottom: 0;  }</style><div class="box-new">  <p><strong>🚀 Quick takeaway</strong></p>  <p>Look at the back office before the storefront. If every country&#8217;s orders can go into one ERP company and one team runs merchandising, one store with Markets will cost less to run for years.</p></div>



<h2 class="wp-block-heading">When Shopify expansion stores make sense</h2>



<p class="wp-block-paragraph">Shopify expansion stores make sense when a country or channel needs its own catalog, apps, checkout, or team, and running another store costs less than bending one store around that need. On Shopify Plus, an organization can run one main store and nine expansion stores with no extra platform fee. Shopify pre-approves international stores, B2B wholesale stores, and physical retail stores as expansion store types.</p>



<p class="wp-block-paragraph">Each expansion store has its own settings, configuration, and storefront, while users and billing stay at the organization level. When you create one, you can import data such as products from another store in your organization. According to Shopify&#8217;s <a href="https://help.shopify.com/en/manual/organization-settings/expansion-stores" target="_blank" rel="noopener">expansion store guide</a>, that import is only possible at creation. After that you manage each store&#8217;s data yourself, which in practice means a PIM, an ERP, or a sync app.</p>



<p class="wp-block-paragraph">Shopify Plus costs $2,300 per month on a three-year term or $2,500 on a one-year term, and every store beyond the ten included adds $300 per month, per Shopify&#8217;s <a href="https://www.shopify.com/plus/pricing" target="_blank" rel="noopener">Plus pricing</a>. Our <a href="https://scandiweb.com/blog/shopify-vs-shopify-plus/" target="_blank" rel="noopener">Shopify vs Shopify Plus guide</a> covers what else changes when you upgrade.</p>



<div class="wp-block-image aligncenter size-large"><figure class="aligncenter size-large"><img loading="lazy" decoding="async" loading="lazy" width="1672" height="941" src="https://scandiweb.com/blog/wp-content/uploads/2026/10/shopify-markets-vs-expansion-stores-architecture.png" alt="Diagram comparing one Shopify store with three markets and one ERP link against a Plus organization with three expansion stores" class="wp-image-26109" style="display:block;margin:0 auto;max-width:100%;height:auto;" srcset="https://scandiweb.com/blog/wp-content/uploads/2026/10/shopify-markets-vs-expansion-stores-architecture.png 1672w, https://scandiweb.com/blog/wp-content/uploads/2026/10/shopify-markets-vs-expansion-stores-architecture-300x169.png 300w, https://scandiweb.com/blog/wp-content/uploads/2026/10/shopify-markets-vs-expansion-stores-architecture-1024x576.png 1024w, https://scandiweb.com/blog/wp-content/uploads/2026/10/shopify-markets-vs-expansion-stores-architecture-150x84.png 150w, https://scandiweb.com/blog/wp-content/uploads/2026/10/shopify-markets-vs-expansion-stores-architecture-768x432.png 768w, https://scandiweb.com/blog/wp-content/uploads/2026/10/shopify-markets-vs-expansion-stores-architecture-1536x864.png 1536w, https://scandiweb.com/blog/wp-content/uploads/2026/10/shopify-markets-vs-expansion-stores-architecture-1600x900.png 1600w" sizes="auto, (max-width: 1672px) 100vw, 1672px" /><figcaption style="display:block;position:static;background:none;color:inherit;width:auto;padding:8px 0 0;margin:0.5em 0 1em;font-size:14px;text-align:center;max-height:none;">Shopify Markets vs expansion stores: one store with markets, or one store per region</figcaption></figure></div>



<h3 class="wp-block-heading">What running multiple Shopify stores costs</h3>



<p class="wp-block-paragraph">The platform fee is the small part. Every store adds its own app subscriptions, theme releases, product and price updates, <a href="https://scandiweb.com/blog/server-side-tracking/">tracking setup</a>, and checks before each campaign. A change that takes one release on a store with Markets takes one per store, unless your theme is built once and deployed to all of them.</p>



<p class="wp-block-paragraph">Search adds a cost too. Each store on its own domain builds its own authority, and you add the hreflang between stores yourself, as the SEO section below explains.</p>



<h3 class="wp-block-heading">Can you have multiple Shopify stores without Plus?</h3>



<p class="wp-block-paragraph">Yes, but each store needs its own subscription. Outside Plus, store owners can group stores into an organization for shared management. Plus stores use expansion stores under one contract instead, according to Shopify&#8217;s <a href="https://help.shopify.com/en/manual/your-account/manage-orgs-and-stores/manage-orgs/group-store" target="_blank" rel="noopener">store grouping guide</a>.</p>



<figure class="wp-block-table"><table><thead><tr><th>Area</th><th>One store with Markets</th><th>Expansion stores</th></tr></thead><tbody><tr><td>Plan</td><td>Any plan, some settings on Advanced or Plus</td><td>Shopify Plus, 9 included</td></tr><tr><td>Catalog</td><td>One product set, availability and price per market</td><td>A separate catalog per store</td></tr><tr><td>Apps and checkout</td><td>One set for every market</td><td>Different per store</td></tr><tr><td>Content</td><td>Translations and market-specific copy</td><td>Separate themes and content</td></tr><tr><td>ERP and legal entity</td><td>One sales channel, business entities on Plus</td><td>One store per ERP company if needed</td></tr><tr><td>Hreflang</td><td>Generated by Shopify</td><td>Added by you across stores</td></tr><tr><td>Running cost</td><td>One store to maintain</td><td>Every change repeated per store</td></tr></tbody></table><figcaption class="wp-element-caption">One store with Shopify Markets vs Shopify expansion stores</figcaption></figure>



<style>  .box-new {    background-color: #f8f4ef;    padding: 20px 30px 30px 30px; /* top, right, bottom, left */    border: none;  }  .box-new p {    margin-top: 0;    margin-bottom: 1em;  }  .box-new p:last-child {    margin-bottom: 0;  }</style><div class="box-new">  <p><strong>🚀 Quick takeaway</strong></p>  <p>Nine included stores make expansion stores look free. In practice, each one adds its own app bills, plus another round of releases and catalog sync every time something changes.</p></div>



<h2 class="wp-block-heading">International SEO with Shopify Markets: hreflang, domains, and redirects</h2>



<p class="wp-block-paragraph">Shopify Markets generates hreflang tags automatically for every market that has its own subfolder, subdomain, or domain, plus an x-default tag that points to your primary domain. It also sets self-referencing canonical URLs and adds every market URL to your sitemap. Separate expansion stores don&#8217;t get this across stores, so hreflang between them has to be added in each theme or with an app.</p>



<p class="wp-block-paragraph">Shopify&#8217;s <a href="https://help.shopify.com/en/manual/markets/seo" target="_blank" rel="noopener">international SEO guide</a> recommends subfolders for most stores, because they share your primary domain&#8217;s authority and need no extra domains. Country domains send the strongest local signal, but each one has to earn its rankings separately. Some search engines treat subdomains as separate sites.</p>



<p class="wp-block-paragraph">After launch, check these settings in the theme and <a href="https://scandiweb.com/blog/duplicate-without-user-selected-canonical/">in Search Console</a>.</p>



<ul class="wp-block-list">
<li>Hreflang only appears for markets with a distinct URL, so a market that shares your main URL gets none</li>


<li>Turning off automatic hreflang to use your own can hurt SEO, and running both creates duplicate tags</li>


<li>Shoppers are redirected by IP address and browser language, while known search engine crawlers get the URL they asked for</li>

</ul>



<p class="wp-block-paragraph">Redirects that trap shoppers in the wrong country cause the problems we cover in <a href="https://scandiweb.com/blog/why-is-forced-geo-ip-redirects-bad-for-seo/" target="_blank" rel="noopener">why forced GEO IP redirects are bad for SEO</a>, so keep the country and language switcher visible. Our guide to <a href="https://scandiweb.com/blog/canonicals-and-hreflangs-for-international-store/" target="_blank" rel="noopener">hreflang and canonical tags for international stores</a> goes deeper into the tag rules.</p>



<div class="wp-block-image aligncenter size-large"><figure class="aligncenter size-large"><img loading="lazy" decoding="async" loading="lazy" width="1672" height="941" src="https://scandiweb.com/blog/wp-content/uploads/2026/10/shopify-markets-hreflang-url-structures.png" alt="Cards comparing subfolder, subdomain and country domain setups with sample hreflang and x-default link tags" class="wp-image-26110" style="display:block;margin:0 auto;max-width:100%;height:auto;" srcset="https://scandiweb.com/blog/wp-content/uploads/2026/10/shopify-markets-hreflang-url-structures.png 1672w, https://scandiweb.com/blog/wp-content/uploads/2026/10/shopify-markets-hreflang-url-structures-300x169.png 300w, https://scandiweb.com/blog/wp-content/uploads/2026/10/shopify-markets-hreflang-url-structures-1024x576.png 1024w, https://scandiweb.com/blog/wp-content/uploads/2026/10/shopify-markets-hreflang-url-structures-150x84.png 150w, https://scandiweb.com/blog/wp-content/uploads/2026/10/shopify-markets-hreflang-url-structures-768x432.png 768w, https://scandiweb.com/blog/wp-content/uploads/2026/10/shopify-markets-hreflang-url-structures-1536x864.png 1536w, https://scandiweb.com/blog/wp-content/uploads/2026/10/shopify-markets-hreflang-url-structures-1600x900.png 1600w" sizes="auto, (max-width: 1672px) 100vw, 1672px" /><figcaption style="display:block;position:static;background:none;color:inherit;width:auto;padding:8px 0 0;margin:0.5em 0 1em;font-size:14px;text-align:center;max-height:none;">Shopify Markets URL options and the hreflang tags Shopify adds for each market</figcaption></figure></div>



<style>  .box-new {    background-color: #f8f4ef;    padding: 20px 30px 30px 30px; /* top, right, bottom, left */    border: none;  }  .box-new p {    margin-top: 0;    margin-bottom: 1em;  }  .box-new p:last-child {    margin-bottom: 0;  }</style><div class="box-new">  <p><strong>🚀 Quick takeaway</strong></p>  <p>If you fold country stores into one store with Markets, treat it as a domain migration. Every old country URL needs a 301 redirect to its new subfolder before the switch, or you lose the rankings each store earned. Our <a href="https://scandiweb.com/blog/seo-migration-checklist/" target="_blank" rel="noopener">SEO migration checklist</a> covers the redirect map.</p></div>



<h2 class="wp-block-heading">How to choose between Shopify Markets and expansion stores</h2>



<p class="wp-block-paragraph">Start with one store and Markets, and add an expansion store only for the country or channel that fails a specific test: a different catalog structure, a different app or checkout setup, a separate ERP company that can&#8217;t share a sales channel, or a team that must work on its own. Most brands selling the same range in several countries stay on one store. Brands with regional ranges or a wholesale operation often run one store per region.</p>



<p class="wp-block-paragraph"><strong>Choose Shopify Markets if</strong></p>



<ul class="wp-block-list">
<li>You sell mostly the same products in every country</li>


<li>Your differences are currency, price, language, domain, and duties</li>


<li>One team runs merchandising and content for all markets</li>


<li>Your ERP can take orders from every country through one sales channel</li>


<li>You want Shopify to handle hreflang and market sitemaps</li>

</ul>



<p class="wp-block-paragraph"><strong>Choose Shopify expansion stores if</strong></p>



<ul class="wp-block-list">
<li>Your regional ranges differ in variants, product data, or compliance fields</li>


<li>A region needs apps or checkout logic the others shouldn&#8217;t run</li>


<li>Each country is a separate ERP company that needs its own sales channel</li>


<li>Regional teams need their own admin and release schedule</li>


<li>You run a wholesale store that shares products but not the buying experience</li>

</ul>



<div class="wp-block-image aligncenter size-large"><figure class="aligncenter size-large"><img loading="lazy" decoding="async" loading="lazy" width="1672" height="941" src="https://scandiweb.com/blog/wp-content/uploads/2026/10/shopify-markets-decision-flow.png" alt="Flowchart of four yes or no questions leading to one store with Shopify Markets or a new expansion store" class="wp-image-26111" style="display:block;margin:0 auto;max-width:100%;height:auto;" srcset="https://scandiweb.com/blog/wp-content/uploads/2026/10/shopify-markets-decision-flow.png 1672w, https://scandiweb.com/blog/wp-content/uploads/2026/10/shopify-markets-decision-flow-300x169.png 300w, https://scandiweb.com/blog/wp-content/uploads/2026/10/shopify-markets-decision-flow-1024x576.png 1024w, https://scandiweb.com/blog/wp-content/uploads/2026/10/shopify-markets-decision-flow-150x84.png 150w, https://scandiweb.com/blog/wp-content/uploads/2026/10/shopify-markets-decision-flow-768x432.png 768w, https://scandiweb.com/blog/wp-content/uploads/2026/10/shopify-markets-decision-flow-1536x864.png 1536w, https://scandiweb.com/blog/wp-content/uploads/2026/10/shopify-markets-decision-flow-1600x900.png 1600w" sizes="auto, (max-width: 1672px) 100vw, 1672px" /><figcaption style="display:block;position:static;background:none;color:inherit;width:auto;padding:8px 0 0;margin:0.5em 0 1em;font-size:14px;text-align:center;max-height:none;">Four questions that decide between Shopify Markets and an expansion store</figcaption></figure></div>



<p class="wp-block-paragraph">If your answers split down the middle, our <a href="https://scandiweb.com/shopify-services/consulting" target="_blank" rel="noopener">Shopify consulting</a> team can run an <a href="https://scandiweb.com/services/enterprise-architecture" target="_blank" rel="noopener">architecture review</a> that maps your catalog and ERP against each market before you commit.</p>



<h2 class="wp-block-heading">Frequently asked questions about Shopify Markets</h2>



<h3 class="wp-block-heading">What is Shopify Markets?</h3>



<p class="wp-block-paragraph">Shopify Markets is the part of the Shopify admin where you group customers by country, B2B company, retail location, or sales channel, and change what each group sees. Each market can have its own currency, catalog and prices, languages, domain or subfolder, and duty and tax settings, all inside one store. Creating regional markets is free on every Shopify plan.</p>



<h3 class="wp-block-heading">Is Shopify Markets free?</h3>



<p class="wp-block-paragraph">Creating regional markets is free on all Shopify plans, but selling through them has costs. Shopify Payments adds a 1.5% or 2% fee when it converts currency, and calculating duties at checkout carries a transaction fee. Translate &amp; Adapt machine-translates two languages for free, Managed Markets charges its own per-order fee, and some market settings need the Advanced or Plus plan.</p>



<h3 class="wp-block-heading">Is Shopify Managed Markets worth it?</h3>



<p class="wp-block-paragraph">Managed Markets is worth it when you want to sell into many countries without registering for tax in each one. Global-e becomes the merchant of record and handles duties, taxes, and local payment methods for you. It costs more per order than running Markets yourself, and it&#8217;s only open to merchants based in the continental US and certain stores in Canada and the UK.</p>



<h3 class="wp-block-heading">How many expansion stores do you get with Shopify Plus?</h3>



<p class="wp-block-paragraph">A Shopify Plus organization can have ten stores on its contract with no extra platform fee: one main store and nine expansion stores. Staging stores don&#8217;t count toward the limit. Each store beyond ten costs $300 per month or a revenue share. Shopify pre-approves international, B2B wholesale, and physical retail stores as expansion store types.</p>



<h3 class="wp-block-heading">Does Shopify Markets handle hreflang automatically?</h3>



<p class="wp-block-paragraph">Yes. Shopify generates hreflang tags for every market that has its own subfolder, subdomain, or domain, adds an x-default tag for your primary domain, and includes market URLs in your sitemap. Markets that share your main URL get no hreflang. Separate expansion stores don&#8217;t link to each other automatically, so cross-store hreflang has to be added in the theme or with an app.</p>



<h3 class="wp-block-heading">Can I move from separate Shopify stores to one store with Markets?</h3>



<p class="wp-block-paragraph">Yes, but plan it as a migration. Pick the store that stays, bring the other stores&#8217; products, customers, and translations into it, and set each former country store up as a market with its own subfolder or domain. Then map a 301 redirect from every old URL to its new address before you switch, so the rankings each store earned carry over.</p>



<h2 class="wp-block-heading">Choosing your Shopify Markets setup</h2>



<p class="wp-block-paragraph">For most brands, the right Shopify Markets setup is one store with a market per country or region. Expansion stores earn their running cost when the catalog, apps, ERP company, or team behind a country has to be different. Write down what each country needs before deciding, and plan the URL structure and hreflang with the first market.</p>



<p class="wp-block-paragraph">If you&#8217;re moving off Magento with several store views, our <a href="https://scandiweb.com/blog/magento-to-shopify-migration/" target="_blank" rel="noopener">Magento to Shopify migration</a> guide covers what you rebuild on the way. For the business questions that come before any platform setup, read our article on <a href="https://scandiweb.com/blog/factors-to-consider-before-international-expansion/" target="_blank" rel="noopener">factors to consider before international expansion</a>.</p>



<script type="application/ld+json">{"@context": "https://schema.org", "@type": "FAQPage", "mainEntity": [{"@type": "Question", "name": "What is Shopify Markets?", "acceptedAnswer": {"@type": "Answer", "text": "Shopify Markets is the part of the Shopify admin where you group customers by country, B2B company, retail location, or sales channel, and change what each group sees. Each market can have its own currency, catalog and prices, languages, domain or subfolder, and duty and tax settings, all inside one store. Creating regional markets is free on every Shopify plan."}}, {"@type": "Question", "name": "Is Shopify Markets free?", "acceptedAnswer": {"@type": "Answer", "text": "Creating regional markets is free on all Shopify plans, but selling through them has costs. Shopify Payments adds a 1.5% or 2% fee when it converts currency, and calculating duties at checkout carries a transaction fee. Translate & Adapt machine-translates two languages for free, Managed Markets charges its own per-order fee, and some market settings need the Advanced or Plus plan."}}, {"@type": "Question", "name": "Is Shopify Managed Markets worth it?", "acceptedAnswer": {"@type": "Answer", "text": "Managed Markets is worth it when you want to sell into many countries without registering for tax in each one. Global-e becomes the merchant of record and handles duties, taxes, and local payment methods for you. It costs more per order than running Markets yourself, and it's only open to merchants based in the continental US and certain stores in Canada and the UK."}}, {"@type": "Question", "name": "How many expansion stores do you get with Shopify Plus?", "acceptedAnswer": {"@type": "Answer", "text": "A Shopify Plus organization can have ten stores on its contract with no extra platform fee: one main store and nine expansion stores. Staging stores don't count toward the limit. Each store beyond ten costs $300 per month or a revenue share. Shopify pre-approves international, B2B wholesale, and physical retail stores as expansion store types."}}, {"@type": "Question", "name": "Does Shopify Markets handle hreflang automatically?", "acceptedAnswer": {"@type": "Answer", "text": "Yes. Shopify generates hreflang tags for every market that has its own subfolder, subdomain, or domain, adds an x-default tag for your primary domain, and includes market URLs in your sitemap. Markets that share your main URL get no hreflang. Separate expansion stores don't link to each other automatically, so cross-store hreflang has to be added in the theme or with an app."}}, {"@type": "Question", "name": "Can I move from separate Shopify stores to one store with Markets?", "acceptedAnswer": {"@type": "Answer", "text": "Yes, but plan it as a migration. Pick the store that stays, bring the other stores' products, customers, and translations into it, and set each former country store up as a market with its own subfolder or domain. Then map a 301 redirect from every old URL to its new address before you switch, so the rankings each store earned carry over."}}]}</script>



<div style="height:20px" aria-hidden="true" class="wp-block-spacer"></div>



<p><style> p.box { border: 1px solid black; padding-top: 30px; padding-right: 30px; padding-bottom: 30px; padding-left: 30px; } </style> <p class="box"><em>Planning a new country, or wondering whether your country stores should be one? </em><a href="https://scandiweb.com/contact" target="_blank" rel="noreferrer noopener"><em>Tell us what each market needs</em></a><em>, and we&#x27;ll tell you which setup fits.</em></p></p>
<p>The post <a rel="nofollow" href="https://scandiweb.com/blog/shopify-markets/">Shopify Markets vs Expansion Stores: How to Sell in Multiple Countries</a> appeared first on <a rel="nofollow" href="https://scandiweb.com/blog">scandiweb</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Klaviyo vs Mailchimp for eCommerce, and When Bloomreach Is Worth It</title>
		<link>https://scandiweb.com/blog/klaviyo-vs-mailchimp/</link>
		
		<dc:creator><![CDATA[Andres Reitsnik]]></dc:creator>
		<pubDate>Tue, 20 Oct 2026 07:00:00 +0000</pubDate>
				<category><![CDATA[Collection]]></category>
		<category><![CDATA[Digital Growth]]></category>
		<category><![CDATA[Platform Comparisons]]></category>
		<category><![CDATA[bloomreach]]></category>
		<category><![CDATA[cdp]]></category>
		<category><![CDATA[comparison]]></category>
		<category><![CDATA[eCommerce integrations]]></category>
		<category><![CDATA[email marketing]]></category>
		<category><![CDATA[klaviyo]]></category>
		<category><![CDATA[magento]]></category>
		<category><![CDATA[Mailchimp]]></category>
		<category><![CDATA[marketing automation]]></category>
		<category><![CDATA[Shopify]]></category>
		<guid isPermaLink="false">https://scandiweb.com/blog/?p=26100</guid>

					<description><![CDATA[<p>Klaviyo vs Mailchimp compared on pricing, Magento and Shopify integrations, flows and deliverability, plus when Bloomreach is worth it.</p>
<p>The post <a rel="nofollow" href="https://scandiweb.com/blog/klaviyo-vs-mailchimp/">Klaviyo vs Mailchimp for eCommerce, and When Bloomreach Is Worth It</a> appeared first on <a rel="nofollow" href="https://scandiweb.com/blog">scandiweb</a>.</p>
]]></description>
										<content:encoded><![CDATA[<div class="lazyblock-related-Kv7mC wp-block-lazyblock-related"><div class="related-services">
  <h3>Related Services</h3>
  <ul>
    
    <li>
      <a  href="https://scandiweb.com/email-marketing-services" target=_blank >
        Email Marketing
      </a>
    </li>
    
    <li>
      <a  href="https://scandiweb.com/services/marketing-automation" target=_blank >
        Marketing Automation
      </a>
    </li>
    
    <li>
      <a  href="https://scandiweb.com/magento-integrations/klaviyo" target=_blank >
        Magento Klaviyo Integration
      </a>
    </li>
    
  </ul>
</div>
</div>


<p class="wp-block-paragraph">Stores that ask us about Klaviyo vs Mailchimp have usually felt the gap already: the abandoned-cart flow that was never built, or the second store view that never synced. Most of them want to know two things. Is the move worth the migration work, and if the store keeps growing, is Bloomreach the next stop or an expensive detour?</p>



<p class="wp-block-paragraph">The answer turns on how much store data you have and how much of it you will put to work. List size mostly changes the bill.</p>



<h2 class="wp-block-heading">Klaviyo vs Mailchimp: the short answer</h2>



<p class="wp-block-paragraph">Klaviyo is the better fit for most eCommerce stores because it is built around store data: orders and browsing events from Shopify or Magento (Adobe Commerce) feed every segment and flow. Mailchimp is cheaper at the entry level and simpler for newsletter-led marketing, but its flows and audiences are capped by plan. Bloomreach fits large, multi-market retailers that want one customer profile behind email, on-site personalization, search, and ad audiences.</p>



<figure class="wp-block-table"><table><thead><tr><th></th><th>Klaviyo</th><th>Mailchimp</th><th>Bloomreach</th></tr></thead><tbody><tr><td>Best fit</td><td>eCommerce stores selling repeat purchases</td><td>Small stores, newsletter-led email</td><td>Large retailers, several markets and channels</td></tr><tr><td>Billed on</td><td>Active profiles</td><td>Contacts, unsubscribed included</td><td>Platform fee plus usage</td></tr><tr><td>Paid plans from</td><td>$20/month</td><td>$13/month</td><td>$60K+ a year for most brands</td></tr><tr><td>Free plan</td><td>250 profiles, 500 sends</td><td>250 contacts, 500 sends</td><td>None</td></tr><tr><td>Automation flows</td><td>Every plan, Free included</td><td>4 steps on Essentials, 200 flows on Standard+</td><td>Included</td></tr><tr><td>Predictive segments</td><td>From 500 paying customers</td><td>Standard and Premium</td><td>Included</td></tr><tr><td>Magento (Adobe Commerce)</td><td>Official extension</td><td>Free connector, one audience per store view</td><td>Integration project</td></tr><tr><td>Shopify</td><td>Preferred Shopify Plus email partner</td><td>Official Shopify app</td><td>Integration project</td></tr></tbody></table><figcaption class="wp-element-caption">Klaviyo vs Mailchimp vs Bloomreach at a glance</figcaption></figure>



<div class="wp-block-image aligncenter size-large"><figure class="aligncenter size-large"><img loading="lazy" decoding="async" loading="lazy" width="1672" height="941" src="https://scandiweb.com/blog/wp-content/uploads/2026/10/klaviyo-vs-mailchimp-vs-bloomreach-fit-by-store-size.png" alt="Chart placing Mailchimp for small newsletter-led stores, Klaviyo for data-driven stores and Bloomreach for large multi-market retailers" class="wp-image-26095" style="display:block;margin:0 auto;max-width:100%;height:auto;" srcset="https://scandiweb.com/blog/wp-content/uploads/2026/10/klaviyo-vs-mailchimp-vs-bloomreach-fit-by-store-size.png 1672w, https://scandiweb.com/blog/wp-content/uploads/2026/10/klaviyo-vs-mailchimp-vs-bloomreach-fit-by-store-size-300x169.png 300w, https://scandiweb.com/blog/wp-content/uploads/2026/10/klaviyo-vs-mailchimp-vs-bloomreach-fit-by-store-size-1024x576.png 1024w, https://scandiweb.com/blog/wp-content/uploads/2026/10/klaviyo-vs-mailchimp-vs-bloomreach-fit-by-store-size-150x84.png 150w, https://scandiweb.com/blog/wp-content/uploads/2026/10/klaviyo-vs-mailchimp-vs-bloomreach-fit-by-store-size-768x432.png 768w, https://scandiweb.com/blog/wp-content/uploads/2026/10/klaviyo-vs-mailchimp-vs-bloomreach-fit-by-store-size-1536x864.png 1536w, https://scandiweb.com/blog/wp-content/uploads/2026/10/klaviyo-vs-mailchimp-vs-bloomreach-fit-by-store-size-1600x900.png 1600w" sizes="auto, (max-width: 1672px) 100vw, 1672px" /><figcaption style="display:block;position:static;background:none;color:inherit;width:auto;padding:8px 0 0;margin:0.5em 0 1em;font-size:14px;text-align:center;max-height:none;">Klaviyo vs Mailchimp vs Bloomreach by store size and data maturity</figcaption></figure></div>



<style>  .box-new {    background-color: #f8f4ef;    padding: 20px 30px 30px 30px; /* top, right, bottom, left */    border: none;  }  .box-new p {    margin-top: 0;    margin-bottom: 1em;  }  .box-new p:last-child {    margin-bottom: 0;  }</style><div class="box-new">  <p><strong>🚀 Quick takeaway</strong></p>  <p>The two Mailchimp limits growing stores hit first are the audience cap and the 4-step flow limit on Essentials. Both show up well before the contact limit does.</p></div>



<h2 class="wp-block-heading">Klaviyo vs Mailchimp pricing as your list grows</h2>



<p class="wp-block-paragraph">Mailchimp&#8217;s paid plans start lower: Essentials from $13 a month and Standard from $20 a month for 500 contacts, against $20 a month for Klaviyo&#8217;s Email plan at 251–500 active profiles. The comparison changes as lists grow because the two count people differently. Klaviyo bills active profiles, the contacts who can still receive marketing. Mailchimp&#8217;s bill includes unsubscribed contacts until you archive them.</p>



<figure class="wp-block-table"><table><thead><tr><th>Plan</th><th>Starts at</th><th>What the entry price covers</th></tr></thead><tbody><tr><td>Klaviyo Free</td><td>$0</td><td>250 active profiles, 500 email sends a month</td></tr><tr><td>Klaviyo Email</td><td>$20/month</td><td>251–500 active profiles, scales with profile count</td></tr><tr><td>Klaviyo Email + SMS</td><td>$35/month</td><td>Email plan plus SMS and MMS credits</td></tr><tr><td>Mailchimp Free</td><td>$0</td><td>250 contacts, 500 sends a month, 1 audience</td></tr><tr><td>Mailchimp Essentials</td><td>$13/month</td><td>500 contacts, 3 audiences, flows up to 4 steps</td></tr><tr><td>Mailchimp Standard</td><td>$20/month</td><td>500 contacts, 5 audiences, up to 200 flows, predictive segments</td></tr><tr><td>Mailchimp Premium</td><td>$350/month</td><td>10,000 contacts, unlimited audiences and seats</td></tr><tr><td>Bloomreach</td><td>Custom quote</td><td>Bloomreach says most brands start at $60K+ a year</td></tr></tbody></table><figcaption class="wp-element-caption">Klaviyo vs Mailchimp pricing by plan (vendor pricing pages, October 2026)</figcaption></figure>



<p class="wp-block-paragraph">Both prices rise with your list, so run your own count through each calculator. Two billing rules matter more than the entry price:</p>



<ul class="wp-block-list">
<li>Klaviyo counts only contacts who can receive marketing. Mailchimp counts subscribed, unsubscribed, and non-subscribed contacts, and only archived, cleaned, or deleted contacts drop off the bill.</li>


<li>Mailchimp bills overages automatically after the trial and keeps sending, with a monthly send allowance of 10x your contact limit on Essentials, 12x on Standard, and 15x on Premium. Klaviyo moves a paid account to the plan that matches its active profile count.</li>

</ul>



<style>  .box-new {    background-color: #f8f4ef;    padding: 20px 30px 30px 30px; /* top, right, bottom, left */    border: none;  }  .box-new p {    margin-top: 0;    margin-bottom: 1em;  }  .box-new p:last-child {    margin-bottom: 0;  }</style><div class="box-new">  <p><strong>🚀 Quick takeaway</strong></p>  <p>Archive unsubscribed contacts in Mailchimp before you compare quotes. Otherwise you are comparing Klaviyo against a bill that includes people you can no longer email.</p></div>



<h2 class="wp-block-heading">Magento (Adobe Commerce) and Shopify integrations</h2>



<p class="wp-block-paragraph">On both platforms, Klaviyo has the deeper integration. Its Magento extension and Shopify app send orders, checkouts, and product views as events you can trigger flows on, and Shopify names Klaviyo its preferred email partner for Shopify Plus. Mailchimp connects to both platforms too, but on Magento each store view links to its own audience, and the number of audiences depends on your plan.</p>



<h3 class="wp-block-heading">Magento (Adobe Commerce)</h3>



<p class="wp-block-paragraph">Klaviyo&#8217;s extension installs from the Adobe Commerce Marketplace. According to <a href="https://help.klaviyo.com/hc/en-us/articles/5486899706267" target="_blank" rel="noopener">Klaviyo&#8217;s Magento guide</a>, the native integration tracks Placed Order, Fulfilled Order, Canceled Order, Refunded Order, and Started Checkout, and the extension adds Active on Site and Viewed Product. A headless storefront needs Klaviyo.js added by hand. Anything outside that list, such as a canceled payment, is custom development.</p>



<p class="wp-block-paragraph">Mailchimp for Adobe Commerce is a free connector that syncs customers and orders to an audience. The catch for multi-store setups is that <a href="https://scandiweb.com/blog/magento-website-vs-store-vs-store-view/">each store view</a> connects to its own audience. A store with four store views needs four audiences, which rules out Free (1 audience) and Essentials (3). Most sync failures come from leftover MageMonkey data or orphan stores, and our <a href="https://scandiweb.com/blog/mailchimp-for-magento/" target="_blank" rel="noopener">Mailchimp Magento integration guide</a> covers the fixes.</p>



<h3 class="wp-block-heading">Shopify</h3>



<p class="wp-block-paragraph">Klaviyo and Shopify announced a <a href="https://www.klaviyo.com/newsroom/klaviyo-and-shopify" target="_blank" rel="noopener">strategic partnership in August 2022</a>: Klaviyo became the recommended email solution for Shopify Plus, and Shopify invested in Klaviyo. Mailchimp&#8217;s <a href="https://scandiweb.com/blog/best-shopify-integrations/">official Shopify app</a>, built by Intuit Mailchimp, syncs customers and purchase data as well.</p>



<p class="wp-block-paragraph">On Shopify, the integration gap is smaller than on Magento, and the tools differ more in what they let you do with the data in flows and segments. If you need flows on custom events, the <a href="https://scandiweb.com/shopify-integrations/klaviyo" target="_blank" rel="noopener">Shopify Klaviyo integration</a> is where we start.</p>



<div class="wp-block-image aligncenter size-large"><figure class="aligncenter size-large"><img loading="lazy" decoding="async" loading="lazy" width="1672" height="941" src="https://scandiweb.com/blog/wp-content/uploads/2026/10/klaviyo-vs-mailchimp-magento-shopify-data-sync.png" alt="Diagram showing Magento and Shopify store events syncing to Klaviyo as events and to Mailchimp audiences by store view" class="wp-image-26096" style="display:block;margin:0 auto;max-width:100%;height:auto;" srcset="https://scandiweb.com/blog/wp-content/uploads/2026/10/klaviyo-vs-mailchimp-magento-shopify-data-sync.png 1672w, https://scandiweb.com/blog/wp-content/uploads/2026/10/klaviyo-vs-mailchimp-magento-shopify-data-sync-300x169.png 300w, https://scandiweb.com/blog/wp-content/uploads/2026/10/klaviyo-vs-mailchimp-magento-shopify-data-sync-1024x576.png 1024w, https://scandiweb.com/blog/wp-content/uploads/2026/10/klaviyo-vs-mailchimp-magento-shopify-data-sync-150x84.png 150w, https://scandiweb.com/blog/wp-content/uploads/2026/10/klaviyo-vs-mailchimp-magento-shopify-data-sync-768x432.png 768w, https://scandiweb.com/blog/wp-content/uploads/2026/10/klaviyo-vs-mailchimp-magento-shopify-data-sync-1536x864.png 1536w, https://scandiweb.com/blog/wp-content/uploads/2026/10/klaviyo-vs-mailchimp-magento-shopify-data-sync-1600x900.png 1600w" sizes="auto, (max-width: 1672px) 100vw, 1672px" /><figcaption style="display:block;position:static;background:none;color:inherit;width:auto;padding:8px 0 0;margin:0.5em 0 1em;font-size:14px;text-align:center;max-height:none;">How store data reaches Klaviyo and Mailchimp from Magento and Shopify</figcaption></figure></div>



<style>  .box-new {    background-color: #f8f4ef;    padding: 20px 30px 30px 30px; /* top, right, bottom, left */    border: none;  }  .box-new p {    margin-top: 0;    margin-bottom: 1em;  }  .box-new p:last-child {    margin-bottom: 0;  }</style><div class="box-new">  <p><strong>🚀 Quick takeaway</strong></p>  <p>Count your store views before you pick a Mailchimp plan. On Magento, that number can choose the plan for you.</p></div>



<h2 class="wp-block-heading">Flows, segmentation and deliverability</h2>



<p class="wp-block-paragraph">Klaviyo includes automation flows and segments on every plan, Free included, and any segment can use the store&#8217;s order and browsing data. Mailchimp limits flows by plan: up to 4 steps on Essentials and up to 200 flows on Standard and Premium, which is also where predictive segments start. Deliverability depends mostly on your own setup, and Gmail&#8217;s sender rules apply to both tools in the same way.</p>



<h3 class="wp-block-heading">Flows</h3>



<p class="wp-block-paragraph">The flows that earn most store email revenue are triggered by behavior: welcome, browse abandonment, abandoned checkout, post-purchase, and win-back. A 4-step cap is tight for an abandoned-checkout series that splits first-time and returning buyers. Our guide to <a href="https://scandiweb.com/blog/shopping-cart-abandonment-solutions/" target="_blank" rel="noopener">shopping cart abandonment solutions</a> covers what goes into those emails.</p>



<div class="wp-block-image aligncenter size-large"><figure class="aligncenter size-large"><img loading="lazy" decoding="async" loading="lazy" width="1672" height="941" src="https://scandiweb.com/blog/wp-content/uploads/2026/10/klaviyo-vs-mailchimp-abandoned-checkout-flow.png" alt="Email automation builder showing a Started Checkout trigger, delays, a conditional split and separate follow-up emails" class="wp-image-26097" style="display:block;margin:0 auto;max-width:100%;height:auto;" srcset="https://scandiweb.com/blog/wp-content/uploads/2026/10/klaviyo-vs-mailchimp-abandoned-checkout-flow.png 1672w, https://scandiweb.com/blog/wp-content/uploads/2026/10/klaviyo-vs-mailchimp-abandoned-checkout-flow-300x169.png 300w, https://scandiweb.com/blog/wp-content/uploads/2026/10/klaviyo-vs-mailchimp-abandoned-checkout-flow-1024x576.png 1024w, https://scandiweb.com/blog/wp-content/uploads/2026/10/klaviyo-vs-mailchimp-abandoned-checkout-flow-150x84.png 150w, https://scandiweb.com/blog/wp-content/uploads/2026/10/klaviyo-vs-mailchimp-abandoned-checkout-flow-768x432.png 768w, https://scandiweb.com/blog/wp-content/uploads/2026/10/klaviyo-vs-mailchimp-abandoned-checkout-flow-1536x864.png 1536w, https://scandiweb.com/blog/wp-content/uploads/2026/10/klaviyo-vs-mailchimp-abandoned-checkout-flow-1600x900.png 1600w" sizes="auto, (max-width: 1672px) 100vw, 1672px" /><figcaption style="display:block;position:static;background:none;color:inherit;width:auto;padding:8px 0 0;margin:0.5em 0 1em;font-size:14px;text-align:center;max-height:none;">An abandoned-checkout flow with a split for new and returning buyers</figcaption></figure></div>



<h3 class="wp-block-heading">Segmentation and predictive data</h3>



<p class="wp-block-paragraph">Klaviyo segments update in real time on any event or property the store sends. Its predictive analytics, such as predicted lifetime value and expected next order date, need at least 500 customers who have placed orders, 180 days of order history, and orders in the last 30 days, according to <a href="https://help.klaviyo.com/hc/en-us/articles/360020919731" target="_blank" rel="noopener">Klaviyo&#8217;s help center</a>. Below that point, predictions stay blank and you segment on rules you write yourself. Mailchimp keeps predictive segments for Standard and Premium.</p>



<h3 class="wp-block-heading">Deliverability</h3>



<p class="wp-block-paragraph">Neither tool gets you into the inbox on its own. Since February 2024, <a href="https://support.google.com/a/answer/81126" target="_blank" rel="noopener">Google has required</a> anyone sending more than 5,000 messages a day to Gmail to authenticate with SPF, DKIM, and DMARC, offer one-click unsubscribe, and keep the spam rate in Postmaster Tools below 0.30%. Both tools support an authenticated sending domain. After that, inbox placement depends on mailing people who open and click, which our <a href="https://scandiweb.com/blog/email-marketing-best-practices-for-revenue-growth/" target="_blank" rel="noopener">email marketing best practices</a> cover in detail.</p>



<style>  .box-new {    background-color: #f8f4ef;    padding: 20px 30px 30px 30px; /* top, right, bottom, left */    border: none;  }  .box-new p {    margin-top: 0;    margin-bottom: 1em;  }  .box-new p:last-child {    margin-bottom: 0;  }</style><div class="box-new">  <p><strong>🚀 Quick takeaway</strong></p>  <p>Deliverability problems move with you. Fix authentication and clean the list during the migration, or the new tool inherits the old spam rate.</p></div>



<h2 class="wp-block-heading">Should you move from Mailchimp to Klaviyo?</h2>



<p class="wp-block-paragraph">Move from Mailchimp to Klaviyo when email should earn revenue from store behavior: abandoned checkouts, browse abandonment, replenishment and win-back flows, and segments built on orders. Stay on Mailchimp if most of your email is newsletters and announcements and your list is small. The entry price is lower, and the flows you would gain have little data to run on.</p>



<p class="wp-block-paragraph">These signs usually mean the move is due:</p>



<ul class="wp-block-list">
<li>You run several store views or languages and work around Mailchimp&#8217;s audience limits.</li>


<li>A flow you need is blocked by a step limit or a plan level.</li>


<li>You build segments from CSV exports instead of from purchase data.</li>


<li>You can&#8217;t tell <a href="https://scandiweb.com/blog/ga4-unassigned-traffic/">which flow earned which order</a>.</li>

</ul>



<p class="wp-block-paragraph">Flows and templates don&#8217;t transfer between the tools. A migration means importing audiences with their custom properties, rebuilding every flow, authenticating the sending domain, and moving transactional emails. We did this for a cycling brand whose Mailchimp setup couldn&#8217;t handle multistore, multilanguage sending or abandoned-cart, birthday, and review flows. We imported the audiences with custom properties, built metrics the standard Magento integration didn&#8217;t track, verified DMARC, and launched the flows in several languages. Email-attributed revenue grew 4.8x YoY.</p>



<p class="wp-block-paragraph"><strong>Read more:</strong> <a href="https://scandiweb.com/blog/email-marketing-case-study-revenue-increase-after-klaviyo-migration/" target="_blank" rel="noopener">Email Marketing Revenue Increased by 4.8x After Klaviyo Migration</a></p>



<h2 class="wp-block-heading">Bloomreach vs Klaviyo: when stepping up is worth it</h2>



<p class="wp-block-paragraph">Bloomreach is worth it when email is one of several channels that should share a single customer profile, and your traffic is large enough to pay for it. Bloomreach&#8217;s own pricing page says most brands start at $60K or more a year and that its smaller customers serve 500K+ monthly visitors. Below that scale, Klaviyo usually covers the email and SMS work most stores need.</p>



<p class="wp-block-paragraph">The step up makes sense when most of these are true:</p>



<ul class="wp-block-list">
<li>You sell in several markets with separate store views, languages, and consent rules.</li>


<li>Customer data comes from POS and ERP systems as well as the online store.</li>


<li>You want the same segments in email, on-site personalization, search, and ad audiences.</li>


<li>You have a team or partner to run it. Bloomreach itself says it isn&#8217;t for brands still building an audience or looking for a lightweight email platform.</li>

</ul>



<p class="wp-block-paragraph">The biggest sportswear retailer in the Baltics made this move from Klaviyo. With separate store views per market and customer data split across systems, we helped them compare CDPs, and once Bloomreach was chosen, we rebuilt their flows on it. Automated flows now generate 39% of their email revenue from 3% of sends. Twelve months after launch, email orders were up 20.6% and ROAS on paid media was up 39.1%.</p>



<div class="wp-block-image aligncenter size-large"><figure class="aligncenter size-large"><img loading="lazy" decoding="async" loading="lazy" width="1672" height="941" src="https://scandiweb.com/blog/wp-content/uploads/2026/10/bloomreach-vs-klaviyo-sportswear-retailer-case-study.png" alt="Desktop and mobile mockup of a sportswear retailer&#x27;s online store that runs personalization on Bloomreach" class="wp-image-26098" style="display:block;margin:0 auto;max-width:100%;height:auto;" srcset="https://scandiweb.com/blog/wp-content/uploads/2026/10/bloomreach-vs-klaviyo-sportswear-retailer-case-study.png 1672w, https://scandiweb.com/blog/wp-content/uploads/2026/10/bloomreach-vs-klaviyo-sportswear-retailer-case-study-300x169.png 300w, https://scandiweb.com/blog/wp-content/uploads/2026/10/bloomreach-vs-klaviyo-sportswear-retailer-case-study-1024x576.png 1024w, https://scandiweb.com/blog/wp-content/uploads/2026/10/bloomreach-vs-klaviyo-sportswear-retailer-case-study-150x84.png 150w, https://scandiweb.com/blog/wp-content/uploads/2026/10/bloomreach-vs-klaviyo-sportswear-retailer-case-study-768x432.png 768w, https://scandiweb.com/blog/wp-content/uploads/2026/10/bloomreach-vs-klaviyo-sportswear-retailer-case-study-1536x864.png 1536w, https://scandiweb.com/blog/wp-content/uploads/2026/10/bloomreach-vs-klaviyo-sportswear-retailer-case-study-1600x900.png 1600w" sizes="auto, (max-width: 1672px) 100vw, 1672px" /><figcaption style="display:block;position:static;background:none;color:inherit;width:auto;padding:8px 0 0;margin:0.5em 0 1em;font-size:14px;text-align:center;max-height:none;">The Baltic sportswear retailer that moved from Klaviyo to Bloomreach</figcaption></figure></div>



<p class="wp-block-paragraph"><strong>Read more:</strong> <a href="https://scandiweb.com/blog/cdp-case-study-multi-market-personalization-bloomreach/" target="_blank" rel="noopener">CDP Case Study: Multi-Market Personalization for the Biggest Baltics Sportswear Retailer</a></p>



<p class="wp-block-paragraph">If you are weighing the same move, our guide to <a href="https://scandiweb.com/blog/what-is-cdp-customer-data-platforms-guide/" target="_blank" rel="noopener">customer data platforms</a> explains what a CDP adds over an email tool. We build both the <a href="https://scandiweb.com/magento-integrations/bloomreach" target="_blank" rel="noopener">Magento Bloomreach integration</a> and the <a href="https://scandiweb.com/shopify-integrations/bloomreach" target="_blank" rel="noopener">Shopify Bloomreach integration</a>.</p>



<style>  .box-new {    background-color: #f8f4ef;    padding: 20px 30px 30px 30px; /* top, right, bottom, left */    border: none;  }  .box-new p {    margin-top: 0;    margin-bottom: 1em;  }  .box-new p:last-child {    margin-bottom: 0;  }</style><div class="box-new">  <p><strong>🚀 Quick takeaway</strong></p>  <p>Bloomreach pays back through the channels beyond email. If email is the only channel you plan to run on it, Klaviyo is the cheaper answer.</p></div>



<h2 class="wp-block-heading">How to choose between Klaviyo, Mailchimp and Bloomreach</h2>



<p class="wp-block-paragraph">For most eCommerce stores, Klaviyo is the default: it uses store data in every flow and segment and grows with the list. Mailchimp is the right call for small, newsletter-led stores that want the lowest entry price. Bloomreach is for retailers with several markets, large traffic, and a team ready to run one customer profile across email, website, and search.</p>



<p class="wp-block-paragraph"><strong>Choose Klaviyo if:</strong></p>



<ul class="wp-block-list">
<li>You sell on Shopify or Magento (Adobe Commerce) and want flows triggered by orders, checkouts, and product views.</li>


<li>You have, or will soon have, 500+ paying customers and want predictive segments.</li>


<li>You run several store views and don&#8217;t want one audience per view.</li>


<li>You expect most email revenue to come from automated flows.</li>

</ul>



<p class="wp-block-paragraph"><strong>Choose Mailchimp if:</strong></p>



<ul class="wp-block-list">
<li>Most of your email is newsletters, announcements, and promotions.</li>


<li>Your list is under a few thousand contacts and the entry price matters most.</li>


<li>You run one store view or one Shopify store.</li>


<li>You send a few campaigns a month and rarely use automation.</li>

</ul>



<p class="wp-block-paragraph"><strong>Choose Bloomreach if:</strong></p>



<ul class="wp-block-list">
<li>Your site serves hundreds of thousands of visitors a month across several markets.</li>


<li>Customer data lives in POS and ERP systems as well as the store.</li>


<li>You want one profile behind email, on-site personalization, search, and ads.</li>


<li>You have people to run it day to day.</li>

</ul>



<h2 class="wp-block-heading">Frequently asked questions about Klaviyo vs Mailchimp</h2>



<h3 class="wp-block-heading">Is Klaviyo better than Mailchimp for eCommerce?</h3>



<p class="wp-block-paragraph">For most online stores, yes. Klaviyo syncs orders, checkouts, and product views from Shopify and Magento and uses them in every flow and segment, on every plan. Mailchimp is simpler and cheaper to start and works well for newsletter-led email, but flows and predictive segments depend on your plan, and on Magento each store view needs its own audience.</p>



<h3 class="wp-block-heading">Can you migrate from Mailchimp to Klaviyo without losing subscribers?</h3>



<p class="wp-block-paragraph">Yes, if you plan it. Export each Mailchimp audience with consent status and custom properties, import them into Klaviyo, and keep unsubscribes suppressed. Flows and templates have to be rebuilt. Authenticate your sending domain before the first campaign and start with your most active contacts to protect deliverability.</p>



<h3 class="wp-block-heading">Does Mailchimp work with Magento 2?</h3>



<p class="wp-block-paragraph">Yes. Mailchimp for Adobe Commerce is a free connector that syncs customers and orders to a Mailchimp audience. Each store view connects to its own audience, so multi-store setups may need a higher plan. Leftover MageMonkey data and orphan stores cause most sync failures.</p>



<h3 class="wp-block-heading">What are the weaknesses of Klaviyo?</h3>



<p class="wp-block-paragraph">Cost and scope. The bill grows with active profiles, so large lists get expensive. Klaviyo is built for email and SMS, so data from POS, ERP, or support tools needs extra work or its paid data platform. On Magento, events beyond the standard set need custom development.</p>



<h3 class="wp-block-heading">How much does Bloomreach cost?</h3>



<p class="wp-block-paragraph">Bloomreach doesn&#8217;t publish a rate card. Pricing combines a platform fee with a usage fee based on audience and catalog size, the products you turn on, and the volume you run. Its pricing page says most brands start at $60K or more a year, and its smaller customers serve 500K+ monthly visitors.</p>



<h2 class="wp-block-heading">Klaviyo vs Mailchimp: choose the tool your data can feed</h2>



<p class="wp-block-paragraph">In Klaviyo vs Mailchimp, the store data you plan to use decides the winner. If your store sends orders and browsing events and you want email to earn from them, Klaviyo is the better tool on both Shopify and Magento. If you mostly send newsletters to a small list, Mailchimp costs less and does the job. Bloomreach is worth it once several markets and channels need one customer profile. Our <a href="https://scandiweb.com/email-marketing-services" target="_blank" rel="noopener">email marketing services</a> cover the move and the flow build for any of the three.</p>



<div style="height:20px" aria-hidden="true" class="wp-block-spacer"></div>



<p><style> p.box { border: 1px solid black; padding-top: 30px; padding-right: 30px; padding-bottom: 30px; padding-left: 30px; } </style> <p class="box"><em>Weighing a move off Mailchimp, or wondering whether Bloomreach fits your size? </em><a href="https://scandiweb.com/contact" target="_blank" rel="noreferrer noopener"><em>Tell us about your setup</em></a><em>, and we&#x27;ll tell you which tool your data can support.</em></p></p>
<p>The post <a rel="nofollow" href="https://scandiweb.com/blog/klaviyo-vs-mailchimp/">Klaviyo vs Mailchimp for eCommerce, and When Bloomreach Is Worth It</a> appeared first on <a rel="nofollow" href="https://scandiweb.com/blog">scandiweb</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Server-Side Tracking and Meta Conversions API: Why Ad Platforms and GA4 Disagree</title>
		<link>https://scandiweb.com/blog/server-side-tracking/</link>
		
		<dc:creator><![CDATA[Andres Reitsnik]]></dc:creator>
		<pubDate>Mon, 19 Oct 2026 15:30:00 +0000</pubDate>
				<category><![CDATA[Collection]]></category>
		<category><![CDATA[Data Analytics]]></category>
		<category><![CDATA[PPC]]></category>
		<category><![CDATA[data privacy]]></category>
		<category><![CDATA[Data Tracking]]></category>
		<category><![CDATA[facebook ads]]></category>
		<category><![CDATA[GA4]]></category>
		<category><![CDATA[google ads]]></category>
		<category><![CDATA[Google Analytics 4]]></category>
		<category><![CDATA[Google Tag Manager]]></category>
		<category><![CDATA[meta ads]]></category>
		<category><![CDATA[Meta Conversions API]]></category>
		<category><![CDATA[Server-Side Tracking]]></category>
		<guid isPermaLink="false">https://scandiweb.com/blog/?p=26094</guid>

					<description><![CDATA[<p>Server side tracking explained: why Meta, Google Ads and GA4 count different purchases, how CAPI deduplication works, and what it costs.</p>
<p>The post <a rel="nofollow" href="https://scandiweb.com/blog/server-side-tracking/">Server-Side Tracking and Meta Conversions API: Why Ad Platforms and GA4 Disagree</a> appeared first on <a rel="nofollow" href="https://scandiweb.com/blog">scandiweb</a>.</p>
]]></description>
										<content:encoded><![CDATA[<div class="lazyblock-related-SsTrk wp-block-lazyblock-related"><div class="related-services">
  <h3>Related Services</h3>
  <ul>
    
    <li>
      <a  href="https://scandiweb.com/services/server-side-tracking" target=_blank >
        Server-Side Tracking
      </a>
    </li>
    
    <li>
      <a  href="https://scandiweb.com/services/data-collection-and-storage" target=_blank >
        Data Collection &amp; Tracking
      </a>
    </li>
    
    <li>
      <a  href="https://scandiweb.com/services/paid-social-advertising-services" target=_blank >
        Paid Social
      </a>
    </li>
    
  </ul>
</div>
</div>


<p class="wp-block-paragraph">If Meta says your ads drove 140 purchases last week, GA4 credits Meta with 60, and your store backend shows 118 orders in total, your tracking isn&#8217;t necessarily broken. Each tool counts on its own date and by its own rules about who gets the credit.</p>



<p class="wp-block-paragraph">The gap still costs you. Part of it is purchases the browser never reports, and part of it can be the same order counted twice. Server side tracking fixes some of that, which is why so many vendors are pitching it right now. This guide explains why the numbers disagree, what server-side tracking and the Meta Conversions API change, how event deduplication works, what a server container costs to run, and when a mid-size store can skip it.</p>



<h2 class="wp-block-heading">Why Meta, Google Ads, and GA4 never match</h2>



<p class="wp-block-paragraph">Meta, Google Ads, and GA4 never match because each one answers a different question. Meta counts purchases by people who clicked or saw a Meta ad. Google Ads counts purchases after a Google ad click. GA4 assigns credit across every channel a shopper used. They also date conversions differently, and each loses its own share of browser data to ad blockers and consent choices.</p>



<figure class="wp-block-table"><table><thead><tr><th>Why the numbers differ</th><th>Meta Ads</th><th>Google Ads</th><th>GA4</th></tr></thead><tbody><tr><td>Who gets credit</td><td>Any Meta ad clicked or viewed in the window</td><td>Google ad clicks</td><td>Channels in the path, set by the attribution model</td></tr><tr><td>Default window</td><td>7-day click, 1-day view</td><td>Set per conversion action, up to 90 days</td><td>90-day lookback for purchases</td></tr><tr><td>Date of the conversion</td><td>Date of the ad impression or click</td><td>Date of the ad click</td><td>Date of the purchase</td></tr><tr><td>Counts views without a click</td><td><span style="display:inline-block;padding:4px 8px;background-color:#e7e9f8;color:#3f4aaf;border-radius:4px;font-weight:600;">Yes</span></td><td><span style="display:inline-block;padding:4px 8px;background-color:#d4edda;color:#1e7e34;border-radius:4px;font-weight:600;">No</span></td><td><span style="display:inline-block;padding:4px 8px;background-color:#d4edda;color:#1e7e34;border-radius:4px;font-weight:600;">No</span></td></tr></tbody></table><figcaption class="wp-element-caption">Why Meta Ads, Google Ads, and GA4 report different purchase numbers</figcaption></figure>



<div class="wp-block-image aligncenter size-large"><figure class="aligncenter size-large"><img loading="lazy" decoding="async" loading="lazy" width="1672" height="941" src="https://scandiweb.com/blog/wp-content/uploads/2026/10/server-side-tracking-meta-ga4-backend-gap.png" alt="Bar chart comparing purchases reported by Meta Ads and GA4 with backend orders for the same week" class="wp-image-26088" style="display:block;margin:0 auto;max-width:100%;height:auto;" srcset="https://scandiweb.com/blog/wp-content/uploads/2026/10/server-side-tracking-meta-ga4-backend-gap.png 1672w, https://scandiweb.com/blog/wp-content/uploads/2026/10/server-side-tracking-meta-ga4-backend-gap-300x169.png 300w, https://scandiweb.com/blog/wp-content/uploads/2026/10/server-side-tracking-meta-ga4-backend-gap-1024x576.png 1024w, https://scandiweb.com/blog/wp-content/uploads/2026/10/server-side-tracking-meta-ga4-backend-gap-150x84.png 150w, https://scandiweb.com/blog/wp-content/uploads/2026/10/server-side-tracking-meta-ga4-backend-gap-768x432.png 768w, https://scandiweb.com/blog/wp-content/uploads/2026/10/server-side-tracking-meta-ga4-backend-gap-1536x864.png 1536w, https://scandiweb.com/blog/wp-content/uploads/2026/10/server-side-tracking-meta-ga4-backend-gap-1600x900.png 1600w" sizes="auto, (max-width: 1672px) 100vw, 1672px" /><figcaption style="display:block;position:static;background:none;color:inherit;width:auto;padding:8px 0 0;margin:0.5em 0 1em;font-size:14px;text-align:center;max-height:none;">One week of purchases, as Meta, GA4, and the store backend report it</figcaption></figure></div>



<h3 class="wp-block-heading">Each platform gives itself the credit</h3>



<p class="wp-block-paragraph">A shopper clicks a Meta ad on Monday, comes back through a Google ad on Wednesday, and buys. Meta counts the purchase because it happened within seven days of a Meta click. Google Ads counts it too. GA4 gives the credit to Google, or splits it, depending on the attribution model. Both ad platforms claim the same order, and both are following their own rules.</p>



<p class="wp-block-paragraph">Meta also counts purchases by people who only saw an ad and bought within a day. GA4 can&#8217;t see an ad view at all, so on a store that spends most of its budget on Meta, view-through purchases are often a large part of the difference. Our guide to <a href="https://scandiweb.com/blog/optimizing-marketing-with-offline-and-online-data/" target="_blank" rel="noopener">offline and online attribution</a> covers how to compare channels without taking any single platform&#8217;s word for it.</p>



<h3 class="wp-block-heading">The same purchase lands on different days</h3>



<p class="wp-block-paragraph">Google Ads reports a conversion on the day of the ad click, and GA4 reports it on the day of the purchase. In Google&#8217;s own example, a click on May 5 and a purchase on May 10 show up on May 5 in Google Ads and on May 10 in GA4. Meta&#8217;s Ads Manager also dates conversions back to the ad impression or click. Weekly comparisons drift for that reason alone, and the most recent days keep filling in as late purchases arrive.</p>



<p class="wp-block-paragraph">Google says more than 95% of conversions are attributed within 14 days, so compare platforms on date ranges that ended at least two weeks ago.</p>



<h3 class="wp-block-heading">Browsers and consent hide some purchases</h3>



<p class="wp-block-paragraph">Every platform misses purchases that its browser tag never reports. Ad blockers stop tags from loading, and <a href="https://scandiweb.com/blog/ready-for-cookieless-future/">Safari limits cookies set by JavaScript to seven days</a>, so a shopper who returns after two weeks looks like a new visitor. Visitors who decline cookies are only partly counted, and how much Google models back depends on your <a href="https://scandiweb.com/blog/google-consent-mode-v2/" target="_blank" rel="noopener">Google Consent Mode v2</a> setup.</p>



<h3 class="wp-block-heading">Duplicate events inflate Meta</h3>



<p class="wp-block-paragraph">If your store sends a purchase to Meta from the browser pixel and again from the server, and the two events don&#8217;t share an ID, Meta counts the order twice. Of all the causes here, this is the only plain error. When Meta&#8217;s purchase count comes close to your total order count, check deduplication first.</p>



<style>  .box-new {    background-color: #f8f4ef;    padding: 20px 30px 30px 30px; /* top, right, bottom, left */    border: none;  }  .box-new p {    margin-top: 0;    margin-bottom: 1em;  }  .box-new p:last-child {    margin-bottom: 0;  }</style><div class="box-new">  <p><strong>🚀 Quick takeaway</strong></p>  <p>Most of the gap between Meta and GA4 comes from counting rules that tracking can&#8217;t change. The part you can fix is the purchases that get lost or duplicated on the way, so measure that part before you pay for anything.</p></div>



<h2 class="wp-block-heading">What is server side tracking?</h2>



<p class="wp-block-paragraph">Server side tracking sends conversion data from a server you control to platforms such as Meta, Google Ads, and GA4, instead of relying only on tags in the shopper&#8217;s browser. The browser sends one request to your own subdomain, or your store backend reports the order directly. The server then forwards each event to each platform, under rules you set.</p>



<p class="wp-block-paragraph">On a typical store, it works like this. A shopper places an order, and the browser sends the purchase event to a server container on a subdomain such as data.yourstore.com. The container, often server-side Google Tag Manager, formats the event for each destination and sends it to GA4, the Meta Conversions API, and Google Ads. Because the request goes to your own domain, fewer ad blockers stop it. The server can also set cookies through HTTP headers, which Safari doesn&#8217;t cap the way it caps cookies written by JavaScript in most setups.</p>



<div class="wp-block-image aligncenter size-large"><figure class="aligncenter size-large"><img loading="lazy" decoding="async" loading="lazy" width="1672" height="941" src="https://scandiweb.com/blog/wp-content/uploads/2026/10/server-side-tracking-data-flow-diagram.png" alt="Diagram of browser tags sending data straight to ad platforms, next to one server container that forwards each event" class="wp-image-26089" style="display:block;margin:0 auto;max-width:100%;height:auto;" srcset="https://scandiweb.com/blog/wp-content/uploads/2026/10/server-side-tracking-data-flow-diagram.png 1672w, https://scandiweb.com/blog/wp-content/uploads/2026/10/server-side-tracking-data-flow-diagram-300x169.png 300w, https://scandiweb.com/blog/wp-content/uploads/2026/10/server-side-tracking-data-flow-diagram-1024x576.png 1024w, https://scandiweb.com/blog/wp-content/uploads/2026/10/server-side-tracking-data-flow-diagram-150x84.png 150w, https://scandiweb.com/blog/wp-content/uploads/2026/10/server-side-tracking-data-flow-diagram-768x432.png 768w, https://scandiweb.com/blog/wp-content/uploads/2026/10/server-side-tracking-data-flow-diagram-1536x864.png 1536w, https://scandiweb.com/blog/wp-content/uploads/2026/10/server-side-tracking-data-flow-diagram-1600x900.png 1600w" sizes="auto, (max-width: 1672px) 100vw, 1672px" /><figcaption style="display:block;position:static;background:none;color:inherit;width:auto;padding:8px 0 0;margin:0.5em 0 1em;font-size:14px;text-align:center;max-height:none;">Client-side tags compared with a server-side container on your own subdomain</figcaption></figure></div>



<h3 class="wp-block-heading">Client-side vs server-side tagging</h3>



<p class="wp-block-paragraph">Client-side tagging runs every vendor&#8217;s script in the shopper&#8217;s browser. Server side tagging moves most of that work to a server: the browser sends one stream of events, and the server decides what goes to each platform.</p>



<figure class="wp-block-table"><table><thead><tr><th></th><th>Client-side tagging</th><th>Server-side tagging</th></tr></thead><tbody><tr><td>Where tags run</td><td>In the shopper&#8217;s browser</td><td>On your server container</td></tr><tr><td>Requests go to</td><td>Each vendor&#8217;s domain</td><td>Your own subdomain</td></tr><tr><td>Ad blockers</td><td>Often block the tags</td><td>Block fewer requests</td></tr><tr><td>Data control</td><td>Each vendor collects what its script reads</td><td>You choose what each platform receives</td></tr><tr><td>Page weight</td><td>One script per vendor</td><td>Fewer scripts in the browser</td></tr><tr><td>Running cost</td><td>Free</td><td>Hosting plus upkeep</td></tr><tr><td>Who maintains it</td><td>Marketing team in GTM</td><td>Someone who can debug a server</td></tr></tbody></table><figcaption class="wp-element-caption">Client-side vs server-side tagging compared</figcaption></figure>



<h3 class="wp-block-heading">What server-side tracking can&#8217;t change</h3>



<p class="wp-block-paragraph">A server container doesn&#8217;t change attribution. Meta will still count view-through purchases and GA4 will still split credit across channels, so the platforms will keep disagreeing. It doesn&#8217;t override consent either. If a visitor declines marketing cookies, the server has to respect that, so consent signals need to travel with each event into the container.</p>



<p class="wp-block-paragraph">What it can change is the share of real purchases each platform receives and the quality of the customer data attached to them. That improves the signal Meta and Google use to optimize bids. Your dashboards will look closer, but rarely identical.</p>



<style>  .box-new {    background-color: #f8f4ef;    padding: 20px 30px 30px 30px; /* top, right, bottom, left */    border: none;  }  .box-new p {    margin-top: 0;    margin-bottom: 1em;  }  .box-new p:last-child {    margin-bottom: 0;  }</style><div class="box-new">  <p><strong>🚀 Quick takeaway</strong></p>  <p>If a business case promises that Meta and GA4 will finally report the same numbers after a server-side setup, read the rest of that pitch with caution.</p></div>



<h2 class="wp-block-heading">How the Meta Conversions API works</h2>



<p class="wp-block-paragraph">The Meta Conversions API, often called Meta CAPI, lets your server send events such as purchases and add-to-carts directly to Meta, next to or instead of the browser pixel. Each server event carries an event name, a timestamp, an event ID, and customer details such as a hashed email or phone number, which Meta uses to match the purchase to a Facebook or Instagram account.</p>



<p class="wp-block-paragraph">Meta scores that matching with Event Match Quality, a rating out of 10 for each event type in Events Manager. Email, phone number, name, and IP address are among the parameters Meta lists as high quality, and the browser user agent is required for website events. Unless you use Meta&#8217;s Business SDK, your server has to hash the customer details before sending them.</p>



<p class="wp-block-paragraph">Meta recommends what it calls a redundant setup: send the same events through both the pixel and the Conversions API. The browser pixel adds context the server doesn&#8217;t have, while the server covers purchases the browser missed, and deduplication removes the overlap. Meta accepts server events up to seven days after they happened, which helps when an order is confirmed later, for example after a bank transfer.</p>



<div class="wp-block-image aligncenter size-large"><figure class="aligncenter size-large"><img loading="lazy" decoding="async" loading="lazy" width="1672" height="941" src="https://scandiweb.com/blog/wp-content/uploads/2026/10/meta-conversions-api-event-match-quality.png" alt="Events Manager style panel showing purchase events from pixel and server with a match quality score of 8.1 out of 10" class="wp-image-26090" style="display:block;margin:0 auto;max-width:100%;height:auto;" srcset="https://scandiweb.com/blog/wp-content/uploads/2026/10/meta-conversions-api-event-match-quality.png 1672w, https://scandiweb.com/blog/wp-content/uploads/2026/10/meta-conversions-api-event-match-quality-300x169.png 300w, https://scandiweb.com/blog/wp-content/uploads/2026/10/meta-conversions-api-event-match-quality-1024x576.png 1024w, https://scandiweb.com/blog/wp-content/uploads/2026/10/meta-conversions-api-event-match-quality-150x84.png 150w, https://scandiweb.com/blog/wp-content/uploads/2026/10/meta-conversions-api-event-match-quality-768x432.png 768w, https://scandiweb.com/blog/wp-content/uploads/2026/10/meta-conversions-api-event-match-quality-1536x864.png 1536w, https://scandiweb.com/blog/wp-content/uploads/2026/10/meta-conversions-api-event-match-quality-1600x900.png 1600w" sizes="auto, (max-width: 1672px) 100vw, 1672px" /><figcaption style="display:block;position:static;background:none;color:inherit;width:auto;padding:8px 0 0;margin:0.5em 0 1em;font-size:14px;text-align:center;max-height:none;">Meta Conversions API purchase events with an Event Match Quality score</figcaption></figure></div>



<p class="wp-block-paragraph">A store has four common ways to send server events to Meta:</p>



<ol class="wp-block-list">
<li>Shopify&#8217;s Facebook &amp; Instagram app sends purchases through the Conversions API when data sharing is set to Enhanced or Maximum, with no server of your own</li>


<li>Magento (Adobe Commerce) stores usually add a Meta Pixel and Conversions API extension from the Adobe Commerce Marketplace, which sends events from the store backend</li>


<li>A server-side Google Tag Manager container forwards the same events to Meta, GA4, and Google Ads from one place</li>


<li>Meta&#8217;s Conversions API Gateway is free software that runs in your own cloud account and sends events to Meta only</li>

</ol>



<p class="wp-block-paragraph">For step-by-step setup in Google Tag Manager, our earlier guide to <a href="https://scandiweb.com/blog/how-to-set-up-the-facebook-conversion-api-for-tracking-ecommerce-data/" target="_blank" rel="noopener">setting up the Facebook Conversions API</a> walks through the pixel and the server tags.</p>



<h2 class="wp-block-heading">How Meta event deduplication works with event_id</h2>



<p class="wp-block-paragraph">Meta deduplicates a browser event and a server event when both have the same event name and the same event ID, and the second one arrives within 48 hours of the first. The pixel passes the ID as eventID, and the Conversions API as event_id. When they match, Meta keeps one purchase. When the IDs are missing or different, Meta counts the order twice.</p>



<p class="wp-block-paragraph">Picture two cashiers ringing up the same order. If both write the order number on the receipt, the accountant spots the copy and files one. If neither does, the books show two sales. For purchases, the order number is the obvious ID because the store already creates one for every order.</p>



<p class="wp-block-paragraph">In the browser, the pixel call carries the ID as its fourth argument:</p>



<pre class="wp-block-code"><code>fbq('track', 'Purchase', {value: 129.00, currency: 'USD'}, {eventID: 'order_10482'});</code></pre>



<p class="wp-block-paragraph">On the server, the Conversions API event carries the same ID:</p>



<pre class="wp-block-code"><code>{
  "event_name": "Purchase",
  "event_time": 1792233177,
  "event_id": "order_10482",
  "action_source": "website",
  "event_source_url": "https://www.yourstore.com/checkout/success",
  "user_data": {
    "em": ["&lt;sha256 of the lowercase email&gt;"],
    "client_ip_address": "203.0.113.24",
    "client_user_agent": "Mozilla/5.0 ...",
    "fbp": "fb.1.1792230000.123456789"
  },
  "custom_data": {"value": 129.00, "currency": "USD"}
}</code></pre>



<p class="wp-block-paragraph">The result depends on which events arrive and what they carry:</p>



<ul class="wp-block-list">
<li>Both events arrive with the same name and ID: Meta keeps one, generally the first it received</li>


<li>Only the server event arrives because an ad blocker stopped the pixel: Meta records the purchase from the server</li>


<li>Only the pixel event arrives because the server call failed: Meta records the purchase from the browser</li>


<li>The IDs differ, for example the pixel sends the order number and the server sends an internal transaction ID: Meta counts two purchases</li>


<li>The event names differ, such as &#8220;Purchase&#8221; and &#8220;purchase&#8221;: Meta treats them as two separate events</li>

</ul>



<div class="wp-block-image aligncenter size-large"><figure class="aligncenter size-large"><img loading="lazy" decoding="async" loading="lazy" width="1672" height="941" src="https://scandiweb.com/blog/wp-content/uploads/2026/10/meta-capi-event-id-deduplication-flow.png" alt="Diagram showing matching event IDs merging into one purchase and mismatched IDs creating two purchases in Meta" class="wp-image-26091" style="display:block;margin:0 auto;max-width:100%;height:auto;" srcset="https://scandiweb.com/blog/wp-content/uploads/2026/10/meta-capi-event-id-deduplication-flow.png 1672w, https://scandiweb.com/blog/wp-content/uploads/2026/10/meta-capi-event-id-deduplication-flow-300x169.png 300w, https://scandiweb.com/blog/wp-content/uploads/2026/10/meta-capi-event-id-deduplication-flow-1024x576.png 1024w, https://scandiweb.com/blog/wp-content/uploads/2026/10/meta-capi-event-id-deduplication-flow-150x84.png 150w, https://scandiweb.com/blog/wp-content/uploads/2026/10/meta-capi-event-id-deduplication-flow-768x432.png 768w, https://scandiweb.com/blog/wp-content/uploads/2026/10/meta-capi-event-id-deduplication-flow-1536x864.png 1536w, https://scandiweb.com/blog/wp-content/uploads/2026/10/meta-capi-event-id-deduplication-flow-1600x900.png 1600w" sizes="auto, (max-width: 1672px) 100vw, 1672px" /><figcaption style="display:block;position:static;background:none;color:inherit;width:auto;padding:8px 0 0;margin:0.5em 0 1em;font-size:14px;text-align:center;max-height:none;">How Meta deduplicates pixel and Conversions API events with a shared event ID</figcaption></figure></div>



<p class="wp-block-paragraph">Meta also supports a fallback that matches on the fbp browser cookie or external_id instead of the event ID. It only works when the browser event arrives first, which means it misses the very purchases a server setup is meant to rescue, so use the event ID.</p>



<p class="wp-block-paragraph">To check your setup, open the Purchase event in Meta Events Manager and compare the deduplicated event count with your backend orders for the same days. If Meta&#8217;s purchases are close to or above your total orders while GA4 shows far fewer, place one test order and compare the IDs both sources sent.</p>



<style>  .box-new {    background-color: #f8f4ef;    padding: 20px 30px 30px 30px; /* top, right, bottom, left */    border: none;  }  .box-new p {    margin-top: 0;    margin-bottom: 1em;  }  .box-new p:last-child {    margin-bottom: 0;  }</style><div class="box-new">  <p><strong>🚀 Quick takeaway</strong></p>  <p>Deduplication fails quietly. Meta doesn&#8217;t flag a double count, it just reports a better ROAS, and budget moves toward it. Test it again after every checkout or theme update.</p></div>



<h2 class="wp-block-heading">What server side tagging costs to run</h2>



<p class="wp-block-paragraph">A server-side Google Tag Manager container on Google Cloud Run costs roughly $90 a month at minimum, based on Google&#8217;s estimate of about $45 per server per month and its advice to run at least two servers. Traffic peaks scale that up. The bigger cost is the work to build the setup and <a href="https://scandiweb.com/blog/website-maintenance-cost/">keep it running</a>.</p>



<p class="wp-block-paragraph">Google&#8217;s Cloud Run setup guide, last updated in May 2026, gives these numbers:</p>



<ul class="wp-block-list">
<li>Each server is a Cloud Run instance with 1 vCPU and 0.5 GB of memory, at about $45 a month</li>


<li>Google recommends at least two instances, so one server outage doesn&#8217;t lose data</li>


<li>Two to ten servers handle roughly 35–350 requests per second, depending on how many tags you run</li>


<li>A separate preview server is provisioned for debugging in Tag Manager</li>

</ul>



<p class="wp-block-paragraph">At ten servers during a Black Friday peak, the same estimate works out to about $450 a month for those days. Cloud Run is Google&#8217;s recommended host, but the container can run in other environments too. Managed providers such as Stape sell server-side GTM hosting on monthly plans priced by request volume, starting with a free tier for low traffic. That removes the cloud setup and adds a vendor.</p>



<p class="wp-block-paragraph">If Meta is the only platform you need server events for, Meta&#8217;s Conversions API Gateway is a lighter option. The software is free, you pay for the cloud resources, and Meta&#8217;s own setup flow estimates AWS costs upwards of $30 a month.</p>



<p class="wp-block-paragraph">Google also offers Google tag gateway for advertisers, which serves the Google tag from your own domain through your CDN or load balancer. It isn&#8217;t a full server container, and Google recommends running both for the most durable setup.</p>



<div class="wp-block-image aligncenter size-large"><figure class="aligncenter size-large"><img loading="lazy" decoding="async" loading="lazy" width="1672" height="941" src="https://scandiweb.com/blog/wp-content/uploads/2026/10/server-side-tagging-cost-cloud-run-estimate.png" alt="Cost card showing two Cloud Run servers at about 90 dollars a month, scaling to ten servers at about 450 dollars at peak" class="wp-image-26092" style="display:block;margin:0 auto;max-width:100%;height:auto;" srcset="https://scandiweb.com/blog/wp-content/uploads/2026/10/server-side-tagging-cost-cloud-run-estimate.png 1672w, https://scandiweb.com/blog/wp-content/uploads/2026/10/server-side-tagging-cost-cloud-run-estimate-300x169.png 300w, https://scandiweb.com/blog/wp-content/uploads/2026/10/server-side-tagging-cost-cloud-run-estimate-1024x576.png 1024w, https://scandiweb.com/blog/wp-content/uploads/2026/10/server-side-tagging-cost-cloud-run-estimate-150x84.png 150w, https://scandiweb.com/blog/wp-content/uploads/2026/10/server-side-tagging-cost-cloud-run-estimate-768x432.png 768w, https://scandiweb.com/blog/wp-content/uploads/2026/10/server-side-tagging-cost-cloud-run-estimate-1536x864.png 1536w, https://scandiweb.com/blog/wp-content/uploads/2026/10/server-side-tagging-cost-cloud-run-estimate-1600x900.png 1600w" sizes="auto, (max-width: 1672px) 100vw, 1672px" /><figcaption style="display:block;position:static;background:none;color:inherit;width:auto;padding:8px 0 0;margin:0.5em 0 1em;font-size:14px;text-align:center;max-height:none;">Server side tagging cost on Cloud Run, from Google&#x27;s per-server estimate</figcaption></figure></div>



<p class="wp-block-paragraph">Someone also has to rebuild each tag in the server container, pass consent signals through, test purchases against real orders, and watch for drops after every release. If nobody owns that work, a broken container can go unnoticed for weeks.</p>



<style>  .box-new {    background-color: #f8f4ef;    padding: 20px 30px 30px 30px; /* top, right, bottom, left */    border: none;  }  .box-new p {    margin-top: 0;    margin-bottom: 1em;  }  .box-new p:last-child {    margin-bottom: 0;  }</style><div class="box-new">  <p><strong>🚀 Quick takeaway</strong></p>  <p>Plan the budget around the person who maintains the container. A $90-a-month container that breaks after a checkout update costs more than the client-side tags it replaced.</p></div>



<h2 class="wp-block-heading">Is server-side tracking worth it for a mid-size store?</h2>



<p class="wp-block-paragraph">Server-side tracking is worth it when paid media drives a large share of revenue across several platforms and someone can own the setup after launch. If your store runs one ad platform on Shopify or Magento, a native Conversions API connection with working deduplication usually closes most of the fixable gap for a fraction of the effort.</p>



<p class="wp-block-paragraph"><strong>Server-side tracking is worth it if:</strong></p>



<ul class="wp-block-list">
<li><a href="https://scandiweb.com/blog/ppc-advertising-an-essential-guide-to-pay-per-click-marketing/">Paid media</a> is one of your largest costs, so a few percent of missing conversions changes bidding decisions</li>


<li>You send purchases to several platforms, such as Meta, Google Ads, TikTok, and GA4, and want one place to manage them</li>


<li>A high share of your traffic uses Safari and iOS, where cookie limits hit returning shoppers hardest</li>


<li>You want to control exactly which customer data each platform receives</li>


<li>You have an analytics team, or a partner, to maintain and monitor the container</li>

</ul>



<p class="wp-block-paragraph"><strong>It isn&#8217;t worth it yet if:</strong></p>



<ul class="wp-block-list">
<li>Meta is your only paid channel and your platform has a native Conversions API connection you haven&#8217;t switched on</li>


<li>Your purchase events aren&#8217;t deduplicated, since moving broken events to a server keeps them broken</li>


<li>Your consent banner and Consent Mode setup aren&#8217;t working, because a server container passes the same consent problems on</li>


<li>Nobody can debug the container when a release breaks it</li>


<li>You expect it to make Meta and GA4 report the same numbers</li>

</ul>



<p class="wp-block-paragraph">If the first list describes your store, our <a href="https://scandiweb.com/services/server-side-tracking" target="_blank" rel="noopener">server-side tracking team</a> starts every setup by measuring the gap against backend orders, so the result is a number you can check.</p>



<h2 class="wp-block-heading">Measure the gap before you build anything</h2>



<p class="wp-block-paragraph">Before choosing a setup, measure how many backend orders each platform receives. Compare orders in your store backend with purchases in GA4 and with the purchase events Meta received for the same days. That shows how much data you lose today, which is the only part a server setup can recover.</p>



<ol class="wp-block-list">
<li>Export backend orders by day for a period that ended at least two weeks ago, so late conversions are included</li>


<li>Pull GA4 purchases by day for the same dates across all channels, and <a href="https://scandiweb.com/blog/ga4-unassigned-traffic/">compare the totals with the backend</a></li>


<li>Pull the received Purchase events in Meta Events Manager for the same dates, instead of the attributed purchases in Ads Manager</li>


<li>Check with one test order that the pixel and server events share an event ID</li>


<li>Check your consent rate and Consent Mode setup, so you know how much of the gap is visitors who declined</li>

</ol>



<p class="wp-block-paragraph">If GA4 receives 90% of backend orders and Meta&#8217;s event count is in line with GA4, the browser setup is doing most of the job. If GA4 sees 70% and Meta&#8217;s events exceed your orders, you have both lost and duplicated events, which is a strong case for fixing tracking first. Our <a href="https://scandiweb.com/services/analytics" target="_blank" rel="noopener">analytics team</a> runs this comparison as the first step of a tracking audit.</p>



<style>  .box-new {    background-color: #f8f4ef;    padding: 20px 30px 30px 30px; /* top, right, bottom, left */    border: none;  }  .box-new p {    margin-top: 0;    margin-bottom: 1em;  }  .box-new p:last-child {    margin-bottom: 0;  }</style><div class="box-new">  <p><strong>🚀 Quick takeaway</strong></p>  <p>Use Events Manager for this check. Ads Manager&#8217;s purchase column applies Meta&#8217;s attribution rules, while Events Manager shows the events that arrived, and only that number tells you whether tracking loses data.</p></div>



<h2 class="wp-block-heading">Frequently asked questions about server side tracking</h2>



<h3 class="wp-block-heading">Is server-side tracking legal?</h3>



<p class="wp-block-paragraph">Yes, server-side tracking is legal, but it doesn&#8217;t change what you need consent for. Under GDPR and similar laws, sending a visitor&#8217;s data to Meta or Google for advertising still requires their consent, whether the request comes from the browser or your server. A compliant setup passes consent signals into the server container, and the container forwards data only where the visitor agreed.</p>



<h3 class="wp-block-heading">Why does Meta report more purchases than GA4?</h3>



<p class="wp-block-paragraph">Meta reports more purchases than GA4 because it counts purchases within seven days of a Meta ad click and one day of an ad view, even when another channel got the last click. GA4 assigns that credit elsewhere and can&#8217;t see ad views at all. Duplicate pixel and server events without a shared event ID can also inflate Meta&#8217;s count.</p>



<h3 class="wp-block-heading">Does server-side tracking bypass ad blockers?</h3>



<p class="wp-block-paragraph">Server-side tracking gets past many ad blockers because the browser sends data to your own subdomain instead of Meta&#8217;s or Google&#8217;s domains. Events your store backend sends directly don&#8217;t depend on the browser at all. It must never be used to get around a visitor&#8217;s consent choice, because data protection law applies to server requests exactly as it does to browser tags.</p>



<h3 class="wp-block-heading">Do I still need the Meta Pixel with the Conversions API?</h3>



<p class="wp-block-paragraph">In most cases, yes. Meta recommends running the pixel and the Conversions API together and sending the same events through both, with a shared event ID for deduplication. The pixel adds browser details that help Meta match visitors, and the Conversions API covers purchases the browser misses. The Conversions API works on its own, usually with lower match quality.</p>



<h3 class="wp-block-heading">How much does server-side tracking cost?</h3>



<p class="wp-block-paragraph">Hosting a server-side Google Tag Manager container on Cloud Run costs about $45 per server per month, according to Google, which recommends at least two servers, so roughly $90 a month before traffic peaks. Managed hosting providers charge monthly plans by request volume. Setup and maintenance usually cost more than hosting and depend on how many platforms and markets you track.</p>



<h3 class="wp-block-heading">What is the difference between client-side and server-side tracking?</h3>



<p class="wp-block-paragraph">Client-side tracking runs each platform&#8217;s tag in the shopper&#8217;s browser, and each tag sends data straight to its vendor. Server-side tracking sends one stream of events to a server you control, usually on your own subdomain, and the server forwards data to each platform. It gives you more control over the data and loses fewer events to blockers, at the cost of hosting and maintenance.</p>



<h2 class="wp-block-heading">Fix the gap you can measure, then decide on the server</h2>



<p class="wp-block-paragraph">Server side tracking helps a store send more of its real purchases to Meta, Google Ads, and GA4, with better customer data attached. It won&#8217;t make the platforms agree, because they assign credit and dates by different rules on purpose. Start by measuring how many backend orders each platform receives, then fix deduplication and consent, and switch on the Conversions API your platform already offers. Build a server container when your paid media budget and the number of platforms justify someone owning it.</p>



<script type="application/ld+json">{"@context": "https://schema.org", "@type": "FAQPage", "mainEntity": [{"@type": "Question", "name": "Is server-side tracking legal?", "acceptedAnswer": {"@type": "Answer", "text": "Yes, server-side tracking is legal, but it doesn't change what you need consent for. Under GDPR and similar laws, sending a visitor's data to Meta or Google for advertising still requires their consent, whether the request comes from the browser or your server. A compliant setup passes consent signals into the server container, and the container forwards data only where the visitor agreed."}}, {"@type": "Question", "name": "Why does Meta report more purchases than GA4?", "acceptedAnswer": {"@type": "Answer", "text": "Meta reports more purchases than GA4 because it counts purchases within seven days of a Meta ad click and one day of an ad view, even when another channel got the last click. GA4 assigns that credit elsewhere and can't see ad views at all. Duplicate pixel and server events without a shared event ID can also inflate Meta's count."}}, {"@type": "Question", "name": "Does server-side tracking bypass ad blockers?", "acceptedAnswer": {"@type": "Answer", "text": "Server-side tracking gets past many ad blockers because the browser sends data to your own subdomain instead of Meta's or Google's domains. Events your store backend sends directly don't depend on the browser at all. It must never be used to get around a visitor's consent choice, because data protection law applies to server requests exactly as it does to browser tags."}}, {"@type": "Question", "name": "Do I still need the Meta Pixel with the Conversions API?", "acceptedAnswer": {"@type": "Answer", "text": "In most cases, yes. Meta recommends running the pixel and the Conversions API together and sending the same events through both, with a shared event ID for deduplication. The pixel adds browser details that help Meta match visitors, and the Conversions API covers purchases the browser misses. The Conversions API works on its own, usually with lower match quality."}}, {"@type": "Question", "name": "How much does server-side tracking cost?", "acceptedAnswer": {"@type": "Answer", "text": "Hosting a server-side Google Tag Manager container on Cloud Run costs about $45 per server per month, according to Google, which recommends at least two servers, so roughly $90 a month before traffic peaks. Managed hosting providers charge monthly plans by request volume. Setup and maintenance usually cost more than hosting and depend on how many platforms and markets you track."}}, {"@type": "Question", "name": "What is the difference between client-side and server-side tracking?", "acceptedAnswer": {"@type": "Answer", "text": "Client-side tracking runs each platform's tag in the shopper's browser, and each tag sends data straight to its vendor. Server-side tracking sends one stream of events to a server you control, usually on your own subdomain, and the server forwards data to each platform. It gives you more control over the data and loses fewer events to blockers, at the cost of hosting and maintenance."}}]}</script>



<div style="height:20px" aria-hidden="true" class="wp-block-spacer"></div>



<p><style> p.box { border: 1px solid black; padding-top: 30px; padding-right: 30px; padding-bottom: 30px; padding-left: 30px; } </style> <p class="box"><em>Not sure whether your gap is lost data or counting rules? </em><a href="https://scandiweb.com/contact" target="_blank" rel="noreferrer noopener"><em>Talk to our analytics team</em></a><em>, and we&#x27;ll compare your backend orders with what Meta and GA4 receive.</em></p></p>
<p>The post <a rel="nofollow" href="https://scandiweb.com/blog/server-side-tracking/">Server-Side Tracking and Meta Conversions API: Why Ad Platforms and GA4 Disagree</a> appeared first on <a rel="nofollow" href="https://scandiweb.com/blog">scandiweb</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Google Consent Mode v2 for eCommerce: Setup, Basic vs Advanced, and the Conversion Gap</title>
		<link>https://scandiweb.com/blog/google-consent-mode-v2/</link>
		
		<dc:creator><![CDATA[Andres Reitsnik]]></dc:creator>
		<pubDate>Tue, 13 Oct 2026 12:54:16 +0000</pubDate>
				<category><![CDATA[Collection]]></category>
		<category><![CDATA[Data Analytics]]></category>
		<category><![CDATA[PPC]]></category>
		<category><![CDATA[data privacy]]></category>
		<category><![CDATA[Data Tracking]]></category>
		<category><![CDATA[GA4]]></category>
		<category><![CDATA[gdpr]]></category>
		<category><![CDATA[google ads]]></category>
		<category><![CDATA[Google Analytics 4]]></category>
		<category><![CDATA[Google Consent Mode]]></category>
		<category><![CDATA[Google Tag Manager]]></category>
		<guid isPermaLink="false">https://scandiweb.com/blog/?p=25866</guid>

					<description><![CDATA[<p>Google Consent Mode v2 controls what Google Ads and GA4 see after a cookie banner. Set it up on Magento or Shopify and test it.</p>
<p>The post <a rel="nofollow" href="https://scandiweb.com/blog/google-consent-mode-v2/">Google Consent Mode v2 for eCommerce: Setup, Basic vs Advanced, and the Conversion Gap</a> appeared first on <a rel="nofollow" href="https://scandiweb.com/blog">scandiweb</a>.</p>
]]></description>
										<content:encoded><![CDATA[<div class="lazyblock-related-Gcm2v wp-block-lazyblock-related"><div class="related-services">
  <h3>Related Services</h3>
  <ul>
    
    <li>
      <a  href="https://scandiweb.com/services/analytics" target=_blank >
        Analytics Services
      </a>
    </li>
    
    <li>
      <a  href="https://scandiweb.com/ga4-migration-consultancy" target=_blank >
        GA4 Migration and Setup
      </a>
    </li>
    
    <li>
      <a  href="https://scandiweb.com/services/google-analytics-4-support" target=_blank >
        GA4 Support
      </a>
    </li>
    
  </ul>
</div>
</div>


<p class="wp-block-paragraph">The new cookie banner went live on Monday. By Friday, Google Ads reports fewer conversions, GA4 shows fewer purchases, and the order count in your backend is exactly where it was. Google Consent Mode v2 explains the gap: it tells Google&#8217;s tags which visitors declined tracking, and Google stops counting those visitors unless your setup lets it model them back.</p>



<p class="wp-block-paragraph">Whether that gap is a reporting problem or a real loss depends on how consent mode is set up and how much traffic your store has. This guide covers what Consent Mode v2 is, when it&#8217;s mandatory, basic vs advanced mode, what changed in 2026, setup on Magento and Shopify, the mistakes that break it, and a 20-minute test.</p>



<h2 class="wp-block-heading">What is Google Consent Mode v2?</h2>



<p class="wp-block-paragraph">Google Consent Mode v2 is the way your website tells Google&#8217;s tags what each visitor agreed to on your cookie banner. It passes four signals, ad_storage, analytics_storage, ad_user_data, and ad_personalization, and Google Ads and GA4 adjust what they collect and use for each visitor. Version 2 added the last two signals, which control whether user data can be sent to Google for advertising and whether it can be used for personalized ads and remarketing.</p>



<figure class="wp-block-table"><table><thead><tr><th>Signal</th><th>What it controls</th><th>Added in</th></tr></thead><tbody><tr><td>ad_storage</td><td>Cookies and identifiers used for advertising</td><td>v1</td></tr><tr><td>analytics_storage</td><td>Cookies used for analytics, such as visit duration</td><td>v1</td></tr><tr><td>ad_user_data</td><td>Sending user data to Google for online advertising</td><td>v2</td></tr><tr><td>ad_personalization</td><td>Using data for personalized ads and remarketing</td><td>v2</td></tr></tbody></table><figcaption class="wp-element-caption">The four Google Consent Mode v2 signals and what each one controls</figcaption></figure>



<p class="wp-block-paragraph">Two tools split the work. Your cookie banner, run by a consent management platform (CMP), asks the visitor and stores the answer. Consent mode passes that answer to every Google tag on the page, which is why a banner can look compliant while Google still receives the wrong signal.</p>



<div class="wp-block-image aligncenter size-large"><figure class="aligncenter size-large"><img loading="lazy" decoding="async" loading="lazy" width="1672" height="941" src="https://scandiweb.com/blog/wp-content/uploads/2026/10/google-consent-mode-v2-signal-flow.png" alt="Diagram of Google Consent Mode v2 sending four consent signals from a cookie banner to GA4 and Google Ads" class="wp-image-25861" style="display:block;margin:0 auto;max-width:100%;height:auto;" srcset="https://scandiweb.com/blog/wp-content/uploads/2026/10/google-consent-mode-v2-signal-flow.png 1672w, https://scandiweb.com/blog/wp-content/uploads/2026/10/google-consent-mode-v2-signal-flow-300x169.png 300w, https://scandiweb.com/blog/wp-content/uploads/2026/10/google-consent-mode-v2-signal-flow-1024x576.png 1024w, https://scandiweb.com/blog/wp-content/uploads/2026/10/google-consent-mode-v2-signal-flow-150x84.png 150w, https://scandiweb.com/blog/wp-content/uploads/2026/10/google-consent-mode-v2-signal-flow-768x432.png 768w, https://scandiweb.com/blog/wp-content/uploads/2026/10/google-consent-mode-v2-signal-flow-1536x864.png 1536w, https://scandiweb.com/blog/wp-content/uploads/2026/10/google-consent-mode-v2-signal-flow-1600x900.png 1600w" sizes="auto, (max-width: 1672px) 100vw, 1672px" /><figcaption style="display:block;position:static;background:none;color:inherit;width:auto;padding:8px 0 0;margin:0.5em 0 1em;font-size:14px;text-align:center;max-height:none;">How consent mode v2 passes banner choices to GA4 and Google Ads</figcaption></figure></div>



<h2 class="wp-block-heading">Is Google Consent Mode v2 mandatory?</h2>



<p class="wp-block-paragraph">Google Consent Mode v2 is mandatory if you use Google Ads or GA4 measurement and have visitors in the EEA, the UK, or Switzerland. Google&#8217;s EU User Consent Policy requires consent for those users, and since March 2024 Google expects the consent to reach its tags through consent mode. Without the v2 signals, Google can&#8217;t build remarketing audiences or use personalized ads for those visitors, and conversion measurement for them gets much weaker.</p>



<p class="wp-block-paragraph">For a store selling into Europe, a missing or broken setup shows up in Google Ads first:</p>



<ul class="wp-block-list">
<li>Remarketing lists stop adding European visitors</li>


<li><a href="https://scandiweb.com/blog/ppc-advertising-an-essential-guide-to-pay-per-click-marketing/" target="_blank" rel="noopener">Smart bidding</a> gets fewer conversion signals and bids on thinner data</li>


<li>User-provided data, such as hashed emails for enhanced conversions, isn&#8217;t used for visitors without ad_user_data granted</li>


<li>The account falls out of line with Google&#8217;s <a href="https://www.google.com/about/company/user-consent-policy/" target="_blank" rel="noopener">EU User Consent Policy</a></li>

</ul>



<p class="wp-block-paragraph">If you only sell in the US, Google doesn&#8217;t require consent mode today. Stores that sell into Europe already juggle several EU rules at checkout, including the new <a href="https://scandiweb.com/blog/eu-withdrawal-button/" target="_blank" rel="noopener">EU withdrawal button</a>, and consent mode belongs on the same compliance checklist.</p>



<style>  .box-new {    background-color: #f8f4ef;    padding: 20px 30px 30px 30px; /* top, right, bottom, left */    border: none;  }  .box-new p {    margin-top: 0;    margin-bottom: 1em;  }  .box-new p:last-child {    margin-bottom: 0;  }</style><div class="box-new">  <p><strong>🚀 Quick takeaway</strong></p>  <p>Consent mode is Google&#8217;s requirement on top of privacy law. A legally compliant banner that doesn&#8217;t send the four signals still costs you remarketing and bidding data in Europe.</p></div>



<h2 class="wp-block-heading">Basic vs advanced consent mode: which one fits your store?</h2>



<p class="wp-block-paragraph">Basic consent mode blocks Google tags until a visitor answers the banner, so a visitor who declines sends nothing to Google. Advanced consent mode loads the tags straight away and sends cookieless pings while consent is denied, which lets Google model the missing conversions with a model built on your own data. Most stores with steady Google Ads traffic in Europe get more out of advanced mode.</p>



<figure class="wp-block-table"><table><thead><tr><th></th><th>Basic consent mode</th><th>Advanced consent mode</th></tr></thead><tbody><tr><td>When Google tags load</td><td>After the visitor answers the banner</td><td>On page load</td></tr><tr><td>Data sent if the visitor declines</td><td>Nothing, not even the consent status</td><td>Cookieless pings without identifiers</td></tr><tr><td>Conversion modeling in Google Ads</td><td>General model</td><td>Model specific to your account</td></tr><tr><td>GA4 behavioral modeling</td><td>Not available</td><td>Available above Google&#8217;s thresholds</td></tr><tr><td>Legal review</td><td>Easiest to approve</td><td>Some legal teams object to any request before consent</td></tr></tbody></table><figcaption class="wp-element-caption">Basic vs advanced consent mode compared for eCommerce stores</figcaption></figure>



<div class="wp-block-image aligncenter size-large"><figure class="aligncenter size-large"><img loading="lazy" decoding="async" loading="lazy" width="1672" height="941" src="https://scandiweb.com/blog/wp-content/uploads/2026/10/consent-mode-basic-vs-advanced-tag-loading.png" alt="Two timelines comparing tag loading in basic consent mode and advanced consent mode before and after a banner choice" class="wp-image-25862" style="display:block;margin:0 auto;max-width:100%;height:auto;" srcset="https://scandiweb.com/blog/wp-content/uploads/2026/10/consent-mode-basic-vs-advanced-tag-loading.png 1672w, https://scandiweb.com/blog/wp-content/uploads/2026/10/consent-mode-basic-vs-advanced-tag-loading-300x169.png 300w, https://scandiweb.com/blog/wp-content/uploads/2026/10/consent-mode-basic-vs-advanced-tag-loading-1024x576.png 1024w, https://scandiweb.com/blog/wp-content/uploads/2026/10/consent-mode-basic-vs-advanced-tag-loading-150x84.png 150w, https://scandiweb.com/blog/wp-content/uploads/2026/10/consent-mode-basic-vs-advanced-tag-loading-768x432.png 768w, https://scandiweb.com/blog/wp-content/uploads/2026/10/consent-mode-basic-vs-advanced-tag-loading-1536x864.png 1536w, https://scandiweb.com/blog/wp-content/uploads/2026/10/consent-mode-basic-vs-advanced-tag-loading-1600x900.png 1600w" sizes="auto, (max-width: 1672px) 100vw, 1672px" /><figcaption style="display:block;position:static;background:none;color:inherit;width:auto;padding:8px 0 0;margin:0.5em 0 1em;font-size:14px;text-align:center;max-height:none;">Basic vs advanced consent mode: when Google tags load and what they send</figcaption></figure></div>



<p class="wp-block-paragraph"><strong>Choose basic consent mode if:</strong></p>



<ul class="wp-block-list">
<li>Your legal team won&#8217;t approve any request to Google before consent</li>


<li>Google Ads is a small share of your European revenue</li>


<li>Your store gets well under 700 Google Ads clicks a week in each country</li>


<li>You report on backend revenue and use GA4 mainly for on-site behavior</li>

</ul>



<p class="wp-block-paragraph"><strong>Choose advanced consent mode if:</strong></p>



<ul class="wp-block-list">
<li>Google Ads drives a meaningful share of your European orders</li>


<li>Your campaigns use smart bidding, which needs as many conversion signals as possible</li>


<li>You get more than 700 ad clicks a week in your main countries</li>


<li>Your GA4 property has thousands of daily users, enough to qualify for behavioral modeling</li>

</ul>



<h2 class="wp-block-heading">Why conversions dropped after your cookie banner went live</h2>



<p class="wp-block-paragraph">Conversions drop after a cookie banner goes live because Google stops seeing the visitors who decline. Orders still happen, but Google Ads and GA4 only record purchases from visitors who consented, so <a href="https://scandiweb.com/blog/ga4-unassigned-traffic/">the reported numbers fall while your backend stays flat</a>. Conversion modeling can fill part of the gap, but only if consent mode is set up correctly and your store meets Google&#8217;s data thresholds.</p>



<p class="wp-block-paragraph">The size of the gap follows your consent rate, with one twist. If 60% of European visitors accept, 40% of that traffic disappears from the reports. The missing share of purchases is usually smaller, because Google&#8217;s own documentation says consented users are typically 2–5 times more likely to convert than visitors who decline. Shoppers who are ready to buy tend to click &#8220;accept&#8221; and move on.</p>



<div class="wp-block-image aligncenter size-large"><figure class="aligncenter size-large"><img loading="lazy" decoding="async" loading="lazy" width="1672" height="941" src="https://scandiweb.com/blog/wp-content/uploads/2026/10/consent-mode-v2-conversion-gap-chart.png" alt="Line chart of backend orders staying flat while Google Ads conversions drop after a cookie banner, with modeled conversions shaded" class="wp-image-25863" style="display:block;margin:0 auto;max-width:100%;height:auto;" srcset="https://scandiweb.com/blog/wp-content/uploads/2026/10/consent-mode-v2-conversion-gap-chart.png 1672w, https://scandiweb.com/blog/wp-content/uploads/2026/10/consent-mode-v2-conversion-gap-chart-300x169.png 300w, https://scandiweb.com/blog/wp-content/uploads/2026/10/consent-mode-v2-conversion-gap-chart-1024x576.png 1024w, https://scandiweb.com/blog/wp-content/uploads/2026/10/consent-mode-v2-conversion-gap-chart-150x84.png 150w, https://scandiweb.com/blog/wp-content/uploads/2026/10/consent-mode-v2-conversion-gap-chart-768x432.png 768w, https://scandiweb.com/blog/wp-content/uploads/2026/10/consent-mode-v2-conversion-gap-chart-1536x864.png 1536w, https://scandiweb.com/blog/wp-content/uploads/2026/10/consent-mode-v2-conversion-gap-chart-1600x900.png 1600w" sizes="auto, (max-width: 1672px) 100vw, 1672px" /><figcaption style="display:block;position:static;background:none;color:inherit;width:auto;padding:8px 0 0;margin:0.5em 0 1em;font-size:14px;text-align:center;max-height:none;">Backend orders vs reported conversions after a consent banner launch</figcaption></figure></div>



<h3 class="wp-block-heading">GA4 consent mode modeling thresholds</h3>



<p class="wp-block-paragraph">GA4 only models the behavior of visitors who decline when the property meets <a href="https://support.google.com/analytics/answer/11161109" target="_blank" rel="noopener">Google&#8217;s eligibility rules</a>:</p>



<ul class="wp-block-list">
<li>At least 1,000 events per day with analytics_storage denied, for at least 7 days</li>


<li>At least 1,000 daily users with analytics_storage granted, for at least 7 of the previous 28 days</li>


<li>Consent mode enabled on every page of the site</li>


<li>Google tags loaded before the consent banner appears</li>

</ul>



<p class="wp-block-paragraph">Modeling fills in users and sessions. It doesn&#8217;t change event counts, so a GA4 report built on the purchase event still shows only consented purchases.</p>



<h3 class="wp-block-heading">Does conversion modeling recover the lost data?</h3>



<p class="wp-block-paragraph">Partly. Google Ads conversion modeling needs 700 ad clicks over 7 days per country and domain grouping, according to <a href="https://support.google.com/google-ads/answer/10548233" target="_blank" rel="noopener">Google Ads Help</a>. Below that, you get no modeled conversions. Above it, Google&#8217;s own example shows an 18% uplift in conversion rate from modeling, which narrows the gap but rarely closes it.</p>



<style>  .box-new {    background-color: #f8f4ef;    padding: 20px 30px 30px 30px; /* top, right, bottom, left */    border: none;  }  .box-new p {    margin-top: 0;    margin-bottom: 1em;  }  .box-new p:last-child {    margin-bottom: 0;  }</style><div class="box-new">  <p><strong>🚀 Quick takeaway</strong></p>  <p>A mid-size store can configure everything correctly and still see a permanent gap in Google Ads, because it never reaches 700 clicks a week in smaller markets. For revenue, trust your backend. Use Google&#8217;s numbers for trends and bidding.</p></div>



<h2 class="wp-block-heading">What changed in Google Consent Mode in 2026</h2>



<p class="wp-block-paragraph">Since June 15, 2026, Google Consent Mode is the only control over whether advertising data from GA4 reaches a linked Google Ads account. The Google Signals switch no longer blocks it. If your ad_storage default is set to granted, Google Ads now uses advertising cookies even when Signals is turned off, so stores that relied on Signals as a privacy safeguard need to check their consent defaults.</p>



<p class="wp-block-paragraph"><a href="https://support.google.com/analytics/answer/17016975" target="_blank" rel="noopener">Google&#8217;s announcement</a> also lists two changes coming later in 2026:</p>



<ul class="wp-block-list">
<li>ad_personalization will become the only control over whether GA4 data is used for ads personalization in Google Ads</li>


<li>IP addresses collected by the Google tag will be encrypted before they reach linked Google Ads accounts</li>

</ul>



<p class="wp-block-paragraph">Neither has a published date yet. Both make the consent mode setup the single source of truth for what Google does with your visitors&#8217; data, so a default that&#8217;s wrong today will matter more by the end of the year.</p>



<h2 class="wp-block-heading">How to set up Google Consent Mode v2 on Magento and Shopify</h2>



<p class="wp-block-paragraph">At a high level, the setup is the same on every platform:</p>



<ol class="wp-block-list">
<li>Pick a Google-certified CMP that supports consent mode v2</li>


<li>Set default states for all four signals before any Google tag fires, denied for visitors in the EEA, the UK, and Switzerland</li>


<li>Update the four signals when the visitor makes a choice on the banner</li>


<li>Choose basic or advanced mode</li>


<li>Check that GA4 and Google Ads tags read the same consent state</li>


<li>Test in each region you sell to, before and after consent</li>

</ol>



<h3 class="wp-block-heading">Magento (Adobe Commerce)</h3>



<p class="wp-block-paragraph">Magento&#8217;s built-in Cookie Restriction Mode blocks cookies until a visitor accepts, which works like basic consent mode. For advanced mode, run an external CMP through Google Tag Manager and switch Cookie Restriction Mode off. Running both gives Google two consent sources that can disagree, and the tags follow whichever one updates last.</p>



<p class="wp-block-paragraph">Check the theme as well. Older Magento builds often include a gtag.js snippet hard-coded in the layout from a previous GA setup, which fires outside GTM and ignores the CMP. We find these leftovers in most <a href="https://scandiweb.com/blog/scandiweb-data-tracking-development-and-migration-projects-magento-2/" target="_blank" rel="noopener">Magento data tracking</a> audits.</p>



<h3 class="wp-block-heading">Shopify</h3>



<p class="wp-block-paragraph">Shopify records visitor choices in its Customer Privacy API, which uses its own categories, such as analytics and marketing. Those categories don&#8217;t map one-to-one to the four consent mode signals, so the mapping happens in your CMP app or in the pixel code. Before you install a CMP from the Shopify App Store, check that it lists consent mode v2 support. After install, confirm that the Google &amp; YouTube app and every custom pixel read the same choice, including on checkout and the thank-you page.</p>



<h3 class="wp-block-heading">Google Tag Manager</h3>



<p class="wp-block-paragraph">In GTM, fire the consent default command on the Consent Initialization trigger, ahead of every other tag. Turn on the consent overview in the container settings to see which tags check which consent types. Google tags have built-in consent checks for the four signals, while third-party tags such as Meta or Microsoft Ads need their own consent settings. Run a <a href="https://scandiweb.com/blog/data-tracking-setup-datalayer/" target="_blank" rel="noopener">dataLayer QA</a> at the same time, because a purchase event that fires twice or too early skews every report that consent mode feeds.</p>



<p class="wp-block-paragraph">If your consent setup was added during an older GA4 migration, review both together as part of a <a href="https://scandiweb.com/ga4-migration-consultancy" target="_blank" rel="noopener">GA4 setup review</a>.</p>



<h2 class="wp-block-heading">Common consent mode v2 mistakes on eCommerce stores</h2>



<p class="wp-block-paragraph">The setups we audit rarely lack consent mode entirely. The usual faults come from tag timing and from leftovers of earlier tracking work:</p>



<figure class="wp-block-table"><table><thead><tr><th>Mistake</th><th style="background-color:#fde2e2;color:#c0392b;">What happens</th><th style="background-color:#d4edda;color:#1e7e34;">Fix</th></tr></thead><tbody><tr><td>Global &#8220;granted&#8221; default</td><td>Google treats European visitors as consented until the banner loads. Since June 15, 2026, Google Signals no longer limits what this sends to Google Ads.</td><td>Default all four signals to denied for visitors in the EEA, the UK, and Switzerland</td></tr><tr><td>GA4 tag fires before the consent default</td><td>The first page view goes out without any consent state</td><td>Fire the default on the Consent Initialization trigger</td></tr><tr><td>Hard-coded gtag.js in a Magento layout or a Shopify theme</td><td>The snippet fires regardless of the CMP</td><td>Remove it and load Google tags only through GTM or a consent-aware app</td></tr><tr><td>&#8220;Denied&#8221; default set worldwide</td><td>A store that shows the banner only in Europe loses US data it was allowed to collect</td><td>Use the region parameter on the consent default</td></tr><tr><td>Payment redirects and hosted checkouts</td><td>The consent state drops, so the purchase event fires with no signal or the wrong one</td><td>Place a test order and check the purchase request on the thank-you page</td></tr><tr><td>Server-side container ignores consent</td><td>Non-Google tags receive data from visitors who declined</td><td>Pass the consent state on to every tag the container fires</td></tr></tbody></table><figcaption class="wp-element-caption">Common consent mode v2 mistakes on eCommerce stores and how to fix them</figcaption></figure>



<style>  .box-new {    background-color: #f8f4ef;    padding: 20px 30px 30px 30px; /* top, right, bottom, left */    border: none;  }  .box-new p {    margin-top: 0;    margin-bottom: 1em;  }  .box-new p:last-child {    margin-bottom: 0;  }</style><div class="box-new">  <p><strong>🚀 Quick takeaway</strong></p>  <p>Check the order before the settings. Most broken setups we see send a perfectly configured consent state, only after the GA4 tag has already fired.</p></div>



<h2 class="wp-block-heading">How to check if consent mode is enabled</h2>



<p class="wp-block-paragraph">A full check takes about 20 minutes per region, and you can do most of it in the browser:</p>



<ul class="wp-block-list">
<li>Open the store in Google Tag Assistant and confirm the Consent tab shows a default state before the first tag fires</li>


<li>Decline on the banner and inspect network requests to Google: the gcs parameter should read G100, meaning ad and analytics storage are denied</li>


<li>Accept and confirm gcs changes to G111, meaning both are granted</li>


<li>Place a test order and check that the purchase request carries the same consent state as the rest of the session</li>


<li>In Google Ads, check the consent mode status in the conversion diagnostics</li>


<li>In GA4 admin, check that consent settings show measurement and personalization signals as active</li>

</ul>



<p class="wp-block-paragraph">The gcs value is the quickest read. Its second digit is ad_storage and its third is analytics_storage, where 1 means granted and 0 means denied:</p>



<figure class="wp-block-table"><table><thead><tr><th>gcs value</th><th>ad_storage</th><th>analytics_storage</th><th>When you should see it</th></tr></thead><tbody><tr><td>G100</td><td><span style="display:inline-block;padding:4px 8px;background-color:#fde2e2;color:#c0392b;border-radius:4px;font-weight:600;">Denied</span></td><td><span style="display:inline-block;padding:4px 8px;background-color:#fde2e2;color:#c0392b;border-radius:4px;font-weight:600;">Denied</span></td><td>After &#8220;Decline&#8221; in the EEA, the UK, or Switzerland</td></tr><tr><td>G110</td><td><span style="display:inline-block;padding:4px 8px;background-color:#d4edda;color:#1e7e34;border-radius:4px;font-weight:600;">Granted</span></td><td><span style="display:inline-block;padding:4px 8px;background-color:#fde2e2;color:#c0392b;border-radius:4px;font-weight:600;">Denied</span></td><td>Visitor accepted marketing cookies only</td></tr><tr><td>G101</td><td><span style="display:inline-block;padding:4px 8px;background-color:#fde2e2;color:#c0392b;border-radius:4px;font-weight:600;">Denied</span></td><td><span style="display:inline-block;padding:4px 8px;background-color:#d4edda;color:#1e7e34;border-radius:4px;font-weight:600;">Granted</span></td><td>Visitor accepted analytics cookies only</td></tr><tr><td>G111</td><td><span style="display:inline-block;padding:4px 8px;background-color:#d4edda;color:#1e7e34;border-radius:4px;font-weight:600;">Granted</span></td><td><span style="display:inline-block;padding:4px 8px;background-color:#d4edda;color:#1e7e34;border-radius:4px;font-weight:600;">Granted</span></td><td>After &#8220;Accept all&#8221;</td></tr></tbody></table><figcaption class="wp-element-caption">gcs parameter values and the consent state each one signals</figcaption></figure>



<div class="wp-block-image aligncenter size-large"><figure class="aligncenter size-large"><img loading="lazy" decoding="async" loading="lazy" width="1672" height="941" src="https://scandiweb.com/blog/wp-content/uploads/2026/10/google-consent-mode-v2-tag-assistant-check.png" alt="Google Tag Assistant consent tab and network request showing the gcs parameter set to G100 after a visitor declines" class="wp-image-25864" style="display:block;margin:0 auto;max-width:100%;height:auto;" srcset="https://scandiweb.com/blog/wp-content/uploads/2026/10/google-consent-mode-v2-tag-assistant-check.png 1672w, https://scandiweb.com/blog/wp-content/uploads/2026/10/google-consent-mode-v2-tag-assistant-check-300x169.png 300w, https://scandiweb.com/blog/wp-content/uploads/2026/10/google-consent-mode-v2-tag-assistant-check-1024x576.png 1024w, https://scandiweb.com/blog/wp-content/uploads/2026/10/google-consent-mode-v2-tag-assistant-check-150x84.png 150w, https://scandiweb.com/blog/wp-content/uploads/2026/10/google-consent-mode-v2-tag-assistant-check-768x432.png 768w, https://scandiweb.com/blog/wp-content/uploads/2026/10/google-consent-mode-v2-tag-assistant-check-1536x864.png 1536w, https://scandiweb.com/blog/wp-content/uploads/2026/10/google-consent-mode-v2-tag-assistant-check-1600x900.png 1600w" sizes="auto, (max-width: 1672px) 100vw, 1672px" /><figcaption style="display:block;position:static;background:none;color:inherit;width:auto;padding:8px 0 0;margin:0.5em 0 1em;font-size:14px;text-align:center;max-height:none;">Checking consent mode v2 in Tag Assistant and the gcs parameter</figcaption></figure></div>



<p class="wp-block-paragraph">If you&#8217;d rather not repeat these checks every quarter, our GA4 team monitors consent signals as part of <a href="https://scandiweb.com/services/google-analytics-4-support" target="_blank" rel="noopener">ongoing tracking support</a>.</p>



<h2 class="wp-block-heading">Frequently asked questions about Google Consent Mode v2</h2>



<h3 class="wp-block-heading">Is Google consent mode v2 mandatory?</h3>



<p class="wp-block-paragraph">Yes, if you advertise with Google Ads or measure with GA4 and have visitors from the EEA, the UK, or Switzerland. Google requires their consent under its EU User Consent Policy and expects it to arrive through the four consent mode v2 signals. Without them, remarketing and personalized ads stop working for those visitors, and conversion measurement gets weaker.</p>



<h3 class="wp-block-heading">What does consent mode do in Google Tag Manager?</h3>



<p class="wp-block-paragraph">In Google Tag Manager, consent mode reads the visitor&#8217;s consent state and holds or adjusts each tag based on it. Google tags have built-in checks for the four consent signals. For third-party tags, you add consent requirements in the tag settings so they only fire after the visitor agrees.</p>



<h3 class="wp-block-heading">How do I check if consent mode v2 is working?</h3>



<p class="wp-block-paragraph">Use Google Tag Assistant&#8217;s Consent tab to confirm a default state loads before any tag fires. Then decline and accept on your banner and check the gcs parameter in requests to Google: G100 means ad and analytics storage are denied, G111 means both are granted. Google Ads conversion diagnostics also show consent mode status.</p>



<h3 class="wp-block-heading">Does Google Consent Mode v2 replace a cookie banner?</h3>



<p class="wp-block-paragraph">Consent mode needs a cookie banner to work. The banner, run by a consent management platform, asks visitors for consent and records the answer. Consent mode then passes that answer to Google&#8217;s tags. Without a banner, there&#8217;s no choice to pass, and Google receives only your default settings.</p>



<h3 class="wp-block-heading">Do I need advanced consent mode for conversion modeling?</h3>



<p class="wp-block-paragraph">For a model trained on your own account&#8217;s data, yes. Advanced mode sends cookieless pings when visitors decline, and Google uses them to model conversions specific to your store. Basic mode only gets a general model in Google Ads, and GA4 behavioral modeling isn&#8217;t available.</p>



<h3 class="wp-block-heading">What happens if I don&#8217;t implement consent mode v2?</h3>



<p class="wp-block-paragraph">For visitors in the EEA, the UK, and Switzerland, Google Ads stops building remarketing audiences and can&#8217;t use their data for personalized ads. Conversion tracking for them gets weaker, which feeds smart bidding less data. Your account also falls out of line with Google&#8217;s EU User Consent Policy.</p>



<h2 class="wp-block-heading">Get consent mode right before you trust the numbers</h2>



<p class="wp-block-paragraph">Google Consent Mode v2 decides what Google Ads and GA4 are allowed to see, so a wrong setup changes every number your marketing team reports without anyone touching the campaigns. Start with the default state and the gcs check, then decide whether advanced mode pays off for your ad spend. Getting tracking right changes what you can see: when we rebuilt tracking for <a href="https://scandiweb.com/blog/data-analytics-drives-improved-ecommerce-kpis-and-conversion-rates-for-buff/" target="_blank" rel="noopener">BUFF</a>, the store captured 75% more user data. Our <a href="https://scandiweb.com/services/analytics" target="_blank" rel="noopener">analytics team</a> runs the same audit on consent setups for Magento and Shopify stores.</p>



<div style="height:20px" aria-hidden="true" class="wp-block-spacer"></div>



<p><style> p.box { border: 1px solid black; padding-top: 30px; padding-right: 30px; padding-bottom: 30px; padding-left: 30px; } </style> <p class="box"><em>Still not sure whether your conversion drop is real or just consent? </em><a href="https://scandiweb.com/contact" target="_blank" rel="noreferrer noopener"><em>Tell us what changed on your store</em></a><em>, and we&#x27;ll check the setup with you.</em></p></p>
<p>The post <a rel="nofollow" href="https://scandiweb.com/blog/google-consent-mode-v2/">Google Consent Mode v2 for eCommerce: Setup, Basic vs Advanced, and the Conversion Gap</a> appeared first on <a rel="nofollow" href="https://scandiweb.com/blog">scandiweb</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>eCommerce Email Templates That Convert in 2026</title>
		<link>https://scandiweb.com/blog/crafting-winning-email-templates-your-ecommerce-marketing-guide/</link>
		
		<dc:creator><![CDATA[Andres Reitsnik]]></dc:creator>
		<pubDate>Thu, 28 May 2026 19:59:00 +0000</pubDate>
				<category><![CDATA[Digital Growth]]></category>
		<category><![CDATA[Branding]]></category>
		<category><![CDATA[Creative design]]></category>
		<category><![CDATA[CRO]]></category>
		<category><![CDATA[email marketing]]></category>
		<category><![CDATA[UX Design]]></category>
		<guid isPermaLink="false">https://scandiweb.com/blog/?p=16593</guid>

					<description><![CDATA[<p>An eCommerce email template guide for 2026: the design rules, the lifecycle templates that drive revenue, and the sender rules you now have to meet.</p>
<p>The post <a rel="nofollow" href="https://scandiweb.com/blog/crafting-winning-email-templates-your-ecommerce-marketing-guide/">eCommerce Email Templates That Convert in 2026</a> appeared first on <a rel="nofollow" href="https://scandiweb.com/blog">scandiweb</a>.</p>
]]></description>
										<content:encoded><![CDATA[<div class="wp-block-lazyblock-related lazyblock-related-1YWrmX">
<div class="related-services">
<h3>Related Services</h3>
<ul>
<li><a href="https://scandiweb.com/email-marketing-services" target="_blank" rel="noopener">Email Marketing</a></li>
<li><a href="https://scandiweb.com/services/ai-marketing-automation" target="_blank" rel="noopener">Marketing Automation</a></li>
<li><a href="https://scandiweb.com/services/cro-ux" target="_blank" rel="noopener">eCommerce UX &amp; CRO</a></li>
</ul>
</div>
</div>
<p>It is 9 a.m., your sale email goes out in three hours, and the template still looks like a newsletter from 2015. You know the copy is fine. What you are not sure about is whether the layout, the buttons, and the way it renders on a phone will actually get someone to click and buy.</p>
<p>That is the real job of an eCommerce email template: not to look pretty, but to move a reader from inbox to checkout. This guide covers both halves of that job, the design rules that make a template convert and the lifecycle templates that drive the most revenue, plus the sender requirements you now have to meet to reach the inbox at all.</p>
<h2>Overview</h2>
<ul>
<li>A converting email template is built like a mini landing page: one clear path from a scannable header to a single, obvious call to action.</li>
<li>The templates that earn the most revenue are automated lifecycle emails, with abandoned-cart and welcome flows leading by a wide margin.</li>
<li>In 2026, Gmail and Yahoo actively enforce the bulk-sender rules they introduced in 2024: authenticate your domain, offer one-click unsubscribe, and keep spam complaints under 0.3%, or your emails stop reaching the inbox.</li>
</ul>


<style>  .box-new {    background-color: #f8f4ef;    padding: 20px 30px 30px 30px;    border: none;  }  .box-new p {    margin-top: 0;    margin-bottom: 1em;  }  .box-new p:last-child {    margin-bottom: 0;  }</style><div class="box-new">  <p><strong><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f680.png" alt="🚀" class="wp-smiley" style="height: 1em; max-height: 1em;" /> Quick takeaway</strong></p>  <p>Design and deliverability are not separate problems. The best-designed email in the world earns nothing if it lands in spam.</p></div>


<h2>What makes an eCommerce email template convert?</h2>
<p>A converting template guides the eye down one clear path to a single action. Treat every email like a mini landing page with a defined header, body, and footer, then remove anything that competes with the click you want.</p>
<h3>Structure</h3>
<p>Keep a well-defined header, central body, and footer. The header carries your brand identity, a short menu, and a link to the browser version. The footer holds contact details, social icons, and the unsubscribe option. A single-column layout reads best and adapts to mobile far more reliably than multi-column grids.</p>
<h3>Headings</h3>
<p>Skip decorative captions. Clear, direct headings guide attention and break up the message so it can be skimmed in seconds, which is how most people read email.</p>
<h3>Call to action</h3>
<p>One email, one primary action. Make the main button bold, high-contrast, and written as a verb the reader can act on. Segment your list and match the call to action to each group, since a returning customer and a first-time subscriber are not deciding the same thing.</p>


<div class="wp-block-image size-large"><figure class="aligncenter"><img fetchpriority="high" decoding="async" width="1024" height="535" src="https://scandiweb.com/blog/wp-content/uploads/2023/08/ecommerce-email-marketing-template-1-1024x535.png" alt="eCommerce marketing email template with a clear call-to-action button" class="wp-image-16597" srcset="https://scandiweb.com/blog/wp-content/uploads/2023/08/ecommerce-email-marketing-template-1-1024x535.png 1024w, https://scandiweb.com/blog/wp-content/uploads/2023/08/ecommerce-email-marketing-template-1-300x157.png 300w, https://scandiweb.com/blog/wp-content/uploads/2023/08/ecommerce-email-marketing-template-1-150x78.png 150w, https://scandiweb.com/blog/wp-content/uploads/2023/08/ecommerce-email-marketing-template-1-768x401.png 768w, https://scandiweb.com/blog/wp-content/uploads/2023/08/ecommerce-email-marketing-template-1.png 1200w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure></div>


<h3>Visuals</h3>
<p>Images, GIFs, and product shots carry the message when text alone would lose the reader. Use them to show the product in context, not as decoration. Stacked paragraphs with no visual break are the fastest way to lose attention.</p>
<h3>Color</h3>
<p>Color sets the emotional tone before a word is read, and the right palette depends on the occasion. A Black Friday email and a spring launch should not look the same. Match the palette to the campaign and to your brand, and use a single accent color to make the call to action unmistakable.</p>
<h3>Typography</h3>
<p>The typeface sets the tone and has to stay readable on every screen. A few rules hold up well:</p>
<ul>
<li>Use distinct fonts for headings and body text.</li>
<li>Avoid ornate display fonts in the body.</li>
<li>Set body text at 14 to 16px and headings at 20 to 30px.</li>
<li>Keep spacing and styles consistent across the email.</li>
</ul>


<style>  .box-new {    background-color: #f8f4ef;    padding: 20px 30px 30px 30px;    border: none;  }  .box-new p {    margin-top: 0;    margin-bottom: 1em;  }  .box-new p:last-child {    margin-bottom: 0;  }</style><div class="box-new">  <p><strong><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f680.png" alt="🚀" class="wp-smiley" style="height: 1em; max-height: 1em;" /> Quick takeaway</strong></p>  <p>If a reader cannot find the one button you want them to press within two seconds, the template is doing your competitor a favor, not you.</p></div>


<h2>Email design best practices</h2>
<h3>Width and length</h3>
<p>A template width of 600 to 640px renders well across email clients, including the ones that frame your message next to other panels. Length depends on content: text newsletters can run longer, but image-heavy emails risk being clipped by Gmail, so front-load the message and the call to action.</p>

<div class="wp-block-image aligncenter size-full is-resized">
<figure ><img decoding="async" src="https://scandiweb.com/blog/wp-content/uploads/2023/08/ecommerce-email-marketing-template-2.png" alt="Mobile eCommerce email template showing recommended width" class="wp-image-16596" width="279" height="596" srcset="https://scandiweb.com/blog/wp-content/uploads/2023/08/ecommerce-email-marketing-template-2.png 364w, https://scandiweb.com/blog/wp-content/uploads/2023/08/ecommerce-email-marketing-template-2-140x300.png 140w, https://scandiweb.com/blog/wp-content/uploads/2023/08/ecommerce-email-marketing-template-2-70x150.png 70w" sizes="(max-width: 279px) 100vw, 279px" /></figure>
</div>

<h3>Brand consistency</h3>
<p>Use the same tone, colors, and fonts you use everywhere else. A reader should recognize the email as yours before they read the sender name. Carry your logo, link to your site and social profiles, and keep the call to action in your brand voice.</p>
<h3>Layout patterns</h3>
<p>Two layouts reliably guide the eye:</p>
<ul>
<li><strong>Inverted pyramid:</strong> start with a wide header, narrow the content, and end on the call to action. It funnels attention straight to the click.</li>
<li><strong>Zigzag:</strong> alternate text and image blocks side to side. It shows products well on desktop but can break awkwardly on mobile, so test it before sending.</li>
</ul>
<h3>Video</h3>
<p>Video lifts engagement, but most email clients do not play it inline. The reliable workaround is a clickable thumbnail, a static image or a GIF with a play icon, that opens the video in the browser. You get the attention without the rendering risk.</p>


<style>  .box-new {    background-color: #f8f4ef;    padding: 20px 30px 30px 30px;    border: none;  }  .box-new p {    margin-top: 0;    margin-bottom: 1em;  }  .box-new p:last-child {    margin-bottom: 0;  }</style><div class="box-new">  <p><strong><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f680.png" alt="🚀" class="wp-smiley" style="height: 1em; max-height: 1em;" /> Quick takeaway</strong></p>  <p>Every design choice is a tradeoff between impact and rendering. When in doubt, pick the version that survives a cheap Android phone in a dark room.</p></div>


<h2>The eCommerce email templates that drive revenue</h2>
<p>Design gets the click. Template type decides how often you get to ask. The highest-return emails are automated lifecycle flows triggered by behavior, not one-off campaigns. According to industry benchmarks, automated flows like abandoned cart and welcome series consistently outperform broadcast sends, with abandoned-cart emails reaching open rates near 45% and welcome emails often hitting 50 to 60%. These are the templates worth building well:</p>
<ul>
<li><strong>Welcome series:</strong> the highest open rates you will ever see. Introduce the brand, set expectations, and make a first offer.</li>
<li><strong>Abandoned cart:</strong> the single highest-revenue automation for most stores. Show the cart, handle the objection, and keep the first email simple.</li>
<li><strong>Browse abandonment:</strong> for shoppers who viewed but never added to cart. Lighter touch than a cart email.</li>
<li><strong>Post-purchase:</strong> order confirmation, shipping updates, and a follow-up that sets up the next purchase or a review request.</li>
<li><strong>Replenishment:</strong> for consumable products, timed to when the customer is likely to run out.</li>
<li><strong>Win-back:</strong> for lapsed customers, often paired with an incentive. This is where a connected <a href="https://scandiweb.com/blog/customer-loyalty-program-examples-by-industry/" target="_blank" rel="noopener">loyalty program</a> does a lot of the work.</li>
<li><strong>Review request:</strong> turns a recent buyer into social proof for the next one.</li>
</ul>
<p>Each of these is a reusable template once it is built. The work is getting the structure, timing, and trigger right once, then letting it run.</p>


<style>  .box-new {    background-color: #f8f4ef;    padding: 20px 30px 30px 30px;    border: none;  }  .box-new p {    margin-top: 0;    margin-bottom: 1em;  }  .box-new p:last-child {    margin-bottom: 0;  }</style><div class="box-new">  <p><strong><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f680.png" alt="🚀" class="wp-smiley" style="height: 1em; max-height: 1em;" /> Quick takeaway</strong></p>  <p>A great campaign email earns once. A great abandoned-cart template earns every day, for every shopper who hesitates.</p></div>


<h2>Make your emails mobile-responsive and dark-mode ready</h2>
<p>More than half of email opens happen on a phone, so a desktop-only design leaves money on the table. Build one email that adapts cleanly between screens rather than hoping a fixed layout holds up.</p>
<h3>Mobile best practices</h3>
<ul>
<li>Set body text at 14 to 16px and headlines at 20 to 22px.</li>
<li>Make sure any landing page you link to is also mobile-optimized.</li>
<li>Hide non-essential elements on small screens to reduce clutter.</li>
<li>Repeat the main call to action in longer emails so the reader never has to scroll back.</li>
</ul>
<p><!-- relocated from "Unsubscribe button" section, which merged into the 2024 sender-rules H2 --></p>

<div class="wp-block-image aligncenter size-full is-resized">
<figure ><img decoding="async" src="https://scandiweb.com/blog/wp-content/uploads/2023/08/ecommerce-email-marketing-template-3.png" alt="eCommerce email template with a clearly visible unsubscribe option" class="wp-image-16595" width="665" height="568" srcset="https://scandiweb.com/blog/wp-content/uploads/2023/08/ecommerce-email-marketing-template-3.png 738w, https://scandiweb.com/blog/wp-content/uploads/2023/08/ecommerce-email-marketing-template-3-300x256.png 300w, https://scandiweb.com/blog/wp-content/uploads/2023/08/ecommerce-email-marketing-template-3-150x128.png 150w" sizes="(max-width: 665px) 100vw, 665px" /></figure>
</div>

<h3>Dark mode</h3>
<p>A large and growing share of readers use dark mode, which flips your palette to light text on a dark background. Design for it rather than against it:</p>
<ul>
<li>Use transparent PNGs so images do not sit on a clashing white block.</li>
<li>Add a thin light outline to dark logos and icons so they do not vanish.</li>
<li>Preview in a tool like the GetResponse or Litmus email tester, since dark-mode rendering varies by client.</li>
</ul>

<div class="wp-block-image aligncenter size-full is-resized">
<figure ><img loading="lazy" decoding="async" src="https://scandiweb.com/blog/wp-content/uploads/2023/08/ecommerce-email-marketing-template-4.png" alt="eCommerce email template shown in dark mode" class="wp-image-16594" width="545" height="465" srcset="https://scandiweb.com/blog/wp-content/uploads/2023/08/ecommerce-email-marketing-template-4.png 649w, https://scandiweb.com/blog/wp-content/uploads/2023/08/ecommerce-email-marketing-template-4-300x256.png 300w, https://scandiweb.com/blog/wp-content/uploads/2023/08/ecommerce-email-marketing-template-4-150x128.png 150w" sizes="(max-width: 545px) 100vw, 545px" /></figure>
</div>


<style>  .box-new {    background-color: #f8f4ef;    padding: 20px 30px 30px 30px;    border: none;  }  .box-new p {    margin-top: 0;    margin-bottom: 1em;  }  .box-new p:last-child {    margin-bottom: 0;  }</style><div class="box-new">  <p><strong><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f680.png" alt="🚀" class="wp-smiley" style="height: 1em; max-height: 1em;" /> Quick takeaway</strong></p>  <p>Dark mode is not an edge case anymore. If your logo disappears on a dark background, a real slice of your list is seeing a broken email.</p></div>


<h2>Which Gmail and Yahoo sender rules apply in 2026?</h2>
<p>Reaching the inbox in 2026 means meeting the bulk-sender rules Gmail and Yahoo introduced in February 2024 and now actively enforce, because a beautiful template does nothing if it never arrives. Per <a href="https://support.google.com/a/answer/14229414?hl=en" target="_blank" rel="noopener">Google&#8217;s sender guidelines</a>, senders mailing 5,000 or more messages a day to Gmail must meet three rules:</p>
<ul>
<li><strong>Authenticate your domain</strong> with SPF, DKIM, and DMARC.</li>
<li><strong>Offer one-click unsubscribe</strong> in every promotional email, and honor it within two days.</li>
<li><strong>Keep your spam-complaint rate under 0.3%.</strong> At 10,000 sends, that is only 30 people marking you as spam.</li>
</ul>
<p>Gmail ramped up enforcement through late 2025, so in 2026 non-compliant senders see real delivery failures, not just warnings. The practical takeaway: the unsubscribe link and your authentication setup are no longer optional polish. They decide whether the inbox accepts you at all.</p>


<style>  .box-new {    background-color: #f8f4ef;    padding: 20px 30px 30px 30px;    border: none;  }  .box-new p {    margin-top: 0;    margin-bottom: 1em;  }  .box-new p:last-child {    margin-bottom: 0;  }</style><div class="box-new">  <p><strong><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f680.png" alt="🚀" class="wp-smiley" style="height: 1em; max-height: 1em;" /> Quick takeaway</strong></p>  <p>Deliverability is now a design requirement. A visible unsubscribe and a clean authentication record protect every other email you send.</p></div>


<h2>How scandiweb approaches eCommerce email marketing</h2>
<p>We build email as a system, not a series of one-off sends. That means a template library tied to the lifecycle flows that earn the most, design that holds up on real devices, and a deliverability setup that keeps you in the inbox as volume grows. It is the same retention thinking behind our broader <a href="https://scandiweb.com/blog/email-marketing-best-practices-for-revenue-growth/" target="_blank" rel="noopener">email marketing best practices</a>, and it connects to the on-site work in <a href="https://scandiweb.com/services/cro-ux" target="_blank" rel="noopener">conversion rate optimization</a>, since the email and the landing page have to tell one story.</p>
<p>Across more than 2,100 eCommerce projects since 2003, the pattern is consistent: the brands that win on email are not the ones with the prettiest single send. They are the ones whose templates, timing, and triggers work together, especially around peak moments like <a href="https://scandiweb.com/blog/how-to-prepare-for-black-friday-2023-ecommerce-strategies-ideas/" target="_blank" rel="noopener">Black Friday</a>.</p>


<style>  .box-new {    background-color: #f8f4ef;    padding: 20px 30px 30px 30px;    border: none;  }  .box-new p {    margin-top: 0;    margin-bottom: 1em;  }  .box-new p:last-child {    margin-bottom: 0;  }</style><div class="box-new">  <p><strong><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f680.png" alt="🚀" class="wp-smiley" style="height: 1em; max-height: 1em;" /> Quick takeaway</strong></p>  <p>The template is the visible part. The revenue comes from the flow it sits inside.</p></div>


<h2>Frequently asked questions</h2>
<h3>What is an eCommerce email template?</h3>
<p>An eCommerce email template is a reusable, branded layout for a specific type of marketing email, such as a welcome, abandoned cart, or promotional send. A good template defines structure, typography, and the call to action once, so every email stays consistent and renders correctly across devices.</p>
<h3>What size should an eCommerce email be?</h3>
<p>Use a template width of 600 to 640px, which renders well across email clients. Keep the message focused: front-load your main content and call to action so it is visible before any clipping by clients like Gmail.</p>
<h3>Which email templates make the most money in eCommerce?</h3>
<p>Automated lifecycle flows outperform one-off campaigns. Abandoned-cart and welcome emails lead, followed by post-purchase, browse abandonment, replenishment, and win-back flows. These run continuously once built, so they compound over time.</p>
<h3>How do I make an email template dark-mode friendly?</h3>
<p>Use transparent images, add a light outline to dark logos so they stay visible, and test in a dark-mode preview tool. Dark mode flips your color scheme, so anything that relies on a white background needs to be checked.</p>
<h3>What are the Gmail and Yahoo sender rules in 2026?</h3>
<p>The rules, introduced in February 2024, are fully enforced in 2026. Bulk senders to Gmail and Yahoo must authenticate their domain with SPF, DKIM, and DMARC, include one-click unsubscribe in promotional emails, and keep spam complaints under 0.3%.</p>
<h3>How long should a marketing email be?</h3>
<p>There is no fixed length. Text-led newsletters can run longer, while image-heavy promotional emails should stay short to avoid clipping. Match length to the single action you want the reader to take.</p>


<p><style> p.box { border: 1px solid black; padding-top: 30px; padding-right: 30px; padding-bottom: 30px; padding-left: 30px; } </style> <p class="box"><em>Staring at a template that looks fine but is not converting? That gap is usually structure, timing, or deliverability, not copy. </em><a href="https://scandiweb.com/email-marketing-services" target="_blank" rel="noreferrer noopener"><em>Book a working session</em></a><em> with our email team and we will look at your templates and the flows behind them together.</em></p></p>


<h3>About this guide</h3>
<p>Maintained by the scandiweb Growth team. Reviewed by the scandiweb email marketing specialists. Last updated May 2026.</p>


<script type="application/ld+json">
{"@context":"https://schema.org","@type":"FAQPage","mainEntity":[{"@type":"Question","name":"What is an eCommerce email template?","acceptedAnswer":{"@type":"Answer","text":"An eCommerce email template is a reusable, branded layout for a specific type of marketing email, such as a welcome, abandoned cart, or promotional send. A good template defines structure, typography, and the call to action once, so every email stays consistent and renders correctly across devices."}},{"@type":"Question","name":"What size should an eCommerce email be?","acceptedAnswer":{"@type":"Answer","text":"Use a template width of 600 to 640px, which renders well across email clients. Keep the message focused: front-load your main content and call to action so it is visible before any clipping by clients like Gmail."}},{"@type":"Question","name":"Which email templates make the most money in eCommerce?","acceptedAnswer":{"@type":"Answer","text":"Automated lifecycle flows outperform one-off campaigns. Abandoned-cart and welcome emails lead, followed by post-purchase, browse abandonment, replenishment, and win-back flows. These run continuously once built, so they compound over time."}},{"@type":"Question","name":"How do I make an email template dark-mode friendly?","acceptedAnswer":{"@type":"Answer","text":"Use transparent images, add a light outline to dark logos so they stay visible, and test in a dark-mode preview tool. Dark mode flips your color scheme, so anything that relies on a white background needs to be checked."}},{"@type":"Question","name":"What are the Gmail and Yahoo sender rules in 2026?","acceptedAnswer":{"@type":"Answer","text":"The rules, introduced in February 2024, are fully enforced in 2026. Bulk senders to Gmail and Yahoo must authenticate their domain with SPF, DKIM, and DMARC, include one-click unsubscribe in promotional emails, and keep spam complaints under 0.3%."}},{"@type":"Question","name":"How long should a marketing email be?","acceptedAnswer":{"@type":"Answer","text":"There is no fixed length. Text-led newsletters can run longer, while image-heavy promotional emails should stay short to avoid clipping. Match length to the single action you want the reader to take."}}]}
</script>
<p>The post <a rel="nofollow" href="https://scandiweb.com/blog/crafting-winning-email-templates-your-ecommerce-marketing-guide/">eCommerce Email Templates That Convert in 2026</a> appeared first on <a rel="nofollow" href="https://scandiweb.com/blog">scandiweb</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Pay-Per-Click Advertising in 2026: Platforms, Costs, and What Still Converts</title>
		<link>https://scandiweb.com/blog/ppc-advertising-an-essential-guide-to-pay-per-click-marketing/</link>
		
		<dc:creator><![CDATA[Andres Reitsnik]]></dc:creator>
		<pubDate>Tue, 19 May 2026 10:48:00 +0000</pubDate>
				<category><![CDATA[Collection]]></category>
		<category><![CDATA[Digital Growth]]></category>
		<category><![CDATA[PPC]]></category>
		<category><![CDATA[Advertising]]></category>
		<category><![CDATA[CRO]]></category>
		<category><![CDATA[ecommerce]]></category>
		<category><![CDATA[marketing strategy]]></category>
		<category><![CDATA[PPC campaign]]></category>
		<guid isPermaLink="false">https://scandiweb.com/blog/?p=15991</guid>

					<description><![CDATA[<p>Updated guide to pay-per-click advertising from scandiweb's paid-search team – platforms, CPC benchmarks, AI Overview impact, and a budget framework that works for eCommerce.</p>
<p>The post <a rel="nofollow" href="https://scandiweb.com/blog/ppc-advertising-an-essential-guide-to-pay-per-click-marketing/">Pay-Per-Click Advertising in 2026: Platforms, Costs, and What Still Converts</a> appeared first on <a rel="nofollow" href="https://scandiweb.com/blog">scandiweb</a>.</p>
]]></description>
										<content:encoded><![CDATA[<div class="wp-block-lazyblock-related lazyblock-related-ZIM0xF">
<div class="related-services">
<h3>Related Services</h3>
<ul>
<li><a href="https://scandiweb.com/services/paid-search-advertising" target="_blank" rel="noopener">Paid search advertising<br></a></li>
<li><a href="https://scandiweb.com/services/paid-social-advertising-services" target="_blank" rel="noopener">Paid social advertising<br></a></li>
<li><a href="https://scandiweb.com/services/cro-ux" target="_blank" rel="noopener">Conversion rate optimization<br></a></li>
</ul>
</div>
</div>
<p>Most PPC advice in 2026 still assumes the 2023 playbook works. It does not. Google&#8217;s AI Overviews now sit above paid ads on a meaningful share of high-intent queries and have compressed paid click-through rates by roughly 68% on AIO-triggering searches. Performance Max is no longer optional. First-party data has replaced cookies as the bidding signal that decides who wins the auction. The accounts running 2023 strategies are losing money on the same budgets. The accounts running 2026 strategies are scaling on half the budget.</p>
<p>The scandiweb paid-search team manages PPC for eCommerce brands including BUFF, Puma, Macron, and Läderach. This guide is the framework we walk those clients through – where the auction has shifted, which platforms still convert, what 2026 spend allocations look like for a healthy mid-market store, and which structural decisions stop budgets from bleeding.</p>
<h2>Overview</h2>
<ul>
<li>Pay-per-click (PPC) advertising is a paid-media model where the advertiser pays a publisher (Google, Meta, Microsoft, Amazon, TikTok, LinkedIn) only when a user clicks their ad. You buy targeted visits, not impressions.</li>
<li>In 2026, Google holds 48.5% of US search ad spending – the first time below 50% in more than 20 years (<a href="https://www.emarketer.com/chart/c/353333/google-will-drop-below-50-share-of-search-ad-market-2026-353333" target="_blank" rel="noopener">eMarketer, 2026</a>). Meta is projected to surpass Google in total digital ad revenues for the first time at $243.46 billion vs $239.54 billion (<a href="https://www.emarketer.com/learningcenter/guides/meta-to-surpass-google-in-digital-ad-revenues-for-first-time-ever/" target="_blank" rel="noopener">eMarketer, 2026</a>). The category is fragmenting fast.</li>
<li>AI Overviews reshape the math. Paid CTR for queries with an AIO dropped from 19.70% to 6.34% between June 2024 and September 2025 (<a href="https://searchengineland.com/google-ai-overviews-drive-drop-organic-paid-ctr-464212" target="_blank" rel="noopener">Search Engine Land, 2025</a>). Brands cited inside the AI Overview earn 91% higher paid CTR than non-cited brands (<a href="https://searchengineland.com/what-industry-data-reveals-about-the-impact-of-googles-ai-overviews-on-paid-search-470019" target="_blank" rel="noopener">Search Engine Land, Q3 2025</a>) – brand authority and AEO eligibility now feed paid performance.</li>
</ul>


<style>  .box-new {    background-color: #f8f4ef;    padding: 20px 30px 30px 30px;    border: none;  }  .box-new p {    margin-top: 0;    margin-bottom: 1em;  }  .box-new p:last-child {    margin-bottom: 0;  }</style><div class="box-new">  <p><strong><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f680.png" alt="🚀" class="wp-smiley" style="height: 1em; max-height: 1em;" /> Quick takeaway</strong></p>  <p>The biggest single shift in 2026 is that brand authority – the kind that gets you cited in an AI Overview – now compounds paid CTR by almost 2x. Paid and organic strategy stopped being separate disciplines.</p></div>


<h2>Understanding PPC advertising</h2>
<p>PPC advertising, also known as PPC marketing, is a model where businesses display ads on search engines like Google and social networks like Meta, and only incur a cost when someone clicks the ad. As simple as the mechanic sounds, PPC has evolved into a precise, automated discipline in 2026 with sophisticated ad formats, audience-targeting options, and platform-specific bidding models. The platforms help businesses reach their audience, increase brand visibility, drive targeted traffic, generate leads, and measure campaign performance in near-real-time.</p>
<p>From keyword research, ad creation, and ongoing optimization to landing-page experience, tracking, and analytics, a successful PPC campaign involves many moving parts. The ads run on Google Ads, Meta Ads (Facebook and Instagram), Microsoft Advertising, Amazon Ads, TikTok Ads, and LinkedIn Ads. The right platform mix depends on intent, audience, and budget.</p>
<h3>What is pay-per-click advertising?</h3>
<p>Pay-per-click advertising is a paid-media model where the advertiser pays a publisher each time a user clicks an ad. The publisher (Google, Meta, Microsoft, Amazon, LinkedIn, TikTok) runs a continuous auction for ad placements, and the advertiser wins by combining a bid amount with ad quality. You are charged on click, not on impression.</p>
<p>The single mechanic sounds simple. In practice it sits under five layers of automation in 2026: smart bidding, audience signals, Performance Max asset mixing, broad-match query expansion, and ad-relevance scoring. The advertiser sets the goal (revenue, leads, demos, store visits), the platform decides who sees the ad, when, where, and at what bid.</p>
<p><strong>Fact:</strong> Google US search ad revenue is forecast at $67.3 billion in 2026, with mobile search alone accounting for over $41 billion (<a href="https://www.emarketer.com/content/us-search-advertising-forecast-2026" target="_blank" rel="noopener">eMarketer Q4 2025 forecast</a>).</p>
<h3>The evolution of PPC</h3>
<p>PPC has changed substantially since its inception. The 2023-era playbook centered on manual bid management, exact-match keywords, and granular campaign segmentation. The 2026 playbook is fundamentally automated: Performance Max on Google, Advantage+ on Meta, broad-match plus smart bidding, and platform AI assembling ad creative from advertiser-supplied assets.</p>
<p>The three changes that matter most for eCommerce in 2026:</p>
<ul>
<li><strong>AI Overviews compete with ads.</strong> On informational queries the AIO answer block now appears above the first text ad. Click-through on first-position search ads on AIO-active queries has dropped 14 to 22% YoY across the accounts we manage.</li>
<li><strong>First-party data is the new bidding signal.</strong> Google and Meta&#8217;s automated bidding leans on advertiser-supplied audience and conversion data. Accounts without enhanced conversions, GA4-linked customer-match lists, and server-side tagging are getting outbid systematically.</li>
<li><strong>Creative is the variable.</strong> With targeting flattened by privacy changes and broad-targeting pushes, creative iteration drives roughly 70% of performance variance on social. Brands without weekly creative refresh stagnate.</li>
</ul>
<h2>Key components of a successful PPC campaign</h2>
<div class="wp-block-image">
<figure class="aligncenter size-large is-resized"><img loading="lazy" decoding="async" loading="lazy" src="https://scandiweb.com/blog/wp-content/uploads/2023/07/ppc-advertising-2023-guide-keyword-research-1024x536.png" alt="" class="wp-image-15997" width="512" height="268" srcset="https://scandiweb.com/blog/wp-content/uploads/2023/07/ppc-advertising-2023-guide-keyword-research-1024x536.png 1024w, https://scandiweb.com/blog/wp-content/uploads/2023/07/ppc-advertising-2023-guide-keyword-research-300x157.png 300w, https://scandiweb.com/blog/wp-content/uploads/2023/07/ppc-advertising-2023-guide-keyword-research-150x79.png 150w, https://scandiweb.com/blog/wp-content/uploads/2023/07/ppc-advertising-2023-guide-keyword-research-768x402.png 768w, https://scandiweb.com/blog/wp-content/uploads/2023/07/ppc-advertising-2023-guide-keyword-research.png 1200w" sizes="auto, (max-width: 512px) 100vw, 512px"></figure>
</div>
<p>A successful PPC campaign is not set-and-forget. It involves planning, strategic execution, and constant monitoring. When establishing parameters for a campaign, align it with the overall business objective, define clear outcomes, and allocate a budget that can produce statistically meaningful learning within 30 to 60 days.</p>
<p>The primary components: a well-researched keyword set (or audience set on social), bid management aligned to ROAS goals, an ad group structure that matches the buyer journey, and a negative-keyword list that grows weekly. Each component compounds, weakness in any single one degrades the others.</p>
<h3>Keyword research</h3>
<p>Keyword research is the foundation of any search PPC campaign. It is how you decide which auctions you enter and which you exclude. The output is a keyword set with high commercial intent (queries that include <code>buy</code>, <code>best</code>, <code>compare</code>, brand + product), strong long-tail variants, and an aggressive negative-keyword list (<code>free</code>, <code>salary</code>, <code>jobs</code>, <code>lyrics</code>, <code>wikipedia</code>, competitor brand names if you are not running competitor campaigns).</p>
<p>Match types still matter in 2026. Exact match catches volume that gets lost in broad, broad match plus smart bidding catches conversions exact match misses. Most accounts work best with a mix. Pull search-query reports weekly, promote good queries to exact match, and add new negatives every cycle.</p>
<h3>Ad creation and optimization</h3>
<p>Creating and optimizing PPC ads in 2026 involves giving the platform the best raw material to assemble from. For Google Responsive Search Ads: 15 unique headlines per ad group, each with a distinct angle (feature, benefit, price, social proof, urgency, brand), four description lines with a clear CTA verb, and every applicable ad extension (sitelinks, callouts, structured snippets, lead-form, image, location, price).</p>
<p>For Meta and TikTok: pair static and Reel / video for every campaign, test three to five creative variants per week per audience, lead with the hook in the first 1.5 seconds (video) or first five words (static). Read our <a href="https://scandiweb.com/blog/facebook-collection-ads/" target="_blank" rel="noopener">Meta Collection Ads case study</a> for the creative pattern that drives +62% ROAS and +35% AOV in retail accounts.</p>
<h3>Landing page optimization</h3>
<p>The landing page is where most accounts leak money. A landing page must do one thing.</p>
<ul>
<li><strong>Match the ad exactly</strong> – headline, offer, image. Mismatch kills both conversion and Quality Score.</li>
<li><strong>Mobile-first design</strong> – 70%+ of ad clicks in 2026 are mobile.</li>
<li><strong>One CTA, repeated three times</strong> – above the fold, mid-page, end.</li>
<li><strong>Load in under 2.5 seconds</strong> on a median 4G connection (Core Web Vitals LCP).</li>
<li><strong>Remove the navigation</strong> if you can – every escape route is a lost conversion.</li>
</ul>
<p>We <a href="https://scandiweb.com/blog/ppc-case-study-tripled-roas-with-lower-cpc/" target="_blank" rel="noopener">tripled ROAS while reducing CPC</a> on a mid-market client by rebuilding the landing page and switching the bidding strategy.</p>
<h3>Tracking and analytics</h3>
<p>If you cannot measure it, you cannot scale it. The 2026 baseline for any PPC account:</p>
<ul>
<li>GA4 with enhanced eCommerce events</li>
<li>GA4 linked to Google Ads, conversions marked in GA4, not just in Ads</li>
<li><a href="https://scandiweb.com/blog/server-side-tracking/">Server-side tagging</a> where possible – third-party cookies are no longer reliable</li>
<li>Enhanced conversions sent to Google and Meta with hashed first-party data</li>
<li>A closed-loop revenue view: ad spend → click → on-site action → order → returned / refunded → net revenue. Optimize on net revenue, not gross.</li>
</ul>
<p>For what happens when the tracking layer is wired properly, read our <a href="https://scandiweb.com/blog/ppc-case-study-increased-conversions-with-margin-tracking/" target="_blank" rel="noopener">margin tracking case</a> showing +30% conversions via Google and Bing Ads.</p>
<h2>Popular PPC platforms and their features</h2>
<div class="wp-block-image">
<figure class="aligncenter size-large is-resized"><img loading="lazy" decoding="async" loading="lazy" src="https://scandiweb.com/blog/wp-content/uploads/2023/07/ppc-advertising-2023-guide-google-ads-2-1024x536.png" alt="A laptop with Google Ads account open" class="wp-image-16000" width="592" height="310" srcset="https://scandiweb.com/blog/wp-content/uploads/2023/07/ppc-advertising-2023-guide-google-ads-2-1024x536.png 1024w, https://scandiweb.com/blog/wp-content/uploads/2023/07/ppc-advertising-2023-guide-google-ads-2-300x157.png 300w, https://scandiweb.com/blog/wp-content/uploads/2023/07/ppc-advertising-2023-guide-google-ads-2-150x79.png 150w, https://scandiweb.com/blog/wp-content/uploads/2023/07/ppc-advertising-2023-guide-google-ads-2-768x402.png 768w, https://scandiweb.com/blog/wp-content/uploads/2023/07/ppc-advertising-2023-guide-google-ads-2.png 1200w" sizes="auto, (max-width: 592px) 100vw, 592px"></figure>
</div>
<p>The four PPC platforms that still convert reliably for eCommerce in 2026 are Google Ads (high-intent demand capture), Meta Ads (demand generation and retargeting), Microsoft Advertising (B2B and low-competition CPC), and Amazon Ads (retail SKU search). Most others have specific use cases but should not anchor a budget.</p>
<figure class="wp-block-table">
<table>
<thead>
<tr>
<th>Platform</th>
<th>Best for</th>
<th>Typical CPC (US, 2026)</th>
<th>Min monthly spend</th>
<th>B2B vs B2C</th>
<th>Standout 2026 feature</th>
</tr>
</thead>
<tbody>
<tr>
<td><strong>Google Ads</strong></td>
<td>High-intent demand capture, eCommerce search + Shopping</td>
<td>$1.50–$6 search, $0.40–$1.80 Shopping</td>
<td>$1,500+</td>
<td>Both</td>
<td>Performance Max with first-party signals and AI-generated assets</td>
</tr>
<tr>
<td><strong>Meta Ads</strong></td>
<td>Demand generation, retargeting, video creative</td>
<td>$0.60–$2.20 link-click, CPM $9–$22</td>
<td>$1,000+</td>
<td>Mostly B2C</td>
<td>Advantage+ Shopping campaigns and Reels-first creative</td>
</tr>
<tr>
<td><strong>Microsoft Advertising</strong></td>
<td>B2B audiences, older and higher-income buyers, lower competition</td>
<td>$0.60–$3.20 search</td>
<td>$500+</td>
<td>B2B-leaning</td>
<td>LinkedIn-profile targeting layered onto search keywords</td>
</tr>
<tr>
<td><strong>Amazon Ads</strong></td>
<td>Retail SKUs, high-intent product searches, brand defense</td>
<td>$0.90–$2.50 Sponsored Products</td>
<td>$1,000+</td>
<td>B2C</td>
<td>Sponsored Brands video and DSP retargeting outside Amazon</td>
</tr>
<tr>
<td><strong>TikTok Ads</strong></td>
<td>Discovery, Gen Z, creative-driven brands</td>
<td>$0.80–$1.80 CPC, CPM $4–$10</td>
<td>$1,500+</td>
<td>B2C</td>
<td>Smart+ campaigns, Spark Ads from organic creators</td>
</tr>
<tr>
<td><strong>LinkedIn Ads</strong></td>
<td>B2B lead-gen at $25K+ deal size, recruiting</td>
<td>$5.50–$14 CPC</td>
<td>$3,000+</td>
<td>B2B only</td>
<td>Predictive audiences from CRM contacts</td>
</tr>
</tbody>
</table>
</figure>
<p>CPCs reflect a blend of scandiweb-managed account medians and <a href="https://www.wordstream.com/blog/2026-google-ads-benchmarks" target="_blank" rel="noopener">WordStream 2026 benchmarks</a>.</p>
<h3>Google Ads</h3>
<p>Google Ads, the largest and most familiar PPC platform, offers the widest range of ad formats and inventory in 2026. You can run Search ads on Google, Shopping ads on Google Shopping, video ads on YouTube, Gmail ads, and Display ads on the Google Display Network. The audience-targeting options (uploaded customer lists, In-Market Audiences, Layered Audiences, Predictive Audiences) pair with Performance Max to give the bidding model rich first-party signal.</p>
<p>Three Google-specific changes that matter in 2026: Performance Max is no longer optional for retail (standard Shopping campaigns have been retired for most verticals), AI Overviews compete with ads on informational queries (shift budget toward bottom-funnel queries where AIO is less likely to trigger), and the bidding model is hungry for first-party conversion data (without enhanced conversions you are systematically outbid).</p>
<h3>Microsoft Advertising (Bing Ads)</h3>
<p>Microsoft Advertising – formerly Bing Ads – is an effective PPC platform that often delivers higher ROI than Google Ads on B2B and higher-income demographics, simply because the competition is lower. Microsoft Advertising reaches 137 million unique desktop searchers on the Bing Network in 2026 and now layers LinkedIn-profile targeting onto search keywords, which is the unique advantage no other ad platform offers.</p>
<p>For B2B retailers and high-AOV brands targeting older and higher-income audiences, allocating 5 to 10% of paid budget to Microsoft Advertising routinely produces a lower CAC than the equivalent Google spend.</p>
<h3>Social media PPC platforms</h3>
<p>The rise of social media has opened a new path for PPC. Meta (Facebook and Instagram), TikTok, and LinkedIn offer audience-driven targeting based on interests, behaviors, and demographics. These platforms support image, video, and text creative – and the algorithms favor mixed-asset campaigns over single-format ones.</p>
<p>Meta in 2026 has shifted to Advantage+ Shopping as the default for eCommerce – a single campaign type that combines acquisition, retargeting, and product feeds with minimal manual segmentation. With targeting flattened by privacy changes, creative iteration drives roughly 70% of performance variance. Read our <a href="https://scandiweb.com/blog/meta-ads-restructure-yields-significant-revenue-growth-for-paardendrogist/" target="_blank" rel="noopener">Meta Ads restructure case</a> showing +111% revenue growth for the structural pattern.</p>
<h2>Strategies for effective PPC management</h2>
<div class="wp-block-image">
<figure class="aligncenter size-large is-resized"><img loading="lazy" decoding="async" loading="lazy" src="https://scandiweb.com/blog/wp-content/uploads/2023/07/ppc-advertising-2023-guide-management-strategies-1024x536.png" alt="" class="wp-image-15996" width="512" height="268" srcset="https://scandiweb.com/blog/wp-content/uploads/2023/07/ppc-advertising-2023-guide-management-strategies-1024x536.png 1024w, https://scandiweb.com/blog/wp-content/uploads/2023/07/ppc-advertising-2023-guide-management-strategies-300x157.png 300w, https://scandiweb.com/blog/wp-content/uploads/2023/07/ppc-advertising-2023-guide-management-strategies-150x79.png 150w, https://scandiweb.com/blog/wp-content/uploads/2023/07/ppc-advertising-2023-guide-management-strategies-768x402.png 768w, https://scandiweb.com/blog/wp-content/uploads/2023/07/ppc-advertising-2023-guide-management-strategies.png 1200w" sizes="auto, (max-width: 512px) 100vw, 512px"></figure>
</div>
<p>PPC management in 2026 is about strategic planning, continuous optimization, and disciplined budget allocation. Whether budget allocation and bid management, audience targeting, or creative iteration – each strategy compounds the others.</p>
<h3>Budget allocation and bid management</h3>
<p>Budget allocation is where most accounts lose efficiency before any creative work begins. The rule we apply across managed accounts: allocate to the channel and campaign that is closest to net revenue, not gross. Most healthy eCommerce brands above $5M GMV run at least three platforms in parallel and let each platform&#8217;s strength compensate for the others&#8217; weaknesses. A starting allocation for a mid-market eCommerce brand spending $25,000/month across paid media:</p>
<figure class="wp-block-table">
<table>
<thead>
<tr>
<th>Channel</th>
<th>Share</th>
<th>Spend</th>
<th>Why</th>
</tr>
</thead>
<tbody>
<tr>
<td>Google Search + Shopping</td>
<td>55%</td>
<td>$13,750</td>
<td>Highest-intent demand capture</td>
</tr>
<tr>
<td>Meta (Facebook + Instagram)</td>
<td>25%</td>
<td>$6,250</td>
<td>Top-of-funnel and retargeting</td>
</tr>
<tr>
<td>Amazon Sponsored Products</td>
<td>10%</td>
<td>$2,500</td>
<td>Retail SKU defense and new-to-brand</td>
</tr>
<tr>
<td>Microsoft / Bing</td>
<td>5%</td>
<td>$1,250</td>
<td>Incremental low-competition clicks</td>
</tr>
<tr>
<td>TikTok or YouTube Shorts</td>
<td>5%</td>
<td>$1,250</td>
<td>Creative testing and reach</td>
</tr>
</tbody>
</table>
</figure>
<p>For the bid-management discipline that pairs with this allocation, read our <a href="https://scandiweb.com/blog/bid-management-in-ppc-campaigns/" target="_blank" rel="noopener">bid management guide</a>.</p>
<h3>Targeting and audience segmentation</h3>
<p>Audience segmentation is what gives a campaign the precision to convert. Identify and segment specific groups most likely to respond to a product or offer, concentrate budget on those segments, and let the platform&#8217;s bidding model optimize within each. Privacy changes have flattened raw demographic targeting, first-party customer-match lists, behavioral segments built from your own GA4 data, and lookalikes from your highest-LTV customers are now the levers that move the needle.</p>
<p>A worked example: scandiweb&#8217;s <a href="https://scandiweb.com/blog/ppc-case-study-strategic-approach-leads-to-revenue-increase-during-peak-season/" target="_blank" rel="noopener">+224% revenue peak season</a> restructure for a mid-market retailer was built around audience segmentation, not bid tweaks.</p>
<h3>A/B testing and continuous optimization</h3>
<p>A/B testing on PPC in 2026 is mostly creative testing. Targeting tests have lower ceilings than they used to because the platform algorithms move the audience for you, the variable you control is the creative.</p>
<p>The continuous-optimization discipline that pays in 2026: review search-query reports weekly (add negatives, promote good queries to exact match), run one structural test per month (bidding strategy, audience build, creative concept), pause anything below 0.5× target ROAS at 30 days, reallocate budget to the top decile of campaigns and cut the bottom decile. AI-powered strategies compound this – read the <a href="https://scandiweb.com/blog/ppc-case-study-ai-powered-strategy-brings-2x-higher-revenue/" target="_blank" rel="noopener">AI-powered PPC case</a> showing 56 ROAS and 2x higher revenue.</p>
<h2>Measuring PPC success: key metrics and KPIs</h2>
<div class="wp-block-image">
<figure class="aligncenter size-large is-resized"><img loading="lazy" decoding="async" loading="lazy" src="https://scandiweb.com/blog/wp-content/uploads/2023/07/ppc-advertising-2023-guide-key-metrics-kpis-1024x536.png" alt="" class="wp-image-15995" width="512" height="268" srcset="https://scandiweb.com/blog/wp-content/uploads/2023/07/ppc-advertising-2023-guide-key-metrics-kpis-1024x536.png 1024w, https://scandiweb.com/blog/wp-content/uploads/2023/07/ppc-advertising-2023-guide-key-metrics-kpis-300x157.png 300w, https://scandiweb.com/blog/wp-content/uploads/2023/07/ppc-advertising-2023-guide-key-metrics-kpis-150x79.png 150w, https://scandiweb.com/blog/wp-content/uploads/2023/07/ppc-advertising-2023-guide-key-metrics-kpis-768x402.png 768w, https://scandiweb.com/blog/wp-content/uploads/2023/07/ppc-advertising-2023-guide-key-metrics-kpis.png 1200w" sizes="auto, (max-width: 512px) 100vw, 512px"></figure>
</div>
<p>Running a PPC campaign is only half the work. Measuring its outcomes is the other half. The five metrics that predict commercial outcomes are click-through rate, cost-per-click, conversion rate, return on ad spend, and customer acquisition cost. Vanity metrics (impressions, reach, raw click counts) explain almost nothing about whether the spend is working.</p>
<h3>Click-through rate (CTR)</h3>
<p>Click-through rate is the number of clicks an ad receives relative to the number of impressions it serves. A 5% CTR means 5 out of every 100 viewers clicked. Higher CTR indicates the ad is relevant to the searcher and effectively capturing attention – and Google rewards it with a higher Quality Score, which lowers CPC over time. The way to lift CTR is to refine ad copy, target a tighter audience, and A/B test ad variations.</p>
<p>2026 eCommerce benchmark: Google Search 4 to 8%, Google Shopping 0.8 to 1.6%, Meta 0.9 to 1.8%.</p>
<h3>Cost per click (CPC)</h3>
<p>Cost per click is what you pay for each click on the ad. Total cost divided by total clicks gives you the average CPC. The metric pairs with conversion rate and AOV to show whether the auction is cost-effective for your business – a $5 CPC supports a $50 AOV at modest conversion, the same CPC kills a $20 AOV product.</p>
<p>The 2026 average Google Ads CPC across 23 industries is $5.42 (<a href="https://www.wordstream.com/blog/2026-google-ads-benchmarks" target="_blank" rel="noopener">WordStream 2026 benchmarks</a>). It varies wildly by vertical: Legal $8.58, Dentists $7.85, Home Improvement $7.85, Education $6.23, eCommerce median $1.50 to $4.00 search and $0.40 to $1.80 Shopping, Travel $2.12, Restaurants $2.05, Arts and Entertainment $1.60. The cheapest verticals are not always the most profitable – match aggressiveness to margin.</p>
<h3>Conversion rate</h3>
<p>Conversion rate is the percentage of users who complete a desired action (purchase, sign-up, demo booking) after clicking the ad. Lifting it means optimizing every element of the campaign – ad copy, targeting, landing page, call-to-action. Continual refinement is how mid-market accounts move from 2% to 4%+ on eCommerce, which doubles ROAS without spending an extra dollar on media.</p>
<p>2026 benchmark: eCommerce 2.4 to 4.0%, B2B lead-gen 5 to 8%.</p>
<h3>Return on ad spend (ROAS)</h3>
<p>Return on ad spend measures revenue generated relative to ad spend – revenue divided by spend. ROAS is the metric most worth optimizing toward, because it directly answers whether the campaign is profitable. A campaign at 4× ROAS at scale beats a 6× ROAS campaign at half the volume in absolute dollars.</p>
<p>2026 benchmark: 2.5 to 4× at scale for eCommerce, &gt;4× for retargeting, varies wildly by margin. Optimize to ROAS and CAC, not to CTR or CPC – a campaign with 1% CTR and 4× ROAS beats a campaign with 8% CTR and 1× ROAS every time.</p>
<div style="width: 100%; display: flex; align-items: center ; justify-content: center;">
<div class="hs-cta-embed hs-cta-simple-placeholder hs-cta-embed-69046695899" style="max-width:100%; max-height:100%; width:680px;height:332.640625px">
  <a href="https://cta-eu1.hubspot.com/web-interactives/public/v1/track/redirect?encryptedPayload=AVxigLL71XcIo1n8VharHy%2FyE9Q6AwDnKUoZ%2BwjHh5jXkxJgJiwdRRlL9tfX5Up2%2FV2TRQek57nA%2FIUyg11XbEWYV%2FneBLRcsK848561ZE4eMdzdKg%3D%3D&amp;portalId=25724996&amp;webInteractiveContentId=69046695899" target="_blank" rel="noopener" crossorigin="anonymous"><br>
    <img decoding="async" loading="lazy" src="https://hubspot-no-cache-eu1-prod.s3.amazonaws.com/cta/default/25724996/interactive-69046695899.png" style="height: 100%; width: 100%; object-fit: fill" onerror="this.style.display='none'"><br>
  </a>
</div>
</div>
<h2>Common PPC challenges and how to overcome them</h2>
<p>Like any marketing strategy, PPC presents its own set of challenges in 2026: high competition and rising CPCs, ad fatigue and banner blindness, and limited budgets and resources. With the right strategies and tools each is solvable.</p>
<h3>High competition and rising CPCs</h3>
<p>Rising CPCs indicate heightened competition for ad space and a higher cost-per-click. It can produce increased costs, difficulty achieving a positive ROI, and the need to compete with brands deeper-pocketed than yours. The fix:</p>
<ul>
<li>Audit Quality Score on your top 20 spend keywords. Anything under 6 needs a new ad group.</li>
<li>Tighten match types – broad match without smart bidding loses money fast.</li>
<li>Test dayparting – pull spend out of low-converting hours.</li>
<li>Shift some budget toward bottom-funnel queries where AI Overviews are less likely to compress paid CTR.</li>
</ul>
<p>Read our <a href="https://scandiweb.com/blog/ppc-case-study-kanuk-winter-sales/" target="_blank" rel="noopener">Kanuk winter sales case</a> for a structural reset that cut PPC costs in half without sacrificing volume.</p>
<h3>Ad fatigue and banner blindness</h3>
<p>Ad fatigue happens when viewers become desensitized to an ad through frequent repetition. Banner blindness is the broader phenomenon of viewers tuning out display ads entirely. Counter both with creative variation – short-form video, Reels, Stories, dynamic product feed ads – and audience-frequency caps. Test new creative every two to three weeks on social and every six to eight weeks on search.</p>
<h3>Limited budgets and resources</h3>
<p>Limited budgets force discipline. Set realistic ROAS targets, define a single channel and campaign you will optimize first, and only expand after that channel hits target. The accounts we see succeed on tight budgets focus on one platform deeply rather than spreading thin across five.</p>
<p>A worked example: scandiweb&#8217;s <a href="https://scandiweb.com/blog/ppc-case-study-ctr-climb-for-a-prominent-translations-provider/" target="_blank" rel="noopener">632% CTR climb</a> restructure for a translation services provider produced the result on a constrained budget – discipline beats spend.</p>
<h2>How AI Overviews affect PPC in 2026</h2>
<p>AI Overviews compress paid CTR on the queries where they trigger – roughly a 68% drop between June 2024 and September 2025 (<a href="https://searchengineland.com/google-ai-overviews-drive-drop-organic-paid-ctr-464212" target="_blank" rel="noopener">Search Engine Land, 2025</a>) – but they also reward brand authority. When a brand is cited in the AIO, paid CTR is 91% higher than when the brand is not cited (<a href="https://searchengineland.com/what-industry-data-reveals-about-the-impact-of-googles-ai-overviews-on-paid-search-470019" target="_blank" rel="noopener">Search Engine Land, Q3 2025</a>). Paid and organic strategy can no longer be run as separate disciplines.</p>
<p>In practical terms across the accounts we run:</p>
<ul>
<li>Shift budget toward bottom-funnel queries (<code>buy</code>, <code>price</code>, brand + product, <code>near me</code>) where AIO triggers less often.</li>
<li>Invest in AEO (answer engine optimization) on the organic side so the brand earns AIO citations – the citation lift compounds the paid side.</li>
<li>See our <a href="https://scandiweb.ai/aeo" target="_blank" rel="noopener">AEO services</a> for the structural changes that earn AIO citations.</li>
</ul>


<style>  .box-new {    background-color: #f8f4ef;    padding: 20px 30px 30px 30px;    border: none;  }  .box-new p {    margin-top: 0;    margin-bottom: 1em;  }  .box-new p:last-child {    margin-bottom: 0;  }</style><div class="box-new">  <p><strong><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f680.png" alt="🚀" class="wp-smiley" style="height: 1em; max-height: 1em;" /> Quick takeaway</strong></p>  <p>The single biggest 2026 budget mistake is assuming that one platform is enough. Most healthy eCommerce brands above $5M GMV run at least three in parallel and let each one&#8217;s strength compensate for the others&#8217; weaknesses.</p></div>


<h2>What scandiweb&#8217;s paid-search team has learned running PPC for eCommerce since 2009</h2>
<p>A few patterns are worth flagging across the accounts we manage:</p>
<ul>
<li><strong>Account structure beats tactics.</strong> A clean, intent-segmented account routinely outperforms a clever-bidding-strategy account by 25 to 40% on ROAS.</li>
<li><strong>Feed quality is the highest-ROI lever for retail.</strong> Title formatting, custom labels, GTIN coverage, image cleanliness – these move Shopping performance more than any bidding change.</li>
<li><strong>The 30-day rule.</strong> Most &#8220;this is not working&#8221; calls happen too early. Hold structural changes until day 30 unless a campaign is bleeding budget below 0.5× target.</li>
<li><strong>AI assistance is not optional.</strong> Performance Max and Advantage+ Shopping outperform manual campaigns at scale in 2026 – provided you feed them good assets and clean conversion data.</li>
<li><strong>Margin tracking changes the picture.</strong> Optimizing on net margin instead of gross revenue reveals which products are profitable to scale and which are quietly losing money even at high ROAS.</li>
</ul>
<p>scandiweb runs paid search for eCommerce brands across fashion, lifestyle, retail, and home goods. Across the case studies linked throughout this guide we have moved client accounts to <a href="https://scandiweb.com/blog/ppc-case-study-strategic-approach-leads-to-revenue-increase-during-peak-season/" target="_blank" rel="noopener">+224% revenue during peak season</a>, <a href="https://scandiweb.com/blog/ppc-case-study-targeted-ads-bring-relevant-traffic-and-revenue/" target="_blank" rel="noopener">+731% revenue through targeted ads</a>, <a href="https://scandiweb.com/blog/ppc-case-study-more-leads-with-less-costs/" target="_blank" rel="noopener">320% more leads</a> at lower cost, <a href="https://scandiweb.com/blog/ppc-case-study-90k-new-users-20k-leads-magellan-tours/" target="_blank" rel="noopener">90K new users via multichannel</a>, and 50%+ cost reductions while maintaining volume.</p>
<h2>Frequently asked questions</h2>
<h3>What is pay-per-click advertising?</h3>
<p>Pay-per-click (PPC) advertising is a paid-media model where the advertiser pays a publisher only when a user clicks one of their ads. Instead of buying impressions, you buy targeted visits to a website or landing page.</p>
<h3>How does PPC work?</h3>
<p>A user runs a query or matches an audience signal. The platform runs a real-time auction among advertisers bidding on related keywords or audiences. Ads are ranked by bid × Quality Score, the winner is displayed, and the advertiser is charged only when the ad is clicked, at the minimum price required to outrank the next bidder.</p>
<h3>What does PPC cost in 2026?</h3>
<p>For eCommerce, expect $1.50 to $6 CPC on Google Search, $0.40 to $1.80 on Google Shopping, $0.60 to $2.20 on Meta, and $0.90 to $2.50 on Amazon Sponsored Products. The 2026 cross-industry average is $5.42 per WordStream&#8217;s 2026 benchmarks. Realistic monthly minimums to learn at scale are $1,500 on Google Ads, $1,000 on Meta, $500 on Microsoft, $1,000 on Amazon.</p>
<h3>Is PPC harder than SEO?</h3>
<p>PPC produces faster results and is easier to start. SEO is slower and more competitive in 2026 because of AI Overviews, but compounds over years. PPC stops when the budget stops. SEO is harder to learn well but cheaper at scale once you rank.</p>
<h3>Which is better, CPM or CPC?</h3>
<p>CPC (cost-per-click) is better for direct-response goals – you pay only for clicks, which keeps the model closer to revenue. CPM (cost-per-thousand-impressions) is better for awareness – you reach a large audience at a lower unit cost but pay for views, not actions. Most eCommerce campaigns run on CPC, brand campaigns and Reels-style creative often run on CPM.</p>
<h3>What is the 3-3-3 rule in marketing?</h3>
<p>The 3-3-3 rule is a creative-testing heuristic: test three hooks, on three audiences, for three days each. It is a quick framework for evaluating creative without spending big – useful on Meta and TikTok where creative variance drives most performance.</p>
<h3>How long does PPC take to work?</h3>
<p>A new Google Ads account typically needs four to six weeks of learning before bidding stabilizes. Meta needs two to four weeks per campaign. The first 30 days are for reading data, not for big structural changes.</p>
<h3>Can you do PPC without an agency?</h3>
<p>Yes – Google Ads, Meta Ads, and Microsoft Advertising have setup wizards that get a small business to a first campaign in under an hour. Whether the campaign will be efficient is the harder question. Below ~$3,000/month most brands self-manage, above $10,000/month an agency or in-house specialist usually pays for itself in saved waste.</p>
<h3>Should I bid on my own brand keywords?</h3>
<p>Almost always yes. Brand keywords have very low CPC, very high conversion rates, and serve as defense – if you do not bid, competitors will. The only exception is when you already own 95%+ of the SERP for your brand and no competitor is bidding on it.</p>
<h3>What is an example of a PPC ad?</h3>
<p>A search ad on Google for <code>running shoes for flat feet</code> that links to a retailer&#8217;s flat-foot category page is the most familiar example. A Sponsored Product on Amazon for the same query is another. A Reel on Instagram with a &#8220;Shop now&#8221; sticker linking to a product page is a third – same model, different surface.</p>
<h3>About this guide</h3>
<p>This guide is maintained by scandiweb&#8217;s paid-search team, drawing on the eCommerce accounts we manage today, eMarketer&#8217;s <em>US Digital Ad Spending</em> and <em>US Search Advertising Forecast 2026</em>, WordStream&#8217;s <em>2026 Google Ads Benchmarks</em>, and Search Engine Land&#8217;s AI Overview impact data.</p>
<p>Reviewed by scandiweb&#8217;s Paid Media lead.</p>
<p><strong>Related reading from the scandiweb blog:</strong></p>
<ul>
<li><a href="https://scandiweb.com/blog/bid-management-in-ppc-campaigns/" target="_blank" rel="noopener">Bid management in PPC campaigns</a></li>
<li><a href="https://scandiweb.com/blog/ppc-case-study-strategic-approach-leads-to-revenue-increase-during-peak-season/" target="_blank" rel="noopener">+224% revenue peak season case</a></li>
<li><a href="https://scandiweb.com/blog/ppc-case-study-tripled-roas-with-lower-cpc/" target="_blank" rel="noopener">Tripled ROAS with lower CPC</a></li>
<li><a href="https://scandiweb.com/blog/ppc-case-study-ai-powered-strategy-brings-2x-higher-revenue/" target="_blank" rel="noopener">AI-powered PPC strategy</a></li>
<li><a href="https://scandiweb.com/blog/facebook-collection-ads/" target="_blank" rel="noopener">Meta Collection Ads case</a></li>
<li><a href="https://scandiweb.com/blog/ppc-case-study-90k-new-users-20k-leads-magellan-tours/" target="_blank" rel="noopener">Magellan multichannel PPC</a></li>
<li><a href="https://scandiweb.com/blog/meta-ads-restructure-yields-significant-revenue-growth-for-paardendrogist/" target="_blank" rel="noopener">Meta Ads restructure case</a></li>
<li><a href="https://scandiweb.com/blog/ppc-case-study-kanuk-winter-sales/" target="_blank" rel="noopener">Kanuk winter sales PPC</a></li>
<li><a href="https://scandiweb.com/blog/ppc-case-study-increased-conversions-with-margin-tracking/" target="_blank" rel="noopener">Margin tracking case</a></li>
</ul>


<div style="height:20px" aria-hidden="true" class="wp-block-spacer"></div>



<p><style> p.box { border: 1px solid black; padding-top: 30px; padding-right: 30px; padding-bottom: 30px; padding-left: 30px; } </style> <p class="box"><em>If your account is bleeding budget, plateauing, or sitting in the wrong platform mix, scandiweb&#8217;s paid-search team can pull it apart and tell you exactly where the leaks are before you commit to any work. </em><a href="https://scandiweb.com/contact" target="_blank" rel="noreferrer noopener"><em>Reach out for a PPC audit</em></a><em> – we will look at your account, your tracking setup, and your top-spend campaigns, and send back a one-page diagnosis.</em></p></p>



<script type="application/ld+json">{"@context":"https://schema.org","@type":"FAQPage","mainEntity":[{"@type":"Question","name":"What is pay-per-click advertising?","acceptedAnswer":{"@type":"Answer","text":"Pay-per-click (PPC) advertising is a paid-media model where the advertiser pays a publisher only when a user clicks one of their ads. Instead of buying impressions, you buy targeted visits to a website or landing page."}},{"@type":"Question","name":"How does PPC work?","acceptedAnswer":{"@type":"Answer","text":"A user runs a query or matches an audience signal. The platform runs a real-time auction. Ads are ranked by bid times Quality Score, the winner is displayed, and the advertiser is charged only when the ad is clicked at the minimum price required to outrank the next bidder."}},{"@type":"Question","name":"What does PPC cost in 2026?","acceptedAnswer":{"@type":"Answer","text":"For eCommerce, expect $1.50 to $6 CPC on Google Search, $0.40 to $1.80 on Google Shopping, $0.60 to $2.20 on Meta, and $0.90 to $2.50 on Amazon Sponsored Products. The 2026 cross-industry average is $5.42."}},{"@type":"Question","name":"Is PPC harder than SEO?","acceptedAnswer":{"@type":"Answer","text":"PPC produces faster results and is easier to start. SEO is slower and more competitive in 2026 because of AI Overviews, but compounds over years. PPC stops when the budget stops."}},{"@type":"Question","name":"Which is better, CPM or CPC?","acceptedAnswer":{"@type":"Answer","text":"CPC is better for direct-response goals because you pay only for clicks. CPM is better for awareness because you reach a large audience at a lower unit cost but pay for views, not actions."}},{"@type":"Question","name":"What is the 3-3-3 rule in marketing?","acceptedAnswer":{"@type":"Answer","text":"The 3-3-3 rule is a creative-testing heuristic: test three hooks, on three audiences, for three days each. It is a quick framework for evaluating creative without spending big."}}]}</script>



<script type="application/ld+json">{"@context":"https://schema.org","@type":"Article","headline":"Pay-Per-Click Advertising in 2026: Platforms, Costs, and What Still Converts","datePublished":"2023-07-16","dateModified":"2026-05-26","author":{"@type":"Organization","name":"scandiweb"},"publisher":{"@type":"Organization","name":"scandiweb","logo":{"@type":"ImageObject","url":"https://scandiweb.com/logo.png"}},"mainEntityOfPage":"https://scandiweb.com/blog/ppc-advertising-an-essential-guide-to-pay-per-click-marketing/"}</script>
<p>The post <a rel="nofollow" href="https://scandiweb.com/blog/ppc-advertising-an-essential-guide-to-pay-per-click-marketing/">Pay-Per-Click Advertising in 2026: Platforms, Costs, and What Still Converts</a> appeared first on <a rel="nofollow" href="https://scandiweb.com/blog">scandiweb</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Case Study: Doubling DTC Revenue for a 75-Year-Old Swiss Tool Brand in 6 Months</title>
		<link>https://scandiweb.com/blog/case-study-doubling-dtc-revenue-for-felco/</link>
		
		<dc:creator><![CDATA[Andres Reitsnik]]></dc:creator>
		<pubDate>Mon, 18 May 2026 14:02:00 +0000</pubDate>
				<category><![CDATA[Case Studies]]></category>
		<category><![CDATA[Digital Growth]]></category>
		<category><![CDATA[PPC]]></category>
		<category><![CDATA[SEO]]></category>
		<category><![CDATA[AEO]]></category>
		<category><![CDATA[case study]]></category>
		<category><![CDATA[cx]]></category>
		<category><![CDATA[email campaign]]></category>
		<category><![CDATA[email marketing]]></category>
		<category><![CDATA[growth]]></category>
		<category><![CDATA[Growth marketing]]></category>
		<category><![CDATA[PPC campaign]]></category>
		<category><![CDATA[search campaign]]></category>
		<guid isPermaLink="false">https://scandiweb.com/blog/?p=24301</guid>

					<description><![CDATA[<p>Discover how scandiweb helped FELCO grow DTC revenue by 108% in 6 months through integrated PPC, SEO, AEO, email, and CX campaign.</p>
<p>The post <a rel="nofollow" href="https://scandiweb.com/blog/case-study-doubling-dtc-revenue-for-felco/">Case Study: Doubling DTC Revenue for a 75-Year-Old Swiss Tool Brand in 6 Months</a> appeared first on <a rel="nofollow" href="https://scandiweb.com/blog">scandiweb</a>.</p>
]]></description>
										<content:encoded><![CDATA[<div class="lazyblock-related-Z1fCwiD wp-block-lazyblock-related"><div class="related-services">
  <h3>Related Services</h3>
  <ul>
    
    <li>
      <a  href="https://growth.scandiweb.com/" target=_blank >
        Integrated Growth Team
      </a>
    </li>
    
    <li>
      <a  href="https://scandiweb.com/services/paid-search-advertising" target=_blank >
        PPC Management
      </a>
    </li>
    
    <li>
      <a  href="https://scandiweb.com/services/cro-ux" target=_blank >
        CRO &amp; UX
      </a>
    </li>
    
  </ul>
</div>
</div>


<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p>&#8220;Sales volume was so high that our US team considered increasing shipping prices to slow orders down.&#8221;</p><cite><strong>Jean-Christophe Jouve</strong><br>Global Finance Director at FELCO</cite></blockquote>



<p class="wp-block-paragraph">For over 75 years, FELCO built a product so good that professionals worldwide wouldn&#8217;t use anything else. Swiss-made pruning tools, trusted by arborists and master gardeners who knew exactly what they were buying and why.</p>



<p class="wp-block-paragraph">But by 2025, that professional loyalty, as valuable as it was, had become a ceiling. A much larger, underserved home gardening market was right there, and FELCO&#8217;s digital presence wasn&#8217;t speaking to it.</p>



<p class="wp-block-paragraph">What followed was a six-month transformation in collaboration with scandiweb, bringing FELCO&#8217;s digital strategy from fragmented channel execution to a fully integrated DTC growth engine that delivered CHF 3.9M in revenue, +108% YoY growth, and the strongest Black Friday sale in FELCO&#8217;s digital history.</p>



<h2 class="wp-block-heading">About FELCO</h2>



<p class="wp-block-paragraph">Founded in Switzerland, FELCO is globally recognized for manufacturing premium pruning and cutting tools used by professionals worldwide – the brand has long been synonymous with precision engineering and exceptional craftsmanship.</p>



<p class="wp-block-paragraph">As DTC commerce became a growing strategic priority, FELCO identified an opportunity to expand beyond its professional base and reach the much larger home gardening segment, without compromising the premium positioning that defined the brand. At the same time, international expansion meant multiple markets and multiple digital channels, all running independently of each other.</p>



<h3 class="wp-block-heading">Project goals</h3>



<p class="wp-block-paragraph">Main objectives at the start of our collaboration in July 2025 were to:</p>



<ul class="wp-block-list"><li>Double DTC revenue YoY</li><li>Achieve ROAS consistently above 4.0 across paid media</li><li>Expand the customer base beyond professional buyers</li><li>Build centralized performance visibility across markets</li><li>Create a repeatable, scalable DTC operating model</li><li>Execute the campaign following a tight timeline, with Black Friday only 4 months away.</li></ul>



<h2 class="wp-block-heading">Problem</h2>



<p class="wp-block-paragraph">Each channel – paid media, SEO, email, analytics, and CX – operated and reported independently. There was no unified picture of how a customer moved throughout touchpoints, where they dropped off, or what was actually driving revenue.</p>



<p class="wp-block-paragraph"><strong>The issues showed up as:</strong></p>



<ul class="wp-block-list"><li>No cross-channel attribution or unified performance model</li><li>Paid media profitability invisible by market, segment, and campaign type</li><li>SEO disconnected from lifecycle strategy and conversion flows</li><li>Limited email list segmentation and no meaningful automation</li><li>GA4 and dataLayer inconsistencies</li><li>Customer journey gaps at onboarding and post-purchase</li><li>UX and messaging for professionals, creating friction for casual users.</li></ul>



<h2 class="wp-block-heading">Before and after: FELCO’s digital transformation</h2>



<figure class="wp-block-table is-style-stripes"><table><thead><tr><th class="has-text-align-center" data-align="center">Before</th><th class="has-text-align-center" data-align="center">After</th></tr></thead><tbody><tr><td class="has-text-align-center" data-align="center">Fragmented channel execution</td><td class="has-text-align-center" data-align="center">Unified DTC growth engine</td></tr><tr><td class="has-text-align-center" data-align="center">Professional-only messaging</td><td class="has-text-align-center" data-align="center">Expanded positioning</td></tr><tr><td class="has-text-align-center" data-align="center">Limited analytics visibility</td><td class="has-text-align-center" data-align="center">Centralized performance intelligence</td></tr><tr><td class="has-text-align-center" data-align="center">Isolated campaigns</td><td class="has-text-align-center" data-align="center">Coordinated full-funnel execution</td></tr><tr><td class="has-text-align-center" data-align="center">Manual lifecycle communication</td><td class="has-text-align-center" data-align="center">Automated retention and CRM flows</td></tr><tr><td class="has-text-align-center" data-align="center">Technical UX complexity</td><td class="has-text-align-center" data-align="center">Simplified customer journeys and product selection</td></tr><tr><td class="has-text-align-center" data-align="center">Disconnected customer touchpoints</td><td class="has-text-align-center" data-align="center">Integrated lifecycle experience</td></tr></tbody></table></figure>



<h2 class="wp-block-heading">Solution</h2>



<p class="wp-block-paragraph">Rather than optimizing channels independently, scandiweb established a centralized growth operating model and launched a fully integrated marketing campaign. We took end-to-end responsibility for strategy, prioritization, and execution across paid media, SEO, AEO, email, analytics, CX, CRO, creative production, and development. Everything was oriented around the same funnel, audiences, and commercial targets.</p>



<h3 class="wp-block-heading">Audience strategy and target personas</h3>



<p class="wp-block-paragraph">FELCO was beloved by professionals, but growth required repositioning the brand to resonate with the much larger, underserved home gardener audience. We treated this as a target audience expansion. Professionals remained a core audience, while we tried to make FELCO legible, appealing, and accessible to people who had never thought of themselves as the kind of person who uses professional pruning tools, and who would, once introduced correctly, become exactly that.</p>



<p class="wp-block-paragraph">The two customer personas we built the strategy around:</p>



<ul class="wp-block-list"><li><strong>The Passionate Home Gardener</strong> – someone who values quality and durability, cares deeply about sustainability, and is genuinely invested in their garden; they can be overwhelmed by choice, so they need confidence and guidance.</li><li><strong>The Aspirational Hobbyist</strong> – drawn more by aesthetics and lifestyle than precision; they discover through social media and respond to seasonal projects, educational content, beautiful imagery, and the idea that the right tool is also the right statement.</li></ul>



<figure class="wp-block-gallery aligncenter has-nested-images columns-default is-cropped wp-block-gallery-1 is-layout-flex wp-block-gallery-is-layout-flex">
<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="1024" data-id="24310" src="https://scandiweb.com/blog/wp-content/uploads/2026/05/Garden-Like-a-Pro-1400x1400-2-1024x1024.png" alt="" class="wp-image-24310" srcset="https://scandiweb.com/blog/wp-content/uploads/2026/05/Garden-Like-a-Pro-1400x1400-2-1024x1024.png 1024w, https://scandiweb.com/blog/wp-content/uploads/2026/05/Garden-Like-a-Pro-1400x1400-2-300x300.png 300w, https://scandiweb.com/blog/wp-content/uploads/2026/05/Garden-Like-a-Pro-1400x1400-2-150x150.png 150w, https://scandiweb.com/blog/wp-content/uploads/2026/05/Garden-Like-a-Pro-1400x1400-2-768x768.png 768w, https://scandiweb.com/blog/wp-content/uploads/2026/05/Garden-Like-a-Pro-1400x1400-2-240x240.png 240w, https://scandiweb.com/blog/wp-content/uploads/2026/05/Garden-Like-a-Pro-1400x1400-2-80x80.png 80w, https://scandiweb.com/blog/wp-content/uploads/2026/05/Garden-Like-a-Pro-1400x1400-2-60x60.png 60w, https://scandiweb.com/blog/wp-content/uploads/2026/05/Garden-Like-a-Pro-1400x1400-2.png 1400w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="1024" data-id="24315" src="https://scandiweb.com/blog/wp-content/uploads/2026/05/Dont-Just-Prune-Upgrade-How-You-Work-1400x1400-2-border-1024x1024.png" alt="" class="wp-image-24315" srcset="https://scandiweb.com/blog/wp-content/uploads/2026/05/Dont-Just-Prune-Upgrade-How-You-Work-1400x1400-2-border-1024x1024.png 1024w, https://scandiweb.com/blog/wp-content/uploads/2026/05/Dont-Just-Prune-Upgrade-How-You-Work-1400x1400-2-border-300x300.png 300w, https://scandiweb.com/blog/wp-content/uploads/2026/05/Dont-Just-Prune-Upgrade-How-You-Work-1400x1400-2-border-150x150.png 150w, https://scandiweb.com/blog/wp-content/uploads/2026/05/Dont-Just-Prune-Upgrade-How-You-Work-1400x1400-2-border-768x768.png 768w, https://scandiweb.com/blog/wp-content/uploads/2026/05/Dont-Just-Prune-Upgrade-How-You-Work-1400x1400-2-border-240x240.png 240w, https://scandiweb.com/blog/wp-content/uploads/2026/05/Dont-Just-Prune-Upgrade-How-You-Work-1400x1400-2-border-80x80.png 80w, https://scandiweb.com/blog/wp-content/uploads/2026/05/Dont-Just-Prune-Upgrade-How-You-Work-1400x1400-2-border-60x60.png 60w, https://scandiweb.com/blog/wp-content/uploads/2026/05/Dont-Just-Prune-Upgrade-How-You-Work-1400x1400-2-border.png 1400w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>
</figure>



<h3 class="wp-block-heading">Full-funnel paid media</h3>



<p class="wp-block-paragraph">We rebuilt the paid media architecture around intent and lifecycle stage:</p>



<ul class="wp-block-list"><li>Upper-funnel creative introduced FELCO to home gardeners using emotional storytelling, like the satisfaction of a clean cut and pride of a well-kept garden</li><li>Mid-funnel campaigns targeted active researchers with product-specific content</li><li>Lower-funnel retargeting used dynamic creative adapted to browsing behavior.</li></ul>



<p class="wp-block-paragraph">Microsoft Ads, Pinterest, and TikTok were integrated as new channels into the acquisition strategy:</p>



<ul class="wp-block-list"><li>TikTok for emotional resonance with younger home gardeners</li><li>Pinterest for aspirational lifestyle content tied to seasonal moments</li><li>Microsoft for capturing high-intent searches at lower cost.&nbsp;</li></ul>



<p class="wp-block-paragraph">AI-powered creative workflow enabled over 300 ads deployed during BFCM.</p>



<h3 class="wp-block-heading">SEO and AEO strategy</h3>



<p class="wp-block-paragraph">A full technical SEO and AEO audit addressed immediate gaps and longer-term search behavior, helping FELCO capture non-branded, high-intent searches from home gardeners and hobbyists:</p>



<ul class="wp-block-list"><li>Technical SEO cleanup and crawl optimization</li><li>Category tree expansion and navigation restructuring</li><li>PLP and PDP content optimization</li><li>Localized SEO for key European markets.</li></ul>



<figure class="wp-block-gallery aligncenter has-nested-images columns-default is-cropped wp-block-gallery-2 is-layout-flex wp-block-gallery-is-layout-flex">
<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="820" height="1024" data-id="24317" src="https://scandiweb.com/blog/wp-content/uploads/2026/05/IT-FELCO-Customs-960x1200-1-820x1024.png" alt="" class="wp-image-24317" srcset="https://scandiweb.com/blog/wp-content/uploads/2026/05/IT-FELCO-Customs-960x1200-1-820x1024.png 820w, https://scandiweb.com/blog/wp-content/uploads/2026/05/IT-FELCO-Customs-960x1200-1-240x300.png 240w, https://scandiweb.com/blog/wp-content/uploads/2026/05/IT-FELCO-Customs-960x1200-1-120x150.png 120w, https://scandiweb.com/blog/wp-content/uploads/2026/05/IT-FELCO-Customs-960x1200-1-768x959.png 768w, https://scandiweb.com/blog/wp-content/uploads/2026/05/IT-FELCO-Customs-960x1200-1.png 961w" sizes="(max-width: 820px) 100vw, 820px" /></figure>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="819" height="1024" data-id="24318" src="https://scandiweb.com/blog/wp-content/uploads/2026/05/DE-FELCO-Customs-v.2-960x1200-1-819x1024.png" alt="" class="wp-image-24318" srcset="https://scandiweb.com/blog/wp-content/uploads/2026/05/DE-FELCO-Customs-v.2-960x1200-1-819x1024.png 819w, https://scandiweb.com/blog/wp-content/uploads/2026/05/DE-FELCO-Customs-v.2-960x1200-1-240x300.png 240w, https://scandiweb.com/blog/wp-content/uploads/2026/05/DE-FELCO-Customs-v.2-960x1200-1-120x150.png 120w, https://scandiweb.com/blog/wp-content/uploads/2026/05/DE-FELCO-Customs-v.2-960x1200-1-768x960.png 768w, https://scandiweb.com/blog/wp-content/uploads/2026/05/DE-FELCO-Customs-v.2-960x1200-1.png 960w" sizes="(max-width: 819px) 100vw, 819px" /></figure>
</figure>



<p class="wp-block-paragraph">Alongside traditional SEO, we invested significant effort in answer engine optimization. A growing share of queries, particularly in product research and &#8220;how to choose&#8221; questions, is now answered directly by AI-powered engines, often without the user ever clicking through to a website. For a brand like FELCO, where purchase decisions frequently start with questions (what&#8217;s the best pruning tool for roses, do I need professional tools for home use, and similar), visibility in AI-generated answers is becoming as important as ranking on page one.</p>



<p class="wp-block-paragraph">We restructured content so that it could be surfaced and cited by AI answer engines: rewriting key pages to lead with direct, concise answers to the questions FELCO&#8217;s target audiences were asking, building supporting educational content to establish topical authority, and ensuring that structured data and page architecture made it easy for AI systems to extract and attribute FELCO&#8217;s content accurately.&nbsp;</p>



<h3 class="wp-block-heading">Analytics and performance intelligence</h3>



<p class="wp-block-paragraph">The analytics infrastructure rebuild included GA4 implementation, dataLayer architecture, consent management, and reporting dashboards to support reliable, revenue-aligned decision-making.</p>



<p class="wp-block-paragraph">For the first time, FELCO has:</p>



<ul class="wp-block-list"><li>Cohort-level analysis by customer segment</li><li>Cross-channel attribution across paid, SEO, and email</li><li>Funnel drop-off diagnostics by step and audience</li><li>Retention and repeat purchase tracking</li><li>Campaign-level performance tied to contribution margin.</li></ul>



<h3 class="wp-block-heading">Lifecycle and retention marketing</h3>



<p class="wp-block-paragraph">We built a structured lifecycle engine and designed automated flows across the full customer journey: welcome and onboarding, product education, cart recovery, post-purchase engagement, cross-sell sequences, and seasonal gifting campaigns. Weekly newsletters were integrated into the broader marketing calendar, allowing CRM activity to reinforce paid media and seasonal pushes.&nbsp;</p>



<h3 class="wp-block-heading">Customer experience transformation</h3>



<figure class="wp-block-gallery aligncenter has-nested-images columns-default is-cropped wp-block-gallery-3 is-layout-flex wp-block-gallery-is-layout-flex">
<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="558" data-id="24320" src="https://scandiweb.com/blog/wp-content/uploads/2026/05/Before-1024x558.png" alt="" class="wp-image-24320" srcset="https://scandiweb.com/blog/wp-content/uploads/2026/05/Before-1024x558.png 1024w, https://scandiweb.com/blog/wp-content/uploads/2026/05/Before-300x164.png 300w, https://scandiweb.com/blog/wp-content/uploads/2026/05/Before-150x82.png 150w, https://scandiweb.com/blog/wp-content/uploads/2026/05/Before-768x419.png 768w, https://scandiweb.com/blog/wp-content/uploads/2026/05/Before-1536x837.png 1536w, https://scandiweb.com/blog/wp-content/uploads/2026/05/Before-2048x1116.png 2048w, https://scandiweb.com/blog/wp-content/uploads/2026/05/Before-1600x872.png 1600w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="558" data-id="24321" src="https://scandiweb.com/blog/wp-content/uploads/2026/05/After-1024x558.png" alt="" class="wp-image-24321" srcset="https://scandiweb.com/blog/wp-content/uploads/2026/05/After-1024x558.png 1024w, https://scandiweb.com/blog/wp-content/uploads/2026/05/After-300x164.png 300w, https://scandiweb.com/blog/wp-content/uploads/2026/05/After-150x82.png 150w, https://scandiweb.com/blog/wp-content/uploads/2026/05/After-768x419.png 768w, https://scandiweb.com/blog/wp-content/uploads/2026/05/After-1536x837.png 1536w, https://scandiweb.com/blog/wp-content/uploads/2026/05/After-2048x1116.png 2048w, https://scandiweb.com/blog/wp-content/uploads/2026/05/After-1600x872.png 1600w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>
<figcaption class="blocks-gallery-caption">Before / After</figcaption></figure>



<p class="wp-block-paragraph">After the CX audit identified friction points specific to non-professional users, such as navigation and discovery that assumed product knowledge, and incomplete post-purchase experiences, we introduced, through UX redesign:</p>



<ul class="wp-block-list"><li>Clearer product segmentation for professional vs. home gardener</li><li>Simplified navigation and category structure</li><li>Stronger tool selection guidance and product education</li><li>Improved mobile usability</li><li>Better integration of brand messaging throughout the journey.</li></ul>



<h2 class="wp-block-heading">Flagship campaign – BFCM 2025: professional-grade tools made accessible for every home gardener</h2>



<figure class="wp-block-gallery aligncenter has-nested-images columns-default is-cropped wp-block-gallery-4 is-layout-flex wp-block-gallery-is-layout-flex">
<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="1024" data-id="24327" src="https://scandiweb.com/blog/wp-content/uploads/2026/05/LeadGen_1080x1080-1024x1024.png" alt="" class="wp-image-24327" srcset="https://scandiweb.com/blog/wp-content/uploads/2026/05/LeadGen_1080x1080-1024x1024.png 1024w, https://scandiweb.com/blog/wp-content/uploads/2026/05/LeadGen_1080x1080-300x300.png 300w, https://scandiweb.com/blog/wp-content/uploads/2026/05/LeadGen_1080x1080-150x150.png 150w, https://scandiweb.com/blog/wp-content/uploads/2026/05/LeadGen_1080x1080-768x768.png 768w, https://scandiweb.com/blog/wp-content/uploads/2026/05/LeadGen_1080x1080-240x240.png 240w, https://scandiweb.com/blog/wp-content/uploads/2026/05/LeadGen_1080x1080-80x80.png 80w, https://scandiweb.com/blog/wp-content/uploads/2026/05/LeadGen_1080x1080-60x60.png 60w, https://scandiweb.com/blog/wp-content/uploads/2026/05/LeadGen_1080x1080.png 1080w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="1024" data-id="24325" src="https://scandiweb.com/blog/wp-content/uploads/2026/05/Atelier_DIY_1080x1080-1024x1024.png" alt="" class="wp-image-24325" srcset="https://scandiweb.com/blog/wp-content/uploads/2026/05/Atelier_DIY_1080x1080-1024x1024.png 1024w, https://scandiweb.com/blog/wp-content/uploads/2026/05/Atelier_DIY_1080x1080-300x300.png 300w, https://scandiweb.com/blog/wp-content/uploads/2026/05/Atelier_DIY_1080x1080-150x150.png 150w, https://scandiweb.com/blog/wp-content/uploads/2026/05/Atelier_DIY_1080x1080-768x768.png 768w, https://scandiweb.com/blog/wp-content/uploads/2026/05/Atelier_DIY_1080x1080-240x240.png 240w, https://scandiweb.com/blog/wp-content/uploads/2026/05/Atelier_DIY_1080x1080-80x80.png 80w, https://scandiweb.com/blog/wp-content/uploads/2026/05/Atelier_DIY_1080x1080-60x60.png 60w, https://scandiweb.com/blog/wp-content/uploads/2026/05/Atelier_DIY_1080x1080.png 1080w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="1024" data-id="24326" src="https://scandiweb.com/blog/wp-content/uploads/2026/05/Black_Friday_1080x1080-1024x1024.png" alt="" class="wp-image-24326" srcset="https://scandiweb.com/blog/wp-content/uploads/2026/05/Black_Friday_1080x1080-1024x1024.png 1024w, https://scandiweb.com/blog/wp-content/uploads/2026/05/Black_Friday_1080x1080-300x300.png 300w, https://scandiweb.com/blog/wp-content/uploads/2026/05/Black_Friday_1080x1080-150x150.png 150w, https://scandiweb.com/blog/wp-content/uploads/2026/05/Black_Friday_1080x1080-768x768.png 768w, https://scandiweb.com/blog/wp-content/uploads/2026/05/Black_Friday_1080x1080-240x240.png 240w, https://scandiweb.com/blog/wp-content/uploads/2026/05/Black_Friday_1080x1080-80x80.png 80w, https://scandiweb.com/blog/wp-content/uploads/2026/05/Black_Friday_1080x1080-60x60.png 60w, https://scandiweb.com/blog/wp-content/uploads/2026/05/Black_Friday_1080x1080.png 1080w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>
</figure>



<p class="wp-block-paragraph">Black Friday became the clearest expression of what this integrated model could do. We ran as a single coordinated experience throughout channels.</p>



<p class="wp-block-paragraph"><strong>Paid media</strong> drove VIP early-access sign-ups ahead of the public launch, with intent-driven search and social campaigns leading on FELCO&#8217;s craftsmanship and seasonal offers.</p>



<p class="wp-block-paragraph"><strong>Landing pages</strong> were rebuilt to lead with storytelling and simplify product selection for non-professional visitors – benefits first, technical specifications available but never required.</p>



<p class="wp-block-paragraph"><strong>Email and SMS</strong> delivered early access to VIP members, then segmented flows throughout the sale window: educational content, offer reminders, abandoned cart, and checkout nudges, all coordinated with the paid calendar.</p>



<p class="wp-block-paragraph"><strong>Retargeting</strong> showed dynamic product ads with messaging adapted to browsing behavior and funnel stage.</p>



<p class="wp-block-paragraph"><strong>Post-purchase flows</strong> kept the conversation going after checkout with onboarding emails, usage tips, cross-sell recommendations, and a gifting push to satisfied BFCM buyers.</p>



<h2 class="wp-block-heading">Results</h2>



<p class="wp-block-paragraph"><strong>2025 DTC performance</strong></p>



<ul class="wp-block-list"><li>+107.87% YoY revenue</li><li>4–5 ROAS consistently</li><li>+208% traffic</li></ul>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p>What started as fragmented digital activity became a repeatable DTC growth system. This foundation helped us double DTC revenue year over year while expanding into new markets.</p><cite><strong>Jean-Christophe Jouve</strong><br>Global Finance Director at FELCO</cite></blockquote>



<p class="wp-block-paragraph"><strong>July–November (campaign window)</strong></p>



<ul class="wp-block-list"><li>+207% YoY DTC revenue, the strongest July–November period in FELCO&#8217;s digital history</li></ul>



<p class="wp-block-paragraph"><strong>November–December (peak season) YoY</strong></p>



<ul class="wp-block-list"><li>+167.2% revenue</li><li>+154.4% transactions</li><li>+5.0% AOV – given it was the most discount-driven week in the retail calendar, the campaign grew volume without requiring margin destruction to do it</li><li>-76.7% add-to-cart drop-off</li></ul>



<p class="wp-block-paragraph"><strong>Black Friday week (24 Nov–1 Dec) YoY</strong></p>



<ul class="wp-block-list"><li>+292.1% revenue</li><li>+828.6% PPC revenue</li><li>+334.4% SEO revenue</li></ul>



<p class="wp-block-paragraph">The campaign delivered strong results. But the more interesting thing about this campaign is what it was actually doing. FELCO is a 75-year-old precision tool brand with deep credibility in a professional niche. We had to expand the definition of who FELCO is for without losing what made the brand worth expanding.</p>



<p class="wp-block-paragraph">It required brand repositioning and performance marketing to align and meet a November deadline. The creatives had to work emotionally for a new audience while remaining honest about what FELCO is, and all the campaign activities had to scale a new segment without cannibalizing the professional base. The results are evidence that it worked. Alongside those numbers is the system that produced them: a fully integrated growth model that FELCO now owns.</p>



<div style="height:20px" aria-hidden="true" class="wp-block-spacer"></div>



<style> p.box { border: 1px solid black; padding-top: 30px; padding-right: 30px; padding-bottom: 30px; padding-left: 30px; } </style> <p class="box wp-block-paragraph"><em>Thinking about your DTC growth? If you are currently launching into a new segment or market, or trying to connect fragmented digital channels into something that performs – we&#8217;ve done it, and we can help. </em><a href="https://growth.scandiweb.com/" target="_blank" rel="noreferrer noopener"><em>Get in touch</em></a><em> with the scandiweb Integrated Growth team today.</em></p>
<p>The post <a rel="nofollow" href="https://scandiweb.com/blog/case-study-doubling-dtc-revenue-for-felco/">Case Study: Doubling DTC Revenue for a 75-Year-Old Swiss Tool Brand in 6 Months</a> appeared first on <a rel="nofollow" href="https://scandiweb.com/blog">scandiweb</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Email Marketing Accelerator: How a Lifecycle Email Program Drives Up to 40% DTC Revenue in 90 Days</title>
		<link>https://scandiweb.com/blog/email-marketing-accelerator-case-study-lifecycle-email-program/</link>
		
		<dc:creator><![CDATA[Andres Reitsnik]]></dc:creator>
		<pubDate>Fri, 15 May 2026 21:14:00 +0000</pubDate>
				<category><![CDATA[Case Studies]]></category>
		<category><![CDATA[Digital Growth]]></category>
		<category><![CDATA[Customer]]></category>
		<category><![CDATA[Customer Journey]]></category>
		<category><![CDATA[customer loyalty]]></category>
		<category><![CDATA[ecommerce personalization]]></category>
		<category><![CDATA[Email]]></category>
		<category><![CDATA[email campaign]]></category>
		<category><![CDATA[email marketing]]></category>
		<category><![CDATA[personalization]]></category>
		<category><![CDATA[retention]]></category>
		<category><![CDATA[User Personas]]></category>
		<guid isPermaLink="false">https://scandiweb.com/blog/?p=24283</guid>

					<description><![CDATA[<p>Explore how a personalized lifecycle email strategy could drive up to 40% of DTC revenue through segmented flows and reminder campaigns.</p>
<p>The post <a rel="nofollow" href="https://scandiweb.com/blog/email-marketing-accelerator-case-study-lifecycle-email-program/">Email Marketing Accelerator: How a Lifecycle Email Program Drives Up to 40% DTC Revenue in 90 Days</a> appeared first on <a rel="nofollow" href="https://scandiweb.com/blog">scandiweb</a>.</p>
]]></description>
										<content:encoded><![CDATA[<div class="lazyblock-related-ondt6 wp-block-lazyblock-related"><div class="related-services">
  <h3>Related Services</h3>
  <ul>
    
    <li>
      <a  href="https://scandiweb.com/digital-marketing-services" target=_blank >
        Email Marketing
      </a>
    </li>
    
    <li>
      <a  href="https://scandiweb.com/services/cro-ux" target=_blank >
        UX &amp; CRO
      </a>
    </li>
    
    <li>
      <a  href="https://scandiweb.ai/" target=_blank >
        AI Integration
      </a>
    </li>
    
  </ul>
</div>
</div>


<p class="wp-block-paragraph">We prepared an email marketing strategy for a prominent men&#8217;s grooming brand, used by professional barbers across 95 countries and trusted by customers who shop with them month after month. That kind of loyalty results from a product and brand identity that genuinely resonates. The email program was an opportunity to match that.&nbsp;</p>



<p class="wp-block-paragraph">In a mature DTC program, email drives 30–40% of total revenue. The key is to recognize that a first-time buyer, a returning customer, and a professional barber have very different relationships with the brand and need to hear from it differently. Here&#8217;s what&#8217;s possible when addressing customers with targeted messaging and personalization.</p>



<h2 class="wp-block-heading">Emails for awareness, education, and conversion</h2>



<p class="wp-block-paragraph">Our mission was to develop an email program that is structured to use it at the right moment, for the right customer, in the right way. That starts with a simple framework of three email variants, each built for a different stage of the customer journey.</p>



<ol class="wp-block-list"><li><strong>Editorial hero</strong></li></ol>



<p class="wp-block-paragraph">This email should be portrait-driven with an offer in the first fold and minimal copy for moments where attention is the primary job. That could be a new launch or seasonal campaign. It earns the open and sets the narrative for what comes next, sent to the full list with a bias toward new and lapsed customers.</p>



<ol class="wp-block-list" start="2"><li><strong>Product education</strong></li></ol>



<p class="wp-block-paragraph">This type consists of a comparison structure that lays out the category decision before the CTA appears: welcome email follow-up, browse abandonment email, and cross-sell sends. It reads like a condensed blog post and converts like a product page, moving customers up a tier without leading with a discount.&nbsp;</p>



<ol class="wp-block-list" start="3"><li><strong>Offer close</strong></li></ol>



<p class="wp-block-paragraph">This email variant is built for the 48-hour conversion window, focuses on a single product, has clear urgency, and uses a structure that does the selling that the first two variants warmed up for. It&#8217;s the right format for promo kickoffs and last-chance reminders. For this brand, that could be a reminder email timed to the 60–90 day reorder cycle, a seasonal promo close, or a win-back send that leads with what&#8217;s launched since the customer was last active.&nbsp;</p>



<h2 class="wp-block-heading">Email personalization based on customer types</h2>



<p class="wp-block-paragraph">The three email variants above only work if they&#8217;re reaching the right person at the right moment. That requires knowing who&#8217;s actually in the list. We identified three distinct customer types, each with a different relationship to the brand and a different reason to open an email.&nbsp;</p>



<div class="wp-block-image"><figure class="aligncenter size-large"><img loading="lazy" decoding="async" width="1024" height="312" src="https://scandiweb.com/blog/wp-content/uploads/2026/05/reuzel-email-marketing-accelerator-customer-personas-1-1024x312.png" alt="" class="wp-image-24289" srcset="https://scandiweb.com/blog/wp-content/uploads/2026/05/reuzel-email-marketing-accelerator-customer-personas-1-1024x312.png 1024w, https://scandiweb.com/blog/wp-content/uploads/2026/05/reuzel-email-marketing-accelerator-customer-personas-1-300x92.png 300w, https://scandiweb.com/blog/wp-content/uploads/2026/05/reuzel-email-marketing-accelerator-customer-personas-1-150x46.png 150w, https://scandiweb.com/blog/wp-content/uploads/2026/05/reuzel-email-marketing-accelerator-customer-personas-1-768x234.png 768w, https://scandiweb.com/blog/wp-content/uploads/2026/05/reuzel-email-marketing-accelerator-customer-personas-1-1536x468.png 1536w, https://scandiweb.com/blog/wp-content/uploads/2026/05/reuzel-email-marketing-accelerator-customer-personas-1-2048x625.png 2048w, https://scandiweb.com/blog/wp-content/uploads/2026/05/reuzel-email-marketing-accelerator-customer-personas-1-1600x488.png 1600w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure></div>



<ol class="wp-block-list"><li><strong>The New Customer </strong>who may already be pre-sold on product quality before their first order, or they may have zero brand context. What happens in the first few emails determines whether they become a loyal reorderer or a one-time buyer. Instead of a discount, they need to understand where the brand comes from, how the catalog is structured, and why the product they just bought is the right starting point.</li></ol>



<ol class="wp-block-list" start="2"><li><strong>The Returning Customer</strong> has the most revenue potential and requires the most nuance, even at the sub-segment level. Some customers in this segment reorder the same product every 60 to 90 days without much prompting, some bought one product and are curious about what pairs with it, while some haven&#8217;t ordered in six months and need a different kind of re-engagement.&nbsp;</li></ol>



<ol class="wp-block-list" start="3"><li><strong>The Barber/Pro</strong> – they want technique content, early access to new formulas, and communication that acknowledges their expertise rather than talking to them like a first-time buyer. With 95 countries of barbershops connected with the brand, this segment is large enough to warrant its own flow.</li></ol>



<h3 class="wp-block-heading">New customer email flow</h3>



<p class="wp-block-paragraph">The welcome flow should be used for context setting. A new customer may have arrived via their barber, a social tutorial, or a gift, and what they need in the first few emails is enough brand context to understand what they&#8217;ve bought into and enough reason to come back.</p>



<p class="wp-block-paragraph">The flow we developed:</p>



<ul class="wp-block-list"><li><strong>Day 0: Brand origin.</strong> Before any product recommendation, the new customer understands the brand origin and why that matters.</li><li><strong>Day 1: Product map.</strong> The catalog is introduced as four tiers, making SKUs feel navigable and not overwhelming.</li><li><strong>Day 3: Technique.</strong> Educational content that lets the brand&#8217;s credibility do the work.</li><li><strong>Day 6: Social proof.</strong> Showcasing scale that confirms a new customer made the right call.</li><li><strong>Day 10: First nudge.</strong> Free shipping over a threshold rather than a percentage off better fits the brand tone than a discount-first approach.</li></ul>



<div class="wp-block-image"><figure class="aligncenter size-large"><img loading="lazy" decoding="async" width="1024" height="665" src="https://scandiweb.com/blog/wp-content/uploads/2026/05/reuzel-email-marketing-accelerator-new-customer-email-flow-1024x665.png" alt="" class="wp-image-24294" srcset="https://scandiweb.com/blog/wp-content/uploads/2026/05/reuzel-email-marketing-accelerator-new-customer-email-flow-1024x665.png 1024w, https://scandiweb.com/blog/wp-content/uploads/2026/05/reuzel-email-marketing-accelerator-new-customer-email-flow-300x195.png 300w, https://scandiweb.com/blog/wp-content/uploads/2026/05/reuzel-email-marketing-accelerator-new-customer-email-flow-150x97.png 150w, https://scandiweb.com/blog/wp-content/uploads/2026/05/reuzel-email-marketing-accelerator-new-customer-email-flow-768x499.png 768w, https://scandiweb.com/blog/wp-content/uploads/2026/05/reuzel-email-marketing-accelerator-new-customer-email-flow-1536x997.png 1536w, https://scandiweb.com/blog/wp-content/uploads/2026/05/reuzel-email-marketing-accelerator-new-customer-email-flow-1600x1039.png 1600w, https://scandiweb.com/blog/wp-content/uploads/2026/05/reuzel-email-marketing-accelerator-new-customer-email-flow.png 1836w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure></div>



<h3 class="wp-block-heading">Returning customer email flow</h3>



<p class="wp-block-paragraph">The returning customer segment looks like one audience but behaves like several, and each one needs a meaningfully different email to move forward.</p>



<ul class="wp-block-list"><li><strong>Reorderer</strong> buys the same product every 60 to 90 days without much prompting – they need a &#8220;probably running low&#8221; email at day 50, with a one-click reorder link and no friction between the email and the checkout.</li><li><strong>Collector</strong> bought one product and is curious about what pairs with it. The right email is a popular pairing framed as education, less like a sale. The brand&#8217;s editorial blog already has this content, so the email just needs to surface it at the right moment.</li><li><strong>Lapsed customer </strong>hasn&#8217;t bought in six months or more. A generic &#8220;we miss you&#8221; email with 15% off gets ignored because every brand sends it. In this case, the right hook is what&#8217;s new since they were last active – lead with news, close with a frictionless reorder of their last product.</li></ul>



<div class="wp-block-image"><figure class="aligncenter size-large"><img loading="lazy" decoding="async" width="1024" height="630" src="https://scandiweb.com/blog/wp-content/uploads/2026/05/reuzel-email-marketing-accelerator-returning-customer-email-flow-1024x630.png" alt="" class="wp-image-24292" srcset="https://scandiweb.com/blog/wp-content/uploads/2026/05/reuzel-email-marketing-accelerator-returning-customer-email-flow-1024x630.png 1024w, https://scandiweb.com/blog/wp-content/uploads/2026/05/reuzel-email-marketing-accelerator-returning-customer-email-flow-300x184.png 300w, https://scandiweb.com/blog/wp-content/uploads/2026/05/reuzel-email-marketing-accelerator-returning-customer-email-flow-150x92.png 150w, https://scandiweb.com/blog/wp-content/uploads/2026/05/reuzel-email-marketing-accelerator-returning-customer-email-flow-768x472.png 768w, https://scandiweb.com/blog/wp-content/uploads/2026/05/reuzel-email-marketing-accelerator-returning-customer-email-flow-1536x944.png 1536w, https://scandiweb.com/blog/wp-content/uploads/2026/05/reuzel-email-marketing-accelerator-returning-customer-email-flow-1600x984.png 1600w, https://scandiweb.com/blog/wp-content/uploads/2026/05/reuzel-email-marketing-accelerator-returning-customer-email-flow.png 2030w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure></div>



<h3 class="wp-block-heading">Barber/pro email flow</h3>



<p class="wp-block-paragraph">The pro segment is the most underserved by a generic email program. A professional barber uses the brand’s products on 20 or more clients a day, runs through product five to ten times faster than a consumer, sells it at the chair, and has zero interest in being spoken to like a first-time buyer.</p>



<p class="wp-block-paragraph">The pro flow could look like:</p>



<ul class="wp-block-list"><li><strong>Day 0: A back-bar introduction. </strong>The professional product line, bulk SKUs, and framing that acknowledge this customer uses their product as a professional tool.</li><li><strong>Day 5: Technique content.</strong> On-chair application demos that make barbers better at their jobs and build loyalty.</li><li><strong>Day 14: Client matching.</strong> Explaining the products, making the barber a more confident advocate.</li><li><strong>Day 30: A reorder prompt</strong>. It&#8217;s calibrated to the professional cycle, which runs five to ten times faster than a consumer&#8217;s.</li></ul>



<p class="wp-block-paragraph">Every launch – early access before the general list goes live, giving a signal of status that costs nothing to deliver and builds the kind of loyalty that keeps a professional barber recommending the brand to every client they see. We also recommend zero discount-first language throughout, because this segment is community- not price-driven, and responds to content that treats them as the experts they are.</p>



<div class="wp-block-image"><figure class="aligncenter size-large"><img loading="lazy" decoding="async" width="1024" height="655" src="https://scandiweb.com/blog/wp-content/uploads/2026/05/reuzel-email-marketing-accelerator-pro-customer-email-flow-1024x655.png" alt="" class="wp-image-24296" srcset="https://scandiweb.com/blog/wp-content/uploads/2026/05/reuzel-email-marketing-accelerator-pro-customer-email-flow-1024x655.png 1024w, https://scandiweb.com/blog/wp-content/uploads/2026/05/reuzel-email-marketing-accelerator-pro-customer-email-flow-300x192.png 300w, https://scandiweb.com/blog/wp-content/uploads/2026/05/reuzel-email-marketing-accelerator-pro-customer-email-flow-150x96.png 150w, https://scandiweb.com/blog/wp-content/uploads/2026/05/reuzel-email-marketing-accelerator-pro-customer-email-flow-768x491.png 768w, https://scandiweb.com/blog/wp-content/uploads/2026/05/reuzel-email-marketing-accelerator-pro-customer-email-flow-1536x982.png 1536w, https://scandiweb.com/blog/wp-content/uploads/2026/05/reuzel-email-marketing-accelerator-pro-customer-email-flow-1600x1023.png 1600w, https://scandiweb.com/blog/wp-content/uploads/2026/05/reuzel-email-marketing-accelerator-pro-customer-email-flow.png 1836w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure></div>



<h2 class="wp-block-heading">The full lifecycle email flow</h2>



<p class="wp-block-paragraph">The biggest revenue gains in email marketing come from lifecycle flows that continue working in the background every day, reacting to customer behavior regarding timing and products purchased. Here&#8217;s how a grooming brand could leverage those.</p>



<h3 class="wp-block-heading">Welcome emails to build confidence</h3>



<p class="wp-block-paragraph">A new customer discovering the brand through Instagram, a referral, or a gifted product arrives with very different levels of product knowledge. The welcome sequence should focus on orientation first.</p>



<p class="wp-block-paragraph">This is also where personalization begins. Well-structured welcome flows in DTC grooming brands commonly achieve 4–8% conversion rates when product education and personalized incentives are introduced early.&nbsp;</p>



<h3 class="wp-block-heading">Browse abandonment flow to recover high-intent traffic</h3>



<p class="wp-block-paragraph">One of the clearest lifecycle gaps appears when customers repeatedly view products but leave without adding them to the cart. This often signals hesitation rather than a lack of intent. Browse abandonment flows can continue the decision-making process by:</p>



<ul class="wp-block-list"><li>Re-surfacing the viewed product</li><li>Explaining how it differs from similar products</li><li>Introducing popular pairings</li><li>Reinforcing the quality through educational framing.</li></ul>



<p class="wp-block-paragraph">Behavior-triggered browse flows in grooming eCommerce regularly recover 1–3% of abandoned sessions without relying heavily on discounts.</p>



<h3 class="wp-block-heading">Post-purchase emails to foster loyalty</h3>



<p class="wp-block-paragraph">Post-purchase flows are often underutilized despite being one of the highest-value stages in the customer lifecycle. The first order determines much of the future relationship and whether customers reorder. Well-developed post-purchase flows in DTC grooming typically generate between $1.50 and $2.50 revenue per recipient over a 60-day period.</p>



<p class="wp-block-paragraph">We recommend extending beyond transactional confirmation emails into technique content shortly after delivery, routine pairings several weeks later, and reminders aligned with expected usage cycles. For products with predictable reorder windows, reminder sequences become especially valuable.</p>



<h3 class="wp-block-heading">Win-back emails to reconnect through relevance</h3>



<p class="wp-block-paragraph">This brand’s customers often lapse because they purchased through a barber instead, they switched routines temporarily, or they simply haven’t been reminded of what’s changed since their last purchase. Instead of positioning reactivation around price, the flow reframes it around discovery and product evolution. That shift preserves brand positioning while still creating urgency to return.</p>



<p class="wp-block-paragraph">The stronger approach is contextual reactivation:</p>



<ul class="wp-block-list"><li>New product launches</li><li>New formulations</li><li>Updated routines</li><li>Products connected to previous purchases.</li></ul>



<h2 class="wp-block-heading">Building a lifecycle email program</h2>



<p class="wp-block-paragraph">This approach starts with the data of who&#8217;s in the list, how they buy, and where the program currently isn&#8217;t reaching them. From there, we build email variants and lifecycle sequences based on customer behavior. Projected results:</p>



<ul class="wp-block-list"><li>A mature email program like this drives 30–40% of total DTC revenue</li><li>Personalized welcome flow has a 4–8% CVR, which is up to 4x higher than what a generic version produces</li><li>Post-purchase sequences deliver $1.50–2.50 revenue per recipient over 60 days&nbsp;</li><li>Win-back flows reactivate 3–6% of lapsed customers within 90 days.&nbsp;</li></ul>



<p class="wp-block-paragraph">Putting all of that together for a list spanning 95 countries and including a pro segment ordering at 3–5x the consumer rate, those benchmarks compound meaningfully.</p>



<div style="height:20px" aria-hidden="true" class="wp-block-spacer"></div>



<p class="wp-block-paragraph"><style> p.box { border: 1px solid black; padding-top: 30px; padding-right: 30px; padding-bottom: 30px; padding-left: 30px; } </style> <p class="box"><em>If your email program isn&#8217;t tailored to your customer base, the gap is likely larger than it appears. We build the full program around your brand and customer data – <a href="https://scandiweb.com/contact" target="_blank" rel="noreferrer noopener">let&#8217;s get in touch</a>, and we&#8217;ll show you what that looks like in practice.</em></p></p>
<p>The post <a rel="nofollow" href="https://scandiweb.com/blog/email-marketing-accelerator-case-study-lifecycle-email-program/">Email Marketing Accelerator: How a Lifecycle Email Program Drives Up to 40% DTC Revenue in 90 Days</a> appeared first on <a rel="nofollow" href="https://scandiweb.com/blog">scandiweb</a>.</p>
]]></content:encoded>
					
		
		
			</item>
	</channel>
</rss>

<!--
Performance optimized by W3 Total Cache. Learn more: https://www.boldgrid.com/w3-total-cache/?utm_source=w3tc&utm_medium=footer_comment&utm_campaign=free_plugin

Object Caching 52/138 objects using Redis
Page Caching using Disk: Enhanced 

Served from: scandiweb.com @ 2026-11-04 16:24:06 by W3 Total Cache
-->