About Services Cases Blog Tools Reviews Partners Contacts

Google Ads and website audit for a local VR club

Audit summary 17 issues found · tracking, website, ad account 🔴 Critical6🟠 High5🟡 Medium5⚪ Low1
Contents
  1. The client’s request
  2. Overall conclusion
  3. Summary list of issues found
  4. Block 1. Conversion tracking and analytics
  5. Block 2. The client’s website
  6. Block 3. The Google Ads account
  7. Action plan by priority
  8. FAQ

The client’s request

Analyze the current ad campaigns and give practical recommendations to increase the number of leads. Check: the ad account structure; Search campaigns; keywords and search terms; negative keywords; ads and their performance; bids and budget; conversion setup and tracking accuracy; target audience; opportunities for launching new campaigns.

Expected outcome: a list of issues found, improvement recommendations, a list of concrete actions, an assessment of whether the current settings are correct, and recommendations on new campaigns or changes.

Overall conclusion

The audit covered three interconnected blocks: conversion tracking and analytics, the client’s website and the Google Ads account. All three problem areas reinforce each other, and that is the root of why the current budget isn’t delivering the desired result.

The conversion data flowing into Google Ads is unreliable (duplicate phone clicks, no calls as a separate event). Any automated bidding strategy learns from this skewed data and physically can’t work properly — no matter how many optimizations are made inside the account itself.

The website, in turn, loses part of the traffic before it ever converts: mobile speed is critically low (32-40 PageSpeed points, real users fail Core Web Vitals), and a single-page structure for every line of business lowers landing page relevance for specific queries.

The ad account right now is a single Performance Max campaign with no negative keywords, no clear structure and a budget too small for the chosen strategy to work. That means money goes to broad, poorly filtered traffic, which then lands on a slow, non-specialized website.

Conclusion: the problem isn’t in one place, it’s in the whole chain “ads → website → tracking → data → optimization.” Fixing just one block won’t give the expected effect — you need step-by-step work following the plan at the end of this document.

Summary list of issues found

BlockIssuePriority
TrackingA click on the phone number is counted as a call, even though it isn’t one🔴 Critical
TrackingPhone clicks aren’t deduplicated — one user creates several conversions🔴 Critical
TrackingConversions are sent only to Google Ads, not GA4 — no in-depth analytics🔴 Critical
TrackingGoogle Tag Gateway (Cloudflare) isn’t connected — loss of data quality and speed🟠 High
WebsiteMobile site speed is critical — 32-40 PageSpeed points, Core Web Vitals: Failed🔴 Critical
WebsiteMicrosoft Clarity isn’t connected — no visibility into where users drop off🟠 High
WebsiteOne landing page for every direction instead of separate landing pages🟡 Medium
WebsiteThe address (local business) is visible only in the footer at the very bottom of the page🟡 Medium
WebsiteText overlapping elements on the mobile version⚪ Low
AdsThe single Performance Max campaign lacks the resources (budget/conversion volume) to work🔴 Critical
AdsNo account-level negative keywords — irrelevant traffic (competitors, cities, unrelated topics)🔴 Critical
AdsNo separate brand campaign — brand and irrelevant queries run together🟠 High
AdsGeo-targeting is too broad (7-8 km) for a local business🟠 High
AdsAds showing in the mobile games and apps category — a source of junk traffic🟠 High
AdsThe Maximize clicks strategy optimizes for traffic, not leads🟡 Medium
AdsBroad match keywords instead of phrase match🟡 Medium
AdsAd performance can’t be evaluated — no proper tracking and no A/B tests🟡 Medium

Block 1. Conversion tracking and analytics

Proper tracking is the foundation of everything that follows. If the data the ad system learns from is unreliable, any optimization in the account will be based on false signals.

1. A phone click is counted as a call

Priority: 🔴 Critical · 10/10

Issue: The phone is the main channel customers use to get in touch, but the system tracks a “click on the phone number” event rather than an actual call. The number of calls in the ad account reports doesn’t reflect reality — there could be more real calls, or fewer.

Recommendation: Connect dynamic call tracking — an external service that shows each unique visitor a unique phone number and passes the fact of a call into analytics systems. Approximate cost: 1,300–1,500 UAH/month ($29–33). How I set it up: call tracking for Google Ads and GA4.

2. Phone clicks aren’t deduplicated

Priority: 🔴 Critical · 10/10

Issue: One user who taps the phone number several times creates the same number of separate conversions in the system. Tested live: 3 clicks from one visitor — 0 real calls — and the system recorded 3 conversions.

Recommendation: If call tracking isn’t being implemented right now, the minimum fix is to add code that counts only one unique click per user per day/week instead of every tap.

3. Conversions aren’t sent to Google Analytics (GA4)

Priority: 🔴 Critical · 10/10

Issue: All goals are set up to send data only to Google Ads. This data never reaches GA4, so there’s no way to see deeper analytics — which devices book more often, the geography of calls/bookings, the user journey and so on.

Recommendation: Set up parallel sending of events (call, booking) to GA4 — even if this data isn’t used directly in advertising.

4. Google Tag Gateway (via Cloudflare) isn’t connected

Priority: 🟠 High · 8/10

Issue: According to Google, connecting Google Tag Gateway improves the quality of analytics data reaching the system by up to ~14%. On top of that, Cloudflare speeds up the site and improves protection against DDoS/hacking.

Recommendation: Connect it via Cloudflare — it’s free, and setup takes about 10 minutes.

Until items 1–3 are fixed, no automated bidding strategy (Maximize conversions, Performance Max) can work correctly — they literally learn from this very skewed data.

Block 2. The client’s website

The website is part of ad performance. Even a perfectly set-up campaign won’t deliver results if the landing page doesn’t convert or physically can’t load in time on the user’s phone.

1. Critically low site speed on mobile devices

Priority: 🔴 Critical · 10/10

Issue: ~90% of traffic is mobile. A dozen PageSpeed Insights runs (mobile version) consistently show 32-40 points. Real Core Web Vitals data (28 days, live users) confirms it: the assessment is “Failed” — LCP 2.5s (borderline), INP 377ms (the main reason for failing, in the “needs improvement” zone), CLS 0 (all good here).

Cause: According to PageSpeed Insights diagnostics, the main cause is unoptimized images and heavy interactive elements on the page.

Recommendation: Optimize/compress images and review the heavy interactive elements on the page.

Impact on ads: A slow site lowers conversions (some people don’t wait for it to load) and hurts Quality Score in Google Ads through Landing Page Experience — the ad ranks lower and each click costs more.

2. Microsoft Clarity isn’t connected

Priority: 🟠 High · 8/10

Issue: No session recordings or heatmaps — there’s no way to see at which exact step people leave the site. This is where a website CRO audit starts.

Recommendation: Connect Microsoft Clarity (a free tool) to see how users actually behave on the site.

3. One landing page for every line of business

Priority: 🟡 Medium · 7/10

Issue: All traffic — for “VR games,” “VR quests” and “birthday parties” alike — lands on one generic page. That page isn’t as relevant as it could be to the user’s specific search query.

Recommendation: Create separate landing pages for each direction (VR games, VR quests, birthday parties) with a relevant headline and description. This is directly required for clustering the Search campaigns (see Block 3).

4. The local business’s address is hidden

Priority: 🟡 Medium

Issue: The address appears only in the footer, at the very bottom of the page. A user who lands on the site doesn’t immediately understand the location or whether it’s relevant to them.

Recommendation: Add a short location reference right on the first screen/in the headline of the landing pages.

5. Overlapping text on the mobile version

Priority: ⚪ Low

Issue: In some places elements/text overlap each other, especially noticeable on phones — it hurts readability.

Recommendation: Check the layout at real mobile resolutions and fix the CSS conflicts.

It’s also worth setting up a page scroll percentage event in GA4 — even without Clarity, it will show whether the problem is the first screen (a sharp drop in scrolling at ~25% signals that users don’t understand where they’ve landed).

Block 3. The Google Ads account

Current state: a single Performance Max campaign with the Maximize conversions strategy, budget ~6,000–7,000 UAH/month ($133–156).

1. Performance Max lacks the resources to work properly

Priority: 🔴 Critical · 10/10

Issue: Performance Max needs (a) quality conversion data and (b) enough volume: at least 3-5 conversions/day to ramp up. Right now the data is skewed (Block 1) and the volume is only 20 conversions in 60 days. Even if you trust the current (unreliable) cost per conversion of ~308 UAH ($6.8), the campaign itself would need a budget of ~1,000 UAH/day ($22) to work normally.

Recommendation: Drop Performance Max as the main tool until there’s a separate, sufficient budget for it. Shift the focus to Search campaigns. If PMax stays anyway, test an asset group without audience signals.

2. No account-level negative keywords

Priority: 🔴 Critical · 10/10

Issue: Not a single negative keyword has been added at either the account or the campaign level. The search terms report shows a significant volume of irrelevant traffic: competitor brands, names of other shopping malls, cities outside Kyiv, unrelated topics (board games, laser tag, shooting galleries), informational queries (“birthday song for a boy”).

Recommendation: Build negative keyword lists by category (competitors, malls, cities — keep only Kyiv, in all grammatical cases, unrelated topics) and apply them at the account level (shared lists) and at the level of each campaign.

3. No separate brand campaign

Priority: 🟠 High

Issue: Brand queries, general VR club queries and unrelated informational queries all run inside one campaign with no separation.

Recommendation: Create a separate Search campaign exclusively for brand queries, phrase match, budget ~50 UAH/day ($1.1). Take the keywords from the search terms already accumulated in the current campaign.

4. Geo-targeting is too broad for a local business

Priority: 🟠 High

Issue: The current radius is ~7-8 km. For local services this lowers recognition and conversion — the closer the radius to the location, the higher the chance of an actual visit. On top of that, Performance Max tends to go beyond the set geo even with districts excluded.

Recommendation: Start with a minimal radius (2-3 miles) that covers the key residential areas near the business, and don’t cover the most distant districts at launch. Also fully exclude other regions and cities outside the target area.

5. Ads showing in the mobile games and apps category

Priority: 🟠 High

Issue: Ads show inside mobile games and apps (the “Games” category in content suitability settings) — a source of accidental clicks while playing or using an app, which drains the budget and further pollutes conversion data with accidental site interactions.

Recommendation: Fully exclude the “Games” category and mobile apps from placements (this has been partly started — finish it). Also remove the irrelevant “kids’ playroom” category.

6. The Maximize clicks strategy optimizes for traffic, not leads

Priority: 🟡 Medium

Issue: The Search campaign uses the automated Maximize clicks strategy with a max CPC limit of ~15 UAH ($0.33). That’s a traffic-volume strategy, not a results strategy.

Recommendation: After tracking is fixed (Block 1), switch to Maximize conversions. Until then — manual bidding, with the ability to adjust bids at the ad group and keyword level within each query cluster.

7. Broad match keywords

Priority: 🟡 Medium

Issue: Broad match is in use — and it’s exactly what generates the huge volume of irrelevant queries described in item 2.

Recommendation: Switch to phrase match as the default. Use broad match only when traffic volume is lacking — and then add irrelevant queries as negatives manually every day.

8. Ad performance can’t be evaluated

Priority: 🟡 Medium

Issue: Without proper tracking, there’s no way to tell which ads actually work and which just generate spend.

Recommendation: Once tracking is fixed, test 3 ads with different messages in each ad group and keep the winners based on real data.

Recommended campaign structure

  • Brand Search campaign — phrase match, ~50 UAH/day ($1.1)
  • Local campaign — goal “phone click” (not “get directions”), ~50 UAH/day ($1.1), starting with a 1-2 mile radius
  • Search campaign with 3 ad group clusters: each cluster has its own ads matched to its intent and (eventually) its own landing page.
    • General queries (“VR club Kyiv,” “VR room Kyiv”)
    • VR Quest
    • VR games

Query priority by “temperature”: first exhaust the hot ones (clear intent — “VR quest Kyiv”), then the warm ones, and only after that, with a bigger budget, test cold informational queries (“where to go with a kid in Kyiv,” “where to celebrate a birthday”).

Action plan by priority

The sequence matters: each next step builds on the previous one. There’s no point launching bid optimization or Performance Max before tracking is fixed — the system will simply keep learning from false data.
№StepWhat it includes
1Fix call trackingDeduplicate phone clicks (minimum) or connect dynamic call tracking (optimal). Set up event sending to GA4. Connect Google Tag Gateway.
2Speed up the websiteOptimize images and heavy interactive elements (per PageSpeed Insights recommendations), connect Microsoft Clarity.
3Clean up the ad accountAdd account-level negative keywords, narrow geo-targeting, exclude the “Games and apps” category, switch to phrase match.
4Rebuild the campaign structureCreate brand, local and clustered Search campaigns instead of a single Performance Max.
5Create separate landing pagesOne for each direction (VR games, VR quests, birthday parties) — so the traffic matches the user’s query.
6Test ads on real dataOnce tracking is stable — A/B test ads in each ad group, switch to Maximize conversions.

Another common cause of irrelevant requests is inserting the search query into the ad headline automatically. I explain why in the article on dynamic keyword insertion (DKI).

Related services
Google Ads account audit I find where the budget leaks: structure, bidding, keywords, conversion tracking, website. from $50Learn more Conversion tracking with GTM and GA4 Accurate tracking: Google Tag Manager, GA4, Enhanced Conversions, Google Tag Gateway. from $50Learn more
Sound familiar — the budget is being spent, but leads are few? Get in touch, and I’ll run the same audit of your account and website

Case FAQ

Frequently asked questions

Why can’t you jump straight to bid optimization or Performance Max?
Because automated bidding strategies learn from conversion data. If that data is skewed (duplicate clicks, a click counted instead of a real call), the system literally learns from false signals — and no amount of optimization inside the account will fix that.
What is call tracking and why does a local business need it?
Dynamic call tracking shows each unique site visitor a separate phone number and records the fact of a real call, not just a click on the number. For a business where the phone is the main inquiry channel, this is critical for accurate data in the ad account.
Why is one landing page for every line of business a problem?
When traffic from different search queries lands on one generic page, that page can’t be fully relevant to any of them. Separate landing pages for each direction improve relevance, Quality Score and conversion rate.
How critical is site speed for ad performance?
Very critical, especially for mobile traffic. A slow site cuts conversions directly (some visitors don’t wait for it to load) and hurts Landing Page Experience in Google Ads — the ad ranks lower and each click costs more.



Contact

Let's discuss
your project

Leave a request — we'll assess your situation, discuss your goals and find the best solution for your business and budget.

🏆
As a Google Partner, I can help you get a Google Ads bonus of up to 55,000 UAH ($1.2K) for your first campaigns.
❌ I don't work with: gambling · betting · alcohol · tobacco · crypto · grey niches · payday loans
▸ new_project.init()
Discuss a project