An online sneaker store on Horoshop (a Ukrainian e-commerce platform). The owner runs the ads himself: one Performance Max campaign, a budget of about 17,000–18,000 UAH ($389–400) a month. He came for an independent audit with a simple question: why are there so few orders, and do the ads pay off at all?
Contents
What jumps out first
I open the ad account and see a conversion rate of 0.17% over 90 days. For an online store that’s very low. Even the minimum benchmark is at least 1%, if the website and traffic are fine.
First thought: the problem is the website. I checked it: there are filters, prices are reasonable, even below market. The site is fine overall. The only thing I noticed: when I placed a test order, it took a very long time to process. Maybe a one-off Horoshop glitch, but it’s worth watching — that kind of thing cuts conversion.
So the problem isn’t the store. We keep looking.
The purchase value that wasn’t there
The client named an average order value of 3,250–3,500 UAH ($72–78). But over 28 days the account shows 50.75 purchases worth 90,090 UAH ($2,002). That’s about 1,775 UAH ($39) per purchase. Not even close to two thousand.
The number of purchases in the account is understandable: these are dirty conversions that include orders that later fell through. The value is a separate question.
I opened Google Tag Manager and found the cause. The owner had edited the Google Ads purchase tag: he added the transaction ID, but there was no value in the tag. Whether he deleted it or it was never there no longer matters. I created a variable and added value to the tag. Now the value is passed correctly. I didn’t charge the client extra for this, although I could have.
How do I know the problem is the tag? In Google Analytics 4, the purchase event shows 63 purchases worth 228,000 UAH ($5,067) — about 3,600 UAH ($80) per order. That roughly matches the order value the client named. So the data in analytics is right, but not in the ad account.
Second question: why the second purchase conversion in the account shows zeros. The site has two GA4 properties connected — an old one and a new one. Google Ads imports the event from the old one, while data goes to the new one, whose purchase isn’t added.
Where the traffic really goes
Now about the 0.17% conversion rate. I open the Channel performance report.
54% of the budget goes to YouTube. Another 5% to the Display Network, 7% to recommendations (formerly Discover). Only 33% to Search.
Sneakers are a mass-market niche with hot demand. People search for a specific model and are ready to buy. Almost all the traffic here should go to Search and Shopping, not YouTube.
To be fair: according to the report, YouTube brings purchases — 25 versus 23 from Search. But that’s dirty data. There are no offline conversions, so there’s no way to tell which of these purchases became real sales. The client himself said that about half of the orders don’t turn into sales for some reason. Some of that is organic: for example, the right size isn’t in stock — typical for footwear and clothing. But fake orders most likely come from YouTube. There’s always a lot of junk traffic from there.
Google AdsNew Performance Max Feature: You Can Now Reduce the Impact of Individual PlacementsPerformance Max now has a “Channels” section: adjust the impact of Gmail, YouTube, Maps and Search from -50% to +50%.
I haven’t seen placement controls in this account yet, so we work with what we have. Where does the YouTube traffic come from?
Asset optimization. The campaign settings have text customization, final URL expansion and three more AI features turned on. Among them — automatic video creation. Google doesn’t improve your videos; it generates them itself from your images and text. It always looks extremely poor. I don’t recommend these features at all: they’re pure junk.
Devices. The ads show on computers, phones, tablets and TV screens. Over 28 days tablets ate 453 UAH ($10) with a 0.00% conversion rate, TV screens 114 UAH ($2.5) without a single purchase. The amount is small, but it’s junk you don’t need. TV screens are pure YouTube anyway.
Asset group. The campaign has a group with images, text and audience signals. Groups like this are exactly what open the way to YouTube and the Display Network for PMax. To start, I’d replace it with a feed-only group — products only. That way the campaign shows less on other placements and gets more relevant traffic without fakes.
Google AdsWhere Are the Weak Spots in Your Google Ads Performance Max Campaigns?10 Performance Max weaknesses: tracking, geotargeting, AI features, scaling, traffic cannibalization.
Russian-language feed vs Ukrainian
The campaign has two product groups: “all footwear” in Ukrainian — the Ukrainian feed — and “all footwear” in Russian — the Russian-language one. I compare them over 30 days.
Ukrainian feed: ROAS 9.44. Russian-language: 5.23.
I take 90 days to make sure.
Ukrainian feed: ROAS 10.11. Russian-language: 6.80. Yes, ROAS here is dirty, because the value was passed incorrectly. But we’re comparing relatively: both feeds had the same problem, and the Russian-language one consistently converts one and a half times worse.
Look at impressions. Over 90 days the Russian-language feed collected 2.55 million impressions, while the Ukrainian one got under 400,000. CTR — 0.55% versus 1.73%. Most likely, it’s the Russian-language group that generates those YouTube impressions: its impression count is out of proportion to its spend.
I’d simply turn off the Russian-language feed. Traffic will shift to the Ukrainian one, and that will give a noticeable boost.
The strategy that chokes the campaign
The campaign runs on Target CPA — target cost per conversion.
First, Target CPA is better suited to lead generation than to an online store. Second, the data is dirty, and you’re also capping it by cost. Third, for Target CPA or Target ROAS to work steadily, a single campaign needs at least 3–5 conversions a day. There aren’t that many here even with dirty data.
And the most telling part: monthly spend is lower than the daily budget times 30. In other words, the campaign can’t even spend the planned budget — Target CPA is squeezing it.
What I’d do: first fix tracking, then switch to Maximize conversion value. And once a pool of real data from offline conversions builds up — at least 50 conversions — move to Target ROAS.
What else is worth doing
Negative keywords. There are none at all. When you run the account yourself, cleaning up search terms is the foundation of clean traffic. Without it, you pay for some clicks for nothing.
Product segmentation. The store’s products are more or less in one margin category. Look at which footwear groups perform better. For example, here you can see men’s converts better. Next — a split by brand, if the brand is filled in the feed. The budget is small, so targeting has to be narrowed as much as possible to what works.
Geography. The settings include Ivano-Frankivsk and 39 more locations. Analyze relative data and exclude the locations with the worst metrics. For example, Dnipro clearly stands out: roughly 3,000 UAH ($67) of spend per purchase. But again, part of the traffic comes from YouTube, so it’s hard to assess geography properly for now.
Products. If a product got 100+ clicks over a period and not a single conversion, it makes sense to pause it. But YouTube clicks don’t work for this analysis: there’s no telling which of them are real and which are junk.
Payments profile. The profile is registered to an individual, so 20% VAT is charged on top of the ad spend — the so-called “Google tax”. For October that’s 1,798 UAH ($40) on top of 9,073 UAH ($202) of campaign spend. This can be optimized to save money every month. I wrote separately about payments profile risks.
Do the ads pay off
Good news: the ads aren’t losing money.
I took data from the ad account and from what the client told me, and ran it through my ROI calculator. Budget — 17,928 UAH ($398) plus 20% VAT. Margin — 33%. Average order value — 3,250 UAH ($72). The owner pays no contractors because he runs the ads himself. Conversion rate — 0.16%, i.e. about 28 real orders a month.
Profit from the ads alone, before operating costs, is 8,648 UAH ($192). ROMI — +40%. Break-even conversion rate — 0.11%.
So the ads are profitable, but you can’t call them super profitable. The reasons are everything described above. If they make a profit even with settings like these, then after reconfiguring them according to the plan, results should be much better.
Offline conversions without a CRM
About half of the orders from the site never turn into sales. As long as Google Ads learns from every order indiscriminately, it can’t tell a real buyer from someone who ordered and disappeared.
The right solution is to send actual sales to Google Ads. But the client has no CRM, and he couldn’t set up conversions following my YouTube video.
For cases like this I have my own tool — a web interface for sending order quality data to Google Ads.
Here’s how it works. Tagging is set up in the ad account, and the Google Click ID (gclid) — the ID of the click the buyer came from — arrives in Horoshop along with the order. When an order is actually paid, the manager copies the gclid and pastes it into the interface. For this client I’ll also add a value field — how much money the order brought in. Once a day the data is automatically sent to Google Ads.
The result is an offline conversions system without a CRM. The solution is as simple as it gets and has already been proven on dozens of small projects where there’s no CRM or nobody wants to install one, but working with actual data is still necessary.
Summary
What needs to be done soon:
- tracking: purchase value is now passed, the second GA4 is sorted out;
- turn off automatic asset optimization;
- remove tablets and TV screens;
- replace the asset group with a feed-only group;
- turn off the Russian-language feed;
- switch from Target CPA to Maximize conversion value;
- add negative keywords and clean up search terms regularly;
- segment products by gender and brand, turn off the worst locations;
- optimize the payments profile;
- set up sending real sales to Google Ads.
Google Ads audit · Food deliveryIndependent Google Ads audit: pizza delivery in Kraków — 10 mistakes in the accountIndependent Google Ads audit of a Kraków pizza delivery: micro-conversions, a 10 km radius, mixed brand and non-brand. 10 mistakes and what to fix.
The ads already make a profit. There’s a lot of work, but plenty to improve.
After the audit the client ordered a turnkey setup: offline conversions without a CRM, cleanup of fake data, feed and PMax Feed Only — in the case study “Turnkey Google Ads for a Footwear Store”.
Another online store audit where the ads learn from calls and pre-orders instead of sales — a lock store on Prom.
Where to find me
Message me on Telegram or by email — I respond quickly. Telegram channel and YouTube are for those who want to see real cases before reaching out and understand my approach.