{"id":5782,"date":"2026-08-08T12:43:57","date_gmt":"2026-08-08T10:43:57","guid":{"rendered":"https:\/\/strat.es\/css-google-shopping\/"},"modified":"2026-08-09T12:24:22","modified_gmt":"2026-08-09T10:24:22","slug":"css-google-shopping","status":"publish","type":"post","link":"https:\/\/strat.es\/en\/css-google-shopping\/","title":{"rendered":"What is Google Shopping CSS, how it works and when it&#8217;s worth using"},"content":{"rendered":"\n<!-- ===== STRAT article header (reading time + table of contents) ===== -->\n<!-- Paste this block into a \"Custom HTML\" block right AFTER the first paragraph of the post. -->\n<!-- The reading time and the table of contents generate themselves by reading the article. Just edit the date. -->\n<div class=\"strat-ah\" id=\"stratArticleHeader\">\n  <style>\n    .strat-ah{\n      --ah-bg:#ffffff; --ah-pink:#ec186c; --ah-line:#eaeaea;\n      --ah-ink:#1a1a1a; --ah-muted:#777777; --ah-body:#3f3f3f;\n      background:var(--ah-bg); border:1px solid var(--ah-line); border-radius:16px;\n      padding:22px 26px; margin:32px 0;\n      font-family:'Poppins',-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,Helvetica,Arial,sans-serif;\n      color:var(--ah-body); box-shadow:0 6px 22px rgba(0,0,0,.05);\n    }\n    .strat-ah *{box-sizing:border-box}\n    .strat-ah__meta{\n      display:flex; flex-wrap:wrap; gap:18px; align-items:center;\n      font-size:13px; color:var(--ah-muted); padding-bottom:16px; border-bottom:1px solid var(--ah-line);\n    }\n    .strat-ah__meta span{display:inline-flex; align-items:center; gap:7px}\n    .strat-ah__meta svg{display:block; color:var(--ah-pink)}\n    .strat-ah__eyebrow{\n      display:block; font-size:11px; font-weight:600; letter-spacing:.14em;\n      text-transform:uppercase; color:var(--ah-pink); margin:18px 0 12px;\n    }\n    .strat-ah__toc{margin-top:4px}\n    .strat-ah__toc ol{margin:0; padding:0; list-style:none; counter-reset:toc}\n    .strat-ah__toc li{counter-increment:toc; margin:0 0 9px}\n    .strat-ah__toc li:last-child{margin-bottom:0}\n    .strat-ah__toc a{\n      display:flex; gap:10px; align-items:baseline; text-decoration:none !important;\n      color:var(--ah-ink) !important; font-size:14px; line-height:1.45; transition:color .15s ease;\n    }\n    .strat-ah__toc a::before{\n      content:counter(toc,decimal-leading-zero); color:var(--ah-pink); font-weight:600;\n      font-size:12px; flex:0 0 auto; min-width:22px;\n    }\n    .strat-ah__toc a:hover{color:var(--ah-pink) !important}\n    @media (max-width:560px){ .strat-ah{padding:20px 18px} }\n  <\/style>\n\n  <div class=\"strat-ah__meta\">\n    <span id=\"stratReadTime\">\n      <svg width=\"15\" height=\"15\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\"><circle cx=\"12\" cy=\"12\" r=\"9\"><\/circle><path d=\"M12 7v5l3 2\"><\/path><\/svg>\n      Calculating\u2026\n    <\/span>\n    <!-- EDIT the updated date here (or delete this <span> if you don't want to show it): -->\n    <span>\n      <svg width=\"15\" height=\"15\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\"><rect x=\"3\" y=\"4\" width=\"18\" height=\"17\" rx=\"2\"><\/rect><path d=\"M3 9h18M8 2v4M16 2v4\"><\/path><\/svg>\n      Updated 10 July 2026\n    <\/span>\n  <\/div>\n\n  <!-- The table of contents fills itself from the article's H2s: -->\n  <div class=\"strat-ah__toc\" id=\"stratTocSection\">\n    <span class=\"strat-ah__eyebrow\">In this article<\/span>\n    <ol id=\"stratTocList\"><\/ol>\n  <\/div>\n<\/div>\n\n<script>\n(function(){\n  function countWords(s){ s=(s||'').trim(); return s ? s.split(\/\\s+\/).length : 0; }\n  function slugify(s){\n    return (s||'').toLowerCase().normalize('NFD').replace(\/[\\u0300-\\u036f]\/g,'')\n      .replace(\/[^a-z0-9\\s-]\/g,'').trim().replace(\/\\s+\/g,'-').slice(0,60);\n  }\n  function findRoot(box){\n    var node=box.parentElement;\n    while(node && node!==document.body){\n      var hs=node.querySelectorAll('h2');\n      for(var i=0;i<hs.length;i++){\n        if(box.compareDocumentPosition(hs[i]) &#038; Node.DOCUMENT_POSITION_FOLLOWING) return node;\n      }\n      node=node.parentElement;\n    }\n    return box.parentElement;\n  }\n  function init(){\n    var box=document.getElementById('stratArticleHeader');\n    if(!box) return;\n    var root=findRoot(box);\n\n    var heads=Array.prototype.slice.call(root.querySelectorAll('h2')).filter(function(h){\n      return box.compareDocumentPosition(h) &#038; Node.DOCUMENT_POSITION_FOLLOWING;\n    });\n    var list=document.getElementById('stratTocList');\n    var used={};\n    if(heads.length){\n      heads.forEach(function(h,i){\n        var id=h.id;\n        if(!id){ id=slugify(h.textContent)||('sec-'+i); if(used[id]) id=id+'-'+i; h.id=id; }\n        used[id]=true;\n        var li=document.createElement('li');\n        var a=document.createElement('a');\n        a.href='#'+id; a.textContent=h.textContent.trim();\n        a.addEventListener('click',function(e){\n          e.preventDefault();\n          var t=document.getElementById(id);\n          if(t){ t.scrollIntoView({behavior:'smooth',block:'start'}); history.replaceState(null,'','#'+id); }\n        });\n        li.appendChild(a); list.appendChild(li);\n      });\n    } else {\n      document.getElementById('stratTocSection').style.display='none';\n    }\n\n    var total=countWords(root.innerText||root.textContent);\n    var own=countWords(box.innerText||box.textContent);\n    var words=Math.max(total-own,total>0?total:0);\n    var mins=Math.max(1,Math.round(words\/200));\n    var rt=document.getElementById('stratReadTime');\n    if(rt) rt.innerHTML=rt.innerHTML.replace('Calculating\u2026', mins+' min read');\n  }\n  if(document.readyState==='loading'){ document.addEventListener('DOMContentLoaded',init); }\n  else { init(); }\n})();\n<\/script>\n<!-- ===== End STRAT article header ===== -->\n\n\n\n<p class=\"wp-block-paragraph\">Google Shopping is one of the most profitable channels for an online store. Someone who clicks a product listing already knows what they&#8217;re looking for and is usually close to buying. The problem is that cost per click keeps rising, so buying that high-intent traffic gets more expensive every year.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">There&#8217;s a legal mechanism, backed by the European Commission, that lets you pay less for those same clicks or win more clicks on the same budget. It&#8217;s called CSS (Comparison Shopping Service), and most brands that invest in Shopping still aren&#8217;t using it. It doesn&#8217;t require changing your campaigns, your product feed or your website.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">This article explains what a CSS is, how the 20% bidding advantage works, what changes (and what doesn&#8217;t) in your account and, above all, the spend at which it&#8217;s worth paying for, with concrete numbers.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">What is a CSS (Comparison Shopping Service)?<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">A CSS is a price comparison service that gathers offers from different stores and shows them to users before sending them on to the retailer&#8217;s site. What matters for ecommerce is that a CSS can place Shopping ads on Google on your behalf.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">The part almost nobody explains is that Google Shopping is itself a CSS. It&#8217;s the comparison service Google uses by default when you set up your Shopping campaigns without doing anything else. What has changed in recent years is that you can pick a CSS other than Google&#8217;s to run exactly the same ads, and that switch carries a direct financial advantage.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Where does the CSS advantage come from?<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">The story starts in 2017, when the European Commission fined Google \u20ac2.4 billion for favouring its own comparison service over competitors in search results. To comply with the ruling, Google opened Shopping up to third-party comparison services and gave them incentives to bring merchants on board.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">In the early years there was even an incentive called SpendMatch, through which Google reimbursed part of the spend. That programme ended in January 2019. What remained, and is still in place today, is a bidding advantage of up to 20% for any merchant advertising through a third-party CSS instead of Google&#8217;s.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">This advantage is only available in the countries of the European Economic Area and in Switzerland. If you sell from within the EEA, you qualify without doing anything special.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">How does the 20% discount work?<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Shopping ads run through an auction, just like search ads. When your ads run through Google Shopping (the default CSS), Google keeps up to 20% of the cost per click as its own margin. When they run through a third-party CSS, that margin disappears and 100% of your spend goes towards bidding.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">In practice this means a bid of \u20ac0.80 through an external CSS is treated like a \u20ac1.00 bid through Google Shopping. Put the other way round, an advertiser still on Google&#8217;s CSS would have to bid 25% more to match you.<\/p>\n\n\n\n<style>\n.strat-css-split{font-family:'Poppins',system-ui,-apple-system,sans-serif;color:#1a1a1a;background:#fff;max-width:720px;margin:24px auto;padding:8px}\n.strat-css-split *{box-sizing:border-box}\n.strat-css-split__title{font-size:20px;font-weight:700;margin:0 0 4px;color:#141414;line-height:1.3}\n.strat-css-split__sub{font-size:14px;color:#6b6b6b;margin:0 0 24px;line-height:1.5}\n.strat-css-row{margin:0 0 22px}\n.strat-css-row__label{display:flex;justify-content:space-between;align-items:baseline;gap:12px;font-size:14px;font-weight:600;margin:0 0 8px}\n.strat-css-row__label em{color:#6b6b6b;font-weight:500;font-style:normal;white-space:nowrap}\n.strat-css-bar{display:flex;height:48px;border-radius:12px;overflow:hidden;border:1px solid #ececec;box-shadow:0 1px 3px rgba(20,20,20,.10)}\n.strat-css-seg{display:flex;align-items:center;justify-content:center;font-size:13px;font-weight:600;color:#fff;white-space:nowrap;padding:0 6px}\n.strat-css-seg--pink{background:#ec186c}\n.strat-css-seg--dark{background:#141414}\n.strat-css-legend{display:flex;gap:20px;flex-wrap:wrap;font-size:13px;color:#1a1a1a;margin:2px 0 0}\n.strat-css-legend span{display:inline-flex;align-items:center;gap:8px}\n.strat-css-legend i{width:12px;height:12px;border-radius:3px;display:inline-block;flex:none}\n.strat-css-note{font-size:13px;color:#777;margin:14px 0 0;line-height:1.6}\n@media (max-width:520px){\n  .strat-css-row__label{flex-direction:column;gap:2px}\n  .strat-css-seg{font-size:12px}\n}\n<\/style>\n\n<div class=\"strat-css-split\">\n  <p class=\"strat-css-split__title\">Where does every euro you invest in Shopping go?<\/p>\n  <p class=\"strat-css-split__sub\">Google Shopping is its own comparison service and keeps a margin on every click. A third-party CSS removes it.<\/p>\n\n  <div class=\"strat-css-row\">\n    <div class=\"strat-css-row__label\"><span>With Google Shopping (default CSS)<\/span><em>80% bids \u00b7 20% margin<\/em><\/div>\n    <div class=\"strat-css-bar\">\n      <div class=\"strat-css-seg strat-css-seg--pink\" style=\"width:80%\">80% to your bids<\/div>\n      <div class=\"strat-css-seg strat-css-seg--dark\" style=\"width:20%\">20%<\/div>\n    <\/div>\n  <\/div>\n\n  <div class=\"strat-css-row\">\n    <div class=\"strat-css-row__label\"><span>With a third-party CSS<\/span><em>100% bids<\/em><\/div>\n    <div class=\"strat-css-bar\">\n      <div class=\"strat-css-seg strat-css-seg--pink\" style=\"width:100%\">100% to your bids<\/div>\n    <\/div>\n  <\/div>\n\n  <div class=\"strat-css-legend\">\n    <span><i style=\"background:#ec186c\"><\/i>Budget bidding for your clicks<\/span>\n    <span><i style=\"background:#141414\"><\/i>Margin Google keeps<\/span>\n  <\/div>\n\n  <p class=\"strat-css-note\">For the same budget, a third-party CSS puts 100% of your budget into bidding. To match that bidding power, anyone still on Google&#8217;s own CSS would have to raise their bids by 25%.<\/p>\n<\/div>\n\n\n\n<p class=\"wp-block-paragraph\">There&#8217;s one thing worth understanding so you&#8217;re not disappointed. The 20% isn&#8217;t a refund and it doesn&#8217;t appear as a discount line on your Google Ads invoice. It&#8217;s a bidding advantage. You notice it in one of two ways. With the same bids, your products enter more auctions, show in better positions and get more impressions and clicks. With lower bids, your average cost per click drops. Depending on how competitive your sector is, the effective advantage tends to sit between 15% and 20%.<\/p>\n\n\n\n<style>\n.strat-chart-cost-clicks-en{max-width:720px;margin:24px auto}\n.strat-chart-cost-clicks-en .d{display:block}\n.strat-chart-cost-clicks-en .m{display:none}\n@media (max-width:560px){\n  .strat-chart-cost-clicks-en .d{display:none}\n  .strat-chart-cost-clicks-en .m{display:block}\n}\n<\/style>\n<div class=\"strat-chart-cost-clicks-en\">\n<svg class=\"d\" viewBox=\"0 0 720 452\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" role=\"img\" aria-label=\"Cost of winning the same clicks with and without CSS\" style=\"width:100%;height:auto;font-family:Poppins,system-ui,sans-serif;background:#fff\">\n<text x=\"92\" y=\"28\" font-size=\"19\" font-weight=\"700\" fill=\"#141414\">What it costs to win the same clicks, with and without CSS<\/text>\n<text x=\"92\" y=\"48\" font-size=\"13\" fill=\"#6b6b6b\">With an average CPC of \u20ac0.50 without CSS. With CSS, competitors pay 20% less per click.<\/text>\n<polygon points=\"92.00,380.00 686.00,66.00 686.00,128.80\" fill=\"#d8333f\" fill-opacity=\"0.09\"\/>\n<line x1=\"92.00\" y1=\"66\" x2=\"92.00\" y2=\"380\" stroke=\"#f4f4f4\"\/>\n<text x=\"92.00\" y=\"400\" font-size=\"12\" fill=\"#777\" text-anchor=\"middle\">0<\/text>\n<line x1=\"121.70\" y1=\"66\" x2=\"121.70\" y2=\"380\" stroke=\"#f4f4f4\"\/>\n<text x=\"121.70\" y=\"400\" font-size=\"12\" fill=\"#777\" text-anchor=\"middle\">1,000<\/text>\n<line x1=\"240.50\" y1=\"66\" x2=\"240.50\" y2=\"380\" stroke=\"#f4f4f4\"\/>\n<text x=\"240.50\" y=\"400\" font-size=\"12\" fill=\"#777\" text-anchor=\"middle\">5,000<\/text>\n<line x1=\"389.00\" y1=\"66\" x2=\"389.00\" y2=\"380\" stroke=\"#f4f4f4\"\/>\n<text x=\"389.00\" y=\"400\" font-size=\"12\" fill=\"#777\" text-anchor=\"middle\">10,000<\/text>\n<line x1=\"686.00\" y1=\"66\" x2=\"686.00\" y2=\"380\" stroke=\"#f4f4f4\"\/>\n<text x=\"686.00\" y=\"400\" font-size=\"12\" fill=\"#777\" text-anchor=\"middle\">20,000<\/text>\n<line x1=\"92\" y1=\"380.00\" x2=\"686\" y2=\"380.00\" stroke=\"#f4f4f4\"\/>\n<text x=\"82\" y=\"384.00\" font-size=\"12\" fill=\"#777\" text-anchor=\"end\">\u20ac0<\/text>\n<line x1=\"92\" y1=\"301.50\" x2=\"686\" y2=\"301.50\" stroke=\"#f4f4f4\"\/>\n<text x=\"82\" y=\"305.50\" font-size=\"12\" fill=\"#777\" text-anchor=\"end\">\u20ac2,500<\/text>\n<line x1=\"92\" y1=\"223.00\" x2=\"686\" y2=\"223.00\" stroke=\"#f4f4f4\"\/>\n<text x=\"82\" y=\"227.00\" font-size=\"12\" fill=\"#777\" text-anchor=\"end\">\u20ac5,000<\/text>\n<line x1=\"92\" y1=\"144.50\" x2=\"686\" y2=\"144.50\" stroke=\"#f4f4f4\"\/>\n<text x=\"82\" y=\"148.50\" font-size=\"12\" fill=\"#777\" text-anchor=\"end\">\u20ac7,500<\/text>\n<line x1=\"92\" y1=\"66.00\" x2=\"686\" y2=\"66.00\" stroke=\"#f4f4f4\"\/>\n<text x=\"82\" y=\"70.00\" font-size=\"12\" fill=\"#777\" text-anchor=\"end\">\u20ac10,000<\/text>\n<line x1=\"92\" y1=\"66\" x2=\"92\" y2=\"380\" stroke=\"#cfcfcf\" stroke-width=\"1.5\"\/>\n<line x1=\"92\" y1=\"380\" x2=\"686\" y2=\"380\" stroke=\"#cfcfcf\" stroke-width=\"1.5\"\/>\n<text x=\"686.00\" y=\"418\" font-size=\"12\" fill=\"#6b6b6b\" text-anchor=\"end\">Clicks won<\/text>\n<line x1=\"92.00\" y1=\"380.00\" x2=\"686.00\" y2=\"128.80\" stroke=\"#141414\" stroke-width=\"2.6\"\/>\n<line x1=\"92.00\" y1=\"380.00\" x2=\"686.00\" y2=\"66.00\" stroke=\"#ec186c\" stroke-width=\"3\"\/>\n<circle cx=\"686.00\" cy=\"66.00\" r=\"4.5\" fill=\"#ec186c\"\/>\n<circle cx=\"686.00\" cy=\"128.80\" r=\"4.5\" fill=\"#141414\"\/>\n<line x1=\"684.00\" y1=\"66.00\" x2=\"684.00\" y2=\"128.80\" stroke=\"#d8333f\" stroke-width=\"1.4\"\/>\n<rect x=\"536.00\" y=\"81.40\" width=\"138\" height=\"32\" rx=\"8\" fill=\"#d8333f\"\/>\n<text x=\"605.00\" y=\"96.40\" font-size=\"12\" font-weight=\"700\" fill=\"#fff\" text-anchor=\"middle\">\u20ac2,000\/mo more<\/text>\n<text x=\"605.00\" y=\"110.40\" font-size=\"10.5\" fill=\"#fff\" text-anchor=\"middle\">at 20,000 clicks<\/text>\n<rect x=\"92\" y=\"423\" width=\"26\" height=\"4\" rx=\"2\" fill=\"#ec186c\"\/>\n<text x=\"126\" y=\"430\" font-size=\"12.5\" fill=\"#1a1a1a\">You (no CSS) \u00b7 \u20ac0.50\/click<\/text>\n<rect x=\"322\" y=\"423\" width=\"26\" height=\"4\" rx=\"2\" fill=\"#141414\"\/>\n<text x=\"356\" y=\"430\" font-size=\"12.5\" fill=\"#1a1a1a\">Competitors (with CSS) \u00b7 \u20ac0.40\/click<\/text>\n<\/svg>\n<svg class=\"m\" viewBox=\"0 0 380 388\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" role=\"img\" aria-label=\"Cost of the same clicks with and without CSS\" style=\"width:100%;height:auto;font-family:Poppins,system-ui,sans-serif;background:#fff\">\n<text x=\"58\" y=\"26\" font-size=\"15\" font-weight=\"700\" fill=\"#141414\">Cost of the same clicks,<\/text>\n<text x=\"58\" y=\"45\" font-size=\"15\" font-weight=\"700\" fill=\"#141414\">with and without CSS<\/text>\n<text x=\"58\" y=\"62\" font-size=\"10.5\" fill=\"#6b6b6b\">CPC \u20ac0.50 without CSS \u00b7 \u20ac0.40 with CSS (20% less)<\/text>\n<polygon points=\"58.00,290.00 366.00,72.00 366.00,115.60\" fill=\"#d8333f\" fill-opacity=\"0.09\"\/>\n<line x1=\"58.00\" y1=\"72\" x2=\"58.00\" y2=\"290\" stroke=\"#f4f4f4\"\/>\n<text x=\"58.00\" y=\"307\" font-size=\"10\" fill=\"#777\" text-anchor=\"start\">0<\/text>\n<line x1=\"135.00\" y1=\"72\" x2=\"135.00\" y2=\"290\" stroke=\"#f4f4f4\"\/>\n<text x=\"135.00\" y=\"307\" font-size=\"10\" fill=\"#777\" text-anchor=\"middle\">5,000<\/text>\n<line x1=\"212.00\" y1=\"72\" x2=\"212.00\" y2=\"290\" stroke=\"#f4f4f4\"\/>\n<text x=\"212.00\" y=\"307\" font-size=\"10\" fill=\"#777\" text-anchor=\"middle\">10,000<\/text>\n<line x1=\"366.00\" y1=\"72\" x2=\"366.00\" y2=\"290\" stroke=\"#f4f4f4\"\/>\n<text x=\"366.00\" y=\"307\" font-size=\"10\" fill=\"#777\" text-anchor=\"end\">20,000<\/text>\n<line x1=\"58\" y1=\"290.00\" x2=\"366\" y2=\"290.00\" stroke=\"#f4f4f4\"\/>\n<text x=\"50\" y=\"293.50\" font-size=\"9.5\" fill=\"#777\" text-anchor=\"end\">\u20ac0<\/text>\n<line x1=\"58\" y1=\"181.00\" x2=\"366\" y2=\"181.00\" stroke=\"#f4f4f4\"\/>\n<text x=\"50\" y=\"184.50\" font-size=\"9.5\" fill=\"#777\" text-anchor=\"end\">\u20ac5,000<\/text>\n<line x1=\"58\" y1=\"72.00\" x2=\"366\" y2=\"72.00\" stroke=\"#f4f4f4\"\/>\n<text x=\"50\" y=\"75.50\" font-size=\"9.5\" fill=\"#777\" text-anchor=\"end\">\u20ac10,000<\/text>\n<line x1=\"58\" y1=\"72\" x2=\"58\" y2=\"290\" stroke=\"#cfcfcf\" stroke-width=\"1.3\"\/>\n<line x1=\"58\" y1=\"290\" x2=\"366\" y2=\"290\" stroke=\"#cfcfcf\" stroke-width=\"1.3\"\/>\n<line x1=\"58.00\" y1=\"290.00\" x2=\"366.00\" y2=\"115.60\" stroke=\"#141414\" stroke-width=\"2.4\"\/>\n<line x1=\"58.00\" y1=\"290.00\" x2=\"366.00\" y2=\"72.00\" stroke=\"#ec186c\" stroke-width=\"2.8\"\/>\n<circle cx=\"366.00\" cy=\"72.00\" r=\"4\" fill=\"#ec186c\"\/>\n<circle cx=\"366.00\" cy=\"115.60\" r=\"4\" fill=\"#141414\"\/>\n<text x=\"58\" y=\"330\" font-size=\"11\" font-weight=\"700\" fill=\"#d8333f\">Up to \u20ac2,000\/mo more at 20,000 clicks.<\/text>\n<rect x=\"58\" y=\"342\" width=\"22\" height=\"4\" rx=\"2\" fill=\"#ec186c\"\/>\n<text x=\"88\" y=\"349\" font-size=\"11\" fill=\"#1a1a1a\">You (no CSS) \u00b7 \u20ac0.50\/click<\/text>\n<rect x=\"58\" y=\"362\" width=\"22\" height=\"4\" rx=\"2\" fill=\"#141414\"\/>\n<text x=\"88\" y=\"369\" font-size=\"11\" fill=\"#1a1a1a\">Competitors (with CSS) \u00b7 \u20ac0.40\/click<\/text>\n<\/svg>\n<\/div>\n\n\n\n<h2 class=\"wp-block-heading\">Does anything change in your campaigns when you use a CSS?<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Almost nothing, and that&#8217;s the best part. You keep using the same product feed, the same Google Merchant Center and the same campaign type, whether Standard Shopping or Performance Max. The ads still take the user to the product pages on your site, not to the comparison service.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">The only thing that changes is that your Merchant Center is registered under the chosen CSS instead of under Google Shopping. The feed that uploads your products comes from your store just as it always did, so if you have <a href=\"https:\/\/strat.es\/en\/shopify-development-agency\/\">a product feed properly connected from your Shopify store<\/a> the switch takes minutes. The ad technology is identical. What changes is the comparison service that places the ad.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Should you go for more volume or more profitability?<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Once you remove the 20% margin, you have two ways to use it, and the choice depends on your goal.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">If your Shopping campaigns already perform the way you want and you&#8217;re looking to grow, keep the same bids after migrating. On the same spend you&#8217;ll get more impressions, more clicks and, if everything else holds, more sales. It&#8217;s one of the cheapest ways to scale Shopping.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">If instead you want to improve profitability, you can lower your bids and keep the saving. You&#8217;ll pay less per click for the same volume, which means more profit on every sale. Most brands land somewhere in the middle, splitting the advantage between a bit more volume and a bit more margin, which is exactly the kind of decision we work on as part of a <a href=\"https:\/\/strat.es\/en\/paid-media-agency\/\">profit-focused paid media strategy<\/a>.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">How much does a CSS cost, and what pricing models are there?<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">This is where it pays to be discerning, because the price determines whether a CSS is worth it. There are three models.<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Flat monthly fee.<\/strong> The one to prefer. You pay a fixed amount per account each month, usually between \u20ac15 and \u20ac30 for self-managed CSSs and up to \u20ac40 or \u20ac99 for premium ones with more services. The cost is predictable and doesn&#8217;t grow as you scale spend.<\/li>\n\n\n\n<li><strong>Percentage of spend.<\/strong> An older model that&#8217;s best avoided. If they charge a percentage of what you spend on Shopping, they eat into the 20% advantage, and the cost rises every time you scale.<\/li>\n\n\n\n<li><strong>Free.<\/strong> Some comparison services don&#8217;t charge for the switch, and many agencies that manage your Shopping campaigns already include their own CSS at no extra cost to the client.<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">In almost every case, a self-managed flat-fee CSS or one included by your agency is the best option. Steer clear of anyone charging a percentage of spend.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">When is a CSS worth using?<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">This is the question that really matters. The CSS advantage is worth, roughly, 20% of what you invest in Shopping each month, whether you take it as a saving (by lowering bids) or as extra results (by keeping them). That&#8217;s the value on the table.<\/p>\n\n\n\n<div class=\"strat-eq\" style=\"font-family:'Poppins',sans-serif;background:#fff;color:#1a1a1a;text-align:center;padding:24px 16px;margin:24px 0;font-size:20px;line-height:1.5\"> Estimated monthly advantage <span style=\"margin:0 12px\">=<\/span> Monthly Shopping spend <span style=\"margin:0 8px\">\u00d7<\/span> 0.20 <\/div>\n\n\n\n<p class=\"wp-block-paragraph\">From there, deciding whether it&#8217;s worth it is simple. With a free CSS or one included by your agency, the cost is zero, so it pays off from the first euro you invest in Shopping. There&#8217;s no threshold, you always come out ahead.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">With a flat-fee CSS, the maths is just as direct. It pays off as soon as that 20% saving exceeds the monthly fee. The spend threshold above which you start making money is this.<\/p>\n\n\n\n<div class=\"strat-eq\" style=\"font-family:'Poppins',sans-serif;background:#fff;color:#1a1a1a;text-align:center;padding:24px 16px;margin:24px 0;font-size:20px;line-height:1.4\"> <span style=\"display:inline-block;vertical-align:middle\">Shopping spend threshold<\/span> <span style=\"display:inline-block;vertical-align:middle;margin:0 14px\">=<\/span> <span style=\"display:inline-block;vertical-align:middle;text-align:center\"> <span style=\"display:block;padding:0 12px 6px\">Monthly CSS fee<\/span> <span style=\"display:block;border-top:2px solid #1a1a1a;padding:6px 12px 0\">0.20<\/span> <\/span> <\/div>\n\n\n\n<p class=\"wp-block-paragraph\">In concrete numbers, a \u20ac15\/mo CSS pays off from around \u20ac75\/mo of Shopping spend. A \u20ac30\/mo one, from \u20ac150\/mo. And even a premium \u20ac99\/mo one, from around \u20ac495\/mo. Any store investing anything serious in Shopping clears that threshold easily.<\/p>\n\n\n\n<style>\n.strat-chart-breakeven-en{max-width:720px;margin:24px auto}\n.strat-chart-breakeven-en .d{display:block}\n.strat-chart-breakeven-en .m{display:none}\n@media (max-width:560px){\n  .strat-chart-breakeven-en .d{display:none}\n  .strat-chart-breakeven-en .m{display:block}\n}\n<\/style>\n<div class=\"strat-chart-breakeven-en\">\n<svg class=\"d\" viewBox=\"0 0 720 448\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" role=\"img\" aria-label=\"When a 39 euro per month CSS pays off\" style=\"width:100%;height:auto;font-family:Poppins,system-ui,sans-serif;background:#fff\">\n<text x=\"72\" y=\"28\" font-size=\"19\" font-weight=\"700\" fill=\"#141414\">When does a \u20ac39\/mo CSS pay off?<\/text>\n<text x=\"72\" y=\"48\" font-size=\"13\" fill=\"#6b6b6b\">Example with Producthero Premium. The saving is 20% of what you invest in Shopping.<\/text>\n<polygon points=\"373.27,224.93 690.00,64.00 690.00,224.93\" fill=\"#ec186c\" fill-opacity=\"0.10\"\/>\n<line x1=\"72.00\" y1=\"64\" x2=\"72.00\" y2=\"378\" stroke=\"#ececec\"\/>\n<text x=\"72.00\" y=\"398\" font-size=\"12\" fill=\"#777\" font-weight=\"400\" text-anchor=\"middle\">\u20ac0<\/text>\n<line x1=\"226.50\" y1=\"64\" x2=\"226.50\" y2=\"378\" stroke=\"#ececec\"\/>\n<text x=\"226.50\" y=\"398\" font-size=\"12\" fill=\"#777\" font-weight=\"400\" text-anchor=\"middle\">\u20ac100<\/text>\n<line x1=\"373.27\" y1=\"64\" x2=\"373.27\" y2=\"378\" stroke=\"#f2c7d9\"\/>\n<text x=\"373.27\" y=\"398\" font-size=\"12\" fill=\"#ec186c\" font-weight=\"600\" text-anchor=\"middle\">\u20ac195<\/text>\n<line x1=\"535.50\" y1=\"64\" x2=\"535.50\" y2=\"378\" stroke=\"#ececec\"\/>\n<text x=\"535.50\" y=\"398\" font-size=\"12\" fill=\"#777\" font-weight=\"400\" text-anchor=\"middle\">\u20ac300<\/text>\n<line x1=\"690.00\" y1=\"64\" x2=\"690.00\" y2=\"378\" stroke=\"#ececec\"\/>\n<text x=\"690.00\" y=\"398\" font-size=\"12\" fill=\"#777\" font-weight=\"400\" text-anchor=\"middle\">\u20ac400<\/text>\n<line x1=\"72\" y1=\"378.00\" x2=\"690\" y2=\"378.00\" stroke=\"#f4f4f4\"\/>\n<text x=\"62\" y=\"382.00\" font-size=\"12\" fill=\"#777\" font-weight=\"400\" text-anchor=\"end\">\u20ac0<\/text>\n<line x1=\"72\" y1=\"299.50\" x2=\"690\" y2=\"299.50\" stroke=\"#f4f4f4\"\/>\n<text x=\"62\" y=\"303.50\" font-size=\"12\" fill=\"#777\" font-weight=\"400\" text-anchor=\"end\">\u20ac20<\/text>\n<line x1=\"72\" y1=\"224.93\" x2=\"690\" y2=\"224.93\" stroke=\"#e9e9e9\"\/>\n<text x=\"62\" y=\"228.93\" font-size=\"12\" fill=\"#141414\" font-weight=\"600\" text-anchor=\"end\">\u20ac39<\/text>\n<line x1=\"72\" y1=\"142.50\" x2=\"690\" y2=\"142.50\" stroke=\"#f4f4f4\"\/>\n<text x=\"62\" y=\"146.50\" font-size=\"12\" fill=\"#777\" font-weight=\"400\" text-anchor=\"end\">\u20ac60<\/text>\n<line x1=\"72\" y1=\"64.00\" x2=\"690\" y2=\"64.00\" stroke=\"#f4f4f4\"\/>\n<text x=\"62\" y=\"68.00\" font-size=\"12\" fill=\"#777\" font-weight=\"400\" text-anchor=\"end\">\u20ac80<\/text>\n<line x1=\"72\" y1=\"64\" x2=\"72\" y2=\"378\" stroke=\"#cfcfcf\" stroke-width=\"1.5\"\/>\n<line x1=\"72\" y1=\"378\" x2=\"690\" y2=\"378\" stroke=\"#cfcfcf\" stroke-width=\"1.5\"\/>\n<line x1=\"72.00\" y1=\"224.93\" x2=\"690.00\" y2=\"224.93\" stroke=\"#141414\" stroke-width=\"2.5\"\/>\n<line x1=\"72.00\" y1=\"378.00\" x2=\"690.00\" y2=\"64.00\" stroke=\"#ec186c\" stroke-width=\"3\"\/>\n<line x1=\"373.27\" y1=\"224.93\" x2=\"373.27\" y2=\"378\" stroke=\"#ec186c\" stroke-width=\"1.4\" stroke-dasharray=\"4 4\"\/>\n<circle cx=\"373.27\" cy=\"224.93\" r=\"6\" fill=\"#fff\" stroke=\"#ec186c\" stroke-width=\"3\"\/>\n<rect x=\"385.27\" y=\"176.93\" width=\"150\" height=\"36\" rx=\"8\" fill=\"#141414\"\/>\n<text x=\"395.27\" y=\"193.93\" font-size=\"12.5\" font-weight=\"700\" fill=\"#fff\">Breakeven<\/text>\n<text x=\"395.27\" y=\"208.93\" font-size=\"12\" fill=\"#fff\">\u20ac195\/mo in spend<\/text>\n<text x=\"535.50\" y=\"95.40\" font-size=\"12.5\" font-weight=\"600\" fill=\"#ec186c\" text-anchor=\"middle\">Here you save more than it costs<\/text>\n<rect x=\"72\" y=\"415\" width=\"26\" height=\"4\" rx=\"2\" fill=\"#ec186c\"\/>\n<text x=\"106\" y=\"422\" font-size=\"12.5\" fill=\"#1a1a1a\">Saving with CSS (20% of spend)<\/text>\n<rect x=\"342\" y=\"415\" width=\"26\" height=\"4\" rx=\"2\" fill=\"#141414\"\/>\n<text x=\"376\" y=\"422\" font-size=\"12.5\" fill=\"#1a1a1a\">Producthero cost (\u20ac39\/mo)<\/text>\n<\/svg>\n<svg class=\"m\" viewBox=\"0 0 380 388\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" role=\"img\" aria-label=\"When a 39 euro per month CSS pays off\" style=\"width:100%;height:auto;font-family:Poppins,system-ui,sans-serif;background:#fff\">\n<text x=\"52\" y=\"26\" font-size=\"15\" font-weight=\"700\" fill=\"#141414\">When does a \u20ac39\/mo CSS<\/text>\n<text x=\"52\" y=\"45\" font-size=\"15\" font-weight=\"700\" fill=\"#141414\">pay off?<\/text>\n<text x=\"52\" y=\"62\" font-size=\"10.5\" fill=\"#6b6b6b\">Example with Producthero. Saving = 20% of spend.<\/text>\n<polygon points=\"204.10,183.73 364.00,72.00 364.00,183.73\" fill=\"#ec186c\" fill-opacity=\"0.10\"\/>\n<line x1=\"52.00\" y1=\"72\" x2=\"52.00\" y2=\"290\" stroke=\"#f4f4f4\"\/>\n<text x=\"52.00\" y=\"307\" font-size=\"10\" fill=\"#777\" font-weight=\"400\" text-anchor=\"start\">\u20ac0<\/text>\n<line x1=\"204.10\" y1=\"72\" x2=\"204.10\" y2=\"290\" stroke=\"#f2c7d9\"\/>\n<text x=\"204.10\" y=\"307\" font-size=\"10\" fill=\"#ec186c\" font-weight=\"600\" text-anchor=\"middle\">\u20ac195<\/text>\n<line x1=\"364.00\" y1=\"72\" x2=\"364.00\" y2=\"290\" stroke=\"#f4f4f4\"\/>\n<text x=\"364.00\" y=\"307\" font-size=\"10\" fill=\"#777\" font-weight=\"400\" text-anchor=\"end\">\u20ac400<\/text>\n<line x1=\"52\" y1=\"290.00\" x2=\"364\" y2=\"290.00\" stroke=\"#f4f4f4\"\/>\n<text x=\"44\" y=\"293.50\" font-size=\"9.5\" fill=\"#777\" font-weight=\"400\" text-anchor=\"end\">\u20ac0<\/text>\n<line x1=\"52\" y1=\"183.73\" x2=\"364\" y2=\"183.73\" stroke=\"#e9e9e9\"\/>\n<text x=\"44\" y=\"187.23\" font-size=\"9.5\" fill=\"#141414\" font-weight=\"600\" text-anchor=\"end\">\u20ac39<\/text>\n<line x1=\"52\" y1=\"72.00\" x2=\"364\" y2=\"72.00\" stroke=\"#f4f4f4\"\/>\n<text x=\"44\" y=\"75.50\" font-size=\"9.5\" fill=\"#777\" font-weight=\"400\" text-anchor=\"end\">\u20ac80<\/text>\n<line x1=\"52\" y1=\"72\" x2=\"52\" y2=\"290\" stroke=\"#cfcfcf\" stroke-width=\"1.3\"\/>\n<line x1=\"52\" y1=\"290\" x2=\"364\" y2=\"290\" stroke=\"#cfcfcf\" stroke-width=\"1.3\"\/>\n<line x1=\"52.00\" y1=\"183.73\" x2=\"364.00\" y2=\"183.73\" stroke=\"#141414\" stroke-width=\"2.4\"\/>\n<line x1=\"52.00\" y1=\"290.00\" x2=\"364.00\" y2=\"72.00\" stroke=\"#ec186c\" stroke-width=\"2.8\"\/>\n<line x1=\"204.10\" y1=\"183.73\" x2=\"204.10\" y2=\"290\" stroke=\"#ec186c\" stroke-width=\"1.3\" stroke-dasharray=\"4 4\"\/>\n<circle cx=\"204.10\" cy=\"183.73\" r=\"5\" fill=\"#fff\" stroke=\"#ec186c\" stroke-width=\"2.6\"\/>\n<text x=\"52\" y=\"330\" font-size=\"11\" font-weight=\"700\" fill=\"#141414\">Breakeven \u2248 \u20ac195\/mo in spend.<\/text>\n<rect x=\"52\" y=\"342\" width=\"22\" height=\"4\" rx=\"2\" fill=\"#ec186c\"\/>\n<text x=\"82\" y=\"349\" font-size=\"11\" fill=\"#1a1a1a\">Saving with CSS (20% of spend)<\/text>\n<rect x=\"52\" y=\"362\" width=\"22\" height=\"4\" rx=\"2\" fill=\"#141414\"\/>\n<text x=\"82\" y=\"369\" font-size=\"11\" fill=\"#1a1a1a\">Producthero cost (\u20ac39\/mo)<\/text>\n<\/svg>\n<\/div>\n\n\n\n<p class=\"wp-block-paragraph\">The practical takeaway is clear. If you invest in Google Shopping from within the EEA, a CSS almost always pays off. The only real decision is the pricing model, and there the answer is a low flat fee or a CSS included by your agency, never a percentage of spend.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Does CSS still work in 2026?<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Yes. The Digital Markets Act, which came into force in March 2024, changed the look of the Shopping carousel and opened up competition between comparison services, but the bidding advantage for merchants using a third-party CSS remains. It&#8217;s a mechanism Google keeps in order to comply with European competition rules, so it isn&#8217;t something that will disappear overnight.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Frequently asked questions<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>What exactly is a CSS in Google Shopping?<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">A CSS (Comparison Shopping Service) is a price comparison service that can run Shopping ads on Google on your behalf. Google Shopping is the CSS used by default, but you can choose a third-party one to run the same ads with a 20% bidding advantage.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Does the 20% CSS advantage show up on the Google Ads invoice?<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">No. It isn&#8217;t a refund or a discount line, it&#8217;s an advantage in the auction. You see it as more impressions and clicks for the same spend, or as a lower average cost per click, not as an amount credited to your account.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Does using a CSS affect the quality or reach of my ads?<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Not negatively. The ads appear in the same Shopping placements and take the user to your site just as before. Removing the 20% margin makes your bids more efficient, so you usually gain reach rather than lose it.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Does CSS work with Performance Max campaigns?<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Yes. The advantage applies at Merchant Center level, so it works with both Standard Shopping and Performance Max. You don&#8217;t have to change your campaign setup.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>How much does a CSS cost?<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">It depends on the model. Self-managed flat-fee CSSs usually cost between \u20ac15 and \u20ac30 per month per account, premium ones reach \u20ac40 or \u20ac99, and some comparison services or agencies include it at no cost. It&#8217;s best to avoid those that charge a percentage of spend.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>At what spend is a CSS worth using?<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">With a free CSS or one included by your agency, it pays off from the first euro. With a flat-fee one, the threshold is the fee divided by 0.20. For example, a \u20ac30\/mo CSS starts to pay off from around \u20ac150\/mo of Shopping spend.<\/p>\n\n\n\n<style>\n.strat-cierre-b{font-family:'Poppins',system-ui,-apple-system,sans-serif;border-top:1px solid #ececec;border-bottom:1px solid #ececec;padding:26px 2px;color:#1a1a1a;font-size:17px;line-height:1.72;max-width:720px;margin:0 auto}\n<\/style>\n<div class=\"strat-cierre-b\">CSS is one of those advantages that doesn&#8217;t ask you to rethink your strategy and still improves what lands in your P&#038;L at the end of the month, and setting it up properly is only the first step towards making Google Shopping genuinely pay. If you&#8217;d like someone to review your campaign structure, your feed and your spend to get the most out of every euro, at STRAT we work as an <a href=\"https:\/\/strat.es\/en\/ecommerce-google-ads-agency\/\" target=\"_blank\" rel=\"noopener\" style=\"color:#ec186c;text-decoration:underline;text-decoration-color:#ec186c\">ecommerce Google Ads agency<\/a> that measures every decision by real profit.<\/div>\n\n\n\n<!-- ===== STRAT author signature \u00b7 Jaime Mu\u00f1oz-Seca ===== -->\n<!-- Paste this whole block into a \"Custom HTML\" block at the end of the post. -->\n<div class=\"strat-author\">\n  <style>\n    .strat-author{\n      --sa-bg:#141414; --sa-pink:#ec186c; --sa-line:#2a2a2a;\n      --sa-ink:#f5f5f5; --sa-muted:#a3a3a3; --sa-bio:#cccccc;\n      display:flex; gap:22px; align-items:center;\n      background:var(--sa-bg); border:1px solid var(--sa-line); border-radius:16px;\n      padding:24px 26px; margin:40px 0;\n      font-family:'Poppins',-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,Helvetica,Arial,sans-serif;\n      box-shadow:0 18px 40px rgba(0,0,0,.18);\n    }\n    .strat-author *{box-sizing:border-box}\n    .strat-author__photo{\n      width:104px; height:104px; flex:0 0 104px; border-radius:50%;\n      object-fit:cover; display:block;\n      border:2px solid var(--sa-pink); box-shadow:0 0 0 4px rgba(236,24,108,.18);\n    }\n    .strat-author__body{min-width:0}\n    .strat-author__eyebrow{\n      display:block; font-size:11px; font-weight:600; letter-spacing:.14em;\n      text-transform:uppercase; color:var(--sa-pink); margin:0 0 4px;\n    }\n    .strat-author__name{\n      font-size:20px; font-weight:700; color:var(--sa-ink);\n      margin:0 0 2px; line-height:1.2;\n    }\n    .strat-author__role{\n      display:block; font-size:13.5px; font-weight:500; color:var(--sa-muted); margin:0 0 10px;\n    }\n    .strat-author__bio{\n      font-size:14px; line-height:1.55; color:var(--sa-bio); margin:0 0 14px;\n    }\n    .strat-author__link{\n      display:inline-flex; align-items:center; gap:8px;\n      background:var(--sa-pink); color:#ffffff !important; text-decoration:none !important;\n      font-size:13.5px; font-weight:600; padding:9px 16px; border-radius:9px;\n      transition:background .15s ease, transform .15s ease;\n    }\n    .strat-author__link:hover{background:#d1145f; transform:translateY(-1px); color:#fff !important;}\n    .strat-author__link svg{display:block}\n    @media (max-width:560px){\n      .strat-author{flex-direction:column; text-align:center; gap:16px; padding:24px 20px}\n      .strat-author__link{align-self:center}\n    }\n  <\/style>\n  <img decoding=\"async\" class=\"strat-author__photo\" src=\"https:\/\/strat.es\/wp-content\/uploads\/2026\/06\/jaime-munoz-seca-strat.png\" alt=\"Jaime Mu\u00f1oz-Seca, Paid Media Manager at STRAT\">\n  <div class=\"strat-author__body\">\n    <span class=\"strat-author__eyebrow\">Written by<\/span>\n    <p class=\"strat-author__name\">Jaime Mu\u00f1oz-Seca<\/p>\n    <span class=\"strat-author__role\">Paid Media Manager at STRAT<\/span>\n    <p class=\"strat-author__bio\">Over six years scaling online stores through daily hand-to-hand combat with ad managers. He survived Apple&#8217;s iOS privacy changes and the weekly chaos out of Meta, and learned that magic formulas do not work here: only data, continuous testing and common sense.<\/p>\n    <a class=\"strat-author__link\" href=\"https:\/\/www.linkedin.com\/in\/jaime-munoz-seca-sese\/\" target=\"_blank\" rel=\"noopener noreferrer\">\n      <svg width=\"16\" height=\"16\" viewBox=\"0 0 24 24\" fill=\"currentColor\" aria-hidden=\"true\"><path d=\"M20.45 20.45h-3.56v-5.57c0-1.33-.02-3.04-1.85-3.04-1.85 0-2.14 1.45-2.14 2.94v5.67H9.35V9h3.41v1.56h.05c.48-.9 1.64-1.85 3.37-1.85 3.6 0 4.27 2.37 4.27 5.45v6.29zM5.34 7.43a2.06 2.06 0 1 1 0-4.13 2.06 2.06 0 0 1 0 4.13zM7.12 20.45H3.56V9h3.56v11.45zM22.22 0H1.77C.79 0 0 .77 0 1.73v20.54C0 23.23.79 24 1.77 24h20.45c.98 0 1.78-.77 1.78-1.73V1.73C24 .77 23.2 0 22.22 0z\"><\/path><\/svg>\n      Connect on LinkedIn\n    <\/a>\n  <\/div>\n<\/div>\n<!-- ===== End author signature ===== -->\n","protected":false},"excerpt":{"rendered":"<p>Calculating\u2026 Updated 10 July 2026 In this article Google Shopping is one of the most profitable channels for an online store. Someone who clicks a product listing already knows what they&#8217;re looking for and is usually close to buying. The problem is that cost per click keeps rising, so buying that high-intent traffic gets more [&hellip;]<\/p>\n","protected":false},"author":5,"featured_media":5779,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"inline_featured_image":false,"_uag_custom_page_level_css":"","_genesis_hide_title":false,"_genesis_hide_breadcrumbs":false,"_genesis_hide_singular_image":false,"_genesis_hide_footer_widgets":false,"_genesis_custom_body_class":"","_genesis_custom_post_class":"","_genesis_layout":"","footnotes":""},"categories":[29],"tags":[],"class_list":["post-5782","post","type-post","status-publish","format-standard","has-post-thumbnail","category-paid-media-ecommerce","entry"],"acf":[],"uagb_featured_image_src":{"full":["https:\/\/strat.es\/wp-content\/uploads\/2026\/08\/7.svg",526,395,false],"thumbnail":["https:\/\/strat.es\/wp-content\/uploads\/2026\/08\/7.svg",150,113,true],"medium":["https:\/\/strat.es\/wp-content\/uploads\/2026\/08\/7.svg",600,451,true],"medium_large":["https:\/\/strat.es\/wp-content\/uploads\/2026\/08\/7.svg",768,577,true],"large":["https:\/\/strat.es\/wp-content\/uploads\/2026\/08\/7.svg",1024,770,true],"1536x1536":["https:\/\/strat.es\/wp-content\/uploads\/2026\/08\/7.svg",526,395,true],"2048x2048":["https:\/\/strat.es\/wp-content\/uploads\/2026\/08\/7.svg",526,395,true],"gur_featured_image":["https:\/\/strat.es\/wp-content\/uploads\/2026\/08\/7.svg",526,395,true],"gur_blog_thumbnail":["https:\/\/strat.es\/wp-content\/uploads\/2026\/08\/7.svg",526,395,true]},"uagb_author_info":{"display_name":"Jaime","author_link":"https:\/\/strat.es\/en\/author\/jaimote\/"},"uagb_comment_info":0,"uagb_excerpt":"Calculating\u2026 Updated 10 July 2026 In this article Google Shopping is one of the most profitable channels for an online store. Someone who clicks a product listing already knows what they&#8217;re looking for and is usually close to buying. The problem is that cost per click keeps rising, so buying that high-intent traffic gets more&hellip;","_links":{"self":[{"href":"https:\/\/strat.es\/en\/wp-json\/wp\/v2\/posts\/5782","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/strat.es\/en\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/strat.es\/en\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/strat.es\/en\/wp-json\/wp\/v2\/users\/5"}],"replies":[{"embeddable":true,"href":"https:\/\/strat.es\/en\/wp-json\/wp\/v2\/comments?post=5782"}],"version-history":[{"count":2,"href":"https:\/\/strat.es\/en\/wp-json\/wp\/v2\/posts\/5782\/revisions"}],"predecessor-version":[{"id":5786,"href":"https:\/\/strat.es\/en\/wp-json\/wp\/v2\/posts\/5782\/revisions\/5786"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/strat.es\/en\/wp-json\/wp\/v2\/media\/5779"}],"wp:attachment":[{"href":"https:\/\/strat.es\/en\/wp-json\/wp\/v2\/media?parent=5782"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/strat.es\/en\/wp-json\/wp\/v2\/categories?post=5782"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/strat.es\/en\/wp-json\/wp\/v2\/tags?post=5782"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}