Analytics
Analytics

GA4 for Dubai businesses: why 40 conversions became 9 leads (2026)

By Artur Gall·Aug 21, 2026·11 min read

A client in Business Bay read me his GA4 number last month: 41 conversions in seven days. His sales log for the same week held nine WhatsApp conversations and two quote requests. Both numbers were correct. They were counting different things, and nobody had explained which.

That gap is the normal state of analytics for a UAE service business, because the moment a buyer taps a wa.me link, Google Analytics loses sight of them. Everything below is about closing the reading gap rather than the data gap, since the data gap does not close.

The short version, before the detail:

  • GA4 does not have conversions any more. It has key events. A conversion is what a key event becomes once Google Ads imports it.
  • A wa.me click is a click. It is a decent proxy for intent and a poor proxy for a lead.
  • Most Dubai service businesses need four or five events, not thirty.
  • The difference between GA4 and Google Ads is structural. You read the trend, you do not reconcile it to zero.

Key events and conversions are two words for two different ledgers

On 21 March 2024 Google renamed conversions to key events across the GA4 interface, reports and API. The word conversion now belongs to Google Ads. A key event that you mark in GA4 and import into Ads shows up there as a conversion action. Same fire, two ledgers, two sets of rules.

The practical consequence shows up in meetings. When somebody says "we got 40 conversions", the first question is which screen they were looking at. GA4 counts key events for all traffic, organic and direct included. Google Ads counts only what it can tie to an ad interaction inside its own attribution window.

One setting catches people out. In Google Ads, only conversion actions set as Primary feed the Conversions column and Smart Bidding. Secondary actions sit in All conversions and influence nothing. I have opened accounts in Dubai where the only Primary action was a page view of the contact page, while the actual form submission sat as Secondary, quietly ignored by the bidding algorithm for months.

Open Google Ads, go to Goals, and check the Primary and Secondary split before you argue with any number in GA4.

Why GA4 says 40 and WhatsApp says 9

GA4 sees a tap. WhatsApp holds the conversation. There is no bridge between the two that GA4 builds for you.

Enhanced Measurement fires a click event when a visitor follows a link to another domain, with link_url as a parameter. A wa.me link qualifies. If your WhatsApp button is a JavaScript handler rather than an anchor tag, nothing fires at all, which is the first thing worth testing on your own phone.

Then the tap decays on the way to a conversation:

  • The visitor taps, WhatsApp opens, they read your prefilled text and close it.
  • They tap twice from two different pages in one session.
  • They tap on desktop, land on web.whatsapp.com, are not logged in, and give up.
  • They send "Hi" at 23:40, get an answer at 09:15 and have already booked elsewhere.

Instead of trusting a published benchmark, measure your own ratio. Take one week, count wa.me clicks in GA4, count first time inbound conversations in your WhatsApp Business inbox for the same seven days, divide. That multiplier is yours. Recalculate it monthly, because it moves when creative or targeting changes.

Add a code to the prefilled message so the sales side knows where the person came from: wa.me/9715XXXXXXX?text=Hi,%20I'm%20asking%20about%20the%20villa%20package. Different text per landing page, and suddenly your inbox carries source data that GA4 will never see.

Phone works the same way. GA4 records a tap on a tel: link. Whether the call connected, rang out or lasted four seconds is invisible without a call tracking number.

Sort out that denominator before you compare your numbers against cost per lead benchmarks for the UAE, because a CPL built on clicks and a CPL built on conversations are different currencies.

The five events a Dubai service business actually needs

Thirty tracked events do not make an account better instrumented. They make the weekly report unreadable and give Smart Bidding noise to chase.

Event Type Mark as key event Parameters worth sending
generate_lead Recommended Yes form_id, page_language, lead_source
whatsapp_click Custom Yes link_placement, page_language
call_click Custom Yes, if phone matters link_placement
view_pricing Custom No service
qualified_lead Custom, sent from the sales side Yes lead_source, deal_stage

For e-commerce, purchase replaces generate_lead and view_item replaces view_pricing. The rest holds.

Two notes on that table. view_pricing stays a plain event on purpose: it tells you whether traffic reaches the money page, and it would pollute bidding as a key event. And qualified_lead is the only honest bottom of the funnel, because it comes from a human confirming that the conversation was real. Feeding it back requires the lead to be recorded somewhere reliable, which is where a working CRM setup for Dubai businesses stops being paperwork and starts being measurement.

Cap your key events at three or four. If you have more than that, take the list into a full marketing audit checklist and cut.

Counting methods, and how each one lies

Every key event has a counting method: once per event, or once per session. Key events created natively in GA4 default to once per event. Goals migrated from Universal Analytics arrived as once per session. So an inherited property usually has both, set by nobody on purpose.

Once per event inflates click-type events. A hesitant buyer who taps your WhatsApp button in the header, then the one in the footer, then the sticky one on mobile, produces three. Once per session hides genuine repeats, so a customer who buys twice in one session registers as one purchase.

The rule I apply on client accounts: click-type events get once per session, purchase gets once per event, form submissions get once per session unless the business genuinely sells more than once inside a single visit. Almost none do.

You change it in Admin, Events, key events, counting method. Like most GA4 settings it applies to data collected afterwards, so the old weeks keep the old logic. Note the date you changed it, or your month-over-month comparison will show a drop that never happened.

Custom dimensions: the limits, and the trap

A parameter you send but never register is invisible in reports. GA4 collects it, standard reports ignore it, and it appears in the interface only after you register it as a custom dimension.

Limits per property, standard GA4: 50 event-scoped custom dimensions, 25 user-scoped, 10 item-scoped, 50 custom metrics. Analytics 360 raises those to 125 event-scoped, 100 user-scoped, 25 item-scoped and 125 metrics. In practice I rarely meet a Dubai account near the ceiling. The typical account I open uses four slots out of fifty and has twenty-two key events, which is the wrong way round.

The trap is retroactivity. Registration is not retroactive. Data starts appearing 24 to 48 hours after you create the dimension, and the parameter values collected before registration never appear in the interface. They exist in the BigQuery export if you set one up, since the export carries raw parameters regardless of registration. If you have no export, that history is gone.

So register page_language, link_placement and lead_source before the campaign launches. A dimension created the week after a launch costs you the launch week, which is the week you most wanted to read.

GA4 versus Google Ads: the gap is structural

What differs GA4 Google Ads
Date the conversion lands on The day it happened The day of the ad click
Attribution Data-driven across all channels Credit assigned to ad interactions inside its own window
Lookback 30 or 90 days depending on event type Click window configurable up to 90 days
Scope All traffic, sessions and users Only traffic Ads can tie to a click or engaged view
Consent handling Modelling applied in GA4 Modelling applied separately in Ads

The date rule alone explains most of the panic. Someone clicks on Sunday and submits a form on Thursday. Google Ads backdates that conversion to Sunday, GA4 puts it on Thursday. Pull a Monday-to-Wednesday report and the two systems disagree by definition.

My working rule after years of these reconciliations: a gap that stays stable in one direction is structural and you can live with it. A gap that flips direction week to week is a tag problem, usually duplicate firing or a container loading twice. Fix the flipping gap, ignore the stable one, and never build a bonus scheme on either number without saying which system it comes from.

Check both lookback settings in your own account this week. They are rarely set to the same value, and nobody remembers choosing them.

Arabic and English traffic do not belong in the same report

The Language dimension in GA4 reports the device or browser language, not the version of the page the person read. An Emirati user with an English phone reading your Arabic page shows up as English. If you run /ar/ paths, segment by landing page path or send page_language as a parameter and register it.

The behaviour differs enough to matter. In the accounts I look after, Arabic-language sessions lean harder on WhatsApp and lighter on forms, which drags the blended form conversion rate down and makes the English side look worse than it is. Split them and both numbers become usable.

Geography needs the same discipline. UAE campaigns frequently spill into Saudi Arabia and Qatar, and lumping Riyadh in with Dubai buries a market with different pricing expectations. Country-level data in GA4 holds up. City-level data in the UAE is the one I trust least: in the accounts I look after, a large share of national traffic reads as Dubai regardless of the visitor's actual emirate, which lines up with how mobile carrier IP allocation works here rather than anything GA4 documents about the UAE specifically. Compare by country and by campaign, and treat the city report as a hint, not a source.

Build one exploration segmented by page_language and country, save it, and use that as your weekly view instead of the default overview.

Consent Mode v2 and Enhanced Conversions in a UAE account

Consent Mode v2 uses four signals: ad_storage, analytics_storage, ad_user_data and ad_personalization. Since March 2024 Google requires it for traffic from the EEA and the UK when you use its advertising products. Plenty of Dubai brands serve European visitors, so it applies to part of their traffic.

Here is where money leaks. Many consent banners installed in the UAE are configured to deny by default for every visitor worldwide, because that was the template. The result is suppressed events from Dubai visitors under a rule written for Brussels. Ask whoever installed your banner what the default state is and which regions it applies to before you accept a sudden drop in recorded key events.

Enhanced Conversions matter more here than in most markets. You pass hashed customer data, usually email and phone number in the user_data object, and Google matches it to signed-in users. Since most UAE service deals close in a chat or on a call rather than in a checkout, that matching is often the only way a real closed deal gets back into the ad platform. It requires you to collect an email or a phone number in the first place, which is an argument against the three-field form that asks for nothing useful.

The 10-minute weekly check

Do this every Monday. It needs no developer.

  1. Google Ads, Goals: confirm which conversion actions are Primary. If whatsapp_click and generate_lead are both Primary and both fire in the same journey, you are counting one buyer twice.
  2. GA4 DebugView: open your own site on a phone, tap the WhatsApp button and submit the form. Confirm both events arrive with their parameters attached.
  3. Reports, Engagement, Events: scan for any event more than roughly 10 percent above last week with no campaign change behind it. That is usually a misfire, not growth.
  4. Divide last week's wa.me clicks by the number of genuine new conversations in your WhatsApp inbox. Write the ratio down. Watch it over eight weeks.
  5. Compare GA4 key events with Google Ads conversions for the same date range. Stable direction, carry on. Direction flipped, open the tag container.

Five minutes of that beats a 30-event setup nobody reads. If your account has drifted past the point where this check makes sense, ask us to review the property and the Ads link together, because they break as a pair.

FAQ

What is the difference between a key event and a conversion in GA4? A key event is what GA4 calls an important action since the March 2024 rename. It becomes a conversion when Google Ads imports it as a conversion action. The same user behaviour carries two names in two systems with different counting and attribution rules.

How many custom dimensions can I create? A standard GA4 property allows 50 event-scoped, 25 user-scoped and 10 item-scoped custom dimensions, plus 50 custom metrics, per property. Analytics 360 raises those to 125, 100, 25 and 125.

Why does GA4 show fewer conversions than Google Ads? Different date assignment, different attribution models, different lookback windows and separate modelling layers. Google Ads reports conversions on the click date, GA4 on the day the action happened. A steady gap is normal. A gap that changes direction weekly points to a tagging fault.

Can I track WhatsApp clicks as a conversion? You can track the click on the wa.me link and mark it as a key event. GA4 cannot see the conversation that follows, so treat it as an intent signal and reconcile it against your actual inbox. Adding a page-specific prefilled message gives the sales side the source that GA4 cannot supply.

Once per session or every event, which counting method should I use? Once per session for click-type and form events, once per event for purchases. Events created natively in GA4 default to once per event, while goals migrated from Universal Analytics came across as once per session, so inherited properties usually mix both.

How long before a custom dimension shows up in reports? Data typically appears 24 to 48 hours after registration. Registration is not retroactive, so parameter values collected before you registered the dimension will not appear in the interface, although they remain in a BigQuery export if one was already running.

Do I need Enhanced Conversions? If your deals close in WhatsApp, on a call or in person, it is one of the few ways closed business gets back to Google Ads. It requires hashed email or phone data collected in your form and the right consent signals.

Can I still get my Universal Analytics data? No. Access to UA properties and the UA API ended in the week of 1 July 2024 and the historical data was deleted. Only exports taken before that date still exist.

Want a quote that itemises every line?

Free audit — SEO, PPC, SMM, content and production under one roof.

Get a free quote on WhatsApp

Written by Artur Gall, CEO & founder of SkyLight Marketing, Dubai.