Budget: 250 USD Deadline: 7 days
Good day, Vladislav!
Your case is a classic example of broken tracking on custom WooCommerce, and all five issues have clear technical solutions:
1. add_to_cart on click, not on loading view_cart — the event is triggered on the actual user action through dataLayer.push at the moment of the click, with the full array of items (value, item_id, quantity).
2. ecommerce: false and 0.03 CAD — we will redesign the dataLayer so that it receives a dynamically calculated price (per square inch/volume) at the moment of the event, rather than a static product price from the catalog. The print size will be moved to a separate custom parameter of the item.
3. 900 conversions instead of 1 in Meta — a typical mistake when the area is counted in quantity. This is fixed at the dataLayer level: quantity = physical number of units, size = a separate parameter, value = calculated cost. Plus Meta Conversions API with deduplication through event_id — accuracy after iOS14+ and blockers.
4. FR/ENG for email — the active language of the user is passed through GTM (custom variable → tag) to your email platform, English speakers will stop receiving emails in French.
5. Lost purchases — we will check triggers on the thank you page (redirects, external payments, caching) and if necessary, duplicate purchases through server-side — no paid purchase is lost.
Each fix is verified in GA4 DebugView and Meta Test Events before delivery. Remarketing audiences (by products and language) — after the data becomes clean.
We develop analytical tools ourselves — our own pixel in action: https://guardlabs.online/tools/analytics/ — so we understand tracking from the inside, at the code level, not just the GTM interface.
A few clarifications for an accurate estimate: is there already a GTM container and access to it? Who will implement the code into the theme — your developer according to our specifications, or will you give us access? What email platform (Klaviyo/Mailchimp/other)? For CAPI — are you considering a server-side container (for example, Stape) or direct integration?
We work through Safe, in writing, with a step-by-step demonstration of results in DebugView.