Tips on how to Keep away from Duplicate Conversions and Recreating the Conversion Funnel for GA4

News Author


The creator’s views are completely his or her personal (excluding the unlikely occasion of hypnosis) and should not at all times replicate the views of Moz.

As you’re in all probability all too conscious at this level, GA4 is coming. Outdated variations of Google Analytics can be switched off for just about everybody come June 2023.

Whereas GA4 is bettering on a regular basis, there are fairly a couple of issues that individuals are used to seeing in previous variations of Analytics which, on the very least, take a little bit of creativity within the new world.

One instance is how conversions are dealt with. Within the previous variations of Google Analytics, a conversion might solely fireplace as soon as per session. In GA4 conversions are simply one other type of occasion, so it’s doable for a conversion to fireside a number of instances in a single session.

Downside is, you could be very if somebody indicators up by way of your contact-us type as soon as. However that individual would possibly reload the thank-you web page, or join one thing else by way of a special type on the positioning. That doesn’t imply you essentially wish to monitor two conversions.

Talking of signing up by way of completely different kinds, on some web sites, customers could wind up on the identical thank-you web page having taken very completely different routes to get there. If we don’t have that a lot management, and we’re having to depend on thank-you web page views to trace conversions, it may be laborious for us to separate out completely different sorts of conversions.

In previous variations of GA you could possibly use funnels with a “required” step. You may need one aim with a funnel requiring your occasion web page, one other aim with a funnel requiring a special web page, and depend on them to provide you completely different conversions. There additionally isn’t an apparent means to do that in GA4.

On this publish, I’m going to take you thru how you can:

I’ll take you thru a couple of bits in GA4 and others utilizing Google Tag Supervisor. The GA4 strategy is extra easy, however the Tag Supervisor is extra sturdy and might help you guarantee that all of your conversion pixels are displaying roughly the identical info (as a result of we’re gone the purpose the place GA is the one place we’re recording conversions).

Managing conversions in GA4

This part is about modifications we will make purely by way of the GA4 interface. So long as you’re sending your web page views conversion occasions to GA4 you need to be capable of use these ways with none code modifications.

Nevertheless: There are some limitations of doing issues by way of GA4, for instance it could actually imply that your GA knowledge doesn’t line up with conversions recorded by way of different platforms.

Avoiding double-counting

Julius Fedorovicius (of Analytics Mania fame) has produced a incredible information to creating positive that conversions are solely recorded as soon as per session.

It’s best to have a learn however broadly:

No shock that Julius has provide you with a extremely sensible strategy to deal with the issue of double-counting:

When you’ve created Segments in Common Analytics Viewers sequences in GA4 look very just like the sequences we used to create for Segments. Nevertheless, the previous Segments had been only a means of visualizing knowledge, whereas Audiences in GA4 are a means of grouping knowledge. We will use Audiences to create one thing new.

That distinction is necessary as a result of we will do cool issues like fireplace customized occasions when somebody enters an viewers (which Julius makes use of on this answer).

Common Analytics Phase sequence creator

GA4 Viewers sequence creator

The constraints of utilizing Google Analytics audiences

This isn’t actually a limitation so far as GA goes nevertheless it’s a consideration nonetheless. Julius’ answer is nice for ensuring we’re not double-counting conversions in GA, however GA in all probability isn’t the one means we’re recording conversions.

The typical web site in all probability has a bunch of separate conversion monitoring pixels and people might find yourself double-counting conversions.

For instance: Fb and Google each describe how they keep away from double-counting conversions, however their options largely depend on precisely matching transaction IDs, and even when they’re dealing with it okay, there’s a bunch of smaller fish on the market which can be additionally providing conversion monitoring and may want a bit extra hand-holding.

If we wish to guarantee that we’re solely recording one conversion per session, it’s helpful to ensure all of our conversion monitoring is working in the same means. Tag Supervisor is a superb answer for that (I describe an answer within the Tag Supervisor part under).

It’s also possible to run into issues if, for instance, your affirmation web page is one way or the other listed or bookmarked by customers — folks touchdown immediately on it could actually result in bizarre sudden conversions. We will additionally use Tag Supervisor to protect in opposition to that a little bit bit.

Recreating the conversion funnel

Sticking with the GA4 interface for now, we will additionally adapt the AnalyticsMania strategy to create our funnel-based conversions too by including further steps to the sequence.

For what it’s price, conversion funnels are not the best strategy to categorize conversions. If you should use something extra direct (just like the id of the shape they’ve crammed out, a separate thank-you web page) then that’s a a lot extra dependable strategy to categorize conversions. That mentioned, we don’t stay in an ideal world, and generally there isn’t the choice to utterly rebuild your conversion course of.

In Fedorovicius’ instance we simply have two steps in our viewers sequence:

  1. Session_start
    Not directly adopted by

  2. Conversion

Which mainly means “somebody lands on the positioning after which at any level throughout their session, they convert”.

To recreate the aim funnels you could be utilizing in Common Analytics – we will simply add one other step to the sequence. As an illustration:

  1. Session_start
    Not directly adopted by

  2. Visiting our event_page
    Not directly adopted by

  3. Touchdown on our thanks web page/changing

That ought to imply we will create one conversion which is: Customers who went by way of our occasion web page after which transformed.

And one other conversion which is: Customers who went by way of our sponsorship web page after which transformed.

There are some limitations right here although, for instance, what if somebody:

  1. Landed on the positioning

  2. Visited our occasion web page

  3. Then visited our sponsorship web page

  4. Transformed utilizing the shape on both.

They’d fulfill the standards for our occasion conversion and the standards for our sponsorship conversion. We’d document a conversion for every and we’d find yourself double-counting in any case.

That is additionally a limitation of the previous Common Analytics funnels: Simply because a step within the funnel was required doesn’t imply the person can’t get lost across the web site between that step and their closing conversion. So, if it’s any comfort, this isn’t any worse than previous Common Analytics funnels (however we will nonetheless do higher).

The issue with utilizing “immediately adopted by”

You would possibly say “nicely that’s simply solved — in the intervening time the sequence says is not directly adopted by and we will simply change that to is immediately adopted by”.

Certainly that may imply that somebody is on the sponsorship web page and goes immediately from the sponsorship web page to the thanks web page, proper?

Sadly that’s often not what “immediately adopted by” means as a result of there’s all types of issues that may get recorded in analytics which aren’t web page views.

For instance if somebody lands on the sponsorship web page, after which scrolls down and lands on the thanks web page, the thanks web page view doesn’t immediately observe the sponsorship web page view. It goes:

So “immediately adopted by” isn’t a straightforward answer.

How about “inside x minutes”?

GA4 has a extremely cool characteristic within the sequence builder the place we will set a timer in-between steps. Even exterior of monitoring conversions inside a session we will use it to maintain monitor of cool issues like individuals who got here to our web site, didn’t convert that point, however got here again and transformed inside the subsequent couple days.

Jill Fast has been speaking a bunch about how highly effective these choices are.

We might use this to say one thing like: individual landed on our occasion web page after which landed on our thanks web page inside 10 minutes.

However as I’m positive you’ve guessed, that finally ends up being a type of arbitrary lower off, possibly somebody spends a while excited about how you can fill out our type, or possibly somebody actually rapidly goes to considered one of our different pages and converts there. This might be higher than the fundamental funnel, however we might additionally find yourself ignoring utterly reliable conversions.

So what will we do?

Utilizing GA4 sequences for that is type of fantastic, as I say above it’s definitely not worse than Common Analytics, however we might do higher with Google Tag Supervisor.

Managing conversions in Google Tag Supervisor

These approaches require you to run all of your monitoring by way of Tag Supervisor. Although even apart

from this, if you happen to’re not already utilizing Tag Supervisor, I’d advise you to look into it!

Since we have to hold monitor of what’s occurred to a person throughout a number of pages, these options are additionally going to utilize cookies. In case that fills you with dread, don’t fear:

To reiterate what I say above: Whereas this strategy takes a bit extra effort than simply doing issues by way of Google Analytics it permits us to do two issues:

  1. Be sure that all of our numerous monitoring tags are firing in the identical means

  2. Have extra fantastic grained management, significantly if we’re making an attempt to classify completely different paths to conversion.

Avoiding double-counting

To recap what we wish to do right here, we wish to guarantee that if somebody visits our web site and converts we fireplace a conversion. Nevertheless, in the event that they revisit a thanks web page, or undergo a special conversion, we don’t fireplace a second conversion that session.

To do this, we’re going to:

That ought to imply that if somebody involves our web site and converts, we’ll set the cookie, and that may cease us from firing any extra conversions (GA4 or in any other case) till the person has taken a little bit time away from the positioning.

Setting a cookie in JavaScript

The very first thing that you must know is that we will use Tag Supervisor to run any JavaScript we would like. The second factor to know is that we will use JavaScript to set cookies.

So first: Go to Google Tag Supervisor, create a brand new Tag and choose the Customized HTML sort

Give the tag the title “[Tag] setCookieConverted” and within the html content material paste:

<script>

// Get time half-hour from now (it is because the default GA session day trip

// is half an hour and we would like our cookie timeout to match)

var minutesToAdd = 30

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

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

// Set the area your’re engaged on, it is because we would like our cookies to be

// accessible in subdomains (like check.instance.com) if wanted

var yourDomain = “instance.com”

// Set a cookie referred to as ‘transformed’ with the worth being ‘true’ which expires in half-hour

doc.cookie = “transformed=true; path=/; area=”+yourDomain+”; expires=”+newDateObj+”;”

</script>

It ought to appear like this:

The customized HTML tag will add the content material there to the web page, and as quickly because the web page detects a brand new script (the one we’ve written) it’ll run that script.

What our script does is:

Whenever you go to avoid wasting your tag it’ll in all probability say “No Triggers Chosen”.

For now we’re going to click on “Add set off” and select the “All Pages” set off.

That is purely in order that whereas we’re placing this collectively we will simply check it..

Studying our cookie worth

Tag Supervisor has a built-in strategy to learn cookie values utilizing variables. So go to the variables part, create a brand new variable referred to as “convertedCookie” and set the Cookie Identify as “transformed”.

Now, if you happen to click on the “Preview” button and open up your web site we will begin to have a look at what worth the convertedCookie variable pulls by way of for you.

Click on into the “Variables” tab and you need to see convertedCookie someplace within the checklist. Right here’s an instance with different cookies blocked out so you recognize what to search for.

So now we will use the worth of that variable in Tag Supervisor as a part of our logic.

Utilizing conversion cookie in our conversion logic

Everybody’s conversion setup would be the completely different so this won’t match what you’re doing precisely however if you happen to’re contemplating utilizing GTM I’m assuming you might be firing conversions one thing like this:

  1. You will have a set off primarily based on some situation (in all probability both a customized occasion or a pageview)

  2. You will have a tag (or a number of tags) that ship your conversion info at any time when that set off is activated.

What we’re going to do is tweak your set off so as to add one other situation.

Think about that your set off was beforehand firing on each thank-you web page go to:

What we’re going to do is add a second situation to the set off:

convertedCookie doesn’t comprise true

Whereas this instance makes use of the thanks web page path, it doesn’t must, it may be something.

When you make this alteration, you’ll be able to go and check your conversion. As a result of you could have one other tag including the transformed cookie on every web page view, your conversion shouldn’t fireplace when it usually would.

Now we simply want to alter our transformed cookie in order that it solely seems after somebody has transformed.

In the intervening time we’re setting the “transformed” cookie on each web page view, so we’ll by no means get any conversions.

We have to replace that so:

Setting a cookie solely when somebody has transformed

First: we have to take away the set off from [Tag] setCookieConverted so it doesn’t fireplace in any respect.

Then we go to no matter tag we’re utilizing to ship our conversion, open up “Superior Settings”, click on “Tag Sequencing” and choose “Fireplace a tag after”.

Then we choose our setCookieConverted tag and examine “Don’t fireplace if conversion tag fails”.

This could imply that at any time when we ship our conversion, we’ll routinely then activate our cookie tag and mark the person as transformed.

So now our logic is:

To check this, you’ll be able to both clear the cookie or anticipate it to run out. Listed here are directions for how you can clear cookies in Google Chrome (which you’re in all probability utilizing if you happen to’re working with tag supervisor).

Now, if you happen to acquired into GTM preview and click on round you need to be capable of have a look at your variables and see that convertedCookie is again to being ‘undefined’.

When you convert, you need to see that each tags fireplace — your conversion tag and your setCookieConverted tag.

However if you happen to convert once more (reload the web page, re-fill the shape, no matter you’ve acquired to do) you need to see that neither tag fires.

Congratulations! You’re filtering your conversions to keep away from recording a conversion greater than as soon as for somebody in a 30 minute window.

We simply wish to make one final tweak now.

Refreshing the cookie if it has been set

Our cookie has a 30 minute expiration. Which means it’ll stick round for half-hour after which routinely be deleted from the browser. However what if somebody hangs round on our web site for greater than half an hour, studying a weblog publish or one thing, and converts once more?

To assist take care of that, we’re going so as to add one other set off which checks if the person has not too long ago transformed, and if they’ve, refreshes the cookie with every new web page load.

Head again to [Tag] setCookieConverted

At this level it shouldn’t have any firing triggers. We’re going so as to add one again in.

Click on the blue plus signal on this display, and once more within the subsequent display that comes up, we’re going to create a brand new set off.

Within the new set off, we set it to fireside solely on web page views the place convertedCookie incorporates true.

So this will get a little bit bit round, however mainly:

You possibly can check this by clicking round your web site with the GTM preview. When you’ve transformed, the [Tag] setCookieConverted ought to fireplace on each new web page load.

Wrapping up

All that you must do now could be guarantee that all of your conversion tags use that very same set off (the one which has the situation that convertedCookie isn’t “true”). As soon as that’s arrange, they need to all behave the identical — solely recording one conversion per session except somebody clears their cookies or simply hangs round on one web page for a very very long time.

What if we discover we’re getting bizarre conversions the place customers haven’t visited some other pages on the positioning?

I’ve labored with websites up to now the place:

  • There’s helpful info on the thank-you web page and customers have been holding it open/coming again to it.

  • Affirmation pages have been listed in Google or individuals are discovering their strategy to the conversion web page another means.

That may result in bizarre tracked conversions that don’t correspond to precise conversions. Whereas these issues needs to be solved at supply, we will additionally clear up our analytics utilizing the steps in “Making a conversion funnel” under.

Making a conversion funnel

This builds on the cookie meddling we’ve carried out within the final part, so if you happen to haven’t learn that bit, it’s price looking!

When you’re right here not since you need a particular funnel however since you wish to take care of bizarre conversions the place customers simply land straight on the conversion web page – don’t fear you observe these directions precisely the identical, you simply set the set off for each web page besides your conversion web page (I’ll take you thru that).

Setting a “path” cookie

Similar to the “transformed” cookie earlier than, we’re going to create a brand new cookie that information the situation of the present web page.

Create a brand new Tag referred to as [Tag] setCookiePath, select “Customized HTML” and add the next JavaScript

<script>

// Get time half-hour from now (it is because the default GA session day trip

// is half an hour and we would like our cookie timeout to match)

var minutesToAdd = 30

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

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

// Set the area your’re engaged on, it is because we would like our cookies to be

// accessible in subdomains (like check.instance.com) if wanted

var yourDomain = “therobinlord.com”

var pagePathName = window.location.pathname // Get location of present web page

// Set a cookie referred to as ‘transformed’ with the worth being ‘true’ which expires in half-hour

doc.cookie = “conversionPath=”+location+”; path=/; area=”+yourDomain+”; expires=”+newDateObj+”;”

</script>

It ought to appear like this:

This can save a cookie that information the situation of the web page. The primary time it’s loaded it is going to create a brand new cookie with that info, each time after it’ll substitute the worth.

We’ll use this to guarantee that whichever funnel web page our person interacted with final is the one we document.

Triggering in your funnel pages

In creating our “funnel” we’re assuming that there are particular pages a person passes by way of with a view to convert. So we’re going to set this to set off solely when a type of funnel pages is concerned.

In your [Tag] setCookiePath tag – click on so as to add a brand new set off and create a brand new set off.

We’re going to configure our tag to activate on each person click on. Which means if a person is hopping between completely different funnel pages, each will overwrite the cookie as they click on round however solely the one they interacted with final would be the one which sticks round within the cookie worth.

Getting our funnelCookie

As within the double-counting directions, create a brand new variable. However this time, name it funnelCookie and set the “Cookie Identify” to conversionPath.

When you’ve carried out that you need to be capable of check by utilizing preview, going to any previous web page of your web site (so long as it’s not considered one of your funnel pages) and checking funnelCookie within the Variables (it needs to be undefined).

Then go to considered one of your funnel pages, you need to be capable of see the cookie change.

As you go to different pages on the positioning, funnelCookie ought to keep the identical, except you go to one other funnel web page.

Altering our conversions primarily based on the funnelCookie

Now, there are sensible issues you could possibly do right here with extracting the worth of funnelCookie and placing that right into a variable in your conversion tag however the setup for each tag can be completely different and I wish to offer you an possibility for if you happen to’re not in a position to do this.

This can create a little bit extra mess in your Tag Supervisor account since you’ll be duplicating a few of your set off and conversion tags.

First, let’s return to the conversion set off we had been engaged on earlier than. It seemed like this once we left it:

We’re going so as to add in one other situation:

funnelCookie incorporates event-page

This implies now that this conversion will solely fireplace if the final funnel web page our person handed by way of was the event-page.

After this we will duplicate this set off, our conversion tags, and, for our different set of conversions, change the funnelCookie worth for the set off.

Possibly as an alternative we make it:

funnelCookieincorporates form-page

Now you could have two units of conversions, every of which is able to fireplace primarily based on which funnel web page the person handed by way of. From there you’ll be able to edit the values despatched.

A pair caveats

As a substitute of duplicating our conversion tags it might be a lot higher to tug within the worth of the funnelCookie variable and use that to only dynamically change among the values we’re sending as a part of the conversion.

With this strategy, you additionally run the danger of not recording any conversions in any respect if a person hasn’t handed by way of considered one of your funnel pages. That could be what you need, nevertheless it’s price bearing that danger in thoughts in case you assume folks would possibly take legitimate-but-unusual routes to conversion.

Whereas I can’t take you thru the method of updating all your conversion tags, one choice to make this info extra prepared for filling out conversion tags (and to optionally set a fallback in case you wish to keep away from shedding conversions) is to make use of a lookup desk like this, the place you are taking the funnelCookie worth and categorise the values.

Then as an alternative of including the funnelCookie worth in your set off, you retain the set off the identical and pull within the lookup desk worth.

Triggering on any web page besides your conversion web page

When you’re not involved about establishing web page funnels however you wish to guarantee that customers have visited at the least one web page earlier than changing. There are a pair modifications:

  • You don’t trouble creating completely different conversion flows, you simply have one circulate, however you continue to add a funnelCookie requirement which says that your funnelCookie needs to be some web page relatively than undefined

Conclusion

Hopefully this has helped you get an concept of how you can get extra management of the conversions being recorded in your web site, whether or not that’s completely by way of GA4 or utilizing the ability of Tag Supervisor.

Completely satisfied monitoring!