Uncategorized

How to manage ads for a dynamic assortment that changes daily

TL;DR

If your product range changes every day — stock, prices, new items — managing advertising by hand turns into hell. In LeadPrice practice 6 out of 10 e-commerce clients come to us with “we’re advertising a product that’s already sold out” or “the new bestsellers have sat without traffic for a week.” The standard agency approach — editing campaigns manually every day — is 15-20 hours of work a week with no way to scale. The working option: automation through product feeds + Dynamic Ads + segmentation rules by margin/availability. In this article we break down a 5-step framework that lets you manage 5,000+ SKUs without manual labor and keep ROAS stable even with daily catalog changes. Implementation takes 2-4 weeks; it pays back through lower management costs plus an 18-25% rise in conversion thanks to an always-current offer.

Why the standard approach doesn’t work

A typical situation: you have an online store with 2,000 SKUs; every day 150-300 products change price, 50-80 sell out, 30-50 are added. You launched Google Shopping and a Meta catalog a month ago; for the first two weeks everything worked, then customer complaints began — “the price on the site is different,” “the product is out of stock” — and conversion fell 30%.

At this stage an ordinary agency proposes: “We’ll update the campaigns manually every day.” Reality: a manager physically can’t process more than 100-150 items a day. The rest of the products either sit with stale data or get switched off altogether “just in case.” The result: 60-70% of the range isn’t advertised, and the budget pours into the 10-15% of bestsellers, which burn out fast.

In LeadPrice practice we saw a client in the electronics niche who was spending $4,500/mo on Google Shopping, but 820 of 1,200 active products had three-day-old prices in the feed. Click-through was decent (CTR 1.8%), but conversion was 0.4% instead of the expected 2-3%. The reason was banal — the user saw a $299 price in the ad, came to the site, saw $349, and went to a competitor. Losses of $1,200-1,500/mo purely from data discrepancies.

Framework: 5 steps to automating advertising for a dynamic catalog

Our approach rests on the principle “the system must be smarter than the manager.” It isn’t a person updating the data — the platform itself pulls current information every 2-6 hours and adapts the strategy to the changes. This isn’t magic — it’s the right feed architecture + automated rules + product segmentation by business logic.

Step 1: Build a product feed with business attributes

What: A product feed is an XML/CSV file with your entire range that ad platforms read to create ads. A standard feed contains: ID, title, price, availability, link, image. A working feed for a dynamic catalog additionally has: margin%, stock_level (quantity in stock), priority (display priority), last_update (date of last change), category_performance (the category’s historical conversion).

How: If you have a CRM/ERP (1C, KeyCRM, Poster, any other), we set up automatic feed export every 2-4 hours via API or a scheduled task. If not, we write a script that parses the site’s database (WordPress WooCommerce, Shopify, OpenCart, etc.) and generates the feed. Important: the feed must update AUTOMATICALLY, with no manual intervention. Platforms like Google Merchant Center and Meta Commerce Manager can read a feed by URL every 24 hours, but for a dynamic catalog we set updates every 4-6 hours via Supplemental feeds or the Content API.

What this gives you: Data accuracy 99.8% of the time. A product sold out at 14:00 — by 18:00 it’s no longer shown in ads. A price changed — within 4 hours it’s updated everywhere. In the Adaptis case (a clothing store), after implementing the auto-feed the number of “wrong price” complaints fell from 12-15/week to 1-2/month, and conversion grew 22% in the first month.

Step 2: Segment the range by business logic

What: Not all products are equal from the business’s point of view. There are bestsellers with a 40% margin and 100 units/month in turnover, and there are laggards with an 8% margin and 2 units sold a quarter. Advertising them the same way is burning budget. A working segmentation divides the range into 4-6 groups using a “margin × popularity” matrix.

SegmentCriteriaAdvertising strategy% of budget
StarsMargin >30%, sales >20/moMaximum visibility, Target ROAS 400-500%, separate campaigns40-50%
PotentialMargin >25%, sales 5-20/moAudience testing, Target ROAS 300-350%25-30%
Cash cowsMargin <20%, but sales >50/moMinimum bid, Target ROAS 200-250%, remarketing only10-15%
Long tailAny margin, sales <5/moDynamic Ads with a minimum bid, or no advertising at all5-10%
NewIn the catalog <30 daysAggressive testing for 14 days, then moved to the appropriate segment10-15%

How: In the product feed we add a custom_label_0 field with the segment value (stars/potential/cash_cows/long_tail/new). A script automatically calculates the segment from CRM data: margin from cost of goods, popularity from the number of sales in the last 60 days. Then in Google Ads we create separate Shopping campaigns for each segment with the appropriate bidding strategy. In Meta we use Product Sets filtered by custom_label.

What this gives you: The budget goes to products that actually make money. In a cosmetics project (1,800 SKUs), after segmentation ROAS grew from 3.2 to 5.8 in 2 months — simply because we stopped pouring 35% of the budget into low-margin items with a 0.3% conversion.

Step 3: Dynamic Ads + automatic display rules

What: Dynamic Product Ads (Meta) and Performance Max / Standard Shopping (Google) automatically create ads for every product in the feed. Instead of 500 manual campaigns you have 1 campaign that adapts itself to changes in the range. The key is the right automatic rules: show only products in stock (availability = in stock), exclude products with stock <3 units (so they don’t sell out instantly), raise the bid on new products by 20-30% for the first 14 days.

How: In Google Merchant Center we set up a Supplemental feed with rules: if quantity < 3 → set availability = out of stock. If last_update is newer than 14 days ago → add custom_label_1 = new. In Meta Commerce Manager the same is done through Product Sets. Then in the ad accounts we create campaigns targeting these attributes. Google Performance Max automatically distributes the budget among products based on conversion, Meta DPA based on engagement.

What this gives you: Zero manual work updating ads. A product appears in the database at 10:00, by 14:00 its ads are running. A product sells out — within 4 hours the ads stop. This is critical for niches with high rotation: fashion, electronics, groceries. Working with the client FZone (a clinic, but the principle is the same for services) we use auto-rules to switch off slots that are 90%+ booked — it saves 12-18% of the budget every month.

Step 4: A bidding strategy for a changing range

What: The classic mistake is to set a Target ROAS of 500% on the whole campaign and wait. Reality: the algorithm learns for 14-21 days, and in that time the range changes by 30-40%, the model goes stale, the bids are suboptimal. The working strategy: a combination of Maximize Conversion Value (Google) or Bid Cap (Meta) for new products (the first 14 days) + Target ROAS for stable segments + Manual CPC for products with a low sales frequency.

How: We create 3 types of campaign in parallel. Campaign A (Learning): all products labeled new, Maximize Conversion Value strategy, budget 15-20% of the total, a product lives in this campaign for 14 days and then automatically moves to B or C. Campaign B (Stable): products from the Stars + Potential segments with >30 days of history, Target ROAS set individually per segment (Stars = 450%, Potential = 320%). Campaign C (Tail): Long Tail products, Manual CPC with minimum bids, or remarketing only.

What this gives you: The algorithms always have fresh data for optimization. New products get an aggressive push, stable ones an efficient ROAS, the tail doesn’t eat the budget. In the Adaptis project, changing the bidding strategy cut CPA by 28% in the first month ($47 → $34), even though the range was refreshing by 25-30% every week.

Step 5: Monitoring and automatic alerts

What: Even full automation needs oversight. Situations like “the feed stopped updating because of a server error” or “the platform rejected 300 products for a policy violation” require an immediate reaction. The standard approach is a manager logging in once a day to take a look. The working one is the system itself sending alerts to Telegram/Slack on critical events.

How: We set up monitoring via Google Apps Script (for Google Merchant Center) or the Meta Business SDK (for Meta Commerce). Every 2 hours the script checks: has the feed updated in the last 6 hours, are there mass product rejections (>5% of the catalog), has the number of active products dropped more than 15% in a day, is there a sharp drop in CTR/CR (more than 30% in 24 hours). If so, it sends a message to the work chat with the details of the problem.

What this gives you: Problems are detected in 2-4 hours instead of 1-2 days. That’s the difference between losing $50 and losing $500. At LeadPrice we use our own dashboard, which aggregates data from Google Merchant Center, Meta Commerce Manager, GA4 and the client’s CRM — one screen shows the health of the whole system in real time.

Example in practice: an electronics e-commerce store

Starting point: An online store for electronics and accessories, 3,200 SKUs, the range updates by 8-12% daily (new models, discontinued items, price changes due to the dollar exchange rate). They came to us with a problem: Google Shopping was spending $3,800/mo at a ROAS of 2.8, but 40% of clicks went to products that were either out of stock or had an outdated price. Conversion was 1.1% instead of the 3-4% expected for the niche.

What we did: Implemented the framework in 3 weeks. Week 1 — set up an automatic feed via API from their 1C (updating every 4 hours), added the fields margin%, stock_level, priority. Week 2 — segmented the range into 5 groups (the table above), created separate Shopping campaigns for each segment. Week 3 — set up auto-rules (hiding products with stock <2 units, raising the bid on new items, excluding low-margin products at ROAS <180%) and Telegram alerts.

The result after 2 months: ROAS grew to 4.6 (from 2.8), conversion to 3.2% (from 1.1%), the number of complaints about outdated information fell from 18-22/week to 2-3/month. The budget is the same $3,800/mo, but now it generates $17,500 in sales instead of $10,600. Manager time saved — 18 hours/week (previously he updated the top 200 products by hand every day). Those 18 hours went into analyzing new hypotheses and testing audiences, which gave an additional 0.4-point rise in ROAS.

When this framework isn’t the right fit

Let’s be honest: automation isn’t a universal cure. There are situations where it’s either impossible or not worth it:

  • A range under 100 SKUs. If you have 30-50 products, it’s faster to set things up manually once a week than to spend 2 weeks on automation. Payback would come in 6+ months — too long.
  • No CRM/ERP with current stock levels. If you update availability on the site manually, the feed will be just as stale. First get your inventory accounting in order, then automate the advertising.
  • A niche with a very low purchase frequency. For example, industrial equipment at $50K a unit — that’s 1 purchase a quarter, and the algorithms have nothing to learn from. Manual management with deep analysis of every lead works better.
  • You don’t know the margin on your products. Segmentation without margin data is roulette. You could end up advertising products that lose money once logistics and returns are fully accounted for.
  • A budget under $500/mo. Automation makes sense at scale. On a $300-400/mo ad budget the algorithms won’t have time to learn before the range changes again.

At LeadPrice we’ve had clients we told “no, it’s too early for you to automate” — that’s normal. Better to say honestly “this won’t work right now” than to take the money and show a zero result in 2 months. Our “2 out of 10” filter applies here too.

FAQ

How long does it take to implement product feed automation?

A realistic timeline is 2-4 weeks depending on the complexity of the integration. If you have a ready export from your CRM/ERP, it can be done in 10-14 days (a week to set up the feed + auto-rules, a week to launch the campaigns and let the algorithms do their initial learning). If a custom script has to be written or a complex database parsed — up to 4 weeks. The longest part is usually not the technical side but collecting margin data and segmenting the range — this needs your team’s involvement (a finance person + a product specialist). We see the first results within 7-10 days of launch (the improvement in data accuracy is immediate); full payback of the implementation investment takes 1.5-3 months.

Can advertising be automated without technical skills on the team?

Yes, but you need someone to do the work. If there’s a developer or system administrator on the team, they can set up the feed export according to our technical specification. If not, we do it or bring in a contractor (1-3 hours of development, $50-150 depending on the platform). Once set up, the system runs autonomously; no technical skills are needed. All the team needs is CRM access to check that the data is exporting correctly, and a basic understanding of how the segments work (that’s our area — we teach it during onboarding). In 80% of cases the client doesn’t touch the technical side at all after launch — they just receive reports.

Which platforms support Dynamic Ads for products?

The main platforms: Google Ads (Performance Max, Standard Shopping, Display Remarketing), Meta (Dynamic Product Ads on Facebook + Instagram), TikTok (Collection Ads + Video Shopping Ads with a catalog), Pinterest (Shopping Ads), Criteo (specializes in dynamic remarketing). In LeadPrice practice 90% of the budget goes to Google + Meta, because that’s where the largest audience and the best algorithms are. We add TikTok for fashion and beauty niches if the target audience is 18-35. Pinterest — for home decor, DIY, weddings. Criteo we use rarely, only for very specific niches with a long purchase cycle. All these platforms read a standard feed (Google Shopping XML or Facebook Product Feed), so once the feed is set up you can use it everywhere.

How often should a product feed be updated for a dynamic range?

The minimum is once a day (the Google Merchant Center standard). The optimum for a dynamic range is every 4-6 hours. The maximum is every 2 hours (more frequent updates don’t bring a significant improvement but load the server). In niches with extremely fast rotation (for example, flash sales, limited drops) you can update every hour via the Content API, but that’s an edge case. The practical approach: the main fields (price, availability) update automatically every 4 hours, the additional fields (descriptions, categories, images) once a day at night. That’s the balance between accuracy and system load. Critical: the feed must update AUTOMATICALLY on a schedule, without a manual trigger — otherwise you’ll forget and the problem will come back.

Do you need to hire a dedicated specialist to manage automated campaigns?

It depends on the scale. If the range is up to 1,000 SKUs and the budget up to $2,000/mo, a marketer at 50% capacity who analyzes the data once a week and adjusts segmentation/bids is enough. If it’s 3,000+ SKUs and a $5,000+/mo budget, you need a full-time specialist or an agency. The paradox of automation: the system handles the routine itself, but someone has to analyze the results and make strategic decisions (which segments to scale, which categories to test, when to change the Target ROAS). At LeadPrice our strategists run 4-6 such projects in parallel — that’s possible precisely because the routine is automated. If you hire in-house, expect a salary of $800-1,500/mo for a middle-level specialist, or $600-1,200/mo for agency services (depending on complexity and SLA).

What to do if the platform mass-rejects products from the feed?

First, go into Merchant Center / Commerce Manager and look at the reason for the rejection (Diagnostics → Item Issues). The most common causes: an incorrect GTIN (barcode), policy violations (prohibited goods like tobacco, weapons, medicines), low image quality (size <250px, watermark), missing required fields (brand, MPN for new products). The solution: fix the fields in the feed, wait 24 hours for a re-scan. If the problem is massive (>30% of the catalog), it’s faster to file a request with the platform’s Support asking for a manual review — that takes 2-3 days. Critical: DON’T delete and re-upload the whole feed — you’ll lose the history and the algorithms will start learning from scratch. Fix things incrementally through a Supplemental feed. In LeadPrice practice we’ve set up an auto-alert that sends a message if >5% of products are rejected — that gives time to react before the problem hits traffic.

Conclusion: automation as a competitive advantage

If your range changes every day and you’re still managing advertising by hand, you’re losing to competitors who’ve automated. The difference isn’t budget, it’s reaction speed: while you update 100 products by hand, an automated system has updated 3,000 and adapted the bids to the new data. This isn’t about technology for its own sake — it’s about math: data accuracy +20% → conversion +18-25% → ROAS +40-60% on the same budget.

The 5-step framework (auto-feed → segmentation → dynamic ads → bidding strategy → monitoring) works for ranges from 300 SKUs. Implementation takes 2-4 weeks, payback 1.5-3 months. The hardest part isn’t the technical side but collecting margin data and honest segmentation of “what actually makes money.” The rest is a matter of the right architecture and the patience to let the algorithms learn.

If you have 500+ products that change weekly and want to find out whether this approach fits your business — book an analysis. We’ll audit your catalog, show an example segmentation on 50 of your products, and give an honest forecast (with ranges, not “it’ll definitely be like this”). The meeting takes 45-60 minutes; afterwards you’ll have an implementation roadmap or an honest answer “this won’t suit you, because X.” More of our cases and approaches — in the cases section.

Зв'яжіться з нами

Want more clients?

Leave a request — we'll do a free analysis of your business

Дякуємо! Ми зв'яжемося з вами найближчим часом.