About Sayem Ads
Sayem Ads is the website of Sayem Mahmud, a Google Ads specialist who helps eCommerce and service businesses grow with Google Ads and Merchant Center. The WordPress site generates leads through a contact form and a WhatsApp chat button.
Project overview
Sayem Ads needed reliable lead tracking for its own marketing: contact form submissions and WhatsApp enquiries had to reach Meta even when browser tracking is blocked, and the same actions had to show up in GA4 as lead events.
I set up the Meta Pixel with paired Conversions API events routed through a server-side GTM container, added custom listeners for Contact Form 7 and WhatsApp clicks, and sent scroll depth and YouTube video engagement to GA4. Everything was verified in GTM preview, GA4 DebugView, Meta Events Manager and Meta Pixel Helper.
Goals
- Send PageView, form submissions, WhatsApp clicks and scroll depth to Meta from both the browser Pixel and the Conversions API
- Deduplicate browser and server events so each lead is counted once
- Track Contact Form 7 submissions as a lead event in GA4
- Capture WhatsApp clicks, scroll depth and YouTube video engagement
- Pass external_id and fbp for stronger advanced matching
Challenges
- Lead forms built with Contact Form 7 do not push a ready-made conversion event
- WhatsApp chat clicks leave the site and are easily missed
- Browser-only Pixel events are lost to ad blockers and tracking prevention
- Meta and GA4 needed the same lead events under consistent names
Strategy
I used a hybrid setup: each browser Meta Pixel tag has a matching "Fb - Server" GA4 event tag that sends the same interaction to a server-side GTM container, where a Conversions API tag forwards it to Meta with a shared event ID for deduplication. Custom HTML listeners turn Contact Form 7 submissions and WhatsApp clicks into data layer events, so one trigger feeds Meta and GA4 at the same time.
What I implemented
Web GTM container
- Meta Pixel base code plus browser tags for cf7submission, WhatsApp Click and Scroll Depth
- Matching "Fb - Server" GA4 event tags for cf7submission, WhatsApp Click, Scroll Depth and YouTube Video
- Custom HTML listeners for Contact Form 7 submissions and WhatsApp clicks
- GA4 config tag routing hits to the server container, plus Conversion Linker
Server-side GTM
- Facebook CAPI tag fired from the incoming GA4 stream
- GA4 tag forwarding the same events to Google Analytics
- Conversion Linker on all requests
GA4 lead & engagement tracking
- cf7submission and WhatsApp_Click as lead events
- form_start, scroll_25 to scroll_90 and video_progress for engagement
- Checked event by event in GA4 DebugView
QA in Meta Events Manager & Pixel Helper
- PageView, cf7submission, WhatsApp_Click and scroll events received from browser and server
- Server copies confirmed as deduplicated against the browser Pixel
- Pixel Helper confirmed external_id advanced matching and event IDs on every event
Tools used
Results
- All 12 web GTM tags fired in preview, with no tags left unfired
- Server GTM preview showed the Facebook CAPI tag and GA4 tag each firing 42 times
- PageView, cf7submission and WhatsApp_Click received from browser and server in Meta, with duplicates removed
- GA4 DebugView recorded cf7submission, WhatsApp_Click, form_start, scroll and video_progress events
- Meta Pixel Helper showed every event sent with external_id advanced matching and a unique event ID