Skip to main content

Case Studies

GA4 Setup and Attribution Cleanup for an Islamabad Restaurant SaaS

Clean GA4 event tracking lifted trial-start visibility from 61% to 98%, re-attributed 22% of conversions out of Direct, and cut cost per sales-qualified lead 28%.

GA4 Setup and Attribution Cleanup for an Islamabad Restaurant SaaS campaign results dashboard
Case study SaaS
Result snapshot Improved from 61% to 98% of product

Answer-ready summary

What happened in this case study?

Clean GA4 event tracking lifted trial-start visibility from 61% to 98%, re-attributed 22% of conversions out of Direct, and cut cost per sales-qualified lead 28%.

An Islamabad-based restaurant-operations SaaS selling a cloud POS and inventory platform to food businesses across Pakistan was making budget decisions on analytics that did not match reality. GA4 recorded 1,300 trial starts in the audit month against 2,140 in the product database, duplicate tags distorted every event, and trial flows crossing to the app subdomain lost their campaign context. The engagement rebuilt measurement from the tag layer up and re-baselined every channel decision.

The rollout ran in 4 phases: Tag audit and measurement plan; GA4 rebuild and dataLayer implementation; Validation and attribution re-baselining; Activation, automation and compounding.

At a glance

Case summary

Industry
Restaurant-operations SaaS (B2B)
Market
Pakistan (Islamabad)
Duration
90 days
Client type
SaaS
Services used
GA4 setup and custom configuration, Tag management and event tracking QA, Marketing attribution modeling, Marketing reporting automation
Starting problem
GA4 captured only 61% of trial starts and filed 38% of tracked conversions under (direct), while duplicate tags and a pageview-based signup event distorted every budget decision.
Work completed
Rebuilt the analytics stack on a single GA4 property with a dataLayer-based event taxonomy, cross-domain measurement to the app subdomain, CRM offline conversion import, and dashboards validated against the product database.
Evidence type
illustrative_composite

Results and proof

Measured impact at 90 days

Headline outcomes first — where a metric moved from a measured starting point, both ends of the change are shown before the full execution notes.

Improved from 61% to 98% of product

Trial-start visibility

Improved from 61% to 98% of product-database trials captured in GA4

22% of

Under-attributed conversions

22% of monthly trial conversions re-attributed out of (direct)

Fell from 38% to 16% of conversions

Direct-traffic conversion share

Fell from 38% to 16% of conversions

-28%

Cost per sales-qualified lead

Reduced from PKR 8,900 to PKR 6,400 (-28%) after offline conversion import

Measured metrics

Before and after

98% Trial-start event coverage
16% Conversions misfiled as Direct
PKR 6,400 Cost per sales-qualified lead
Under 30 minutes Weekly manual reporting

Challenge context

Challenge context

An Islamabad-based restaurant-operations SaaS selling a cloud POS and inventory platform to food businesses across Pakistan was making budget decisions on analytics that did not match reality. GA4 recorded 1,300 trial starts in the audit month against 2,140 in the product database, duplicate tags distorted every event, and trial flows crossing to the app subdomain lost their campaign context. The engagement rebuilt measurement from the tag layer up and re-baselined every channel decision.

Product database showed 2,140 trial starts in the audit month; GA4 recorded 1,300 — a 39% visibility gap

Three analytics tags were firing simultaneously: a legacy gtag snippet, a GA4 tag in GTM, and a stale second GTM workspace

The signup key event fired on the /signup pageview, counting form views as account creations

Trial flows crossing from the marketing site to the app subdomain lost campaign context and landed in (direct)

Roughly 40% of closed deals were sales-assisted, with no offline conversion path back into ad platforms

Weekly reporting depended on a six-hour manual spreadsheet reconciliation across three tools

Execution roadmap

Implementation phases

Delivered in 4 phases, in the order they ran, with each phase building on the outputs of the one before it.

01

Phase 1

Tag audit and measurement plan (Weeks 1-2)

02

Phase 2

GA4 rebuild and dataLayer implementation (Weeks 3-5)

03

Phase 3

Validation and attribution re-baselining (Weeks 4-8)

04

Phase 4

Activation, automation and compounding (Weeks 8-12)

The Client

The business in this engagement is an Islamabad-based B2B SaaS company building a restaurant-operations platform: cloud point-of-sale, inventory and staff-management modules sold to food businesses from quick-service kebab joints in Rawalpindi to multi-outlet groups in Karachi and Lahore. The platform served roughly 1,400 restaurant locations across 38 cities at the time of the engagement, on a three-tier subscription with a 14-day free trial as the primary entry point. Self-serve trials drive most volume; a two-person sales team handles multi-outlet groups, which account for around 40% of closed revenue.

Marketing was a team of four plus the founder, spending about PKR 1.8M a month across Google Search (“POS system Pakistan” and cousin queries), Meta lead generation for restaurant owners, a light LinkedIn presence, an active blog and documentation push, and a growing library of Urdu-language YouTube setup tutorials. The founder is data-minded and had invested early in analytics — which made the situation that followed more uncomfortable, not less: they had dashboards full of numbers they could not defend.

The breaking point came in a board conversation. Marketing reported 1,300 trial starts for the month from GA4. The product database showed 2,140 accounts created in the same window. Nobody could explain the gap, and worse, nobody could say which channels were actually producing the trials that mattered. The engagement described here is a representative composite built from the patterns WeProms sees across Pakistani SaaS and considered-purchase businesses, and the client is described in anonymized terms throughout.

The Problem

The audit opened the tag stack before touching a single report, and found measurement debt at every layer.

  • Three analytics tags were firing at once. A legacy gtag snippet from the Universal Analytics era lived in the site template, a GA4 tag ran through Google Tag Manager, and a second, stale GTM workspace had published an older container that never got removed. Every pageview and most events were counted two or three times over.
  • The signup conversion fired on a pageview. The “sign_up” key event triggered when the /signup page loaded — not when an account was actually created. Form views were being counted as conversions, inflating the number while simultaneously polluting channel comparisons.
  • The app subdomain was a black hole. Trials start on the marketing site but complete inside the application subdomain. With no cross-domain measurement configured, the journey broke at the boundary: the trial landed in the product’s own tracking, and GA4 recorded the whole thing as a new (direct) session.
  • Internal traffic was never filtered. A 40-person company, a three-person marketing team, the sales team demoing the product daily, and the agency that built the site — all counted as traffic and conversions.
  • Sales-assisted closes were invisible to the ad platforms. Multi-outlet deals closed by the sales team over weeks never flowed back into Google Ads, so bidding optimised toward raw self-serve signups while the highest-value conversions were invisible to it.
  • Reporting was manual heroics. Every Monday, six hours went into a spreadsheet joining GA4 exports, CRM exports and platform dashboards — three sources that disagreed with each other and with the product database.

The consequence of all this was not just messy reporting; it was misallocated budget. Paid search looked like the dominant acquisition channel, organic and YouTube looked marginal, and “Direct” — a label that should be a rounding error for a business with branded demand — carried 38% of tracked conversions. The team was effectively steering by a map drawn from rumours.

Phase 1 — Tag audit and measurement plan (Weeks 1-2)

Ready to improve your marketing results?

Book a free strategy call - we'll audit your current setup and identify the highest-impact fixes.

Book Free Call

The first two weeks produced two artefacts: an inventory of everything currently firing, and a measurement plan defining what should fire instead.

The tag inventory was compiled with GA4 setup and custom configuration audit methods — tag-by-tag, template-by-template, including the staging server that was accidentally sending production traffic. The findings were worse than expected but cleanly itemised:

FindingSourceEffect on reporting
Legacy gtag snippet in site templateHardcoded by a previous developerDuplicate pageviews and events, inflated sessions
Stale GTM workspace still publishedOld container never supersededSecond copy of several events
sign_up on /signup pageviewGTM auto-event, unverifiedForm views counted as conversions
No cross-domain config to app subdomainGA4 property defaultsJourney breaks at signup; sessions reset
No internal traffic filtersProperty defaultsStaff, sales demos and agency traffic counted
UTM hygiene left to whoever shared the linkNo governanceReseller and WhatsApp links arriving untagged

The measurement plan then defined the funnel in the product’s own language, so analytics could speak it too: signup_start (registration form initiated), trial_start (account actually created, validated against the database), activation (first sale processed through the POS — the moment a trial becomes real), payment_start (subscription checkout initiated) and subscription_start (paid conversion). Each was specified as a dataLayer event with parameters — plan tier at trial, restaurant type, city, outlet count — chosen because sales and marketing both needed them for segmentation later. One rule anchored the whole plan: GA4 events would be validated against the product database as the source of truth, never the reverse.

Phase 2 — GA4 rebuild and dataLayer implementation (Weeks 3-5)

Weeks three to five replaced the entire stack rather than patching it.

The legacy gtag snippet and the stale GTM container were removed, collapsing firing to a single GA4 property through a single, versioned GTM container. The development team implemented the dataLayer events from the measurement plan — genuine server-emitted events, not DOM-triggered guesses, which is what made trial_start trustworthy enough to reconcile against the database. Cross-domain measurement was configured between the marketing domain and the app subdomain, with the linker parameter carried through the signup journey so a visitor arriving from a YouTube tutorial kept their campaign context across the boundary for the first time.

Internal traffic rules were set by IP range and a persistent internal dimension, covering the office, the development team’s network, and the agency. UTM governance was written down and enforced with a link builder plus a monthly exception report, because in this market untagged links arrive constantly from reseller WhatsApp groups and partner newsletters — sources that deserve credit, not a silent filing under (direct). Key events were redefined in GA4: the pageview-based signup event was retired, and trial_start, activation and subscription_start became the conversions that reports and platforms optimise against.

The phase closed with a structured QA pass through a tag-management and event-tracking checklist: every event observed in debug mode across the full journey — ad click to landing page to signup to app subdomain to first sale — on desktop and Android, the dominant device mix for this audience. Nothing shipped to reporting until each event fired exactly once, with correct parameters, on the correct journey step.

Phase 3 — Validation and attribution re-baselining (Weeks 4-8)

This is the phase most implementations skip, and it is where the engagement’s headline number came from. For three weeks, the old reporting and the new property ran in parallel while daily counts of trial_start in GA4 were reconciled row-by-row against account creation in the product database.

Coverage moved from 61% to 98% within a fortnight of the tag fixes landing — the residual gap is ad-blockers and a small share of users who block cookies, which no setup recovers fully. But the more consequential finding was in channel distribution. As the parallel run stabilised, the true shape of acquisition emerged against the old picture:

Channel (share of trial conversions)Legacy reportingClean GA4Shift
Paid search22%21%-1 pt
Paid social14%12%-2 pts
Organic search17%24%+7 pts
YouTube and content referrals6%11%+5 pts
Email nurture3%7%+4 pts
Reseller and partner referrals0% (untracked)9%+9 pts
Direct38%16%-22 pts

The reading was unambiguous. A 22-point share of monthly trial conversions — 22% of the total — had been under-attributed: filed under (direct) or credited to the wrong channel by the broken setup. The real winners were exactly the channels a restaurant-operations business should expect: organic content answering POS and inventory questions, Urdu YouTube tutorials walking owners through setup, and reseller referrals from the cash-register dealers who recommend software alongside hardware. Paid channels had been quietly over-credited because last-click reporting plus lost subdomain context funneled organic-assisted journeys into whichever platform held the final click.

The parallel-run evidence also settled an internal argument the founder had been having with the performance marketer for a year: paid search was not wasting money, but it was not carrying the account either. This is a point worth emphasising for any team that suspects its own numbers — the same audit logic that catches platforms double-counting conversions also catches the quieter failure, channels that never get counted at all. A marketing attribution modeling exercise layered on top later gave the team a data-driven multi-touch view for the sales-assisted journey, but the one-channel-at-a-time table above is what changed behaviour first, because everyone could verify it against the database.

Phase 4 — Activation, automation and compounding (Weeks 8-12)

See this in action

How we helped a Pakistani business achieve measurable results.

Read case study

Clean measurement only pays for itself when it starts driving decisions, so the final phase connected the new signals to bidding, automation and budget.

The first connection was offline conversions. Closed-won deals from the CRM — including every sales-assisted multi-outlet contract — were imported back into Google Ads, mapped to the originating click. For the first time, Smart Bidding could optimise toward sales-qualified trials and revenue-bearing outcomes rather than raw signup form views. Within six weeks, cost per sales-qualified lead fell from PKR 8,900 to PKR 6,400, a 28% improvement from better targeting of the same spend, not new budget.

The second connection was marketing automation. The activation event — first sale processed through the POS — became the trigger signal in the CRM’s lead scoring. Trials that activate within seven days now route automatically to onboarding content and, for high-outlet-count accounts, a sales touch; trials that stall route to a re-engagement sequence. This turned the analytics rebuild into an operations asset: the same event taxonomy powers the attribution reports and the lifecycle automation, which is the pattern we recommend to every SaaS team, because measurement built in isolation tends to stay isolated.

The third connection was budget. With honest channel economics in hand, roughly PKR 350K a month was reallocated: more toward the documentation and tutorial content engine whose conversions had been invisible, and a structured reseller-referral programme formalising what had been word-of-mouth. Paid search budget held steady — the audit had vindicated its efficiency even while deflating its dominance. Monday reporting dropped from six hours of spreadsheet reconciliation to under 30 minutes reviewing Looker Studio dashboards fed directly from the cleaned property.

Final Results

Measured at the end of the 90-day engagement, against the audit-month baseline:

MetricBeforeAfter 90 daysChange
GA4 trial-start coverage vs product database61%98%+37 pts
Trial conversions filed under (direct)38%16%-22 pts
Organic search share of trial conversions17%24%+7 pts
YouTube and content referral share6%11%+5 pts
Cost per sales-qualified leadPKR 8,900PKR 6,400-28%
Weekly manual reporting effort~6 hoursUnder 30 minutes-92%

Two honesty notes belong beside this table. First, the 22% correction is re-attribution, not new demand — the same trials were happening before; they were simply being credited to the wrong places, which meant budget decisions were being made on a distorted map. Second, these are illustrative composite figures drawn from common patterns in SaaS measurement work, not audited results; the durable takeaway is the reconciliation discipline, with the product database as the source of truth, rather than any single percentage.

What Made This Work

  1. The product database was the source of truth, not GA4. Every event was validated against real account creation during a three-week parallel run. That converted an abstract “tracking seems off” feeling into a measured 61%-to-98% coverage correction and a defensible 22-point re-attribution.
  2. Cross-domain measurement was treated as the core fix, not a setting. For any SaaS whose conversion happens behind a login on another subdomain, the journey break at that boundary is the single largest attribution leak — and it lands silently in (direct) for years unless someone goes looking.
  3. Offline conversions closed the loop between sales and bidding. Importing closed-won deals gave the ad platforms a revenue-adjacent signal to optimise against, which is where the 28% cost-per-SQL improvement actually came from — better decisions on existing spend.
  4. UTM governance was written down and enforced. Reseller links, partner newsletters and WhatsApp referrals carry real demand in this market. Untagged, they become (direct); tagged and governed, they became a measurable 9% channel that now has a programme behind it.
  5. One event taxonomy served measurement and automation. Because trial_start and activation were built properly once, the same events power attribution reports, CRM lead scoring and lifecycle routing — the measurement investment compounded instead of sitting in a dashboard nobody opens.

What Teams Can Apply

  1. Reconcile your core conversion against your product database this month. Take one month of GA4 conversions and compare them with backend reality. The gap — and there almost always is one — is the size of your blind spot, and it is measurable before you spend anything on fixes.
  2. Kill duplicate tags before commissioning new reports. Legacy gtag snippets plus GTM plus a stale container is the most common stack we find. One property, one container, versioned changes — anything else means every number downstream is a blend of truth and duplication.
  3. Fix the subdomain boundary if your product lives on one. If signup or checkout crosses domains, configure cross-domain measurement and verify with a real journey in debug mode. This single fix moved 22 points of conversion share for this engagement.
  4. Give your sales-assisted revenue a path back into your ad platforms. Offline conversion import costs a developer day and changes what your bidding optimises toward. For B2B teams in Pakistan where the WhatsApp-and-salesperson close is standard, this is the highest-leverage measurement work available.
  5. Treat analytics as infrastructure for tech startups, not reporting overhead. The event taxonomy you define for attribution should be the same one that powers CRM routing and lifecycle automation — build it once, at the dataLayer, and let every downstream system consume it.

What teams can apply

Use the framework, not just the headline number.

For GEO, AEO, and classic SEO, the useful signal is the sequence: fix crawl access, build answerable category assets, improve conversion paths, and document proof in a format that humans and machines can cite.

Every key event was validated against the product database during a three-week parallel run, so the 22% correction was measured rather than modeled.

Cross-domain measurement between the marketing site and the app subdomain recovered trial starts that had been dumping into (direct) since launch.

Closed-won deals flowed back from the CRM as offline conversions, so bidding and budget decisions finally optimised on revenue-adjacent outcomes instead of raw signups.

Limitations

Context and limitations

Illustrative composite built from common WeProms SaaS measurement engagements. Attribution corrections move credit between channels rather than creating demand, and results vary with traffic mix, subdomain structure and CRM hygiene.

Questions

Case study FAQs

Is this GA4 setup framework applicable in Pakistan?

Yes. The event taxonomy, cross-domain configuration and offline conversion import structure works for any Pakistani SaaS or considered-purchase business. Local adaptations include filtering the heavy internal and agency traffic common in smaller teams, UTM governance for reseller and WhatsApp referral links, and reconciling against your product database rather than treating GA4 as the source of truth.

How quickly can we expect results?

Tag cleanup and correct event definitions land in the first three to five weeks. The attribution picture needs a parallel-run period of two to four weeks to re-baseline channels honestly, and bidding improvements from imported offline conversions typically show within four to six weeks after that.

Can you replicate this process for our business?

Yes. We map the same phased approach to your stack, funnel stages and CRM state. The framework fits B2B SaaS, edtech, healthcare and any business where the meaningful conversion happens behind a login or on a subdomain — exactly the journeys default GA4 setups lose.

Do you provide reporting during implementation?

Yes. Weekly checkpoints cover event coverage against your product database, channel re-attribution progress and QA status, on shared dashboards from day one — so you watch the correction happen rather than waiting for a final reveal.

Next step

Want a similar rollout in Pakistan?

Share your current baseline and we will map a phased execution plan to your growth goals.

Book Free Strategy Call

Start Here

Let's talk about your growth system

Book a strategy call to discuss how WeProms Digital can help your business achieve better tracking, cleaner attribution, and more accountable growth.

Your data is secure
Typically respond within 2 hours
No obligation - just a conversation
Contact workflow From first message to a useful next step
Step one Context received

Your goals, market, and current channels are captured before we suggest a direction.

This helps us recommend the right engagement level for your needs.

We'll respond via email within 1 business day. Your details are kept confidential.