Ad platforms optimize on the conversions they can see. If your tracking is wrong, you are paying them to optimize toward the wrong thing. Before you scale spend, run through this checklist. Menu names change often, so use it as a map and confirm each step in your own accounts.
The checklist
- Install each tool once. Installing GA4 or the Meta pixel through an app, the theme and a tag manager at the same time double-counts events.
- Mark the key events. In GA4, mark purchase (and any waitlist or lead event) as a key event.
- Walk the funnel in DebugView. Browse a product, add to cart and begin checkout, and watch the events arrive with their parameters.
- Place a test order. Confirm purchase fires once, with a transaction ID, value and currency. Refund it, and exclude test orders from your analysis.
- Compare with your store. The next day, compare GA4 orders and revenue with your store’s own reports. Small gaps are normal; large or growing gaps are not.
- Standardize your UTMs. Use lowercase, consistent source, medium and campaign names on every ad URL.
- Check Meta’s Test Events. Key events should arrive from both the browser and the server, with no duplicate warning, and Purchase should carry value and currency.
- Verify your domain in Meta and review Event Match Quality for Purchase.
- Write it down. Record your property and dataset IDs, install method, test order number and results in a tracking log.
Common symptoms and likely causes
| Symptom | Likely cause |
|---|---|
| Duplicate Purchase events | The pixel or GA4 is installed twice, or event IDs are not shared between browser and server |
| No server events in Meta | The Conversions API is not enabled, or the store is connected to the wrong dataset |
| GA4 revenue higher than the store reports | Purchase is counted twice, or test orders are included |
| Little or no data in GA4 | Wrong property or stream, ad blockers, or consent settings blocking the tag |
Fix tracking before you touch creative. A clean signal makes every later decision cheaper.