BauService is a Ukrainian online store supplying professional construction equipment, spare parts and related products.
Core focus and range:
- Core business: professional equipment, components and consumables for plastering, filling and screed work.
- Related products: tools, building materials and specialist gear for renovation crews.
BauService stands out for expert support and service quality: its specialists help customers choose equipment for specific jobs, with a focus on new technology that makes construction work more productive. The store also offers competitive prices with regular promotions, an official warranty on all products and fast delivery across Ukraine.
We started the project in April 2023, targeting mobile and desktop users across Ukraine around the clock.
The first month
When we started, the client already had a Google Ads account with an active Search campaign.
The campaign types we proposed to set up and launch:
- Google Shopping;
- Performance Max (PMax);
- Merchant Center.
Plus conversion setup and tracking.
When working on the product feed, we followed one rule: if Google’s product taxonomy has no exact match for an item, choose the category one level higher in the hierarchy. Google’s guidelines.
Later the client’s developer connected e-commerce tracking. We asked to verify that the data was being passed correctly. Meanwhile, the campaigns went live and delivered the following:

In the first month the campaigns performed well and gave us a solid base for scaling.
- Over 40 conversions in the first month is a strong result for construction materials and equipment, where buyers take longer to decide.
- The Shopping campaign for plastering machines became the main sales driver, bringing 22.71 conversions with the highest conversion rate (0.42%).
- Almost 1 million impressions and over 13,000 clicks gave us enough data to start training Google’s automated bidding and build remarketing audiences.
The setup worked: the system quickly found the target audience and recorded a steady flow of conversions from the first month.
To control budgets and bids more precisely, we planned to split campaigns into price segments (UAH):
- under 100;
- 100–500;
- 500–5,000;
- 5,000–20,000;
- over 20,000.
Brand segmentation. We also looked at moving key brands into separate campaigns to allocate budget more flexibly and make sure priority brands were properly funded.
In July the account’s payer changed. In October, for the plastering machines campaign and ITF PMax >500 Top brands, we set a combined goal of “Purchase + Phone number click”, while the other campaigns optimised for “Purchase” only. In April 2024, given the large number of phone enquiries, we added “Phone number click” as a conversion for every campaign in the account.
In March 2025 we enabled audience collection based on Enhanced Conversions. At the end of May the client paused advertising while changes were made to the structure of the main domain. This caused technical issues:
- product_type changes: product types changed for every item, and campaign segmentation was built on them.
- Broken URLs and 404 errors: product landing pages changed addresses without redirects.
In early June the feed was updated and the developer confirmed that all URLs were current.
Binotel call tracking
From the start we recommended full conversion tracking so the client could see real analytics and judge advertising performance objectively. The main problem was that before call tracking, part of the conversions came from the “Phone number click” event. That event gave a misleading picture: the account recorded far more clicks than real phone calls. Since sales were split roughly 1:1 between phone calls and direct purchases on the site, the lack of accurate call tracking hid the real picture and made it harder for automated bidding to learn.
In August 2025 we started setting up Binotel call tracking. By 11 August no data was reaching Google Analytics, so we added an extra tag in Google Tag Manager to send custom events from the dataLayer.
By 18 August we had completed the main steps of the call tracking setup, and on 19 August Binotel events started recording. We imported the goal into Google Ads and added it to all campaigns. By 22 August transactions (Purchases) were already trending up and stable.
At the end of August 2025 we saw a high volume of phone enquiries through Binotel. To assess performance correctly, we set the value of the “Call” conversion at UAH 100.
In September we linked Google Business Profile, Google Analytics 4 and Google Ads for joined-up analytics and local promotion.
September changes:
- Testing new formats: we launched a Video Action Campaign (VAC) with the product feed attached to extend reach and bring in extra conversions.
- Strengthening Performance Max: we added video to every PMax campaign with asset groups to improve ad quality and help the algorithms perform better.
- Audiences: we connected existing customer lists from Google Sheets as audience signals for PMax, so the algorithms could better target the right buyer profile.
In October the account got access to a beta feature for creative experiments, and we launched one.
First results:
The updated creatives and settings in the experiment group clearly outperformed the original. We increased sales volume (+29.2% conversions) and profitability at the same time: ROAS almost doubled, from 472% to 822%. The new variant also brought in buyers more cheaply, with cost per conversion down 17.9%. The experiment proved itself and became the basis for scaling and rolling the new settings out across the campaign.
After a two-month trial the client decided not to pay for Binotel, and call tracking stopped in December 2025. Data from 1 October to 1 December showed that direct purchases and phone enquiries were roughly equal (1:1). So we decided to:
- optimise campaigns for the “Purchase” goal only;
- apply a multiplier when analysing results, since actual conversions are roughly twice the purchases recorded in the account;
- not bring back the “Phone number click” event.
Losing Binotel had a noticeable effect on automated bidding: the inbound call event imported from Google Analytics into Google Ads had given the campaigns better signals to optimise on. For some product categories phone enquiries, not online purchases, are the main source of conversions, and optimising for site transactions alone makes it harder for bidding strategies to learn in these high-cost categories.
Product pages also gained an option to order items that were out of stock (we were not told about it in advance), so some qualified enquiries went untracked for a while. As soon as our specialist spotted the new feature, we set up tracking for the “Pre-order” form with conversion value, which is critical for Performance Max to learn correctly. During a routine check in June 2026, however, we found that the form was technically blocking submissions. We gave the client’s developers a detailed brief to fix the error and record conversions. Because e-commerce tracking is implemented directly on the site (not through GTM), the developers fixed the form and set it to send this event as a “Purchase” with its value straight to Analytics and Google Ads.
Examples of our ads:
Since August we have been working towards new KPIs agreed with the client:
- baseline target CPA (cost per site transaction): UAH 400–450 (the May–July level);
- financial KPI (ROAS): 600–700%;
- average ROAS over 4 months: 898%.
Work on the account
Campaign structure and segmentation
- New PMax campaigns created and set up: Dehumidifiers, Concrete Pumps, Gypsum Plaster.
- Separate campaigns set up: Plastering Machines, Units, Nozzles and Holders, Ladders (standard Shopping), Window Sill Profiles, Trolleys, Graco, Kubala, Painting and Plastering Tools.
- Shopping campaigns used instead of PMax for Plastering Machines, Units and Kubala.
- Screed and Cement Plaster, and Stabilisers, split out as separate categories (Stabilisers later returned to the main campaign).
- Campaigns split by product price (including ITF Shopping >500, divided into Bestsellers and the rest, and ITF Shopping <100).
- Brand work: Olejnik added to the general campaign, Kubala moved to its own campaign, Wagner activated in the nozzles campaign.
- Campaigns regrouped and restructured, including during the site issues and feed blocks.
- The Shopping campaign, the ladders campaign (category returned to the main one) and other weaker campaigns and asset groups paused.
- Some campaigns switched to the new customer acquisition goal.
Merchant Center and feeds
- Products and their status in Merchant Center reviewed (disapproved items sent for re-review).
- New feeds added for other countries.
- Product titles, images, Google Product Category, Custom Labels, Product Types and GTINs corrected.
- Merchant Center rules set up: brand names added to titles (including Kubala), competitor data passed.
- Advice on feed attributes, category names on the site and avoiding account suspensions.
Campaign optimisation
- Budgets and bid strategies adjusted.
- Search terms reviewed (irrelevant ones added as negatives), search themes and PMax analysis scripts added.
- Automated recommendations reviewed (relevant ones applied, the rest dismissed).
- Underperforming products and categories with low ROAS or high spend without conversions excluded.
- Underperforming locations and the 65+ age group excluded.
- Poor Performance Max placements blocked at account level (including mobile apps and games).
- PMax placements analysed and reviewed.
Creatives, assets and audiences
- Asset groups with creatives added to PMax (Kubala, Dehumidifiers, Nozzles and Holders, Ladders).
- Video added to PMax, including AI-generated video.
- A creative experiment run in PMax <500.
- Customer lists from Google Sheets added as PMax audience signals; conversion-based audiences set up.
Analytics, tracking and technical setup
- Account switched to Google Ads conversions as primary.
- Google Tag Manager errors fixed and the Google Ads remarketing tag set up.
- Binotel data sent to GA4 and the “Binotel Call” conversion imported into Google Ads.
- “Begin checkout” and “Phone number click” actions added.
- Recommendations given on setting up conversions in Google Ads.
Results
We measured results over the three months of active Binotel tracking, because that is when full end-to-end tracking (calls and site purchases) gave us objective, accurate figures for campaign performance.
- −9.4% impressions;
- −8.8% total ad spend;
- −32% total conversions (stricter filtering and removal of low-quality intermediate actions such as phone clicks);
- +36.9% total conversion value;
- +50% ROAS (from 4.33 to 6.50, up 2.17 points).
Lower impressions and spend show that irrelevant traffic was cut and budget used more efficiently. Fewer conversions were recorded (because of stricter filtering and dropping shallow events), but conversion value grew significantly, which means the ads were bringing in better-quality buyers with more purchasing power.
Performance by tracked event compared with the period before Binotel:
- Purchase Ads: the main revenue driver, with value up 45.43% on 940 conversions (+29.05%).
- Binotel (binotel_ct_call_received): 817 “Call” conversions through the call tracking integration, showing real buyer interest.
- ITF click_tel: 2,015 clicks (−54.13%), reflecting the shift from noise to accurate tracking of real enquiries.
- ITF begin_checkout: 85 “Begin checkout” conversions (−84.62%), confirming that unnecessary intermediate steps were cut and the focus moved to final transactions.
Overall, the campaigns (fully focused on Performance Max) became far more effective. Tracking real calls and purchases let Google’s algorithms optimise for actual business results: lower spend delivered much higher value and a solid base for further growth.
Campaign optimisation, end-to-end analytics setup and product feed work together significantly improved return on ad spend for BauService and gave the business a reliable base for scaling, even after the tracking tools changed. We continue to work towards the agreed KPIs.