ROAS 1700% for dental equipment: how we did a full-service launch for ExpressDent
89,400 UAH of advertising → 1,565,086 UAH of revenue.Google Ads + SEO + OpenCart technical optimization +end-to-end analytics.
Key project metrics
Who the client is
ExpressDent is an online store of dental equipment and consumables in Ukraine. It runs on OpenCart and syncs with 1C. The niche: selling professional equipment for clinics (compressors, vacuum systems, Westcode brand products, etc.).
What the client needed
Increase the flow of qualified buyers of dental equipment at a controlled cost per lead. In parallel, close the “legacy debt”: 404 errors left by the old URL generation, poor friendly URLs, broken 1C sync, and a failure in confirmation emails (missing surnames and Nova Poshta branch numbers).
In other words, it wasn’t “just pour traffic into Google Ads.” We first had to work out why “the traffic doesn’t convert,” what was technically breaking the funnel, and only then scale the advertising.
What we did: not just traffic
An ordinary agency would have launched ads and waited. We went in comprehensively — because scaling campaigns on a broken funnel = burning budget. Here are 5 workstreams run in parallel.
Strategic audit + roadmap
We took apart the current Google Ads account, ran an SEO audit and documented the findings in a presentation. We created a roadmap with work stages and a working file for collecting semantics and ads. We connected Looker Studio for a real-time dashboard — the client sees the economics himself.
OpenCart technical optimization
We fixed a conflict between URL generation modules (hundreds of broken Cyrillic links), set up correct friendly URLs and 301 redirects from the old ones. We coordinated the daily 1C-to-SQL export with the client’s engineer so the optimized links wouldn’t be overwritten. We fixed the cart bug with Nova Poshta emails.
SEO — reorienting to the working language
Our SEO specialist saw that the Ukrainian version had 2 queries for “compressors” against 12 on the Russian one. We agreed with the client to promote the version with real demand. We collected 860 keywords for 100 pages after analyzing 150+. We set rules for auto-generating H1 / Meta Title / Description from the semantics.
End-to-end analytics
GA4 + GTM with conversion tracking (chats, orders, purchase value). Passing UTM Content to the client’s SQL — to separate new buyers from ads from organic and repeat ones. A separate orders report in GA4.
Launching and optimizing Google Ads
The main LP_PM_Osnova campaign across the whole range (a return of over 30× — brought in >50% of revenue). The adjacent LP_PM_Vacuum. Separate campaigns for compressors and the 24 highest-margin Westcode products. An LP_Search_brand search campaign for brand protection — a 32-34% CTR. Weekly query clean-up and budget reallocation.
Screenshots from the ad account and analytics
Data from Google Ads and GA4 for March to May 2026.

An overall ROAS of 17× for March to May 2026.

Conversion distribution by campaign: LP_PM_Osnova (60%+), Vacuum, Search_brand.

The CTR of the LP_Search_brand brand campaign — 32-34% (against a ~5% market benchmark).

Orders and revenue from advertising — GA4, the attributed transactions report.
Where we go next
We prepared a “Results and growth potential” document for the client with a two-phase plan:
Budget reallocation without increasing spend
A forecast gain of+2.2M UAH of revenue a year purely from optimizing the current campaign structure and strengthening the winning groups.
Controlled scaling
A gradual budget increase on the campaigns with a confirmed ROAS. A forecast of up to+6M UAH of revenue a year. No “pour in more and let’s see.”
We’ll take apart your account and funnel
In a free audit we’ll find where you’re losing money right now and show the growth potential in numbers — as we did for ExpressDent.