GA4 Setup for Saudi Lead-Generation Websites
- Define what counts as a lead (form, WhatsApp, call, booking) before configuring any tag.
- Use generate_lead for confirmed submissions and separate events for WhatsApp and tel: clicks.
- Set 14-month retention, filter internal traffic, group Arabic and English pages, and configure consent mode.
- Import only one primary conversion per action into Google Ads and feed lead quality back through offline conversion import.
A common reason lead-generation websites lack useful data is not that GA4 is missing, but that it was installed with defaults and nobody decided what a lead is. The result: page views, a “conversions” number nobody trusts, and Google Ads bidding towards clicks that never became enquiries. This guide covers a setup that holds up.
1. Start with a measurement plan, not the tag
Before touching Google Tag Manager, write down every action on the site that means “this person wants to talk to us”. On a typical Saudi service website that list looks like this:
- Form submission – quote request, contact form, callback request.
- WhatsApp click – a floating button or a link to
wa.meorapi.whatsapp.com. If customers often reach you this way, track it as its own action. - Call click – a
tel:link, mostly from mobile visitors. - Booking – an appointment confirmed through a booking tool, on your domain or a third-party one.
For each action, record how you will detect it, the event name, and whether it is a key event. A WhatsApp click is a strong signal but not a confirmed lead, because the visitor may never send a message, so keep clicks and confirmed submissions as separate events and compare them with what reached your CRM or WhatsApp inbox.
2. Name events deliberately
Google publishes a list of recommended events, and for lead generation the one to use is generate_lead, which Google describes as the event for when a user submits a form to generate a lead. It accepts value and currency, so you can send an estimated lead value in SAR if you have a defensible number. For the other actions, use short, consistent custom names:
| Action | Event name | Key event? |
|---|---|---|
| Confirmed form submission | generate_lead | Yes |
| WhatsApp button or link click | whatsapp_click | Usually yes, reported separately |
| Phone link click | phone_click | Usually yes, reported separately |
| Confirmed booking | book_appointment | Yes |
Add parameters such as form_name or button_location, and register them as custom dimensions so they appear in reports.
3. Key events and how they reach Google Ads
GA4 now uses two terms. A key event is an event that measures an action that’s particularly important to the success of your business; a conversion is what you create from a key event to measure and optimise ad campaigns. You mark events as key events in Admin > Events (up to 30 per standard property). Check the counting method: “Once per event” is the recommended default, while “Once per session” stops one enthusiastic visitor clicking WhatsApp four times from looking like four leads.
4. Tracking WhatsApp and tel: clicks
Enhanced measurement records outbound clicks automatically, so a wa.me link will appear as a generic click event. That is too vague to report on, and tel: links are not clicks to another website at all. In Google Tag Manager, create a “Just Links” click trigger set to fire on some link clicks where the built-in Click URL variable matches your pattern:
- WhatsApp: Click URL matches the regular expression
wa\.me|api\.whatsapp\.com - Phone: Click URL starts with
tel:
Attach a GA4 event tag to each trigger. If your WhatsApp button is a script widget rather than a normal link, the trigger may miss it, so test the real button.
5. Thank-you pages versus event-based conversions
Counting page views of /thank-you/ is easy, but it breaks when people refresh the page, bookmark it, or land on it from search. The more reliable pattern is to fire generate_lead only after the server confirms the submission succeeded, usually through a dataLayer.push from your form handler. Enhanced measurement also offers form interactions (form_start and form_submit), but treat them as diagnostic: they depend on how the form is built, and they do not tell you whether the submission passed validation. Do not mark form_submit and generate_lead as key events for the same form.
6. UTM discipline
GA4 treats UTM values as case-sensitive, so Snapchat and snapchat become two sources. Agree on lowercase values, one utm_medium per channel (for example paid_social), and a naming pattern for utm_campaign. Tag every link you control, including Snapchat, TikTok, Meta, X, email, WhatsApp broadcasts and printed QR codes. Leave Google Ads to auto-tagging.
7. Arabic and English page grouping
If Arabic pages live under /ar/, you can compare languages without tagging anything by filtering page path in reports. For a cleaner view, set a content group: in GTM, a RegEx Table variable maps ^/ar(/|$) to “Arabic” and everything else to “English”, and that variable goes into the content_group field of your Google tag. You can then see which language produces leads, not just traffic.
8. Property settings people skip
- Data retention. Standard properties can keep user- and event-level data for 2 or 14 months. This limits explorations, not standard reports, so set it to 14 months on day one.
- Internal traffic. Define internal traffic by office IP, then create the data filter in Testing state first. Once active, excluded data is gone permanently.
- Cross-domain. If bookings or payments happen on another domain you control, add it under Configure your domains so the session carries across via the
_glparameter. If you cannot install your tag there, rely on the booking tool’s own confirmation instead.
9. Consent and privacy
Google’s consent mode uses four signals: ad_storage, analytics_storage, ad_user_data and ad_personalization. In either mode, consent defaults must be set before any tag sends data. In an advanced implementation, tags load with consent denied and send cookieless pings until the visitor chooses; in a basic one, tags do not load until consent is given. Saudi Arabia’s Personal Data Protection Law, enforced by SDAIA, sets its own rules on consent and disclosure; SDAIA’s guide to the PDPL is the official starting point. Which lawful basis and banner design fit your site is a legal question, so have your privacy notice and consent flow reviewed rather than copying a template.
10. Google Ads and lead quality
Link Google Ads from Admin > Product links, then import the key events you want to bid on. If the same action is also tracked by a Google Ads tag, keep only one as a primary conversion action; primary actions feed bidding, and two primaries for one lead means double counting. Form fills are not sales, so close the loop: offline conversion import sends outcomes from your CRM back to Google Ads, and enhanced conversions for leads matches them using hashed form data such as email.
11. Reporting and QA
Use explorations for funnels (landing page to form start to generate_lead) and for comparing lead events by language, device and source. For weekly reporting, build a Looker Studio report on the GA4 connector, keeping in mind it is subject to GA4 API quotas. Before anything goes live, open GTM Preview or Tag Assistant and watch DebugView: submit a real test form, tap WhatsApp and the phone link on a mobile device, and confirm each event fires once with the right parameters.
Common mistakes to check for
- Counting the same lead twice: thank-you page plus event,
form_submitplusgenerate_lead, or GA4 import plus a Google Ads tag, both primary. - Spam submissions inflating leads. Add bot protection to forms and reconcile GA4 numbers with your CRM monthly.
- No consent setup, or a banner that blocks tags without consent mode signals.
- Unfiltered internal traffic from your own team.
- WhatsApp clicks reported as “leads” without checking how many conversations actually started.
Eclipse Advertising Agency offers analytics and tracking setup as part of its digital marketing services in Saudi Arabia, and builds tracking into new sites through our website development work. If you want your lead tracking reviewed, contact us.
Frequently asked questions
Should a WhatsApp click count as a lead in GA4?
Track it as its own event, such as whatsapp_click, and you can mark it as a key event. Report it separately from confirmed form leads, because a click does not guarantee a message was sent. Compare the click count with the conversations your team actually received.
Is a thank-you page enough to track form leads?
It works, but it can overcount through refreshes, bookmarks and direct visits. Firing generate_lead after the server confirms a successful submission is more reliable. Whichever method you choose, use only one of them as the key event for each form.
Does GA4 need a cookie banner for Saudi websites?
GA4 supports consent mode, which adjusts tag behaviour based on the visitor's choice. Whether and how you must collect consent under Saudi Arabia's Personal Data Protection Law depends on your processing, so have your consent flow and privacy notice reviewed by a legal adviser.
Sources: support.google.com · developers.google.com · support.google.com · support.google.com · support.google.com · support.google.com · support.google.com · support.google.com · support.google.com · support.google.com · support.google.com · support.google.com · support.google.com · dgp.sdaia.gov.sa · support.google.com · support.google.com · support.google.com · support.google.com · support.google.com · support.google.com · support.google.com