Five ad platforms, one server container, every donation counted
Ahmed Yazzedy runs donation campaigns for a Saudi charity on Google, Meta, TikTok and Snapchat. The data layer was unreliable and purchase (donation) tracking did not fire correctly, so the ad platforms were optimising on incomplete data.
What was broken
The data layer did not pass reliable donation data, so tags were reading missing or wrong values.
Purchase tracking in particular was not working correctly: completed donations were not reaching GA4 and the ad platforms as they should, which left campaign optimisation working from incomplete numbers.
What I changed
GA4 tracks the donation journey: page views, add to cart, begin checkout and the Google Ads conversion, with currency and value in SAR.
TikTok Events API and Snapchat Conversions API run from the server container next to their browser pixels. Each pair shares one event ID so the platform keeps one copy of each event.
Click IDs (gclid, ttclid, fbc) and customer data parameters are passed with each event to improve matching.
How it was verified
Events were tested end to end in GTM preview, GA4 DebugView, TikTok Test Events and Snapchat Events Manager, confirming both the browser and the server connection for each event before handover.