[{"data":1,"prerenderedAt":1829},["ShallowReactive",2],{"{\"version\":\"published\",\"language\":\"en\"}layout":3,"{\"version\":\"published\",\"language\":\"en\"}content/framework/product-perspective":207,"sUyBDryMhc":267,"fNquDD4qwv":282,"i3Mh5PP5XM":292},{"data":4,"headers":185},{"story":5,"cv":182,"rels":183,"links":184},{"name":6,"created_at":7,"published_at":8,"updated_at":9,"id":10,"uuid":11,"content":12,"slug":173,"full_slug":173,"sort_by_date":174,"position":175,"tag_list":176,"is_startpage":32,"parent_id":174,"meta_data":174,"group_id":178,"first_published_at":179,"release_id":174,"lang":180,"path":174,"alternates":181,"default_full_slug":174,"translated_slugs":174},"Layout & Menu Settings","2024-07-09T11:23:15.417Z","2026-08-21T07:00:43.091Z","2026-08-21T07:00:43.104Z",520580076,"d0565ccd-50f8-4a35-9583-813fff54f59a",{"_uid":13,"menu":14,"banner":135,"footer":141,"component":171,"promotion":172},"9245e14a-f18f-4a6c-8060-61e8beb3d9f1",[15],{"_uid":16,"logo":17,"component":22,"rightSide":23,"navigation":40},"fd2f2bd7-3ebb-4923-8327-febceaf9131b",{"id":18,"alt":19,"filename":20,"fieldtype":21},16613298,"","https://a.storyblok.com/f/296300/2078x457/3b34c3fe19/witbee-logo-new.png","asset","mega-menu",[24,34],{"_uid":25,"href":26,"size":27,"text":28,"target":29,"rounded":30,"variant":31,"disabled":32,"component":33,"showArrow":32},"839bb546-784b-4ba0-871b-263f3c901b86","/contact-free-consultation","md","Free consultation","_self","none","primary",false,"button-blok",{"_uid":35,"href":36,"size":27,"text":37,"target":29,"rounded":30,"variant":38,"disabled":32,"component":33,"showArrow":39},"32d63a94-8cbd-474c-9ce1-457cfa576ccf","https://cloud.witbee.com","Login","secondary",true,[41,50,90,129],{"_uid":42,"link":43,"name":47,"subItems":48,"component":49},"3f3dab6a-9cd6-4ea1-9fdd-645b62d9cb49",{"id":19,"url":44,"linktype":45,"fieldtype":46,"cached_url":44},"/services","url","multilink","Services",[],"mega-menu-item",{"_uid":51,"link":52,"name":54,"subItems":55,"component":49},"6951d7b0-368d-4db6-85fa-80af9088e8e0",{"id":19,"url":53,"linktype":45,"fieldtype":46,"cached_url":53},"/usługi","WitCloud Platform",[56],{"_uid":57,"links":58,"title":88,"component":89},"9e0dbc8d-3b23-474c-ab56-2eba6486c651",[59,67,74,81],{"_uid":60,"icon":61,"link":62,"component":64,"lowerText":65,"upperText":66},"2144a1bf-1bdf-4a82-9f59-b5e7d7f73f47","InformationCircleIcon",{"id":19,"url":63,"linktype":45,"fieldtype":46,"cached_url":63},"/witcloud","mega-menu-subitem-link","Learn about WitCloud","Platform overview",{"_uid":68,"icon":69,"link":70,"component":64,"lowerText":72,"upperText":73},"a6f22621-aa4f-4b0c-be09-11b4140d7dea","UsersIcon",{"id":19,"url":71,"linktype":45,"fieldtype":46,"cached_url":71},"/witcloud/integrations","GA4, Ad Systems, E-commerce platforms & more","Our Data Integrations",{"_uid":75,"icon":76,"link":77,"component":64,"lowerText":79,"upperText":80},"42267fc4-06a8-465a-a3cf-56a311ff7022","NewspaperIcon",{"id":19,"url":78,"linktype":45,"fieldtype":46,"cached_url":78},"/witcloud/pricing","Flexible subscription","Pricing",{"_uid":82,"icon":83,"link":84,"component":64,"lowerText":86,"upperText":87},"6333bd24-c3b2-46ba-8dc2-93770459a0bc","BriefcaseIcon",{"id":19,"url":85,"linktype":45,"fieldtype":46,"cached_url":85},"/witcloud/docs/","Check how to configure","Documentation","Overview","mega-menu-subitem",{"_uid":91,"link":92,"name":94,"subItems":95,"component":49},"0182c7f6-b9d7-4e01-81bd-97635c68d72f",{"id":19,"url":93,"linktype":45,"fieldtype":46,"cached_url":93},"/content","Knowledge Hub",[96],{"_uid":97,"links":98,"title":94,"component":89},"0f09839c-f7ce-48b8-8dc4-9269791644c0",[99,104,110,117,123],{"_uid":100,"icon":76,"link":101,"component":64,"lowerText":102,"upperText":103},"dd3ac1b6-d987-496d-bb75-e0db7459a79f",{"id":19,"url":93,"linktype":45,"fieldtype":46,"cached_url":93},"All our guides, case studies and webinars","All resources",{"_uid":105,"icon":61,"link":106,"component":64,"lowerText":108,"upperText":109},"5a1e2f7a-1111-4a00-9101-aa0000000101",{"id":19,"url":107,"linktype":45,"fieldtype":46,"cached_url":107},"/content/framework","Our analytics framework, explained step by step","Framework",{"_uid":111,"icon":112,"link":113,"component":64,"lowerText":115,"upperText":116},"5a1e2f7a-2222-4a00-9102-aa0000000102","VideoCameraIcon",{"id":19,"url":114,"linktype":45,"fieldtype":46,"cached_url":114},"/content/webinars","Recordings of our expert-led sessions","Webinars",{"_uid":118,"icon":83,"link":119,"component":64,"lowerText":121,"upperText":122},"5a1e2f7a-3333-4a00-9103-aa0000000103",{"id":19,"url":120,"linktype":45,"fieldtype":46,"cached_url":120},"/content/case-studies","Real results from our clients","Case studies",{"_uid":124,"icon":76,"link":125,"component":64,"lowerText":127,"upperText":128},"5a1e2f7a-4444-4a00-9104-aa0000000104",{"id":19,"url":126,"linktype":45,"fieldtype":46,"cached_url":126},"/content/knowledge","Guides on GA4, BigQuery and more","Knowledge base",{"_uid":130,"link":131,"name":133,"subItems":134,"component":49},"eaef6de5-12a1-40f0-8bcf-3e00472ef87e",{"id":19,"url":132,"linktype":45,"fieldtype":46,"cached_url":132},"/contact","Contact",[],[136],{"_uid":137,"link":138,"boldText":19,"component":140,"normalText":19},"d23b7c9c-c50d-4704-a330-c5d89f673a95",{"id":19,"url":19,"linktype":139,"fieldtype":46,"cached_url":19},"story","banner-blok",[142],{"_uid":143,"logo":144,"columns":145,"socials":167,"footnote":168,"component":169,"newsletter":170},"6bbe2605-0003-4e0f-9c83-f57387d6b9dc",{"id":18,"alt":19,"filename":20,"fieldtype":21},[146],{"_uid":147,"links":148,"title":165,"component":166},"bb943e00-cbd9-44d3-9ca8-e287f92f9a4c",[149,155,160],{"_uid":150,"link":151,"name":153,"component":154},"fa11f2ce-87a4-40b7-8c26-2248948ecdab",{"id":19,"url":152,"linktype":45,"fieldtype":46,"cached_url":152},"/legal/privacy-policy","Privacy policy","website-footer-link",{"_uid":156,"link":157,"name":159,"component":154},"29ce4cf1-4ae3-4c03-a924-1b7283a52cea",{"id":19,"url":158,"linktype":45,"fieldtype":46,"cached_url":158},"/legal/witcloud-terms-of-use","WitCloud - terms of use",{"_uid":161,"link":162,"name":164,"component":154},"7b2b71ce-9047-493a-ae9a-24f33d13b228",{"id":19,"url":163,"linktype":45,"fieldtype":46,"cached_url":163},"/legal/witcloud-privacy-policy","WitCloud - privacy policy","Legal","website-footer-column",[]," ©2025 Witbee sp. z o. o. All rights reserved.","website-footer",[],"layout-blok",[],"layout",null,30,[177],"Global","961eba08-4135-4b80-aba4-032c02789c49","2024-07-12T13:10:50.158Z","default",[],1787317286,[],[],{"age":186,"cache-control":187,"connection":188,"content-encoding":189,"content-type":190,"date":191,"etag":192,"referrer-policy":193,"sb-be-version":194,"server":195,"transfer-encoding":196,"vary":197,"via":198,"x-amz-cf-id":199,"x-amz-cf-pop":200,"x-cache":201,"x-content-type-options":202,"x-frame-options":203,"x-permitted-cross-domain-policies":30,"x-request-id":204,"x-runtime":205,"x-xss-protection":206},"672","max-age=0, public, s-maxage=604800, stale-if-error=3600","keep-alive","gzip","application/json; charset=utf-8","Fri, 21 Aug 2026 13:20:16 GMT","W/\"51b8f81b929808e39c308ef90f168d6b\"","strict-origin-when-cross-origin","5.946.1","nginx/1.29.1","chunked","Origin,Accept-Encoding","1.1 7c75ee162d05e000e28d3eb8e750533e.cloudfront.net (CloudFront)","H80KhWFVwkuCPg-1EStstUR91BEPyE_7H9JJpOhzzWknMZ3GzQlwxw==","WAW51-P2","Hit from cloudfront","nosniff","SAMEORIGIN","6d4eb495-190d-4e8b-871a-b4b70ab34dff","0.033768","0",{"data":208,"headers":260},{"story":209,"cv":182,"rels":258,"links":259},{"name":210,"created_at":211,"published_at":212,"updated_at":213,"id":214,"uuid":215,"content":216,"slug":251,"full_slug":252,"sort_by_date":174,"position":253,"tag_list":254,"is_startpage":32,"parent_id":255,"meta_data":174,"group_id":256,"first_published_at":212,"release_id":174,"lang":180,"path":174,"alternates":257,"default_full_slug":174,"translated_slugs":174},"Product Perspective","2026-06-25T07:32:53.996Z","2026-08-21T07:00:41.845Z","2026-08-21T07:00:44.263Z",191214280722347,"7371a7d3-6a01-4fb1-a591-79dfa4bc3d28",{"_uid":217,"title":210,"content":218,"eyebrow":109,"showTOC":39,"category":19,"priority":219,"readTime":220,"subtitle":221,"component":222,"heroImage":223,"meta_tags":227,"meta_title":247,"heroButtons":248,"updatedDate":249,"bottomBlocks":250},"0a259426-0bb2-4a0c-a483-6e3a7187289e","# You have two levers left: budget and segmentation. Both run on data that isn't in your feed [Budget & segmentation]\n\nOver the past few years, ad platforms have steadily taken control away from marketers. Performance Max — the campaign type where Google itself splits the budget across Search, YouTube, Gmail, and the Display Network — decides where to show up, who to show the ad to, and what bid to pay. Meta's Advantage+ works on the same principle. Manual bids are gone, manual network splits are gone, and to a large extent so is manual audience targeting and creative assembly.\n\nThis isn't a bad change. The algorithm bids faster and more consistently than a human ever could, and most of the manual optimizations from five years ago would just get in the way today.\n\nThe algorithm allocates money on its own: it decides how much to spend on which product, where, and at what time of day. Only two things constrain it — **how much it can spend in total** and **what it has to work with**. You set the first in the campaign. The second depends on what you tell it about your assortment — and most stores tell it almost nothing.\n\n# The challenge in short [The challenge]\n\nThe whole thing in five sentences, before we get into details.\n\n- The feed you send to Google and Meta describes your products exactly the way your competitors' feeds describe theirs. It contains no margin, no stock levels, no turnover, and no sales from outside your store.\n- You already have this data — it just sits in systems that don't talk to each other. All it takes is calculating it together and adding it to the feed as a supplemental file, without touching the original.\n- You write the result into labels: profitability, stock situation, product role, clearance status. These are what split your catalog into campaigns — and therefore decide where the money flows.\n- Labels need to be stable. Without that, products drift between campaigns every few days and the algorithm has nothing consistent to learn from.\n- After that it's a rhythm: on a fixed schedule, you check what's changed, what's at risk of running out, and where to shift budget.\n\nThe rest of the article is an expansion of these five points.\n\n# What this looks like today in almost every store [What it looks like today]\n\nThe path is basically the same everywhere. The store runs on some platform — Shopify, Magento, PrestaShop, WooCommerce. A plugin or a simple export generates a **product feed** from it: a file listing every product, built to Google's specification. Inside: ID, name, price, availability, category, brand, and image. The file goes to **Merchant Center**, Google's product catalog, and campaigns are fed from there. The same file, usually unchanged, goes to Meta in parallel.\n\nAnd it all works. The feed passes validation, products show up, campaigns bring in sales. No one feels like anything is missing, because nothing is broken.\n\nThe thing is, this file describes your products exactly the way any other store in your category would describe theirs. Name, price, availability, image — your competitors send Google a file built from the same spec, the same fields. It doesn't contain a single piece of information about what you actually make money on, what's about to run out, what brings in customers who come back, or what sells brilliantly outside your store.\n\nThe second version of the same path looks like this: you take that exact same feed and add a second layer on top of it along the way. You're not buying new data for this — you're assembling it from data you already have, just scattered across systems that don't talk to each other. Calculated together and appended as a supplemental file, they change exactly one thing: how much the algorithm knows about your products. The original feed stays untouched.\n\n![Two paths for the same product feed](https://a.storyblok.com/f/296300/1d7245c14f/product-perspective-01-dwie-sciezki-feeda.png)\n*Two paths for the same product feed*\n\nThis whole article is about that second layer: where it comes from, exactly what to put in it, and how to use it day to day.\n\n# The feed became a control panel, not just a catalog [The feed as control]\n\nIn product campaigns, you don't bid on keywords — there's nothing to set. The role that campaign structure used to play is now taken over by how you split the catalog. It's the feed that decides what the algorithm can even group together, and therefore what you can actually control with budget. **This is where your two levers come back: money and assortment.** One doesn't work without the other — a budget without a catalog split is just one big pile the system draws from however it likes.\n\nGoogle lets you split the catalog within a campaign by category, product type, ID, brand, condition, and channel. Any other split — that is, anything that comes from your business rather than from the product description — requires **custom labels**. These are simply extra columns in the feed where you enter your own value: \"high margin\", \"clearance\", \"new arrival\". In the campaign, you can then use them to build a separate product group or a separate campaign with its own budget. You get five such columns, you can put whatever you want in them, they're visible only in your own ad account, and you can change them whenever you like.\n\nFive fields. In most stores, two of them are filled in, statically, and no one has touched them in two years — usually \"season\" and \"clearance\".\n\nThat's your entire control panel in a world where everything else happens automatically.\n\n# What the ad platform knows, and what it can never calculate [What the platform doesn't know]\n\nThere's a common oversimplification that platforms \"know nothing about products.\" That's not true. They know quite a lot: impressions, clicks, sales, and cost at the level of a single product, often even a single variant — a specific model in a specific size and color. They're good at this.\n\nWhat they don't know is your business:\n\n| What the platform sees | What your business knows |\n| --- | --- |\n| in stock | 3 units left, 6 days of coverage at the current pace |\n| in stock, conversions look fine | only sizes XS and XXL are left — the customer clicks, doesn't find their size, and buys something else |\n| price: $89 | margin after discounts and returns: 11% |\n| conversions are climbing | but this product is a one-time purchase and the customer doesn't come back |\n| conversions are low | but after this product, customers most often come back for a second purchase |\n| conversions are weak | the same product is a bestseller on the marketplace |\n| no data — the product never got a budget | it's been selling steadily on the marketplace for six months and has never once been advertised |\n| no signal | 20% of the entire business's revenue — store, marketplaces, and in-person sales combined — rests on this one SKU |\n\nYou can't just see the right-hand column. You have to calculate it — by joining data that today sits in several different places — and then hand it to the ad platforms in the only form they'll accept: a label.\n\nSales from outside the store deserve their own callout. Google and Meta only see what happens on your website, so they pile budget onto products that are already converting there. They have no way of knowing that a mediocre performer in your store is actually a bestseller on a marketplace like Amazon — and that's usually the strongest signal you have that a product is worth testing in ads. Without this information, the automation keeps consistently scaling what already works, and never reaches for the assortment your business has known for ages actually sells.\n\nThe worst part is that the same mechanism works on your side too. A product never makes it onto the list of things worth featuring in a campaign, because it never showed good results there — and it never showed good results because it never got a budget. Meanwhile, it's been selling steadily somewhere else for six months. The way out of this loop won't come from the ad account, because as far as the ad account is concerned, this product barely exists.\n\n![Store and marketplace sales compared against ad spend](https://a.storyblok.com/f/296300/265bb086d7/product-perspective-02-sprzedaz-sklep-marketplace.png)\n*Store and marketplace sales compared against ad spend*\n\nSince this information lives neither in the feed nor in the ad account, the question is where the system is supposed to get it from. Here's the full list of sources — none of them will send anything to Google on their own.\n\n**Where this data comes from**\n\n- **CRM or ERP** — the system where you keep orders, stock, and purchase prices — stock levels and variants, your own attributes, margins, and sales from your store and from other channels, including marketplaces and in-person sales.\n- **GA4**, i.e., Google Analytics — traffic to the product page, user behavior, sales effectiveness, revenue broken down by channel.\n- **Google Ads** — impressions, clicks, cost, and sales at the level of a single product.\n- **Meta Ads** — the same thing, product by product.\n- **Merchant Center**, Google's product catalog — free listing visibility, product disapprovals, and price position. That last one is an underrated source: if your product has an EAN or GTIN also used by other sellers, Google can compare your price to the market and tell you whether you're clearly cheaper, comparable, or clearly more expensive. Reading this daily turns it from a curiosity into a signal.\n\nOne methodological decision here matters more than all the integrations combined: **revenue has to be calculated from a single source.** Google reports its own sales value, Meta reports its own, each counts things its own way, and each takes credit for the same orders. Add them up and you get a number that doesn't exist in your P&L — and as long as every channel is graded on its own yardstick, comparing them to each other doesn't mean anything.\n\n# Five dimensions for evaluating a product [Five evaluation dimensions]\n\nA proper evaluation means looking from five angles at once:\n\n- **Performance** — traffic, conversion, and ROAS, i.e., revenue per unit spent advertising this product, measured against its own category, not the whole catalog.\n- **Stock** — not \"in stock,\" but how many units, in which variants, and for how many days.\n- **Turnover** — how fast it's moving, whether it's speeding up or slowing down, and how long it's been sitting.\n- **Business impact** — margin, share of revenue, how much the overall result depends on this one SKU.\n- **Strategic role** — whether it's an entry-level product, a seasonal one, an image product, or one that sells modestly on its own but pulls the rest of the cart along with it.\n\nThis last dimension is the one most often skipped — and it can be the most expensive to ignore, which is why it gets its own section right below.\n\n![The five product evaluation dimensions, written as questions](https://a.storyblok.com/f/296300/f7d3d2777c/product-perspective-03-piec-wymiarow-oceny.png)\n*The five product evaluation dimensions, written as questions*\n\n# Products whose value lies outside their own numbers [Value beyond the numbers]\n\nThe ad platform judges a product by its own sales. That's convenient, and it's enough most of the time — but there are three situations where this kind of scoring systematically undervalues a product, and usually it's exactly the products you care about most.\n\n**The cart-puller.** It sells modestly on its own, drives plenty of traffic, and converts poorly — but the orders it appears in are noticeably larger than average. The customer lands on its page, ends up buying something else, and the conversion gets credited to whatever actually landed in the cart. In the campaign report, this product looks like a candidate to cut.\n\n**The gateway product — the one customers come back after.** The first purchase has average value, but people who started with this product come back for a second order far more often than everyone else. No attribution window catches this, because the second purchase arrives weeks later, often through a different channel, with no visible link to the original campaign. This information is produced on the customer-analysis side, and only from there can it flow back into the catalog as a label. More on this in a separate article on working with your customer base.\n\n**Acquisition product vs. repeat-purchase product.** This distinction is even more practical, because it leads straight to a campaign split. Part of your assortment is great for attracting someone who doesn't know the brand yet: low barrier to entry, a simple choice, a price that makes the decision easy. A completely different set works when you want to talk someone who has already bought from you into a second or third order — because here it's brand trust doing the work, not a price incentive.\n\nIf both pools sit in the same campaign, you're grading them against the same threshold even though they're doing completely different jobs. An acquisition product can have a lower return and still be the best investment in the catalog, as long as it brings in customers who stick around. A repeat-purchase product makes no sense in a reach campaign, because it's shown to people who have no reason to want it yet.\n\nThe conclusion is the same in all three cases: **a product has to be judged by the role it plays, not just by its own numbers.** Role is another dimension you can calculate and send to the ad platforms as a label — and without it, the algorithm keeps consistently cutting budget exactly where it should be increasing it.\n\n![A product's own sales vs. the sales it pulls along with it](https://a.storyblok.com/f/296300/add42187ef/product-perspective-04-wlasna-sprzedaz-koszyk.png)\n*A product's own sales vs. the sales it pulls along with it*\n\n# STEP 1: build the labels layer [Step 1: labels]\n\nYou have five columns for your own labels and complete freedom in what you put there; Meta builds product sets from those same fields.\n\nFive columns sounds like very little if you think of them as the place where all your catalog knowledge has to fit. That's exactly the wrong way to think about them. **On the analysis side, there are as many dimensions as you need** — performance rating, stock situation, channel structure, clearance status, cart role, plus operational flags like \"new arrival in test phase\" or \"blocked by manager decision.\" The five feed fields aren't that whole set — they're the window through which selected conclusions go out to the ad platforms.\n\nWhat goes out to the ad platforms is however much fits and however much you actually need to steer budget. The rest stays on the analysis side and is used for making decisions, not for targeting.\n\nAn example split of what's worth pushing out:\n\n| Dimension | What it's for | Example values |\n| --- | --- | --- |\n| Performance | main budget split | core performer, scale up, in test, watch list, paused |\n| Stock situation | protects against spending on stock that's about to run out | long coverage, a couple weeks of coverage, a few days of coverage, out of stock |\n| Channel structure | where the product actually sells | paid-dominant, organic-dominant, marketplace-dominant, evenly spread |\n| Clearance status | separates normal sales from liquidation | normal, watch list, clearance |\n| Season or campaign | a field for the team to override manually | depends on the calendar |\n\nThe first four fill in automatically and change along with the data. The last one stays open for the team — for seasons, holidays, and promotions that no algorithm will predict.\n\nThis is a starting point, not a canon. Depending on your catalog, other dimensions can matter more, and it's worth considering giving one of the five fields to:\n\n- **Price band** — a classic that works almost everywhere. A $12 product and a $220 product have a different purchase path, a different decision time, and a different reasonable acquisition cost — and dumped into one campaign, they get graded against a shared threshold that's wrong for both of them.\n- **Price position vs. the competition** — whether you're clearly cheaper, comparable, or clearly pricier than the market on this product. Where you're cheaper, it's worth pushing harder, because the advantage will do its work anyway. Where you're clearly pricier, a weak campaign result isn't a campaign problem, and throwing more budget at it won't fix it.\n- **Product role** — whether it mainly sells itself, pulls the cart along, or is a gateway customers come back through. This is also where you separate acquisition products from repeat-purchase ones — and that split almost always ends up as two separate campaigns with two separate thresholds.\n- **Supplier or private label** — if margins between suppliers differ enough to justify separate budgets.\n\n![Share of ad spend by price position, with average ROAS](https://a.storyblok.com/f/296300/62cd321cdc/product-perspective-05-udzial-wydatkow-roas.png)\n*Share of ad spend by price position, with average ROAS*\n\n**This isn't a one-time setup.** Labels get designed, watched, and corrected: you analyze how products behave in each group, check whether the split is actually separating what it was meant to separate, and move the thresholds. A catalog looks different after a year than it did at the start, so the definitions have to keep up.\n\nAt this stage, the most useful thing is being able to just ask the question directly: where does a sensible margin line fall in this catalog, how many products land on each side of the threshold, and how would that change budget distribution. Instead of clicking through a dozen views, you ask the question and get an answer along with the reasoning behind it.\n\n**The thresholds are yours, not ours.** What margin makes a product profitable, how many days of coverage counts as a risk, what \"slow turnover\" means — in seasonal fashion these lines look different than in household chemicals or electronics. The first setup is built around your catalog and delivery cycle, then corrected based on what actually happens.\n\nOne thing worth remembering from the start, because it has direct budget consequences. You used to be able to set a separate cost-per-click for each product group. With automated bid strategies — where you give the system a goal and it bids on its own — there are no bids to set anymore, so splitting into groups inside a single campaign gets you, at best, a nicer-looking report. If you actually want to control money, each group needs to land in **its own campaign with its own budget**.\n\n![The analytics layer and the five label fields in the feed](https://a.storyblok.com/f/296300/21b23cc8f8/product-perspective-06-warstwa-analityczna-etykiety.png)\n*The analytics layer and the five label fields in the feed*\n\n# STEP 2: watch the changes, not just the snapshots [Step 2: changes]\n\nThe catalog split by itself is just a snapshot from one day. The real value starts where you can see **movement between groups** — exactly the way customer analysis looks at people moving from new to returning, not just at how many new customers you have today.\n\nIt looks like this. A product that's only been in testing for the past few weeks starts delivering sales and should get a bigger budget. Another one, previously a core performer, is weakening and no longer deserves priority. A third disappears from ads entirely because it's run out of stock.\n\nEvery such change has its own reason and its own moment, and it's worth having both recorded — together with the numbers that applied at the time. That way the question \"why is this product in this campaign now\" has an answer, not a guess.\n\nThis changes the nature of the morning review. Instead of reading through the entire catalog from scratch, you look at a list of changes from the past week: what moved up, what moved down, what disappeared, and why. Or you simply ask, in one sentence, and get a summary instead of a table to scroll through. Across a few thousand SKUs, that's the difference between a report you skim and a report you actually read.\n\n![Product group changes over the past month and the sales behind them](https://a.storyblok.com/f/296300/6a263912ff/product-perspective-07-zmiany-grup-produktowych.png)\n*Product group changes over the past month and the sales behind them*\n\n**A label can't flip-flop**\n\nThere's a trap here that's easy to trip over during a first rollout. If a label recalculates every day and can change every day, a product starts drifting between campaigns day to day — bestseller today, watch list tomorrow, back again the day after. For you, that's chaos. For the algorithm, which needs data continuity to learn anything at all, it's sabotage.\n\nThat's why a label change can't happen instantly. The condition needs to hold for a set period — a different one for moving up than for moving down, since it should be easier to earn a promotion than to lose one, because a single bad week shouldn't erase a good quarter. The exception is running out of stock, which takes effect immediately, since there's nothing to wait and see there.\n\nThe second rule is about people. When a manager deliberately makes a decision against what the automation says, that decision has to be protected for some period — otherwise the next day's recalculation overwrites it and no one understands why. Automation only takes back over after that period.\n\nThese two rules look like a technical detail, but they decide whether the rollout survives at all. Without them, the first month looks great and the third ends with someone saying \"this keeps flipping anyway, let's just go back to doing it manually.\"\n\n![The same label recalculated daily vs. with a required confirmation period](https://a.storyblok.com/f/296300/6c9210bf68/product-perspective-08-etykieta-okres-potwierdzenia.png)\n*The same label recalculated daily vs. with a required confirmation period*\n\n# STEP 3: manage for profitability, not revenue [Step 3: profitability]\n\nThe automation is graded on revenue, because that's the only value you hand it. The effect can look like this:\n\n- Product A: ROAS 8, margin 12%. Out of $100 in revenue, $12 is margin, against $12.50 in media cost. Result: a loss.\n- Product B: ROAS 3, margin 55%. Out of $100 in revenue, $55 is margin, against $33 in media cost. Result: $22 in profit.\n\nIn the campaign report, the first product looks almost three times better. In the P&L, it's the only one losing money.\n\n**You are not sending your margin to Google.** This worry stalls a lot of rollouts before they even start, so let's settle it right away. What goes into the feed is a bucket, not a number: \"high\", \"medium\", \"low\". The actual figures, purchase prices, and supplier agreements stay on your side, in your own Google Cloud. The ad platform only gets told that this group of products is worth defending harder than that one — with no visibility into why.\n\nIt's worth checking one more thing while you're at it, because it can shift the whole calculation. A store usually reports sales gross, while media costs are net. So before you even get to margin, returns, and logistics costs, the ROAS shown in the dashboard is already inflated by the tax rate. At a 20% VAT rate, a dashboard ROAS of 5.0 is actually a little over 4.0 on comparable terms — and that's often the difference between a campaign that holds up and one that doesn't.\n\nOnce margin information sits in a label, this stops being a theoretical problem. High-margin products land in campaigns with a bigger budget and a more relaxed return requirement — you can afford to pay more for them. Products you're losing money on land in campaigns with a threshold tight enough that the system cuts their spend on its own, or they disappear from ads until the price changes.\n\n**10% of your products probably account for most of your revenue — but not for anywhere near the same share of margin.** The more these two rankings diverge, the more budget the automation steers toward what looks like a win in the report but isn't one in the P&L.\n\nSetting profitability thresholds is, in fact, a classic question that's better answered by a conversation with your data than by a spreadsheet: how much would you lose if you cut everything below a certain margin, and whether you'd accidentally be cutting cart-pulling products along with it.\n\nIt's worth comparing every product against its own category average, not against the whole catalog's average. A ROAS of 4 in electronics, where margins are thin and prices are high, means something completely different than the same ROAS in accessories. A shared threshold across both categories moves budget in the wrong direction — while still looking like a data-driven decision.\n\n![The same products ranked by revenue vs. by profit](https://a.storyblok.com/f/296300/196a29b0f3/product-perspective-09-produkty-przychod-zysk.png)\n*The same products ranked by revenue vs. by profit*\n\n# STEP 4: treat stock as a signal [Step 4: stock]\n\nA scenario everyone who runs product campaigns knows. On Monday, ROAS is on target, revenue is growing, everything looks fine. On Tuesday, ROAS collapses, revenue drops, and everyone starts hunting for the cause in the campaigns, in the auction, in seasonality. The cause is in the warehouse: a product responsible for a big chunk of sales has run out.\n\nBy that day, there was nothing left to do. But it could have been seen two weeks earlier.\n\nThe feed knows two states: in stock and out of stock. To manage budget, you need four answers.\n\n**How much is left and for how long.** Not \"in stock,\" but coverage in days at the current sales pace. A product with eight days of stock left, while it's simultaneously pulling in a growing budget, is a situation that calls for a decision — pull back, speed up the next delivery, or deliberately sell through the remaining stock.\n\n**How much this product means for the result.** Coverage on its own says nothing until you know how much money flows through this product: how much you spend on it, how much you make on it, and what share of revenue it holds. Only together do they answer the question that actually matters — **what happens to the result when it runs out.** Knowing this two weeks ahead turns the conversation from explaining away a bad result into planning. The question \"what happens to the result if these three products run out next week\" is, in fact, exactly the kind of question you'll get answered faster in a conversation with your data than by digging through a report.\n\n**That a product dropped out of the feed.** Stock ran out, the listing vanished from ads, and no one noticed for a week, because nothing broke — it just stopped existing.\n\n**That a product is only nominally in stock.** The trickiest case, because it doesn't look like a failure. The model still shows \"in stock,\" but only the lowest-selling sizes are left. The system sees availability and keeps promoting it — the ad still collects clicks, and some of those clickers buy something anyway, just a different product. The conversion gets credited to whatever they actually clicked into, so nothing flashes red in the report. You're paying for traffic to a listing you can't actually sell, and the algorithm has no way of learning that something's wrong. We call this variant erosion, and in stores that sell by size it's one of the more common hidden causes behind declining results.\n\nOne important thing a stock label should **not** do: automatically cut a product from the campaign. Low coverage is information for a human, not a verdict — sometimes you actually want to sell through the last units, and sometimes the next delivery arrives Friday. Only what's physically out of stock drops out of ads automatically. Everything else is an alert and a decision.\n\n![Ad spend and remaining stock for four products](https://a.storyblok.com/f/296300/7b992b53e2/product-perspective-10-wydatki-zapas-cztery-produkty.png)\n*Ad spend and remaining stock for four products*\n\n![One product's disappearing sizes while its budget stays unchanged](https://a.storyblok.com/f/296300/dc13bf11f5/product-perspective-11-znikajace-rozmiary.png)\n*One product's disappearing sizes while its budget stays unchanged*\n\n# STEP 5: give new arrivals their own budget [Step 5: new arrivals]\n\nA product with no history can't be judged by any of the five dimensions. Dropped into a shared campaign, it loses to listings that already have data — the automation has something to choose from, and it chooses what already works. A new collection starts from a worse position every single time.\n\nThis is exactly the case where your only real lever — budget — has to be used deliberately. A new arrival needs its own campaign, its own pool of money, and a window in which the normal evaluation rules are suspended — because judging a product with no data against the usual thresholds ends with it getting shut off before it can show anything. You also need an exit threshold set in advance: after how much time and what result the product gets its target label.\n\nThe same bucket includes products that aren't new to your business, just new to advertising: they're selling on marketplaces or in a physical store, but campaigns have never given them a budget. They have a sales history — it's just recorded somewhere the ad platform never looks. From a testing standpoint, these are the best candidates in the whole catalog, because the risk is lower than with a genuine new arrival — someone has already proven this product gets bought.\n\n![A new product's test window and its three possible outcomes](https://a.storyblok.com/f/296300/b06c667ee5/product-perspective-12-okno-testowe-nowosci.png)\n*A new product's test window and its three possible outcomes*\n\n# The second lever: audience segmentation [Audience segmentation]\n\nThe same mechanism works on the people side. The automation decides on its own who to show the ad to, but only within whatever you give it — and you're the one who builds the audience lists.\n\nThis is where the two analyses meet. Which products customers come back for a second purchase after comes out of customer lifecycle analysis and flows back into the catalog as a label. And the other way around: customer segments feed exclusion lists and lookalike audiences. The catalog and the customer base are two sides of the same segmentation, not two separate projects.\n\nMore on this in a separate article on working with your customer base.\n\n# What this is built from [What it's built from]\n\nEverything above is a way of working — but someone has to keep it running. That's what WitCloud does: the platform we deploy on your own data. Data from your CRM, GA4, Google Ads, Meta Ads, and Merchant Center flows into a single set of product tables that recalculates every day. You don't have to build or wire any of it together yourself.\n\nThree things run on this same foundation:\n\n- **Reports and analysis** answer the question of what's happening and why. Profitability, turnover, stock coverage, variant erosion, movement between groups, new-arrival performance.\n- **Label export** answers the question of how to put it into action. The conclusions come back as supplemental files — extra sheets that add columns to your existing feed without touching the original. They feed custom labels in Google and product sets in Meta.\n- **WitCloud MCP** is the conversational layer on top of the data. You ask in plain language and get conclusions and recommendations in the context of your industry.\n\n**The key consequence: you define a label once.** \"Product at risk of running out\" means the same thing in the report, in Google, and in Meta. There aren't three different definitions of \"bestseller\" across three tools, and no manually-set labels that go stale within a week.\n\nThe module also works when you don't have the full set of sources. Without a CRM you can't calculate margin or stock coverage, but performance evaluation and budget splitting still work normally — missing data means a narrower range of labels, not no rollout at all.\n\n![From a chat question to labels in the ad platforms](https://a.storyblok.com/f/296300/b71b13935d/product-perspective-13-od-pytania-do-etykiet.png)\n*From a chat question to labels in the ad platforms*\n\n# How this differs from Merchant Center rules [Merchant Center rules]\n\nThe most obvious objection is: I already have rules and custom labels. Four differences:\n\n**Rules can only see what's already in the feed.** They can't calculate margin, media cost, marketplace sales, or repeat-purchase behavior, because that data isn't in the feed and never will be.\n\n**A manual label goes stale within a week.** A product tagged \"bestseller\" on Monday can be out of stock ten days later. The label stays.\n\n**A rule has no memory.** It doesn't know a product has only been in this group for three days and drops out of it after one bad weekend. It can't tell a lasting change apart from a blip.\n\n**No one measures it after rollout.** The label split gets built once, as part of some project, and no one ever comes back to ask whether it changed anything.\n\n![Merchant Center rules vs. labels calculated from data](https://a.storyblok.com/f/296300/ddf1d2e7bf/product-perspective-14-reguly-merchant-center.png)\n*Merchant Center rules vs. labels calculated from data*\n\n# This is a process, not a one-off project [A process, not a project]\n\nA catalog moves faster than a customer base. Stock changes daily, a season shift can flip turnover within a few weeks, and a new collection can turn the whole ranking upside down. A product evaluation done once stays current for a shorter time than almost anything else you calculate in the business.\n\nThe work splits into three layers, and only the first one happens without your involvement.\n\n![How the work splits between the system, the marketing team, and your decisions](https://a.storyblok.com/f/296300/99f73cd334/product-perspective-15-podzial-pracy.png)\n*How the work splits between the system, the marketing team, and your decisions*\n\n1. Data and labels — the system does it\n\nSales, stock, variants, margins, and media costs flow in daily and join up on their own. Labels recalculate from scratch, but only change once the change is lasting. Every change gets recorded with a reason and the numbers that applied at that moment. Supplemental files are ready in their current version, with no manual spreadsheet assembly.\n\n2. Campaigns — the marketing team does it\n\nA label doesn't sell anything by itself. Someone has to build structure on top of it:\n\n- **In Google Ads and Meta Ads:** splitting campaigns by label and assigning them separate budgets, different performance goals for different profitability tiers, separate campaigns for clearance and for new arrivals.\n- **In creative and on product pages:** a different message for clearing out aging stock, a different one for a new arrival with no history, a different one for a product whose job is to pull up the cart rather than maximize its own sales.\n\nThis is real work, and it's heaviest at the start: the first few weeks are spent rebuilding campaign structure around the labels. After that, it's adjustments, not building from scratch.\n\nYou don't need a new department for this, but you do need clearly assigned ownership — these campaigns have to be someone's actual scope, not a side task done in passing. Who that is depends on how your marketing is set up: your own team, or the agency that already runs your campaigns.\n\n3. Decisions — they're yours\n\nWhat margin makes a product worth a budget, when to mark down aging stock instead of advertising it, whether to pull back a campaign at low coverage, how much money to put into testing new arrivals, where to move the thresholds after the first quarter. These are business decisions, not calculations.\n\nMCP takes you as far as it possibly can: it gives you the numbers, points out what follows from them, and frames recommendations in the context of your industry. The last step stays on your side. If you want someone to talk it through with, we step in as advisors.\n\n**Rhythm: a fixed point on the calendar**\n\nYou need one fixed slot where three people sit down together: someone from product campaigns, someone from buying or assortment management, and someone who decides on prices and markdowns. How often depends on how fast your catalog turns over; with fast turnover and strong seasonality, more often makes more sense. What matters more than frequency is that the slot is fixed.\n\nFive questions for every check-in:\n\n1. What's changed since last time — what moved up, what moved down, what disappeared?\n2. Which products are at risk of running out, and what will the impact on results be if they do?\n3. Where are variants eroding, and which campaigns are already feeling it?\n4. How did new arrivals from the last test window perform?\n5. Which thresholds need correcting, and are budgets still sitting where they should be?\n\nNo materials need preparing, because the reports are already there, and you pull the answers from MCP during the meeting itself.\n\n**In this process, we're your advisor, not your executor.** We work on three things: setting up labels and thresholds for your catalog, analyzing what the numbers mean, and running the rhythm in which you measure results and pick the next move. The campaigns stay yours — we're responsible for making sure they know what they're promoting and why.\n\n![The product view you come back to every week](https://a.storyblok.com/f/296300/64a4fb5924/product-perspective-16-widok-produktowy.png)\n*The product view you come back to every week*\n\n# Where to start [Where to start]\n\nYou need traffic data from GA4 and cost data from Google Ads and Meta Ads — that's the minimum needed for performance evaluation and budget splitting. Stock, variant, and margin data from a CRM or ERP unlocks the entire stock and profitability layer. The rest is configuring thresholds for your catalog and delivery cycle.\n\nOn the team side: clearly assigned ownership of product campaigns, and one regular check-in.\n\n# Summary [Summary]\n\nThe more ad platforms do on their own, the more what you feed them matters. Bidding, targeting, and creative selection are already out of your hands — what's left is budget and segmentation.\n\nThe feed answers the question of what you're selling. The label layer answers the question of what's worth selling, to whom, and for how much longer you can keep doing it — and then carries that answer to wherever you spend your money.\n\n::content-cta\n---\neyebrow: Free trial\nheading: See your catalog as a budget control panel — during your free trial.\ndescription: \"Let's talk: we'll show you the WitCloud module running on your own data — with labels, priorities, and profitability thresholds built around your catalog.\"\nbuttonText: Book a call\nbuttonHref: /contact\n---\n::\n","5","30 min read","See how your products perform, which drive growth, and which drag it down.","content-page",{"id":224,"alt":19,"name":19,"focus":19,"title":19,"source":19,"filename":225,"copyright":19,"fieldtype":21,"meta_data":226,"is_external_url":32},191285268971115,"https://a.storyblok.com/f/296300/900x600/0a227d486d/17-product-perspective-dark.png",{},[228,233,237,240,243],{"_uid":229,"name":230,"content":231,"component":232},"b2c10001-0000-4000-8000-000000000001","description","Turn your product feed into a budget control panel — see how profitability, stock, and product role should drive your ad spend, not just clicks.","meta-tag",{"_uid":234,"name":235,"content":236,"component":232},"b2c10001-0000-4000-8000-000000000002","og:title","Product Perspective — WitCloud",{"_uid":238,"name":239,"content":231,"component":232},"b2c10001-0000-4000-8000-000000000003","og:description",{"_uid":241,"name":242,"content":225,"component":232},"b2c10001-0000-4000-8000-000000000004","og:image",{"_uid":244,"name":245,"content":246,"component":232},"b2c10001-0000-4000-8000-000000000005","twitter:card","summary_large_image","Product Perspective — WitCloud Product Analysis",[],"2026-08-20 00:00",[],"product-perspective","content/framework/product-perspective",-90,[],191214118803361,"af59a5e0-7ba8-4c82-b164-b9569a233ab6",[],[],[],{"age":261,"cache-control":187,"connection":188,"content-encoding":189,"content-type":190,"date":262,"etag":263,"referrer-policy":193,"sb-be-version":194,"server":195,"transfer-encoding":196,"vary":197,"via":198,"x-amz-cf-id":264,"x-amz-cf-pop":200,"x-cache":201,"x-content-type-options":202,"x-frame-options":203,"x-permitted-cross-domain-policies":30,"x-request-id":265,"x-runtime":266,"x-xss-protection":206},"668","Fri, 21 Aug 2026 13:20:20 GMT","W/\"c240990b95a18f01fb53066a47a8e6b9\"","2E7rl_RJsXe4NfzAmm0k2hLxoY3DpGlFrxsIzQ4PVU_V0raN4rWDgA==","870327cf-fc51-4a1f-af89-7a179376585e","0.027074",{"data":268,"body":269,"excerpt":-1,"toc":279},{"title":19,"description":210},{"type":270,"children":271},"root",[272],{"type":273,"tag":274,"props":275,"children":276},"element","p",{},[277],{"type":278,"value":210},"text",{"title":19,"searchDepth":280,"depth":280,"links":281},2,[],{"data":283,"body":284,"excerpt":-1,"toc":290},{"title":19,"description":221},{"type":270,"children":285},[286],{"type":273,"tag":274,"props":287,"children":288},{},[289],{"type":278,"value":221},{"title":19,"searchDepth":280,"depth":280,"links":291},[],{"data":293,"body":296,"excerpt":-1,"toc":1827},{"title":294,"description":295},"You have two levers left: budget and segmentation. Both run on data that isn't in your feed","Over the past few years, ad platforms have steadily taken control away from marketers. Performance Max — the campaign type where Google itself splits the budget across Search, YouTube, Gmail, and the Display Network — decides where to show up, who to show the ad to, and what bid to pay. Meta's Advantage+ works on the same principle. Manual bids are gone, manual network splits are gone, and to a large extent so is manual audience targeting and creative assembly.",{"type":270,"children":297},[298,304,308,313,333,339,344,374,379,385,404,409,414,419,433,438,444,456,468,473,478,484,489,494,626,631,636,641,653,658,666,718,730,736,741,794,799,811,817,822,832,842,852,857,869,881,887,892,904,909,914,1030,1035,1040,1083,1095,1105,1110,1120,1132,1144,1150,1162,1167,1172,1177,1189,1197,1202,1207,1212,1217,1229,1235,1240,1253,1258,1268,1273,1278,1288,1293,1298,1310,1316,1321,1326,1331,1341,1358,1368,1378,1390,1402,1414,1420,1425,1430,1435,1447,1453,1458,1463,1468,1474,1479,1484,1517,1527,1532,1544,1550,1555,1565,1575,1585,1595,1607,1613,1618,1623,1635,1644,1649,1657,1662,1685,1690,1695,1704,1709,1714,1722,1727,1732,1760,1765,1775,1787,1793,1798,1803,1809,1814,1819],{"type":273,"tag":299,"props":300,"children":302},"h1",{"id":301},"you-have-two-levers-left-budget-and-segmentation-both-run-on-data-that-isnt-in-your-feed",[303],{"type":278,"value":294},{"type":273,"tag":274,"props":305,"children":306},{},[307],{"type":278,"value":295},{"type":273,"tag":274,"props":309,"children":310},{},[311],{"type":278,"value":312},"This isn't a bad change. The algorithm bids faster and more consistently than a human ever could, and most of the manual optimizations from five years ago would just get in the way today.",{"type":273,"tag":274,"props":314,"children":315},{},[316,318,324,326,331],{"type":278,"value":317},"The algorithm allocates money on its own: it decides how much to spend on which product, where, and at what time of day. Only two things constrain it — ",{"type":273,"tag":319,"props":320,"children":321},"strong",{},[322],{"type":278,"value":323},"how much it can spend in total",{"type":278,"value":325}," and ",{"type":273,"tag":319,"props":327,"children":328},{},[329],{"type":278,"value":330},"what it has to work with",{"type":278,"value":332},". You set the first in the campaign. The second depends on what you tell it about your assortment — and most stores tell it almost nothing.",{"type":273,"tag":299,"props":334,"children":336},{"id":335},"the-challenge-in-short",[337],{"type":278,"value":338},"The challenge in short",{"type":273,"tag":274,"props":340,"children":341},{},[342],{"type":278,"value":343},"The whole thing in five sentences, before we get into details.",{"type":273,"tag":345,"props":346,"children":347},"ul",{},[348,354,359,364,369],{"type":273,"tag":349,"props":350,"children":351},"li",{},[352],{"type":278,"value":353},"The feed you send to Google and Meta describes your products exactly the way your competitors' feeds describe theirs. It contains no margin, no stock levels, no turnover, and no sales from outside your store.",{"type":273,"tag":349,"props":355,"children":356},{},[357],{"type":278,"value":358},"You already have this data — it just sits in systems that don't talk to each other. All it takes is calculating it together and adding it to the feed as a supplemental file, without touching the original.",{"type":273,"tag":349,"props":360,"children":361},{},[362],{"type":278,"value":363},"You write the result into labels: profitability, stock situation, product role, clearance status. These are what split your catalog into campaigns — and therefore decide where the money flows.",{"type":273,"tag":349,"props":365,"children":366},{},[367],{"type":278,"value":368},"Labels need to be stable. Without that, products drift between campaigns every few days and the algorithm has nothing consistent to learn from.",{"type":273,"tag":349,"props":370,"children":371},{},[372],{"type":278,"value":373},"After that it's a rhythm: on a fixed schedule, you check what's changed, what's at risk of running out, and where to shift budget.",{"type":273,"tag":274,"props":375,"children":376},{},[377],{"type":278,"value":378},"The rest of the article is an expansion of these five points.",{"type":273,"tag":299,"props":380,"children":382},{"id":381},"what-this-looks-like-today-in-almost-every-store",[383],{"type":278,"value":384},"What this looks like today in almost every store",{"type":273,"tag":274,"props":386,"children":387},{},[388,390,395,397,402],{"type":278,"value":389},"The path is basically the same everywhere. The store runs on some platform — Shopify, Magento, PrestaShop, WooCommerce. A plugin or a simple export generates a ",{"type":273,"tag":319,"props":391,"children":392},{},[393],{"type":278,"value":394},"product feed",{"type":278,"value":396}," from it: a file listing every product, built to Google's specification. Inside: ID, name, price, availability, category, brand, and image. The file goes to ",{"type":273,"tag":319,"props":398,"children":399},{},[400],{"type":278,"value":401},"Merchant Center",{"type":278,"value":403},", Google's product catalog, and campaigns are fed from there. The same file, usually unchanged, goes to Meta in parallel.",{"type":273,"tag":274,"props":405,"children":406},{},[407],{"type":278,"value":408},"And it all works. The feed passes validation, products show up, campaigns bring in sales. No one feels like anything is missing, because nothing is broken.",{"type":273,"tag":274,"props":410,"children":411},{},[412],{"type":278,"value":413},"The thing is, this file describes your products exactly the way any other store in your category would describe theirs. Name, price, availability, image — your competitors send Google a file built from the same spec, the same fields. It doesn't contain a single piece of information about what you actually make money on, what's about to run out, what brings in customers who come back, or what sells brilliantly outside your store.",{"type":273,"tag":274,"props":415,"children":416},{},[417],{"type":278,"value":418},"The second version of the same path looks like this: you take that exact same feed and add a second layer on top of it along the way. You're not buying new data for this — you're assembling it from data you already have, just scattered across systems that don't talk to each other. Calculated together and appended as a supplemental file, they change exactly one thing: how much the algorithm knows about your products. The original feed stays untouched.",{"type":273,"tag":274,"props":420,"children":421},{},[422,428],{"type":273,"tag":423,"props":424,"children":427},"img",{"alt":425,"src":426},"Two paths for the same product feed","https://a.storyblok.com/f/296300/1d7245c14f/product-perspective-01-dwie-sciezki-feeda.png",[],{"type":273,"tag":429,"props":430,"children":431},"em",{},[432],{"type":278,"value":425},{"type":273,"tag":274,"props":434,"children":435},{},[436],{"type":278,"value":437},"This whole article is about that second layer: where it comes from, exactly what to put in it, and how to use it day to day.",{"type":273,"tag":299,"props":439,"children":441},{"id":440},"the-feed-became-a-control-panel-not-just-a-catalog",[442],{"type":278,"value":443},"The feed became a control panel, not just a catalog",{"type":273,"tag":274,"props":445,"children":446},{},[447,449,454],{"type":278,"value":448},"In product campaigns, you don't bid on keywords — there's nothing to set. The role that campaign structure used to play is now taken over by how you split the catalog. It's the feed that decides what the algorithm can even group together, and therefore what you can actually control with budget. ",{"type":273,"tag":319,"props":450,"children":451},{},[452],{"type":278,"value":453},"This is where your two levers come back: money and assortment.",{"type":278,"value":455}," One doesn't work without the other — a budget without a catalog split is just one big pile the system draws from however it likes.",{"type":273,"tag":274,"props":457,"children":458},{},[459,461,466],{"type":278,"value":460},"Google lets you split the catalog within a campaign by category, product type, ID, brand, condition, and channel. Any other split — that is, anything that comes from your business rather than from the product description — requires ",{"type":273,"tag":319,"props":462,"children":463},{},[464],{"type":278,"value":465},"custom labels",{"type":278,"value":467},". These are simply extra columns in the feed where you enter your own value: \"high margin\", \"clearance\", \"new arrival\". In the campaign, you can then use them to build a separate product group or a separate campaign with its own budget. You get five such columns, you can put whatever you want in them, they're visible only in your own ad account, and you can change them whenever you like.",{"type":273,"tag":274,"props":469,"children":470},{},[471],{"type":278,"value":472},"Five fields. In most stores, two of them are filled in, statically, and no one has touched them in two years — usually \"season\" and \"clearance\".",{"type":273,"tag":274,"props":474,"children":475},{},[476],{"type":278,"value":477},"That's your entire control panel in a world where everything else happens automatically.",{"type":273,"tag":299,"props":479,"children":481},{"id":480},"what-the-ad-platform-knows-and-what-it-can-never-calculate",[482],{"type":278,"value":483},"What the ad platform knows, and what it can never calculate",{"type":273,"tag":274,"props":485,"children":486},{},[487],{"type":278,"value":488},"There's a common oversimplification that platforms \"know nothing about products.\" That's not true. They know quite a lot: impressions, clicks, sales, and cost at the level of a single product, often even a single variant — a specific model in a specific size and color. They're good at this.",{"type":273,"tag":274,"props":490,"children":491},{},[492],{"type":278,"value":493},"What they don't know is your business:",{"type":273,"tag":495,"props":496,"children":497},"table",{},[498,517],{"type":273,"tag":499,"props":500,"children":501},"thead",{},[502],{"type":273,"tag":503,"props":504,"children":505},"tr",{},[506,512],{"type":273,"tag":507,"props":508,"children":509},"th",{},[510],{"type":278,"value":511},"What the platform sees",{"type":273,"tag":507,"props":513,"children":514},{},[515],{"type":278,"value":516},"What your business knows",{"type":273,"tag":518,"props":519,"children":520},"tbody",{},[521,535,548,561,574,587,600,613],{"type":273,"tag":503,"props":522,"children":523},{},[524,530],{"type":273,"tag":525,"props":526,"children":527},"td",{},[528],{"type":278,"value":529},"in stock",{"type":273,"tag":525,"props":531,"children":532},{},[533],{"type":278,"value":534},"3 units left, 6 days of coverage at the current pace",{"type":273,"tag":503,"props":536,"children":537},{},[538,543],{"type":273,"tag":525,"props":539,"children":540},{},[541],{"type":278,"value":542},"in stock, conversions look fine",{"type":273,"tag":525,"props":544,"children":545},{},[546],{"type":278,"value":547},"only sizes XS and XXL are left — the customer clicks, doesn't find their size, and buys something else",{"type":273,"tag":503,"props":549,"children":550},{},[551,556],{"type":273,"tag":525,"props":552,"children":553},{},[554],{"type":278,"value":555},"price: $89",{"type":273,"tag":525,"props":557,"children":558},{},[559],{"type":278,"value":560},"margin after discounts and returns: 11%",{"type":273,"tag":503,"props":562,"children":563},{},[564,569],{"type":273,"tag":525,"props":565,"children":566},{},[567],{"type":278,"value":568},"conversions are climbing",{"type":273,"tag":525,"props":570,"children":571},{},[572],{"type":278,"value":573},"but this product is a one-time purchase and the customer doesn't come back",{"type":273,"tag":503,"props":575,"children":576},{},[577,582],{"type":273,"tag":525,"props":578,"children":579},{},[580],{"type":278,"value":581},"conversions are low",{"type":273,"tag":525,"props":583,"children":584},{},[585],{"type":278,"value":586},"but after this product, customers most often come back for a second purchase",{"type":273,"tag":503,"props":588,"children":589},{},[590,595],{"type":273,"tag":525,"props":591,"children":592},{},[593],{"type":278,"value":594},"conversions are weak",{"type":273,"tag":525,"props":596,"children":597},{},[598],{"type":278,"value":599},"the same product is a bestseller on the marketplace",{"type":273,"tag":503,"props":601,"children":602},{},[603,608],{"type":273,"tag":525,"props":604,"children":605},{},[606],{"type":278,"value":607},"no data — the product never got a budget",{"type":273,"tag":525,"props":609,"children":610},{},[611],{"type":278,"value":612},"it's been selling steadily on the marketplace for six months and has never once been advertised",{"type":273,"tag":503,"props":614,"children":615},{},[616,621],{"type":273,"tag":525,"props":617,"children":618},{},[619],{"type":278,"value":620},"no signal",{"type":273,"tag":525,"props":622,"children":623},{},[624],{"type":278,"value":625},"20% of the entire business's revenue — store, marketplaces, and in-person sales combined — rests on this one SKU",{"type":273,"tag":274,"props":627,"children":628},{},[629],{"type":278,"value":630},"You can't just see the right-hand column. You have to calculate it — by joining data that today sits in several different places — and then hand it to the ad platforms in the only form they'll accept: a label.",{"type":273,"tag":274,"props":632,"children":633},{},[634],{"type":278,"value":635},"Sales from outside the store deserve their own callout. Google and Meta only see what happens on your website, so they pile budget onto products that are already converting there. They have no way of knowing that a mediocre performer in your store is actually a bestseller on a marketplace like Amazon — and that's usually the strongest signal you have that a product is worth testing in ads. Without this information, the automation keeps consistently scaling what already works, and never reaches for the assortment your business has known for ages actually sells.",{"type":273,"tag":274,"props":637,"children":638},{},[639],{"type":278,"value":640},"The worst part is that the same mechanism works on your side too. A product never makes it onto the list of things worth featuring in a campaign, because it never showed good results there — and it never showed good results because it never got a budget. Meanwhile, it's been selling steadily somewhere else for six months. The way out of this loop won't come from the ad account, because as far as the ad account is concerned, this product barely exists.",{"type":273,"tag":274,"props":642,"children":643},{},[644,649],{"type":273,"tag":423,"props":645,"children":648},{"alt":646,"src":647},"Store and marketplace sales compared against ad spend","https://a.storyblok.com/f/296300/265bb086d7/product-perspective-02-sprzedaz-sklep-marketplace.png",[],{"type":273,"tag":429,"props":650,"children":651},{},[652],{"type":278,"value":646},{"type":273,"tag":274,"props":654,"children":655},{},[656],{"type":278,"value":657},"Since this information lives neither in the feed nor in the ad account, the question is where the system is supposed to get it from. Here's the full list of sources — none of them will send anything to Google on their own.",{"type":273,"tag":274,"props":659,"children":660},{},[661],{"type":273,"tag":319,"props":662,"children":663},{},[664],{"type":278,"value":665},"Where this data comes from",{"type":273,"tag":345,"props":667,"children":668},{},[669,679,689,699,709],{"type":273,"tag":349,"props":670,"children":671},{},[672,677],{"type":273,"tag":319,"props":673,"children":674},{},[675],{"type":278,"value":676},"CRM or ERP",{"type":278,"value":678}," — the system where you keep orders, stock, and purchase prices — stock levels and variants, your own attributes, margins, and sales from your store and from other channels, including marketplaces and in-person sales.",{"type":273,"tag":349,"props":680,"children":681},{},[682,687],{"type":273,"tag":319,"props":683,"children":684},{},[685],{"type":278,"value":686},"GA4",{"type":278,"value":688},", i.e., Google Analytics — traffic to the product page, user behavior, sales effectiveness, revenue broken down by channel.",{"type":273,"tag":349,"props":690,"children":691},{},[692,697],{"type":273,"tag":319,"props":693,"children":694},{},[695],{"type":278,"value":696},"Google Ads",{"type":278,"value":698}," — impressions, clicks, cost, and sales at the level of a single product.",{"type":273,"tag":349,"props":700,"children":701},{},[702,707],{"type":273,"tag":319,"props":703,"children":704},{},[705],{"type":278,"value":706},"Meta Ads",{"type":278,"value":708}," — the same thing, product by product.",{"type":273,"tag":349,"props":710,"children":711},{},[712,716],{"type":273,"tag":319,"props":713,"children":714},{},[715],{"type":278,"value":401},{"type":278,"value":717},", Google's product catalog — free listing visibility, product disapprovals, and price position. That last one is an underrated source: if your product has an EAN or GTIN also used by other sellers, Google can compare your price to the market and tell you whether you're clearly cheaper, comparable, or clearly more expensive. Reading this daily turns it from a curiosity into a signal.",{"type":273,"tag":274,"props":719,"children":720},{},[721,723,728],{"type":278,"value":722},"One methodological decision here matters more than all the integrations combined: ",{"type":273,"tag":319,"props":724,"children":725},{},[726],{"type":278,"value":727},"revenue has to be calculated from a single source.",{"type":278,"value":729}," Google reports its own sales value, Meta reports its own, each counts things its own way, and each takes credit for the same orders. Add them up and you get a number that doesn't exist in your P&L — and as long as every channel is graded on its own yardstick, comparing them to each other doesn't mean anything.",{"type":273,"tag":299,"props":731,"children":733},{"id":732},"five-dimensions-for-evaluating-a-product",[734],{"type":278,"value":735},"Five dimensions for evaluating a product",{"type":273,"tag":274,"props":737,"children":738},{},[739],{"type":278,"value":740},"A proper evaluation means looking from five angles at once:",{"type":273,"tag":345,"props":742,"children":743},{},[744,754,764,774,784],{"type":273,"tag":349,"props":745,"children":746},{},[747,752],{"type":273,"tag":319,"props":748,"children":749},{},[750],{"type":278,"value":751},"Performance",{"type":278,"value":753}," — traffic, conversion, and ROAS, i.e., revenue per unit spent advertising this product, measured against its own category, not the whole catalog.",{"type":273,"tag":349,"props":755,"children":756},{},[757,762],{"type":273,"tag":319,"props":758,"children":759},{},[760],{"type":278,"value":761},"Stock",{"type":278,"value":763}," — not \"in stock,\" but how many units, in which variants, and for how many days.",{"type":273,"tag":349,"props":765,"children":766},{},[767,772],{"type":273,"tag":319,"props":768,"children":769},{},[770],{"type":278,"value":771},"Turnover",{"type":278,"value":773}," — how fast it's moving, whether it's speeding up or slowing down, and how long it's been sitting.",{"type":273,"tag":349,"props":775,"children":776},{},[777,782],{"type":273,"tag":319,"props":778,"children":779},{},[780],{"type":278,"value":781},"Business impact",{"type":278,"value":783}," — margin, share of revenue, how much the overall result depends on this one SKU.",{"type":273,"tag":349,"props":785,"children":786},{},[787,792],{"type":273,"tag":319,"props":788,"children":789},{},[790],{"type":278,"value":791},"Strategic role",{"type":278,"value":793}," — whether it's an entry-level product, a seasonal one, an image product, or one that sells modestly on its own but pulls the rest of the cart along with it.",{"type":273,"tag":274,"props":795,"children":796},{},[797],{"type":278,"value":798},"This last dimension is the one most often skipped — and it can be the most expensive to ignore, which is why it gets its own section right below.",{"type":273,"tag":274,"props":800,"children":801},{},[802,807],{"type":273,"tag":423,"props":803,"children":806},{"alt":804,"src":805},"The five product evaluation dimensions, written as questions","https://a.storyblok.com/f/296300/f7d3d2777c/product-perspective-03-piec-wymiarow-oceny.png",[],{"type":273,"tag":429,"props":808,"children":809},{},[810],{"type":278,"value":804},{"type":273,"tag":299,"props":812,"children":814},{"id":813},"products-whose-value-lies-outside-their-own-numbers",[815],{"type":278,"value":816},"Products whose value lies outside their own numbers",{"type":273,"tag":274,"props":818,"children":819},{},[820],{"type":278,"value":821},"The ad platform judges a product by its own sales. That's convenient, and it's enough most of the time — but there are three situations where this kind of scoring systematically undervalues a product, and usually it's exactly the products you care about most.",{"type":273,"tag":274,"props":823,"children":824},{},[825,830],{"type":273,"tag":319,"props":826,"children":827},{},[828],{"type":278,"value":829},"The cart-puller.",{"type":278,"value":831}," It sells modestly on its own, drives plenty of traffic, and converts poorly — but the orders it appears in are noticeably larger than average. The customer lands on its page, ends up buying something else, and the conversion gets credited to whatever actually landed in the cart. In the campaign report, this product looks like a candidate to cut.",{"type":273,"tag":274,"props":833,"children":834},{},[835,840],{"type":273,"tag":319,"props":836,"children":837},{},[838],{"type":278,"value":839},"The gateway product — the one customers come back after.",{"type":278,"value":841}," The first purchase has average value, but people who started with this product come back for a second order far more often than everyone else. No attribution window catches this, because the second purchase arrives weeks later, often through a different channel, with no visible link to the original campaign. This information is produced on the customer-analysis side, and only from there can it flow back into the catalog as a label. More on this in a separate article on working with your customer base.",{"type":273,"tag":274,"props":843,"children":844},{},[845,850],{"type":273,"tag":319,"props":846,"children":847},{},[848],{"type":278,"value":849},"Acquisition product vs. repeat-purchase product.",{"type":278,"value":851}," This distinction is even more practical, because it leads straight to a campaign split. Part of your assortment is great for attracting someone who doesn't know the brand yet: low barrier to entry, a simple choice, a price that makes the decision easy. A completely different set works when you want to talk someone who has already bought from you into a second or third order — because here it's brand trust doing the work, not a price incentive.",{"type":273,"tag":274,"props":853,"children":854},{},[855],{"type":278,"value":856},"If both pools sit in the same campaign, you're grading them against the same threshold even though they're doing completely different jobs. An acquisition product can have a lower return and still be the best investment in the catalog, as long as it brings in customers who stick around. A repeat-purchase product makes no sense in a reach campaign, because it's shown to people who have no reason to want it yet.",{"type":273,"tag":274,"props":858,"children":859},{},[860,862,867],{"type":278,"value":861},"The conclusion is the same in all three cases: ",{"type":273,"tag":319,"props":863,"children":864},{},[865],{"type":278,"value":866},"a product has to be judged by the role it plays, not just by its own numbers.",{"type":278,"value":868}," Role is another dimension you can calculate and send to the ad platforms as a label — and without it, the algorithm keeps consistently cutting budget exactly where it should be increasing it.",{"type":273,"tag":274,"props":870,"children":871},{},[872,877],{"type":273,"tag":423,"props":873,"children":876},{"alt":874,"src":875},"A product's own sales vs. the sales it pulls along with it","https://a.storyblok.com/f/296300/add42187ef/product-perspective-04-wlasna-sprzedaz-koszyk.png",[],{"type":273,"tag":429,"props":878,"children":879},{},[880],{"type":278,"value":874},{"type":273,"tag":299,"props":882,"children":884},{"id":883},"step-1-build-the-labels-layer",[885],{"type":278,"value":886},"STEP 1: build the labels layer",{"type":273,"tag":274,"props":888,"children":889},{},[890],{"type":278,"value":891},"You have five columns for your own labels and complete freedom in what you put there; Meta builds product sets from those same fields.",{"type":273,"tag":274,"props":893,"children":894},{},[895,897,902],{"type":278,"value":896},"Five columns sounds like very little if you think of them as the place where all your catalog knowledge has to fit. That's exactly the wrong way to think about them. ",{"type":273,"tag":319,"props":898,"children":899},{},[900],{"type":278,"value":901},"On the analysis side, there are as many dimensions as you need",{"type":278,"value":903}," — performance rating, stock situation, channel structure, clearance status, cart role, plus operational flags like \"new arrival in test phase\" or \"blocked by manager decision.\" The five feed fields aren't that whole set — they're the window through which selected conclusions go out to the ad platforms.",{"type":273,"tag":274,"props":905,"children":906},{},[907],{"type":278,"value":908},"What goes out to the ad platforms is however much fits and however much you actually need to steer budget. The rest stays on the analysis side and is used for making decisions, not for targeting.",{"type":273,"tag":274,"props":910,"children":911},{},[912],{"type":278,"value":913},"An example split of what's worth pushing out:",{"type":273,"tag":495,"props":915,"children":916},{},[917,938],{"type":273,"tag":499,"props":918,"children":919},{},[920],{"type":273,"tag":503,"props":921,"children":922},{},[923,928,933],{"type":273,"tag":507,"props":924,"children":925},{},[926],{"type":278,"value":927},"Dimension",{"type":273,"tag":507,"props":929,"children":930},{},[931],{"type":278,"value":932},"What it's for",{"type":273,"tag":507,"props":934,"children":935},{},[936],{"type":278,"value":937},"Example values",{"type":273,"tag":518,"props":939,"children":940},{},[941,958,976,994,1012],{"type":273,"tag":503,"props":942,"children":943},{},[944,948,953],{"type":273,"tag":525,"props":945,"children":946},{},[947],{"type":278,"value":751},{"type":273,"tag":525,"props":949,"children":950},{},[951],{"type":278,"value":952},"main budget split",{"type":273,"tag":525,"props":954,"children":955},{},[956],{"type":278,"value":957},"core performer, scale up, in test, watch list, paused",{"type":273,"tag":503,"props":959,"children":960},{},[961,966,971],{"type":273,"tag":525,"props":962,"children":963},{},[964],{"type":278,"value":965},"Stock situation",{"type":273,"tag":525,"props":967,"children":968},{},[969],{"type":278,"value":970},"protects against spending on stock that's about to run out",{"type":273,"tag":525,"props":972,"children":973},{},[974],{"type":278,"value":975},"long coverage, a couple weeks of coverage, a few days of coverage, out of stock",{"type":273,"tag":503,"props":977,"children":978},{},[979,984,989],{"type":273,"tag":525,"props":980,"children":981},{},[982],{"type":278,"value":983},"Channel structure",{"type":273,"tag":525,"props":985,"children":986},{},[987],{"type":278,"value":988},"where the product actually sells",{"type":273,"tag":525,"props":990,"children":991},{},[992],{"type":278,"value":993},"paid-dominant, organic-dominant, marketplace-dominant, evenly spread",{"type":273,"tag":503,"props":995,"children":996},{},[997,1002,1007],{"type":273,"tag":525,"props":998,"children":999},{},[1000],{"type":278,"value":1001},"Clearance status",{"type":273,"tag":525,"props":1003,"children":1004},{},[1005],{"type":278,"value":1006},"separates normal sales from liquidation",{"type":273,"tag":525,"props":1008,"children":1009},{},[1010],{"type":278,"value":1011},"normal, watch list, clearance",{"type":273,"tag":503,"props":1013,"children":1014},{},[1015,1020,1025],{"type":273,"tag":525,"props":1016,"children":1017},{},[1018],{"type":278,"value":1019},"Season or campaign",{"type":273,"tag":525,"props":1021,"children":1022},{},[1023],{"type":278,"value":1024},"a field for the team to override manually",{"type":273,"tag":525,"props":1026,"children":1027},{},[1028],{"type":278,"value":1029},"depends on the calendar",{"type":273,"tag":274,"props":1031,"children":1032},{},[1033],{"type":278,"value":1034},"The first four fill in automatically and change along with the data. The last one stays open for the team — for seasons, holidays, and promotions that no algorithm will predict.",{"type":273,"tag":274,"props":1036,"children":1037},{},[1038],{"type":278,"value":1039},"This is a starting point, not a canon. Depending on your catalog, other dimensions can matter more, and it's worth considering giving one of the five fields to:",{"type":273,"tag":345,"props":1041,"children":1042},{},[1043,1053,1063,1073],{"type":273,"tag":349,"props":1044,"children":1045},{},[1046,1051],{"type":273,"tag":319,"props":1047,"children":1048},{},[1049],{"type":278,"value":1050},"Price band",{"type":278,"value":1052}," — a classic that works almost everywhere. A $12 product and a $220 product have a different purchase path, a different decision time, and a different reasonable acquisition cost — and dumped into one campaign, they get graded against a shared threshold that's wrong for both of them.",{"type":273,"tag":349,"props":1054,"children":1055},{},[1056,1061],{"type":273,"tag":319,"props":1057,"children":1058},{},[1059],{"type":278,"value":1060},"Price position vs. the competition",{"type":278,"value":1062}," — whether you're clearly cheaper, comparable, or clearly pricier than the market on this product. Where you're cheaper, it's worth pushing harder, because the advantage will do its work anyway. Where you're clearly pricier, a weak campaign result isn't a campaign problem, and throwing more budget at it won't fix it.",{"type":273,"tag":349,"props":1064,"children":1065},{},[1066,1071],{"type":273,"tag":319,"props":1067,"children":1068},{},[1069],{"type":278,"value":1070},"Product role",{"type":278,"value":1072}," — whether it mainly sells itself, pulls the cart along, or is a gateway customers come back through. This is also where you separate acquisition products from repeat-purchase ones — and that split almost always ends up as two separate campaigns with two separate thresholds.",{"type":273,"tag":349,"props":1074,"children":1075},{},[1076,1081],{"type":273,"tag":319,"props":1077,"children":1078},{},[1079],{"type":278,"value":1080},"Supplier or private label",{"type":278,"value":1082}," — if margins between suppliers differ enough to justify separate budgets.",{"type":273,"tag":274,"props":1084,"children":1085},{},[1086,1091],{"type":273,"tag":423,"props":1087,"children":1090},{"alt":1088,"src":1089},"Share of ad spend by price position, with average ROAS","https://a.storyblok.com/f/296300/62cd321cdc/product-perspective-05-udzial-wydatkow-roas.png",[],{"type":273,"tag":429,"props":1092,"children":1093},{},[1094],{"type":278,"value":1088},{"type":273,"tag":274,"props":1096,"children":1097},{},[1098,1103],{"type":273,"tag":319,"props":1099,"children":1100},{},[1101],{"type":278,"value":1102},"This isn't a one-time setup.",{"type":278,"value":1104}," Labels get designed, watched, and corrected: you analyze how products behave in each group, check whether the split is actually separating what it was meant to separate, and move the thresholds. A catalog looks different after a year than it did at the start, so the definitions have to keep up.",{"type":273,"tag":274,"props":1106,"children":1107},{},[1108],{"type":278,"value":1109},"At this stage, the most useful thing is being able to just ask the question directly: where does a sensible margin line fall in this catalog, how many products land on each side of the threshold, and how would that change budget distribution. Instead of clicking through a dozen views, you ask the question and get an answer along with the reasoning behind it.",{"type":273,"tag":274,"props":1111,"children":1112},{},[1113,1118],{"type":273,"tag":319,"props":1114,"children":1115},{},[1116],{"type":278,"value":1117},"The thresholds are yours, not ours.",{"type":278,"value":1119}," What margin makes a product profitable, how many days of coverage counts as a risk, what \"slow turnover\" means — in seasonal fashion these lines look different than in household chemicals or electronics. The first setup is built around your catalog and delivery cycle, then corrected based on what actually happens.",{"type":273,"tag":274,"props":1121,"children":1122},{},[1123,1125,1130],{"type":278,"value":1124},"One thing worth remembering from the start, because it has direct budget consequences. You used to be able to set a separate cost-per-click for each product group. With automated bid strategies — where you give the system a goal and it bids on its own — there are no bids to set anymore, so splitting into groups inside a single campaign gets you, at best, a nicer-looking report. If you actually want to control money, each group needs to land in ",{"type":273,"tag":319,"props":1126,"children":1127},{},[1128],{"type":278,"value":1129},"its own campaign with its own budget",{"type":278,"value":1131},".",{"type":273,"tag":274,"props":1133,"children":1134},{},[1135,1140],{"type":273,"tag":423,"props":1136,"children":1139},{"alt":1137,"src":1138},"The analytics layer and the five label fields in the feed","https://a.storyblok.com/f/296300/21b23cc8f8/product-perspective-06-warstwa-analityczna-etykiety.png",[],{"type":273,"tag":429,"props":1141,"children":1142},{},[1143],{"type":278,"value":1137},{"type":273,"tag":299,"props":1145,"children":1147},{"id":1146},"step-2-watch-the-changes-not-just-the-snapshots",[1148],{"type":278,"value":1149},"STEP 2: watch the changes, not just the snapshots",{"type":273,"tag":274,"props":1151,"children":1152},{},[1153,1155,1160],{"type":278,"value":1154},"The catalog split by itself is just a snapshot from one day. The real value starts where you can see ",{"type":273,"tag":319,"props":1156,"children":1157},{},[1158],{"type":278,"value":1159},"movement between groups",{"type":278,"value":1161}," — exactly the way customer analysis looks at people moving from new to returning, not just at how many new customers you have today.",{"type":273,"tag":274,"props":1163,"children":1164},{},[1165],{"type":278,"value":1166},"It looks like this. A product that's only been in testing for the past few weeks starts delivering sales and should get a bigger budget. Another one, previously a core performer, is weakening and no longer deserves priority. A third disappears from ads entirely because it's run out of stock.",{"type":273,"tag":274,"props":1168,"children":1169},{},[1170],{"type":278,"value":1171},"Every such change has its own reason and its own moment, and it's worth having both recorded — together with the numbers that applied at the time. That way the question \"why is this product in this campaign now\" has an answer, not a guess.",{"type":273,"tag":274,"props":1173,"children":1174},{},[1175],{"type":278,"value":1176},"This changes the nature of the morning review. Instead of reading through the entire catalog from scratch, you look at a list of changes from the past week: what moved up, what moved down, what disappeared, and why. Or you simply ask, in one sentence, and get a summary instead of a table to scroll through. Across a few thousand SKUs, that's the difference between a report you skim and a report you actually read.",{"type":273,"tag":274,"props":1178,"children":1179},{},[1180,1185],{"type":273,"tag":423,"props":1181,"children":1184},{"alt":1182,"src":1183},"Product group changes over the past month and the sales behind them","https://a.storyblok.com/f/296300/6a263912ff/product-perspective-07-zmiany-grup-produktowych.png",[],{"type":273,"tag":429,"props":1186,"children":1187},{},[1188],{"type":278,"value":1182},{"type":273,"tag":274,"props":1190,"children":1191},{},[1192],{"type":273,"tag":319,"props":1193,"children":1194},{},[1195],{"type":278,"value":1196},"A label can't flip-flop",{"type":273,"tag":274,"props":1198,"children":1199},{},[1200],{"type":278,"value":1201},"There's a trap here that's easy to trip over during a first rollout. If a label recalculates every day and can change every day, a product starts drifting between campaigns day to day — bestseller today, watch list tomorrow, back again the day after. For you, that's chaos. For the algorithm, which needs data continuity to learn anything at all, it's sabotage.",{"type":273,"tag":274,"props":1203,"children":1204},{},[1205],{"type":278,"value":1206},"That's why a label change can't happen instantly. The condition needs to hold for a set period — a different one for moving up than for moving down, since it should be easier to earn a promotion than to lose one, because a single bad week shouldn't erase a good quarter. The exception is running out of stock, which takes effect immediately, since there's nothing to wait and see there.",{"type":273,"tag":274,"props":1208,"children":1209},{},[1210],{"type":278,"value":1211},"The second rule is about people. When a manager deliberately makes a decision against what the automation says, that decision has to be protected for some period — otherwise the next day's recalculation overwrites it and no one understands why. Automation only takes back over after that period.",{"type":273,"tag":274,"props":1213,"children":1214},{},[1215],{"type":278,"value":1216},"These two rules look like a technical detail, but they decide whether the rollout survives at all. Without them, the first month looks great and the third ends with someone saying \"this keeps flipping anyway, let's just go back to doing it manually.\"",{"type":273,"tag":274,"props":1218,"children":1219},{},[1220,1225],{"type":273,"tag":423,"props":1221,"children":1224},{"alt":1222,"src":1223},"The same label recalculated daily vs. with a required confirmation period","https://a.storyblok.com/f/296300/6c9210bf68/product-perspective-08-etykieta-okres-potwierdzenia.png",[],{"type":273,"tag":429,"props":1226,"children":1227},{},[1228],{"type":278,"value":1222},{"type":273,"tag":299,"props":1230,"children":1232},{"id":1231},"step-3-manage-for-profitability-not-revenue",[1233],{"type":278,"value":1234},"STEP 3: manage for profitability, not revenue",{"type":273,"tag":274,"props":1236,"children":1237},{},[1238],{"type":278,"value":1239},"The automation is graded on revenue, because that's the only value you hand it. The effect can look like this:",{"type":273,"tag":345,"props":1241,"children":1242},{},[1243,1248],{"type":273,"tag":349,"props":1244,"children":1245},{},[1246],{"type":278,"value":1247},"Product A: ROAS 8, margin 12%. Out of $100 in revenue, $12 is margin, against $12.50 in media cost. Result: a loss.",{"type":273,"tag":349,"props":1249,"children":1250},{},[1251],{"type":278,"value":1252},"Product B: ROAS 3, margin 55%. Out of $100 in revenue, $55 is margin, against $33 in media cost. Result: $22 in profit.",{"type":273,"tag":274,"props":1254,"children":1255},{},[1256],{"type":278,"value":1257},"In the campaign report, the first product looks almost three times better. In the P&L, it's the only one losing money.",{"type":273,"tag":274,"props":1259,"children":1260},{},[1261,1266],{"type":273,"tag":319,"props":1262,"children":1263},{},[1264],{"type":278,"value":1265},"You are not sending your margin to Google.",{"type":278,"value":1267}," This worry stalls a lot of rollouts before they even start, so let's settle it right away. What goes into the feed is a bucket, not a number: \"high\", \"medium\", \"low\". The actual figures, purchase prices, and supplier agreements stay on your side, in your own Google Cloud. The ad platform only gets told that this group of products is worth defending harder than that one — with no visibility into why.",{"type":273,"tag":274,"props":1269,"children":1270},{},[1271],{"type":278,"value":1272},"It's worth checking one more thing while you're at it, because it can shift the whole calculation. A store usually reports sales gross, while media costs are net. So before you even get to margin, returns, and logistics costs, the ROAS shown in the dashboard is already inflated by the tax rate. At a 20% VAT rate, a dashboard ROAS of 5.0 is actually a little over 4.0 on comparable terms — and that's often the difference between a campaign that holds up and one that doesn't.",{"type":273,"tag":274,"props":1274,"children":1275},{},[1276],{"type":278,"value":1277},"Once margin information sits in a label, this stops being a theoretical problem. High-margin products land in campaigns with a bigger budget and a more relaxed return requirement — you can afford to pay more for them. Products you're losing money on land in campaigns with a threshold tight enough that the system cuts their spend on its own, or they disappear from ads until the price changes.",{"type":273,"tag":274,"props":1279,"children":1280},{},[1281,1286],{"type":273,"tag":319,"props":1282,"children":1283},{},[1284],{"type":278,"value":1285},"10% of your products probably account for most of your revenue — but not for anywhere near the same share of margin.",{"type":278,"value":1287}," The more these two rankings diverge, the more budget the automation steers toward what looks like a win in the report but isn't one in the P&L.",{"type":273,"tag":274,"props":1289,"children":1290},{},[1291],{"type":278,"value":1292},"Setting profitability thresholds is, in fact, a classic question that's better answered by a conversation with your data than by a spreadsheet: how much would you lose if you cut everything below a certain margin, and whether you'd accidentally be cutting cart-pulling products along with it.",{"type":273,"tag":274,"props":1294,"children":1295},{},[1296],{"type":278,"value":1297},"It's worth comparing every product against its own category average, not against the whole catalog's average. A ROAS of 4 in electronics, where margins are thin and prices are high, means something completely different than the same ROAS in accessories. A shared threshold across both categories moves budget in the wrong direction — while still looking like a data-driven decision.",{"type":273,"tag":274,"props":1299,"children":1300},{},[1301,1306],{"type":273,"tag":423,"props":1302,"children":1305},{"alt":1303,"src":1304},"The same products ranked by revenue vs. by profit","https://a.storyblok.com/f/296300/196a29b0f3/product-perspective-09-produkty-przychod-zysk.png",[],{"type":273,"tag":429,"props":1307,"children":1308},{},[1309],{"type":278,"value":1303},{"type":273,"tag":299,"props":1311,"children":1313},{"id":1312},"step-4-treat-stock-as-a-signal",[1314],{"type":278,"value":1315},"STEP 4: treat stock as a signal",{"type":273,"tag":274,"props":1317,"children":1318},{},[1319],{"type":278,"value":1320},"A scenario everyone who runs product campaigns knows. On Monday, ROAS is on target, revenue is growing, everything looks fine. On Tuesday, ROAS collapses, revenue drops, and everyone starts hunting for the cause in the campaigns, in the auction, in seasonality. The cause is in the warehouse: a product responsible for a big chunk of sales has run out.",{"type":273,"tag":274,"props":1322,"children":1323},{},[1324],{"type":278,"value":1325},"By that day, there was nothing left to do. But it could have been seen two weeks earlier.",{"type":273,"tag":274,"props":1327,"children":1328},{},[1329],{"type":278,"value":1330},"The feed knows two states: in stock and out of stock. To manage budget, you need four answers.",{"type":273,"tag":274,"props":1332,"children":1333},{},[1334,1339],{"type":273,"tag":319,"props":1335,"children":1336},{},[1337],{"type":278,"value":1338},"How much is left and for how long.",{"type":278,"value":1340}," Not \"in stock,\" but coverage in days at the current sales pace. A product with eight days of stock left, while it's simultaneously pulling in a growing budget, is a situation that calls for a decision — pull back, speed up the next delivery, or deliberately sell through the remaining stock.",{"type":273,"tag":274,"props":1342,"children":1343},{},[1344,1349,1351,1356],{"type":273,"tag":319,"props":1345,"children":1346},{},[1347],{"type":278,"value":1348},"How much this product means for the result.",{"type":278,"value":1350}," Coverage on its own says nothing until you know how much money flows through this product: how much you spend on it, how much you make on it, and what share of revenue it holds. Only together do they answer the question that actually matters — ",{"type":273,"tag":319,"props":1352,"children":1353},{},[1354],{"type":278,"value":1355},"what happens to the result when it runs out.",{"type":278,"value":1357}," Knowing this two weeks ahead turns the conversation from explaining away a bad result into planning. The question \"what happens to the result if these three products run out next week\" is, in fact, exactly the kind of question you'll get answered faster in a conversation with your data than by digging through a report.",{"type":273,"tag":274,"props":1359,"children":1360},{},[1361,1366],{"type":273,"tag":319,"props":1362,"children":1363},{},[1364],{"type":278,"value":1365},"That a product dropped out of the feed.",{"type":278,"value":1367}," Stock ran out, the listing vanished from ads, and no one noticed for a week, because nothing broke — it just stopped existing.",{"type":273,"tag":274,"props":1369,"children":1370},{},[1371,1376],{"type":273,"tag":319,"props":1372,"children":1373},{},[1374],{"type":278,"value":1375},"That a product is only nominally in stock.",{"type":278,"value":1377}," The trickiest case, because it doesn't look like a failure. The model still shows \"in stock,\" but only the lowest-selling sizes are left. The system sees availability and keeps promoting it — the ad still collects clicks, and some of those clickers buy something anyway, just a different product. The conversion gets credited to whatever they actually clicked into, so nothing flashes red in the report. You're paying for traffic to a listing you can't actually sell, and the algorithm has no way of learning that something's wrong. We call this variant erosion, and in stores that sell by size it's one of the more common hidden causes behind declining results.",{"type":273,"tag":274,"props":1379,"children":1380},{},[1381,1383,1388],{"type":278,"value":1382},"One important thing a stock label should ",{"type":273,"tag":319,"props":1384,"children":1385},{},[1386],{"type":278,"value":1387},"not",{"type":278,"value":1389}," do: automatically cut a product from the campaign. Low coverage is information for a human, not a verdict — sometimes you actually want to sell through the last units, and sometimes the next delivery arrives Friday. Only what's physically out of stock drops out of ads automatically. Everything else is an alert and a decision.",{"type":273,"tag":274,"props":1391,"children":1392},{},[1393,1398],{"type":273,"tag":423,"props":1394,"children":1397},{"alt":1395,"src":1396},"Ad spend and remaining stock for four products","https://a.storyblok.com/f/296300/7b992b53e2/product-perspective-10-wydatki-zapas-cztery-produkty.png",[],{"type":273,"tag":429,"props":1399,"children":1400},{},[1401],{"type":278,"value":1395},{"type":273,"tag":274,"props":1403,"children":1404},{},[1405,1410],{"type":273,"tag":423,"props":1406,"children":1409},{"alt":1407,"src":1408},"One product's disappearing sizes while its budget stays unchanged","https://a.storyblok.com/f/296300/dc13bf11f5/product-perspective-11-znikajace-rozmiary.png",[],{"type":273,"tag":429,"props":1411,"children":1412},{},[1413],{"type":278,"value":1407},{"type":273,"tag":299,"props":1415,"children":1417},{"id":1416},"step-5-give-new-arrivals-their-own-budget",[1418],{"type":278,"value":1419},"STEP 5: give new arrivals their own budget",{"type":273,"tag":274,"props":1421,"children":1422},{},[1423],{"type":278,"value":1424},"A product with no history can't be judged by any of the five dimensions. Dropped into a shared campaign, it loses to listings that already have data — the automation has something to choose from, and it chooses what already works. A new collection starts from a worse position every single time.",{"type":273,"tag":274,"props":1426,"children":1427},{},[1428],{"type":278,"value":1429},"This is exactly the case where your only real lever — budget — has to be used deliberately. A new arrival needs its own campaign, its own pool of money, and a window in which the normal evaluation rules are suspended — because judging a product with no data against the usual thresholds ends with it getting shut off before it can show anything. You also need an exit threshold set in advance: after how much time and what result the product gets its target label.",{"type":273,"tag":274,"props":1431,"children":1432},{},[1433],{"type":278,"value":1434},"The same bucket includes products that aren't new to your business, just new to advertising: they're selling on marketplaces or in a physical store, but campaigns have never given them a budget. They have a sales history — it's just recorded somewhere the ad platform never looks. From a testing standpoint, these are the best candidates in the whole catalog, because the risk is lower than with a genuine new arrival — someone has already proven this product gets bought.",{"type":273,"tag":274,"props":1436,"children":1437},{},[1438,1443],{"type":273,"tag":423,"props":1439,"children":1442},{"alt":1440,"src":1441},"A new product's test window and its three possible outcomes","https://a.storyblok.com/f/296300/b06c667ee5/product-perspective-12-okno-testowe-nowosci.png",[],{"type":273,"tag":429,"props":1444,"children":1445},{},[1446],{"type":278,"value":1440},{"type":273,"tag":299,"props":1448,"children":1450},{"id":1449},"the-second-lever-audience-segmentation",[1451],{"type":278,"value":1452},"The second lever: audience segmentation",{"type":273,"tag":274,"props":1454,"children":1455},{},[1456],{"type":278,"value":1457},"The same mechanism works on the people side. The automation decides on its own who to show the ad to, but only within whatever you give it — and you're the one who builds the audience lists.",{"type":273,"tag":274,"props":1459,"children":1460},{},[1461],{"type":278,"value":1462},"This is where the two analyses meet. Which products customers come back for a second purchase after comes out of customer lifecycle analysis and flows back into the catalog as a label. And the other way around: customer segments feed exclusion lists and lookalike audiences. The catalog and the customer base are two sides of the same segmentation, not two separate projects.",{"type":273,"tag":274,"props":1464,"children":1465},{},[1466],{"type":278,"value":1467},"More on this in a separate article on working with your customer base.",{"type":273,"tag":299,"props":1469,"children":1471},{"id":1470},"what-this-is-built-from",[1472],{"type":278,"value":1473},"What this is built from",{"type":273,"tag":274,"props":1475,"children":1476},{},[1477],{"type":278,"value":1478},"Everything above is a way of working — but someone has to keep it running. That's what WitCloud does: the platform we deploy on your own data. Data from your CRM, GA4, Google Ads, Meta Ads, and Merchant Center flows into a single set of product tables that recalculates every day. You don't have to build or wire any of it together yourself.",{"type":273,"tag":274,"props":1480,"children":1481},{},[1482],{"type":278,"value":1483},"Three things run on this same foundation:",{"type":273,"tag":345,"props":1485,"children":1486},{},[1487,1497,1507],{"type":273,"tag":349,"props":1488,"children":1489},{},[1490,1495],{"type":273,"tag":319,"props":1491,"children":1492},{},[1493],{"type":278,"value":1494},"Reports and analysis",{"type":278,"value":1496}," answer the question of what's happening and why. Profitability, turnover, stock coverage, variant erosion, movement between groups, new-arrival performance.",{"type":273,"tag":349,"props":1498,"children":1499},{},[1500,1505],{"type":273,"tag":319,"props":1501,"children":1502},{},[1503],{"type":278,"value":1504},"Label export",{"type":278,"value":1506}," answers the question of how to put it into action. The conclusions come back as supplemental files — extra sheets that add columns to your existing feed without touching the original. They feed custom labels in Google and product sets in Meta.",{"type":273,"tag":349,"props":1508,"children":1509},{},[1510,1515],{"type":273,"tag":319,"props":1511,"children":1512},{},[1513],{"type":278,"value":1514},"WitCloud MCP",{"type":278,"value":1516}," is the conversational layer on top of the data. You ask in plain language and get conclusions and recommendations in the context of your industry.",{"type":273,"tag":274,"props":1518,"children":1519},{},[1520,1525],{"type":273,"tag":319,"props":1521,"children":1522},{},[1523],{"type":278,"value":1524},"The key consequence: you define a label once.",{"type":278,"value":1526}," \"Product at risk of running out\" means the same thing in the report, in Google, and in Meta. There aren't three different definitions of \"bestseller\" across three tools, and no manually-set labels that go stale within a week.",{"type":273,"tag":274,"props":1528,"children":1529},{},[1530],{"type":278,"value":1531},"The module also works when you don't have the full set of sources. Without a CRM you can't calculate margin or stock coverage, but performance evaluation and budget splitting still work normally — missing data means a narrower range of labels, not no rollout at all.",{"type":273,"tag":274,"props":1533,"children":1534},{},[1535,1540],{"type":273,"tag":423,"props":1536,"children":1539},{"alt":1537,"src":1538},"From a chat question to labels in the ad platforms","https://a.storyblok.com/f/296300/b71b13935d/product-perspective-13-od-pytania-do-etykiet.png",[],{"type":273,"tag":429,"props":1541,"children":1542},{},[1543],{"type":278,"value":1537},{"type":273,"tag":299,"props":1545,"children":1547},{"id":1546},"how-this-differs-from-merchant-center-rules",[1548],{"type":278,"value":1549},"How this differs from Merchant Center rules",{"type":273,"tag":274,"props":1551,"children":1552},{},[1553],{"type":278,"value":1554},"The most obvious objection is: I already have rules and custom labels. Four differences:",{"type":273,"tag":274,"props":1556,"children":1557},{},[1558,1563],{"type":273,"tag":319,"props":1559,"children":1560},{},[1561],{"type":278,"value":1562},"Rules can only see what's already in the feed.",{"type":278,"value":1564}," They can't calculate margin, media cost, marketplace sales, or repeat-purchase behavior, because that data isn't in the feed and never will be.",{"type":273,"tag":274,"props":1566,"children":1567},{},[1568,1573],{"type":273,"tag":319,"props":1569,"children":1570},{},[1571],{"type":278,"value":1572},"A manual label goes stale within a week.",{"type":278,"value":1574}," A product tagged \"bestseller\" on Monday can be out of stock ten days later. The label stays.",{"type":273,"tag":274,"props":1576,"children":1577},{},[1578,1583],{"type":273,"tag":319,"props":1579,"children":1580},{},[1581],{"type":278,"value":1582},"A rule has no memory.",{"type":278,"value":1584}," It doesn't know a product has only been in this group for three days and drops out of it after one bad weekend. It can't tell a lasting change apart from a blip.",{"type":273,"tag":274,"props":1586,"children":1587},{},[1588,1593],{"type":273,"tag":319,"props":1589,"children":1590},{},[1591],{"type":278,"value":1592},"No one measures it after rollout.",{"type":278,"value":1594}," The label split gets built once, as part of some project, and no one ever comes back to ask whether it changed anything.",{"type":273,"tag":274,"props":1596,"children":1597},{},[1598,1603],{"type":273,"tag":423,"props":1599,"children":1602},{"alt":1600,"src":1601},"Merchant Center rules vs. labels calculated from data","https://a.storyblok.com/f/296300/ddf1d2e7bf/product-perspective-14-reguly-merchant-center.png",[],{"type":273,"tag":429,"props":1604,"children":1605},{},[1606],{"type":278,"value":1600},{"type":273,"tag":299,"props":1608,"children":1610},{"id":1609},"this-is-a-process-not-a-one-off-project",[1611],{"type":278,"value":1612},"This is a process, not a one-off project",{"type":273,"tag":274,"props":1614,"children":1615},{},[1616],{"type":278,"value":1617},"A catalog moves faster than a customer base. Stock changes daily, a season shift can flip turnover within a few weeks, and a new collection can turn the whole ranking upside down. A product evaluation done once stays current for a shorter time than almost anything else you calculate in the business.",{"type":273,"tag":274,"props":1619,"children":1620},{},[1621],{"type":278,"value":1622},"The work splits into three layers, and only the first one happens without your involvement.",{"type":273,"tag":274,"props":1624,"children":1625},{},[1626,1631],{"type":273,"tag":423,"props":1627,"children":1630},{"alt":1628,"src":1629},"How the work splits between the system, the marketing team, and your decisions","https://a.storyblok.com/f/296300/99f73cd334/product-perspective-15-podzial-pracy.png",[],{"type":273,"tag":429,"props":1632,"children":1633},{},[1634],{"type":278,"value":1628},{"type":273,"tag":1636,"props":1637,"children":1638},"ol",{},[1639],{"type":273,"tag":349,"props":1640,"children":1641},{},[1642],{"type":278,"value":1643},"Data and labels — the system does it",{"type":273,"tag":274,"props":1645,"children":1646},{},[1647],{"type":278,"value":1648},"Sales, stock, variants, margins, and media costs flow in daily and join up on their own. Labels recalculate from scratch, but only change once the change is lasting. Every change gets recorded with a reason and the numbers that applied at that moment. Supplemental files are ready in their current version, with no manual spreadsheet assembly.",{"type":273,"tag":1636,"props":1650,"children":1651},{"start":280},[1652],{"type":273,"tag":349,"props":1653,"children":1654},{},[1655],{"type":278,"value":1656},"Campaigns — the marketing team does it",{"type":273,"tag":274,"props":1658,"children":1659},{},[1660],{"type":278,"value":1661},"A label doesn't sell anything by itself. Someone has to build structure on top of it:",{"type":273,"tag":345,"props":1663,"children":1664},{},[1665,1675],{"type":273,"tag":349,"props":1666,"children":1667},{},[1668,1673],{"type":273,"tag":319,"props":1669,"children":1670},{},[1671],{"type":278,"value":1672},"In Google Ads and Meta Ads:",{"type":278,"value":1674}," splitting campaigns by label and assigning them separate budgets, different performance goals for different profitability tiers, separate campaigns for clearance and for new arrivals.",{"type":273,"tag":349,"props":1676,"children":1677},{},[1678,1683],{"type":273,"tag":319,"props":1679,"children":1680},{},[1681],{"type":278,"value":1682},"In creative and on product pages:",{"type":278,"value":1684}," a different message for clearing out aging stock, a different one for a new arrival with no history, a different one for a product whose job is to pull up the cart rather than maximize its own sales.",{"type":273,"tag":274,"props":1686,"children":1687},{},[1688],{"type":278,"value":1689},"This is real work, and it's heaviest at the start: the first few weeks are spent rebuilding campaign structure around the labels. After that, it's adjustments, not building from scratch.",{"type":273,"tag":274,"props":1691,"children":1692},{},[1693],{"type":278,"value":1694},"You don't need a new department for this, but you do need clearly assigned ownership — these campaigns have to be someone's actual scope, not a side task done in passing. Who that is depends on how your marketing is set up: your own team, or the agency that already runs your campaigns.",{"type":273,"tag":1636,"props":1696,"children":1698},{"start":1697},3,[1699],{"type":273,"tag":349,"props":1700,"children":1701},{},[1702],{"type":278,"value":1703},"Decisions — they're yours",{"type":273,"tag":274,"props":1705,"children":1706},{},[1707],{"type":278,"value":1708},"What margin makes a product worth a budget, when to mark down aging stock instead of advertising it, whether to pull back a campaign at low coverage, how much money to put into testing new arrivals, where to move the thresholds after the first quarter. These are business decisions, not calculations.",{"type":273,"tag":274,"props":1710,"children":1711},{},[1712],{"type":278,"value":1713},"MCP takes you as far as it possibly can: it gives you the numbers, points out what follows from them, and frames recommendations in the context of your industry. The last step stays on your side. If you want someone to talk it through with, we step in as advisors.",{"type":273,"tag":274,"props":1715,"children":1716},{},[1717],{"type":273,"tag":319,"props":1718,"children":1719},{},[1720],{"type":278,"value":1721},"Rhythm: a fixed point on the calendar",{"type":273,"tag":274,"props":1723,"children":1724},{},[1725],{"type":278,"value":1726},"You need one fixed slot where three people sit down together: someone from product campaigns, someone from buying or assortment management, and someone who decides on prices and markdowns. How often depends on how fast your catalog turns over; with fast turnover and strong seasonality, more often makes more sense. What matters more than frequency is that the slot is fixed.",{"type":273,"tag":274,"props":1728,"children":1729},{},[1730],{"type":278,"value":1731},"Five questions for every check-in:",{"type":273,"tag":1636,"props":1733,"children":1734},{},[1735,1740,1745,1750,1755],{"type":273,"tag":349,"props":1736,"children":1737},{},[1738],{"type":278,"value":1739},"What's changed since last time — what moved up, what moved down, what disappeared?",{"type":273,"tag":349,"props":1741,"children":1742},{},[1743],{"type":278,"value":1744},"Which products are at risk of running out, and what will the impact on results be if they do?",{"type":273,"tag":349,"props":1746,"children":1747},{},[1748],{"type":278,"value":1749},"Where are variants eroding, and which campaigns are already feeling it?",{"type":273,"tag":349,"props":1751,"children":1752},{},[1753],{"type":278,"value":1754},"How did new arrivals from the last test window perform?",{"type":273,"tag":349,"props":1756,"children":1757},{},[1758],{"type":278,"value":1759},"Which thresholds need correcting, and are budgets still sitting where they should be?",{"type":273,"tag":274,"props":1761,"children":1762},{},[1763],{"type":278,"value":1764},"No materials need preparing, because the reports are already there, and you pull the answers from MCP during the meeting itself.",{"type":273,"tag":274,"props":1766,"children":1767},{},[1768,1773],{"type":273,"tag":319,"props":1769,"children":1770},{},[1771],{"type":278,"value":1772},"In this process, we're your advisor, not your executor.",{"type":278,"value":1774}," We work on three things: setting up labels and thresholds for your catalog, analyzing what the numbers mean, and running the rhythm in which you measure results and pick the next move. The campaigns stay yours — we're responsible for making sure they know what they're promoting and why.",{"type":273,"tag":274,"props":1776,"children":1777},{},[1778,1783],{"type":273,"tag":423,"props":1779,"children":1782},{"alt":1780,"src":1781},"The product view you come back to every week","https://a.storyblok.com/f/296300/64a4fb5924/product-perspective-16-widok-produktowy.png",[],{"type":273,"tag":429,"props":1784,"children":1785},{},[1786],{"type":278,"value":1780},{"type":273,"tag":299,"props":1788,"children":1790},{"id":1789},"where-to-start",[1791],{"type":278,"value":1792},"Where to start",{"type":273,"tag":274,"props":1794,"children":1795},{},[1796],{"type":278,"value":1797},"You need traffic data from GA4 and cost data from Google Ads and Meta Ads — that's the minimum needed for performance evaluation and budget splitting. Stock, variant, and margin data from a CRM or ERP unlocks the entire stock and profitability layer. The rest is configuring thresholds for your catalog and delivery cycle.",{"type":273,"tag":274,"props":1799,"children":1800},{},[1801],{"type":278,"value":1802},"On the team side: clearly assigned ownership of product campaigns, and one regular check-in.",{"type":273,"tag":299,"props":1804,"children":1806},{"id":1805},"summary",[1807],{"type":278,"value":1808},"Summary",{"type":273,"tag":274,"props":1810,"children":1811},{},[1812],{"type":278,"value":1813},"The more ad platforms do on their own, the more what you feed them matters. Bidding, targeting, and creative selection are already out of your hands — what's left is budget and segmentation.",{"type":273,"tag":274,"props":1815,"children":1816},{},[1817],{"type":278,"value":1818},"The feed answers the question of what you're selling. The label layer answers the question of what's worth selling, to whom, and for how much longer you can keep doing it — and then carries that answer to wherever you spend your money.",{"type":273,"tag":1820,"props":1821,"children":1826},"content-cta",{"buttonHref":132,"buttonText":1822,"description":1823,"eyebrow":1824,"heading":1825},"Book a call","Let's talk: we'll show you the WitCloud module running on your own data — with labels, priorities, and profitability thresholds built around your catalog.","Free trial","See your catalog as a budget control panel — during your free trial.",[],{"title":19,"searchDepth":280,"depth":280,"links":1828},[],1787319088799]