Imagine this: you’ve successfully implemented eCommerce tracking in Google Analytics 4 (GA4), but when you open your reports, revenue data is either missing or showing as zero. Frustrating, right?
This issue can arise from several causes—ranging from misconfigured events and missing parameters to data processing delays. In this post, we’ll walk through the most common reasons why GA4 isn’t showing revenue and how to troubleshoot them.

Note: This guide focuses on cases where no revenue is recorded at all—or where the purchase event exists but the revenue value is 0. If you’re seeing only some missing transactions or partial revenue, check out this guide instead.
1. Missing value and currency Parameters in the Purchase Event
To track purchases in GA4, the purchase event must include these key parameters:
- transaction_id
- value
- currency
Without these, GA4 can’t record revenue properly. A common mistake is including transaction_id and value, but omitting currency. All three are required.
Example (using gtag.js):
gtag(‘event’, ‘purchase’, {
transaction_id: ‘T12345’,
value: 99.99,
currency: ‘USD’,
// additional parameters
});
2. Missing Item-Level Data: price, quantity, and currency
If you want to see product-level performance in GA4 (e.g., top-selling items), you must also send an items array with each product containing:
- item_id
- item_name
- price
- quantity
While Google’s documentation allows for either item_id or item_name, it’s best to send both.
If you send only price, item_id, and item_name (without quantity), GA4 won’t be able to calculate Item Revenue accurately.
Example:
json
CopyEdit
“items”: [{
“item_id”: “sku_123”,
“item_name”: “T-Shirt”,
“price”: 25.00,
“quantity”: 2
}]
3. Incorrect Parameter Names
Parameter names must strictly follow GA4’s eCommerce specifications. GA4 will not recognize alternative names such as order_id or id in place of transaction_id.
Even if the structure looks correct, using custom or incorrect parameter names will prevent GA4 from capturing the data. Always refer to Google’s official documentation when setting up eCommerce tracking.
4. Invalid Data Formats
Not only do you need the correct parameter names, but you must also use the proper data format. For example, value and price should be numbers (e.g., 49.99), not strings (e.g., “49.99”).
Incorrect data formatting can cause GA4 to reject the values or skip them entirely.
5. Invalid Currency Codes
Although less common, it’s important to ensure the currency value adheres to ISO 4217 standards—three-letter codes like USD, EUR, or CAD.
Avoid using full names or symbols (e.g., “US Dollars” or “$”), which GA4 won’t recognize.
6. Incorrect Event Name
GA4 only processes purchase data when the event name is exactly purchase.
If you’ve labeled the event as transaction, order, or anything else, GA4 won’t recognize it as a valid purchase. This is a frequent issue during custom implementations.
7. User Permissions Restricting Revenue Visibility
In GA4, you can control what data each user can access. Even if everything is set up correctly, users without the appropriate permissions may not see revenue data.
To check:
- Go to Admin > Property Access Management
- Click on the user’s role
- Ensure the “No Cost Metrics” restriction is not enabled
8. Data Processing Delays
Lastly, remember that GA4 data isn’t available in real-time. It typically takes 24 to 48 hours for revenue data to populate in standard reports.
So if you’ve only just enabled eCommerce tracking, give it some time before assuming something is wrong.
Final Thoughts
No revenue in GA4? Don’t panic. In most cases, the issue boils down to a missing parameter, incorrect naming, or a simple delay in data processing. Go through the checklist above, and you’ll likely find the culprit.
Need help debugging your GA4 implementation? Feel free to reach out, and I’d be happy to take a closer look.
For more information, please follow this guide.”
I’m often to blogging and i really appreciate your content. The article has actually peaks my interest. I’m going to bookmark your web site and maintain checking for brand spanking new information.
This is really interesting, You’re a very skilled blogger. I’ve joined your feed and look forward to seeking more of your magnificent post. Also, I’ve shared your site in my social networks!