If your Google Ads conversion fires but the purchase value is missing, zero, or inconsistent, the issue is almost always caused by incorrect ecommerce variables.
Google Ads does not calculate revenue itself. It simply reads the values sent through Google Tag Manager or the Google tag.
If the purchase event does not include the correct fields, your campaigns cannot optimize for revenue and Smart Bidding loses its main signal.
The four fields that matter most are:
- value
- currency
- transaction_id
- items
This guide walks through how to define them correctly in Google Tag Manager.
What a Correct Purchase Event Should Look Like
Your website must push a purchase event to the data layer.
<script>
window.dataLayer = window.dataLayer || [];
window.dataLayer.push({
event: "purchase",
ecommerce: {
transaction_id: "1700001234",
value: 129.99,
currency: "EUR",
items: [
{
item_id: "SKU_123",
item_name: "Red Light Therapy Panel",
price: 129.99,
quantity: 1
}
]
}
});
</script>
If any of these fields are missing, Google Ads may still count a conversion, but it will not have the correct revenue.
Step 1: Confirm the Purchase Event Exists
Before touching Google Tag Manager, confirm the site actually sends the purchase event.
Using GTM Preview Mode
- Open Google Tag Manager
- Click Preview
- Complete a test purchase or open the thank-you page
- Click the purchase event in the left panel
- Open the Data Layer tab
You should see:
- ecommerce.value
- ecommerce.currency
- ecommerce.transaction_id
If the event does not exist, the website must implement the data layer first. GTM cannot create purchase data on its own.
Step 2: Create Data Layer Variables in GTM
Now we define the variables GTM will read.
Go to Variables → New → Data Layer Variable.
Variable 1: Purchase Value
- Name: DLV - value
- Data Layer Variable Name: ecommerce.value
Variable 2: Currency
- Name: DLV - currency
- Data Layer Variable Name: ecommerce.currency
Variable 3: Transaction ID
- Name: DLV - transaction_id
- Data Layer Variable Name: ecommerce.transaction_id
Variable 4: Items
- Name: DLV - items
- Data Layer Variable Name: ecommerce.items
Save all variables.
Step 3: Configure the Google Ads Purchase Tag
Open your Google Ads conversion tag in GTM.
Fill the fields using the variables:
- Conversion Value → {{DLV - value}}
- Currency Code → {{DLV - currency}}
- Transaction ID → {{DLV - transaction_id}}
This ensures each conversion sends real revenue to Google Ads.
Step 4: Add the Purchase Trigger
Your tag should fire on the purchase event.
Create a trigger:
- Trigger Type: Custom Event
- Event Name: purchase
Attach this trigger to your Google Ads conversion tag.
Step 5: Test the Setup
Use Preview Mode again.
Complete a test purchase and check:
- The purchase event appears
- The tag fires once
- The value is not zero
- The currency matches your store
- The transaction ID is present
If the tag fires but value is empty, the issue is always the data layer.
Common Reasons Purchase Value Is Missing in Google Ads
Most issues fall into these categories:
- The site pushes value after the GTM tag fires
- The data layer uses a different variable name
- Currency is missing or lowercase
- Transaction ID is absent or duplicated
- The purchase event fires twice
Reliable ecommerce tracking depends on consistent data structure, not just tags.
Key Takeaway
Google Ads cannot optimize revenue if it does not receive revenue.
Correct purchase tracking requires:
- A structured data layer
- Proper GTM variables
- Correct tag configuration
- Testing before publishing
When these elements align, your campaigns gain the signals needed to scale profitably.
Related Posts
How Google Tag Manager, GA4, and Google Ads Work Together
7 min read
How to Set Up Call Tracking with Google Ads and Google Tag Manager
12 min read
How Claude AI Can Help You Set Up Google Ads Tracking in Google Tag Manager
11 min read
Need Help With Your Google Ads?
I help e-commerce brands scale profitably with data-driven PPC strategies.
Get In Touch