Skip to content
Work
Web platformPublic

ANGA

Backend EngineeringFrontend EngineeringIntegrationsInfrastructure & DevOps

Bilingual platform with attribution that survives the click

Platform and attribution engineering

Context

Marketing spend was visible in four tools and nowhere as a single visitor journey. Arabic/English content and WhatsApp close the sale off-site, which breaks naive pageview attribution.

System boundary

In scope

  • public site
  • locale
  • GA4/GTM/Meta
  • WhatsApp handoff
  • conversion events

Out of scope

ad creative production

Architecture

Laravel owns the request. Locale and content are first-class. Attribution IDs travel into WhatsApp so a conversation can still be tied to the session that produced it.

An Arabic/English Laravel site where analytics, ads, and WhatsApp conversions share one attribution path instead of three disconnected pixels.
  1. Visitor
  2. Laravel
  3. Attribution
  4. Analytics
  5. WhatsApp / conversion
  • Request owns identifiers
  • Off-site handoff keeps the same IDs
Published sequence
  1. Visitor
  2. Laravel
  3. Attribution
  4. Analytics
  5. WhatsApp / conversion
Roles in the diagram
  • external1
  • service1
  • process1
  • interface2

Counts from the published record. They describe structure, not a measured result.

How does a visitor reach conversion?

entry

  • externalVisitor

delivery

  • serviceLaravel
  • processAttribution

external

  • interfaceAnalytics

handoff

  • interfaceWhatsApp / conversion
  1. VisitorLaravel
  2. LaravelAttribution
  3. AttributionAnalytics
  4. AnalyticsWhatsApp / conversion

Critical flows

  1. Visitor hits the site

  2. Laravel serves locale-correct pages

  3. attribution IDs are written

  4. analytics pixels fire

  5. WhatsApp/conversion systems receive the same identifiers.

Stages

  • Bilingual delivery
  • Attribution
  • Conversion handoff
  • Performance

Decisions

01

Locale is routing, not CSS

Arabic/English is a content and URL concern. RTL is a consequence, not a theme toggle.

02

Carry IDs off-site

WhatsApp is part of the funnel. If the click ID dies at the button, attribution is theatre.

03

One event vocabulary

GA4, Meta, and internal conversions share names. Three taxonomies is how numbers stop matching.

When it fails

ConditionDetectionResponse
Consent / pixel blockedTag load failureFirst-party event still records; ads tags degrade
Locale mismatchAccept-Language vs URLHonor explicit URL; do not silent-swap content
WhatsApp ID strippedOutbound URL auditFail the handoff link build; do not send a bare wa.me

Infrastructure

  • Nginx
  • Laravel
  • Cloudflare
  • analytics tags
  • WhatsApp deep links
  • cache headers
  • uptime checks

Outcome

A site where bilingual content and paid acquisition report against the same visitor identifiers, including WhatsApp.

Current state

Live. Attribution and performance work continue on the same request path.

  • Laravel
  • PHP
  • Vue
  • GA4
  • GTM
  • Meta Pixel
  • WhatsApp
  • Cloudflare
  • Nginx
Contact