Get a Free Audit
  • 1300 852 340

Best Practices for Avoiding Duplicate Conversions and Recreating Conversion Funnels in GA4

Click Here - Free 30-Minute Strategy Session

Be quick! FREE spots are almost gone for this Month. Free Quote

Best Practices for Avoiding Duplicate Conversions and Recreating Conversion Funnels in GA4

Blog / Best Practices for Avoiding Duplicate Conversions and Recreating Conversion Funnels in GA4

Best Practices for Avoiding Duplicate Conversions and Recreating Conversion Funnels in GA4


As we approach June 2023, the old versions of Google Analytics will be switched off for pretty much everyone. The introduction of GA4 tutorials and Google tag manager has brought about significant changes, which can take a bit of creativity to navigate. One such change is how conversions are handled.

At Traffic Radius, we understand the importance of tracking conversions accurately. Here are some of the ways we can help you navigate the changes:

Click Here – Free 30-Minute Strategy Session

Be quick! FREE spots are almost gone for this Month

Free Quote

  • Avoid double counting in GA4 with our expert guidance.
  • Automatically ignore suspicious conversions, such as people landing directly on the conversion page, to ensure your data is as accurate as possible.
  • Recreate the kind of funnels you expected in Universal Analytics, but better with our team of professionals.

To achieve these goals, we will take you through the various bits in GA4 and useGoogle Tag Manager to ensure all your conversion funnel and pixels show roughly the same information. Our approach is more straightforward, yet more robust, ensuring you receive the most accurate data.

Don’t let the changes in GA4 and GA4 trainingaffect your ability to track conversions. Contact Traffic Radius today and let our experts help you stay on top of your game.

How to Manage Conversions in Google Analytics 4

In this section, we will discuss changes that can be made purely through the GA4 interface, without the need for any code changes. As long as your page views conversion events are being sent to GA4, these tactics can be implemented easily.

It is important to note that there are some limitations to using GA4 alone. Implementing changes solely through GA4 can result in your GA data not lining up with conversions recorded via other platforms.

However, our team at Traffic Radius can help you navigate these limitations and ensure that you are receiving the most accurate data possible.

Avoid Double-Counting Conversions in GA4 with Custom Audience

To ensure that conversions are only recorded once per session in GA4, Julius Fedorovicius of Analytics Mania has created a helpful guide that involves using custom audiences.

The process involves creating a custom audience that begins with “session_start,” firing an event when someone enters that audience, and using that event as the conversion.

This clever solution effectively eliminates the problem of double-counting conversions. While the audience sequences in GA4 may resemble the sequences we previously used for segments in Universal Analytics, they offer new possibilities for grouping data. Custom events can be fired when someone enters an audience, allowing for even more precise tracking.

By following Julius’s guide and utilising custom audiences in GA4, you can avoid double-counting conversions and ensure accurate data tracking.

Contact Traffic Radius to learn more about optimizing GA4 setup and maximising your website’s performance.

Consideration when using Google Analytics Audiences

While using Google Analytics audiences to prevent double-counting conversions is a great solution, it’s important to keep in mind that GA may not be the only platform where conversions are recorded. Most websites have multiple conversion tracking pixels, which could potentially lead to double-counting.

For example, while Facebook and Google have their methods of avoiding double-counting conversions, smaller conversion tracking platforms may need extra attention to ensure accurate tracking.

To avoid this, it’s helpful to ensure that all conversion tracking on your website is working similarly. Using Google Tag Manager is an excellent way to achieve this, as it allows for centralized control of all tracking pixels.

Another potential issue is when users land directly on a confirmation page, leading to unexpected conversions. Again, Tag Manager can be utilised to prevent this from happening and ensure accurate tracking.

Creating Conversion Funnels in GA4 and its Limitations

Conversion funnels in GA4 can be created by adapting the AnalyticsMania approach of creating custom audiences based on a sequence of user actions. However, it’s worth noting that conversion funnels are not always the ideal way to categorize conversions, and it’s best to use more direct methods such as form IDs or thank-you pages if possible. 

To create a conversion funnel marketing, additional steps can be added to the sequence, such as visiting an event page before converting. This allows for the creation of specific conversions based on user behaviour. 

However, there are limitations to this approach, such as the possibility of double-counting conversions if a user fulfils the criteria for multiple conversions. This is also a limitation of the old Universal Analytics funnels, where users could still wander off around the site between funnel steps and still convert. 

Overall, while creating conversion funnels in GA4 can be useful, it’s important to consider its limitations and explore other ways of categorizing conversions. 

Choosing Technical Aspects for Your International SEO Strategy

When creating conversion tracking sequences in Google Analytics, you might be tempted to use the “directly followed by” option to ensure that conversions are only recorded when a user completes a specific sequence of actions. However, this can lead to inaccuracies in your data. 

The problem with using “directly followed by” is that it only looks at page views, and there are many other actions a user can take that won’t be recorded as a page view. For example, if someone scrolls down on the sponsorship page and then lands on the thank you page, it won’t be recorded as a direct sequence of page views. 

This means that using “directly followed by” as a criterion for conversion tracking can result in missed conversions or double-counting. To get a more accurate picture of your conversions, it’s important to look at other factors such as event tracking or user behaviour patterns. 

The Use of “within x Minutes”

Improving Conversion Tracking with Google Tag Assistant and Manager 

  • GA4 sequences can be limited in accurately tracking conversions 
  • Directly followed by and within x minutes options can lead to inaccuracies 
  • Using multiple conversion tracking pixels can cause double-counting 
  • Google Tag Manager can help ensure consistent conversion tracking across platforms 
  • Tag Manager can also prevent double-counting and guard against unexpected conversions 
  • Creating custom conversion tags in Tag Manager allows for more precise tracking and reporting 
  • Custom tags can be set up for specific form submissions or thank you pages, avoiding arbitrary time limits or page views 
  • Tag Manager also offers advanced features like cross-domain tracking and conversion tracking across multiple devices. 

Optimising Conversion Tracking with Google Tag Manager

If you want to keep track of a user’s activity across multiple pages, relying solely on Google Analytics may not be enough. That’s where Google Tag Manager comes in. While it may require some extra effort, using Tag Manager for tracking offers a range of benefits, such as ensuring all tracking tags fire consistently and having more control over categorizing conversion paths. 

However, using Tag Manager for tracking also involves the use of cookies, which may cause concern for some. Rest assured that these cookies are not designed to share personal information with third-party services. Creating and deleting these cookies is a straightforward process that requires a bit of copy-pasting in JavaScript. 

Even if you’re not currently using Tag Manager, it’s worth considering for the advantages it can offer in tracking and optimizing conversions. 

Learn More: Conversion Rate optimization strategy 

Avoiding Double Counting 

To summarize our objective, we want to ensure that when a user visits our website and makes a conversion, a conversion is fired. However, if the user revisits a thank you page or goes through a different conversion during the same session, we do not want to fire a second conversion. 

To accomplish this, we will: 

  • Set a cookie when a user makes a conversion. 
  • Ensure that the cookie automatically disappears after 30 minutes of inactivity, which is the default timeout for GA4 sessions. If required, the timeout can be adjusted to a longer duration. 
  • Check for the presence of the cookie every time a conversion is fired. If the cookie is present, we will not fire the conversion. 

By implementing these steps, we can ensure that a conversion is only fired once for each user during a session, and any subsequent conversions are ignored until the user takes a break from the website. 

To set a cookie in JavaScript, we can use Tag Manager and create a new Tag with the Custom HTML type. We can then add the JavaScript code to set the cookie. 

The script finds the current time and what time it’ll be in 30 minutes and uses that and the domain to set a cookie called “converted” which can be read by any page on the website. 

To save the tag, we can select the “All Pages” trigger for testing purposes. 

To read the value of a cookie in Tag Manager, you need to create a variable. First, go to the Variables section in Tag Manager and create a new variable called “convertedCookie.” Set the Cookie Name to “converted.” 

Once you’ve created the variable, you can use it to see what value the “converted” cookie has. To do this, click the “Preview” button and open your site. Then, click on the “Variables” tab to see the value of the “convertedCookie” variable. 

With this variable set-up, you can now use its value in your Tag Manager logic. 

Assuming that you’re using Google Tag Manager (GTM) to track your website’s conversions, let’s take a look at how you can use conversion cookies to improve your tracking. Every conversion setup is different, but if you’re considering GTM, chances are you’re firing conversions based on some condition, such as a custom event or pageview. 

To make the most of GTM, we’ll tweak your trigger by adding another condition. 

Previously, your trigger might have fired on every thank-you page visit, but now we’re going to add a second condition: convertedCookie does not contain true. This means that the conversion will only fire if the convertedCookie variable doesn’t already contain the value ‘true’. 

The beauty of this approach is that it can work with any page or event on your website, not just thank-you pages. So, if you have a custom event that signals a conversion, you can use the same method to fire the conversion tag only once. 

Now, let’s look at how we can change the converted cookie so that it only appears after someone has converted. Now, the cookie is being set on every page view, which means we’re not getting accurate conversion tracking. To fix this, we need to set the cookie only when someone converts and reset it on every subsequent page view. 

To do this, we’ll create a new tag that fires only when a conversion occurs. This tag will set the converted cookie to ‘true’, which means that subsequent page views will trigger the conversion tag only if the converted cookie doesn’t already contain the value ‘true’. And to reset the cookie on every subsequent page view, we’ll create another tag that fires on every page view and resets the cookie if the converted cookie contains the value ‘true’. 

By using conversion cookies in this way, you can ensure that your conversions are accurately tracked and that you’re not double-counting conversions on subsequent page views. So go ahead and give it a try and see how it can improve your website’s conversion tracking. 

Learn More: The Ultimate Guide to AdWords Conversion Tracking 

To avoid recording multiple conversions for the same user within a certain timeframe, we can use a conversion cookie in Google Tag Manager (GTM). Here’s how to set it up: 

Step 1: Remove the trigger from the setCookieConverted tag to prevent it from firing. 

Step 2: Open the advanced settings of your conversion tag and select “Fire a tag after” under Tag Sequencing. 

Step 3: Choose the setCookieConverted tag and check “Don’t fire if conversion tag fails.” 

This will ensure that the setCookieConverted tag only fires after a successful conversion have been tracked. 

The new logic is: 

  • Check if a user has a conversion cookie after a successful conversion. 
  • If no cookie is found, track the conversion and set the cookie. 
  • If the cookie is present, do not track the conversion. 

To test this setup, clear your cookies or wait for them to expire, and then test a conversion. You should see both tags fire on the first conversion but not on subsequent conversions within the timeframe. 

With this setup, you can accurately track unique conversions and avoid overcounting within a specified timeframe. 

In our previous steps, we’ve implemented a mechanism to prevent recording duplicate conversions within a 30-minute window. However, what if a user stays on our website for more than 30 minutes and converts again? To handle this scenario, we need to add another trigger that checks if the user has recently converted and refreshes the cookie on each new page load. 

Here’s how to do it: 

  • Go back to the [Tag] setCookieConverted. 
  • Since it should have no firing triggers at this point, we’ll add a new one by clicking the blue plus sign. 
  • Create a new trigger that fires only on page views where convertedCookie contains true. 

Essentially, when someone converts, we set a “converted” cookie that lasts for the next 30 minutes. Every time a user loads a new page, if they have a “converted” cookie, we reset that cookie for another 30 minutes. If a user doesn’t load a new page for 30 minutes, the cookie will expire, and our refresh trigger won’t be activated. 

To test this, you can use the GTM preview and click around your site. Once you’ve converted, the [Tag] setCookieConverted should fire on every new page load. This approach ensures that if someone converts again within the 30-minute window or continues to browse the site after conversion, we won’t miss recording those conversions. 

Wrapping Up

Even with our refined conversion tracking setup, we may encounter some strange conversions that don’t seem to align with actual user behaviour. This can be due to users leaving the thank-you page open or finding their way to the conversion page through search engines or other means. 

While the root cause of these issues should be addressed, we can also take steps to clean up our analytics by creating a conversion funnel. This involves setting up additional triggers and tags to track the user’s journey leading up to the conversion.

Creating a Clear and Effective Conversion Funnel

This section is a continuation of the previous section on managing cookies, so if you haven’t read that part yet, it’s recommended to do so before proceeding. However, if you’re here because you’re dealing with strange conversions where users directly land on the conversion page, don’t worry. You can follow the instructions in this section and simply adjust the triggers accordingly. I’ll guide you through the process. 

Let’s continue building on the cookie implementation we did earlier. This time, we’ll create another cookie that records the current page’s location. 

To start, let’s create a new Tag called [Tag] setCookiePath. Select “Custom HTML” and add the following JavaScript code: 


// Get time 30 minutes from now (this is because the default GA session time out is half an hour and we want our cookie timeout to match)  

         var minutesToAdd = 30  

          var currentTime = new Date(); // Get current time  

         var newDateObj = new Date(currentTime.getTime() + minutesToAdd*60000); //  

Add our minutes on 

// Set the domain you’re working on, this is because we want our cookies to be accessible in subdomains (like if needed        

         var yourDomain = “” 

          var pagePathName = window.location.pathname // Get location of current page  

 // Set a cookie called ‘conversionPath’ with the value being the current page’s location, which expires in 30 minutes  

         document.cookie = “conversionPath=”+location+”; path=/; domain=”+yourDomain+”; expires=”+newDateObj+”;”  


This JavaScript code will create a new cookie that stores the current page’s location. When the user loads a new page, the value in the cookie will be updated with the current page’s location. 

We’ll use this cookie later to ensure that the last page our user interacted with is the one we record in the conversion funnel. 

Stay tuned for the next steps! 

Setting up Triggers for Your Conversion Funnel

To create a conversion funnel, we need to assume that there are specific pages a user must visit to convert. We will set up a trigger to activate only when one of those funnel pages is involved. 

To begin, click on your [Tag] setCookiePath tag and add a new trigger. We will configure our tag to activate on every user click, ensuring that if a user is hopping between different funnel pages, each click will overwrite the cookie. However, only the last funnel page that the user interacts with will be recorded in the cookie value. This ensures that whichever funnel page our user interacted with last is the one we record. 

With this trigger set-up, we can be confident that our conversion data is accurate and reflects the user’s journey through our funnel. 

Retrieving Funnel Data with funnelCookie Variable

To retrieve data on the funnel pages that users interacted with, we need to create a new variable called funnelCookie, which will retrieve the value stored in the cookie we created earlier, called conversionPath. 

To create the variable, follow the same steps as for the convertedCookie variable, but this time name it funnelCookie and set the “Cookie Name” to conversionPath. 

To test the variable, use preview mode and visit a non-funnel page on your site. Check the funnelCookie variable in the Variables tab, and it should show as undefined. 

Then, go to one of your funnel pages and refresh the preview. You should be able to see the funnelCookie variable update with the value stored in the conversionPath cookie. 

As you navigate to other pages on the site, the funnelCookie variable should remain the same, unless you visit another funnel page. 

This variable will allow us to track the specific pages users interacted with before converting, so we can analyse the effectiveness of our funnel and make data-driven improvements. 

Implementing Conversions Based on funnelCookie

To change our conversions based on the funnelCookie, we need to add a new condition to our conversion trigger. This will ensure that the conversion fires only when the user has gone through the specific funnel page we want to track. 

To do this, we need to add a new condition to our trigger: 

“funnelCookie contains event-page” 

This means that the conversion will only fire if the last funnel page visited by the user was the event-page. 

We can then duplicate this trigger and the associated conversion tags, and update the funnelCookie value for the trigger. For instance, we can set the new trigger to: 

“funnelCookie contains form-page” 

This way, we have two sets of conversions, each tracking a specific funnel page. We can edit the values sent accordingly to suit our needs. 

It’s worth noting that this approach might create some redundancy in your Tag Manager account, but it’s a viable option if you’re unable to extract the funnelCookie value and use it as a variable in your conversion tags. 

A Couple Caveats

Instead of duplicating conversion tags, a better approach would be to use the value of the funnelCookie variable to dynamically change some of the values sent as part of the conversion. However, this approach carries a risk of not recording any conversions at all if a user hasn’t passed through one of your funnel pages. 

To make the information more readily available for filling out conversion tags and to set a fallback, you can use a lookup table. This table categorizes the values of the funnelCookie variable. You can then use the lookup table value in your trigger instead of adding the funnelCookie value directly. 

While I can’t guide you through updating all your conversion tags, this option offers a more efficient way of handling the values and reduces the risk of losing conversions. 

What are some technical aspects to consider when developing an internationally targeted website?

If you don’t want to create a funnel based on specific pages but you still want to ensure that users have visited a page before converting, here’s what you can do: 

  1. In your [Tag] setCookiePath tag, set it to trigger on any Page View that is not your confirmation page. 
  2. You don’t need to create different conversion flows. Instead, just add a requirement for the funnelCookie. This means that the conversion will only fire if the funnelCookie contains the value of some page, rather than being undefined. This ensures that the user has visited at least one page before converting.

Winding Up

I hope this guide has provided you with useful insights into how you can better manage and track conversions on your website, whether it’s through GA4 events or Tag Manager. By implementing the strategies discussed in this guide, you can gain more control over the conversions recorded on your site and ensure that the data collected is accurate and meaningful. Good luck with your tracking efforts! 



Click Here - Free 30-Minute Strategy Session

Be quick! FREE spots are almost gone for this Month

Free Quote


Your email address will not be published. Required fields are marked *


    Your email address will not be published. Required fields are marked *

      I hope you enjoy reading this blog post.

      If you want to get more traffic, Contact Us

      BOOK A CALL Protection Status