-
Inconsistencies in GA4 Transactions between User Interface and API
Hey folks,
So here’s the deal. I’m crunching some numbers for a client, right? They want me to pull in the number of transactions and the revenue from those transactions, all sorted by Google Ads campaign ID. I’ve got my query all set up like this:
[display query]
This should work fine and dandy and give me “The count of transaction events with purchase revenue. Transaction events are in_app_purchase, ecommerce_purchase, purchase, app_store_subscription_renew, app_store_subscription_convert, and refund”, straight from the API schema.
Sweet, right?
So the plot thickens when I run my query and get these numbers back for one of my campaigns:
[display data]
But when I try to match these numbers with a GA4 dashboard report I ran for the same dates, it gives me this for the same ‘example campaign’:
[display report]
See the issue? The numbers are off by about 25%. The revenue or event value is a bit closer but still not matching. This is the same deal for all of my client’s campaigns – the numbers from the API are always higher. But they don’t change if I pull up the report again another day.
At this point I’m thinking, “Hey, maybe there’s another event being tracked under the ‘transactions’ in the API that I’m not seeing on the dashboard”. Testing this theory, I added this filter to my query:
[display filter]
But the transactions field still comes back as 331. Same as before. So much for that theory.
So here I am, puzzled as heck, trying to figure out if I’m knocking on the wrong door (querying the wrong field), if the frontend is not showing me all the goods (under-reporting data), or the API got a little too excited (over-reporting data). Any tips, thoughts, ideas? I wasn’t allowed to post on the official GA4 Issue tracker, so maybe you guys can help a fellow data geek out.
Log in to reply.