ECLIPSE
Topic: Web and Analytics

GA4 Setup for Saudi Lead-Generation Websites

· 1513 words · Updated · Eclipse Advertising Agency

Key takeaways
  • 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:

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:

ActionEvent nameKey event?
Confirmed form submissiongenerate_leadYes
WhatsApp button or link clickwhatsapp_clickUsually yes, reported separately
Phone link clickphone_clickUsually yes, reported separately
Confirmed bookingbook_appointmentYes

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:

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

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

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