GA4 or the Google Ads Tag: Setting Up Conversions Without Duplicates
GA4 key event import or the native Google Ads tag? We break down enhanced conversions and show how to build a clean, duplicate-free measurement stack.
AdsConcept teamGoogle Partner · Google Ads practitioners
In short
- There are two ways to send a conversion to Google Ads: the native Google Ads conversion tag or importing key events from GA4. Both work, but they behave differently.
- The core rule: one business action, one primary source. The second source, if you need it, stays secondary, for observation only.
- For the key conversions that Smart Bidding learns from, we usually choose the native tag together with enhanced conversions.
- GA4 import makes sense for supporting events, small accounts, and situations where there are no resources for separate tagging.
- As of 2026, enhanced conversions for web and enhanced conversions for leads are merged into a single setting, and offline data uploads via API are moving to the Data Manager API.
The most common mistake we see in audits is the same lead being counted twice: once by the Google Ads tag and once by the GA4 import. The reports look rosy, while Smart Bidding is busy optimizing toward made-up numbers. Let’s look at how to choose a source, set up enhanced conversions, and verify that your measurement is actually clean.
Why this matters more than it seems
Smart Bidding learns only from primary conversions included in the campaign’s goals. Whatever you put there is the algorithm’s definition of success. If a conversion is counted twice, the algorithm treats every click as twice as valuable as it really is. If a click on a phone number ends up among the primary conversions, bids will adjust toward people who click readily rather than people who buy.
That’s why choosing between GA4 and the Google Ads tag isn’t a technical detail. It’s a decision about the quality of the data your entire optimization rests on.
Two ways to send a conversion to Google Ads
The native Google Ads conversion tag
This is the Google tag (gtag.js) or the Google Ads Conversion Tracking tag in Google Tag Manager, firing on the target action. It works alongside the Conversion Linker, which stores click identifiers (GCLID and its iOS equivalents) in a first-party cookie.
What the native tag gives you:
- conversions go straight into Google Ads, with no intermediate processing in another system;
- view-through conversions are available for YouTube, Display, and Demand Gen campaigns;
- the fullest support for enhanced conversions;
- dynamic values and transaction IDs to protect against duplicates;
- attribution based on the model selected in Google Ads for that conversion action.
Importing key events from GA4
If your GA4 property is linked to Google Ads, you can import key events as conversions. GA4 then becomes the source: the event is recorded in Analytics, processed, and passed on to the ad account.
Import specifics worth knowing:
- when importing, you can choose which channels get credit: Google paid channels only, or both paid and organic channels; for new links, the first option is selected by default;
- view-through conversions aren’t available for imported events, since that requires native Google Ads measurement;
- cross-device conversions require Google Signals to be enabled in GA4;
- data arrives more slowly than from the native tag because it’s processed in GA4 first;
- to prevent double counting, Google may add these conversions as secondary, so check the status and deliberately make primary only the action you’re optimizing for.
For details, see the Google Ads Help article on importing Google Analytics key events.
Side-by-side comparison
| Criterion | Google Ads tag | GA4 import |
|---|---|---|
| Data latency | Faster | Delayed by processing in GA4 |
| View-through conversions | Yes | No |
| Enhanced conversions | Full support | Not the primary use case |
| Attribution | The Google Ads model for that specific action | Your choice: Google paid channels only, or all channels |
| Duplicate protection | Transaction ID, count settings | Count settings in GA4 and Google Ads |
| Effort | A separate tag or event for each action | The event already exists in GA4, so importing it is enough |
| Visibility outside ads | Google Ads only | The event is also available in GA4 reports |
Our rule: one action, one primary source
For every business action, we choose one source that will be the primary conversion. The other can exist, but only as secondary, for reporting and comparison.
When we choose the native tag:
- e-commerce purchases with dynamic values;
- the main leads and bookings that Smart Bidding learns from;
- YouTube, Demand Gen, and Display campaigns, where view-through conversions matter;
- any situation where you need enhanced conversions.
When GA4 import is perfectly appropriate:
- supporting events (contact page views, scroll depth, messenger clicks) that we keep as secondary;
- a small account with no resources for separate tagging, where the key event in GA4 is already set up correctly;
- cases where the business needs to see the same numbers in GA4 and Google Ads and knowingly accepts the limitations of importing.
When you need a third source: the CRM
If a sales rep qualifies leads between the form submission and the sale, the best source of truth is the CRM. We set up “qualified lead” and “deal” events to flow into Google Ads through GCLID-based offline conversion imports and enhanced conversions for leads. That way, the algorithm learns from real sales, not from submitted forms.
Enhanced conversions: what they are and why you need them
Enhanced conversions supplement the standard tag with data that users provide on your site themselves: email address, phone number, name, and address. This data is hashed with SHA-256 before it’s sent and then matched against Google accounts. That way, Google Ads can attribute a conversion even when the cookie is lost, for example when someone clicks an ad on their phone and submits a lead later.
What changed in 2026:
- enhanced conversions for web and enhanced conversions for leads are now combined into a single on/off setting, and existing accounts were migrated automatically;
- Google Ads accepts user-provided data from the site tag, from Data Manager, and through the API, so you no longer have to pick just one implementation method;
- as of June 15, 2026, uploads of offline conversions and enhanced conversions for leads moved from the Google Ads API to the Data Manager API. If you have a custom CRM integration via the API, it’s worth checking.
The official description is in the Help article on enhanced conversions for leads.
Implementation options
- Automatic detection in the Google tag. The fastest option, but the least reliable: the tag looks for form fields on the page on its own. It works for simple sites, and we always check the diagnostics afterward.
- Code or a variable in Google Tag Manager. We pass form data into a User-Provided Data variable and attach it to the conversion tag. This is our standard approach.
- Data Manager or the API. For uploading data from the CRM when the conversion happens off-site.
What you can’t skip
- User consent. If you get traffic from the EEA, the UK, or Switzerland, data sharing must respect the
ad_user_datasignal in Consent Mode v2. - Your site’s privacy policy must disclose that data is shared with advertising services.
- After launch, we check the enhanced conversions diagnostics report in Google Ads: the share of conversions with user-provided data and any formatting errors.
Common mistakes we find in audits
- Double counting. The Google Ads tag and the GA4 import for the same lead are both set as primary. This is the most common and most expensive mistake.
- Wrong count setting. Leads should be counted as “One” conversion per click, and purchases as “Every.” If someone submits a form three times, it’s still one lead.
- Conversions on thank-you page views. The page can be reloaded, bookmarked, or opened from browser history, and each time it’s a new “lead.”
- Missing transaction ID. Without it, reloading the order confirmation page creates a duplicate purchase.
- Static value instead of dynamic. In a store, every purchase is “worth” the same, and value-based bid strategies fly blind.
- Micro-conversions as primary. Phone number clicks, contact page views, and scrolling are useful signals, but they aren’t the goal.
- Lost GCLID. A redirect that strips URL parameters, or auto-tagging turned off, and conversions no longer get tied to clicks.
- Different conversion windows and “all channels” attribution. After that, the numbers in GA4 and Google Ads don’t match, and the team wastes time hunting for an “error” that doesn’t exist.
How we verify that everything works
A conversion setup that hasn’t been tested is just a hypothesis. Our process:
- GTM Preview mode and Tag Assistant. We check that the tag fires once, on the right action, with the correct value and transaction ID.
- DebugView in GA4. We make sure the event and its parameters reach Analytics.
- Test conversions. We submit a real lead from an ad click and wait for it to show up in Google Ads.
- Diagnostics in Google Ads. The status of each conversion action, enhanced conversions diagnostics, and campaign goal settings.
- CRM reconciliation. We compare the number of conversions in Google Ads with actual leads and sales for the same period.
When reconciling, keep in mind that Google Ads attributes a conversion to the date of the click, while GA4 and the CRM use the date of the action itself. So data for the last few days in Google Ads will keep catching up. A small discrepancy between systems is normal. A consistent gap of several times over is a reason to look for duplicates or data loss.
What to do next
Start with a simple review: open Goals in Google Ads, look at the list of primary conversions, and for each one answer two questions. Where does it come from? Could the same action also be coming in from another source? That alone often surfaces the account’s biggest problem.
If you want your measurement set up and verified for you, the AdsConcept team audits conversion tracking and sets up GA4, Google Tag Manager, enhanced conversions, Consent Mode v2, and CRM data imports. We leave documentation behind so your team understands what’s being counted and how.