50 Google Analytics Goals (2019)

Google analytics goals 2019

50 Google Analytics Goals 2018: Google Analytics Goal set up

One of the most important concepts in web analytics is the conversion, the transformation of a mere website visitor into a customer. The actions that define conversion may be any type of user interaction that is valuable to you, from major (purchases, contact requests) to a minor (content engagement, newsletter signup). Google Analytics allows you to specify the interactions that you want to consider as conversion through goals


Google Analytics has four kinds of goals:

Google Analytics

Destination goals, the most common type, are based on the URLs of pageviews. Typically they are used for a confirmation or thank-you page of some kind that indicates the user has completed a process. Destination goals can also have a funnel, a series of steps leading up to the final destination page (a series of forms that must be filled out, etc.).


Session Duration and Pages Per Session goals are based on those metrics exceeding a given threshold (the user spent more than 5 minutes on the site, or viewed more than 3 pages).


Event goals are based on events, the non-pageview interactions for measuring activities such as downloads, outbound links, or video plays 


In many cases, these goals are straightforward to create, based on the tags and triggers you’re already using in Google Tag Manager. However, in some cases where URLs don’t change, such as dynamic, AJAX-driven processes, you might require additional tags and triggers in Google Tag Manager to accommodate. This blog explores the setup of goals in Google Analytics and any tags and triggers in Google Tag Manager that are necessary to deal with such situations.




Notice that none of these goals represents actions by the user that aren’t already available in Google Analytics data. What good, then, are these goals?


First of all, creating goals forces you to actually think about why your site exists and what you’d like your users to accomplish.


Within Google Analytics, creating goals elevates these particular actions in importance in the way Google Analytics presents them in its reports. Goal metrics such as conversion rate are easily accessible across all of the types of reports in Google Analytics, as well as enabling further analysis through tools such as the multi-channel funnel reports.


The accessibility of goal metrics in reports makes it easy and straightforward to make comparisons and find your most valuable audiences and marketing channels. Without goals, you’d have to dig harder, using segments and other tools in reports, to come to these answers.


You can also assign monetary values to the goals you create in Google Analytics, and there are metrics that let you compare these values in your reports as well. If there are actual purchases being made on a website, you can capture those with e-commerce tracking; but for other types of sites, you may still be able to assign a real-world value to the goals.


For a lead generation process, for example, you may be able to gather data from outside Google Analytics (out of 1000 leads from the website over the last year,10% resulted in a sale, and the average value of a sale was $500), resulting in an average value per lead (in this case, $50, if you do the math).


Alternatively, if there aren’t any conversions on your site that you can tie to real-world monetary values, you can still use the goal values as a way of weighing their importance. Maybe your primary goal is $100, a couple of secondary goals are $50 each, and some minor goals are $10 each.


Creating and Organizing Goals


Goals are created within each view in Google Analytics. You’ll find any goals you’ve created and the ability to create new ones in the view column of GA’s Admin settings 


Setting up goals, like any other changes to the Admin settings in Google Analytics, does not retroactively reprocess existing data in reporting views. Creating a goal will measure conversions for that goal going forward.



Google Analytics

Let’s walk through how to create a goal in Google Analytics. In the Goals section of the View column in GA’s Admin tab, select the + New Goal button.


  • Enter a name for the goal. The name will be the label that displays for the goal in your Google Analytics reports, so be sufficiently descriptive that it’s obvious to anyone using your data what the goal represents.


  • Optionally, choose a goal slot. As noted, each view has 20 goal slots. These are divided into four sets of five goals each, which correspond to groups of goals viewable in reports.


  • By default, Google Analytics simply uses the next open slot, but you can change this (for example, if you want to put the most important goals first and less important ones last).


  • Choose a goal type: Destination, DurationPages/Screens per session, or Event. Then select the Next button to provide the goal details.


  • Depending on the type of goal you’ve selected, in the next step Google Analytics asks you for the details of the goal:


  • For Destination goals, you enter the URL(s) of the goal page, and optionally of funnel pages for steps that lead up to the goal. This type of goal is explored in detail in the next section.


  • For Duration goals, specify a time by entering numbers for hours, minutes, and seconds. If a session’s duration is longer than the time you enter here, Google Analytics will count the goal conversion.


  • For Pages/Screens per session goals, specify the number of pages. If a session contains more than that number of pages (or screens for mobile apps, Google Analytics will count the goal conversion.


  • For Event goals, you can specify one or more criteria for the category, action, label, and value of the event(s) to count as a goal conversion. If you set more than one criterion, all of them must be true to count as a goal conversion.


Optionally, for any type of goal, set a currency value. (For Event goals, you have the additional option to use the event value for the goal value.)


  • Use the Verify this Goal option to double-check your goal setup. This compares your goal setup to data from the last seven days and shows the number of conversions that would have been recorded. If you get 0 but you know you have had conversions, check your setup for typographical errors in URLs, event properties, and so forth.


  • Select the Create Goal button to save the goal.
  • Google Analytics will start calculating conversions for this goal in your reports from this point forward.


Deleting Goals

If one of your goals is no longer relevant, you can disable it with a toggle in the list of goals, which hides it from view in your reports.


Notice, however, that there is no option to delete a goal. Like all Google Analytics data, once data is in reports, there’s no going back in time to change it (including deleting the existing goal data). You can, however, reuse the slot for a goal by simply changing its name and all of its settings. From that point forward, data in that goal’s slot will be for the new goal, and backward for the old.


Tip there’s no indication in GA’s reporting interface when a goal’s setup has changed, so you should provide an annotation, and consider including a date in the goal’s title to be clear about changes.


Destination Goals and Funnels

Google Analytics

The most common type of goal in Google Analytics is the Destination goal, which indicates that the user has reached some particular page (defined by URL). Usually, this is a page reached at the end of some process, a confirmation page reached upon completion. However, it could be any important page on your site you want users to reach.


For goals that have a set of steps leading up to the final destination, you can create a funnel. Google Analytics will show progression through this funnel so that you can understand where the process may have leaks or bottlenecks that prevent some users from completing the goal.


There are two reports in Google Analytics where the funnel data is shown, the Funnel Visualization and Goal Flow reports (both found in Conversions ➤ Goals). These reports offer different visualizations, with different levels of detail into behavior.


Note  A goal’s funnel setup affects only these funnel reports. All other metrics in Google Analytics based on the goal (conversions, conversion rate, value) only look at whether the final goal destination is reached.


Funnels are designed for a sequence of steps that a user goes through in order to complete some process. This sequence might include an optional step, or have the possibility to go backward to a previous step, but there is an implied order to the funnel, from first step to last.


You should only include steps in the funnel that a user progresses through to get to the goal in a particular order. If the pages can be viewed in any order, the funnel reports will not show especially useful data.


Setting Up a Funnel


Before setting up the goal funnel, you’ll need to know the URL of each step in the process. Depending on what the process is, it might be easy to walk through on the site (fill out the contact form and say “Sorry, just testing”) to see what the URLs are. In other cases (purchases, account registrations, etc.), the processes may be more complex or difficult to test.


You may need to use a test version of the site or consult your documentation or developer to understand the process and the sequence of URLs involved.


In some cases, you may encounter a sequence of steps that don’t have any distinction between URLs.

You’ll explore how to tackle these later in the blog.



Assuming you’ve already gathered a list of URLs of the steps in your process, let’s set up a destination goal with a funnel.

Complete steps 1–4 from “Create a Goal in Google Analytics” and choose Destination as the goal type.


1. For a Destination goal, the first goal detail setting to enter is the final URL destination for the goal. This represents the conversion: if the user reaches this page, the conversion occurred; if not, it didn’t.


2. Enter URLs here just as they appear in reports in Google Analytics, typically beginning with the path (excluding the hostname). There are three matching options:


  • Equals to: The URL must match exactly what is entered, no more and no less. This is the default and works fine in many cases, but where you need more flexibility, the next two options are available.


  • Begins with: The URL must begin with the string entered but could continue with additional text at the end of the URL. This is quite useful for URLs that have many possible variations according to the user making a choice or entering information in a form. For example:


  • /locations/retail?zipcode=12345 /request-a-quote/thank-you?Industry=Education&Country=US
  • Regular expression: The URL must match the regular expression pattern. This allows a large degree of flexibility for matching patterns from general to specific.


3. You also have the option whether the URL you entered should be case-sensitive (which is almost never needed).


4. Enter the full URL, partial URL, or regular expression pattern for the final goal page.


Optionally, assign a monetary value to the goal.

  • To create a funnel, turn the funnel option to On. A list will appear for you to list labels and URLs for each step.


  • For each step, the Name is simply the label for the step in the funnel reports. The Screen/Page is a URL or regular expression pattern for the step. The funnel URLs follow the same rules—Equals to, Begins with, or Regular expression—chosen earlier for the final goal URL.


  • You can add as many steps as necessary that precede the final goal page (up to 20, although if a process is 20 steps long, you should probably rethink the user experience). You don’t need to repeat the goal URL in the funnel steps; the final goal URL is always considered the last step.


  • Finally, notice that the first step has an additional option, whether it should be required. This is further discussed later in the blog and situations where it’s appropriate.


  • Use the Verify button to check the goal. Note that the Verify button only tests the final conversion, not each individual funnel step. (More advice on testing and verifying funnel URLs to come.)


  • Select the Create Goal button to save the goal.
  • Google Analytics will start calculating conversions and funnel data for this goal in your reports from this point forward.


Required First Step

Google Analytics

Finally, there’s one additional option that useful in some scenarios: the required step option on the first funnel step. Notice that the funnel reports show users entering the funnel at any step in the process. Often, that’s the first step, but it could be a subsequent step.


How does this happen? You may think it’s not possible; there’s no way to get to Step 2 of the registration process without going through Step 1! Nevertheless, it can happen in a variety of edge-case scenarios, like this:


Hey, we should get tickets to go to Alice’s Wonderland Resorts! I’ll go to Step 1.


Wait, I should ask the Mad Hatter if he wants to come along with me. I’ll just leave this open in my browser until I find out. More than 30 minutes go by, and my session expires in Google Analytics.


OK, now I’m ready to reserve those tickets! I go on to Step 2, but since my session expired, Google Analytics shows me entering the funnel at Step 2.


In most cases like these, the bulk of users enter at the first step and a handful at subsequent steps. However, in some scenarios, you might only wish to see users who completed the full process.


The first two steps are a sign-up process, giving the users access to a page with some downloadable resources. The final page can be bookmarked and returned to by those users, who do that often (which is why you see so many of them enter at the final step). But the users you’re really interested in are just those who actually signed up in Steps 1 and 2.


By setting the Required setting on the first step of the funnel, the funnel reports show you only users who began at Step 1. Note that this affects only the funnel reports; the number of conversions overall for the goal is always determined only by the final destination URL.


Funnels Without Distinct URLs

For funnels where the steps are easily differentiated by URL, the goal setup is pretty straightforward. What happens in a situation where the funnel steps aren’t easily differentiated by URL, such as the following:

  • A modal popup appears within a page
  • A form and its confirmation page have the same URL


  • A checkout or signup process has several steps that occur within a single page without reloading (known as AJAX)
  • A process where one or more steps occur at an external, untracked website


The approach for setting up funnels in these situations is to use virtual pageviews—that is, to trigger a Google Analytics pageview on some interaction like a form submission or a click a button that advances to the next step, and use a concocted URL to represent the interaction.


GTM’s Google Analytics tag allows you to override the current page’s URL with a URL of your choice using the page field in the Fields to Set section.


For the virtual pageview, /drink-imaginary-tea is the URL chosen to be recorded—a URL that doesn’t actually exist on your site, but that you’ll see in your Google Analytics data to represent the action that was performed.


Because these actions are recorded as pageviews in Google Analytics, you can then use the URLs you chose to set up the funnel (and you’ll also be able to see the page views in the Site Content reports).


Note  For external websites, such as a third-party payment site, if you can put your Google Tag Manager container code on the site, you can use cross-domain tracking to capture data. If the third party doesn’t allow your code, activity by the user on their site is invisible to you, but you can at least track users leaving your site to go there.


Modals and iFrames

Google Analytics

modal is a popup that occurs within a page (rather than as a separate tab or window within your browser).


This modal popup could contain two different types of information:

Often they use the iframe HTML element to simply include another page within. In other cases, such as a lightbox for images, they might simply show/hide or restyle elements of the page content.


To check the content of a particular modal popup on your site, you can simply inspect the source code. If the iframe element is used, there is actually a distinct page for the content of the modal.


As long as your Google Tag Manager container is on that page, you’re measuring it just like any other, and a pageview for that URL will appear in Google Analytics, just like all your other pages show up.


Note If the page within the iframe is on a different domain, you need to use cross-domain tracking. There are some additional browser and security issues regarding cross-domain iframes; see the Google Analytics developer documentation for details on handling this scenario.1


For models that do not use an iframe element, you can use the Click trigger to trigger tags. It’s up to you whether you want to trigger a Google Analytics event tag or pageview tag, depending on the nature of the interaction and how you want to be able to see the data in Google Analytics. For an image in a lightbox, an event tag might be most appropriate.


If there’s a form or other multi-step process within the modal popup, however, you might want to use a page view so that you can set up a destination goal with a funnel.



Google Analytics clicks

To create a virtual pageview for a click, think back to the process outlined when you triggered a Google Analytics event tag based on a click. Here, you’ll swap out the Google Analytics pageview tag instead.

  • Create a new tag. Choose Google Analytics ➤ Universal Analytics as the type.
  • Fill in the Tracking ID with the {{GA Property ID}} variable that you previously created.


  • Select Track Type ➤ Pageview.
  • Under More Settings ➤ Basic Configuration


you’ll find a field labeled Document Path. This is the URL recorded by Google Analytics. By default, the current page path is used, but you can override that label here. (This is the essence of your “virtual pageview”: you’re creating a URL that doesn’t actually exist to represent the form submission.)


You can use any combination of text and variables here to construct a URL. Often it makes sense to use the current page (the {{Page Path}} variable) and append some label to the end:


  • {{Page Path}}/modal-newsletter-signup
  • Now specify a trigger for the tag.
  • Choose Click, then select the New button to create a new click trigger.
  • specify some criteria to restrict the click trigger to the appropriate link, button, or another element.


Note  Here it is not necessary to use the “Wait for tags” option of the Link Click listener since the current page remains open after the click.

  • select the Create Trigger button, giving the trigger a name: “Modal Popup”. Google Tag Manager saves the trigger and returns to creating the tag.
  • Save the tag, giving it a name: “GA – Pageview – Modal Popup”.


Forms and the Form Listener



HTML form elements allow the user to fill out a number of input fields and then submit the form. The contents of the input fields are submitted to a URL for processing by your site (represented in HTML by the action attribute of the form element).

  • <form id="red-queen" action="/off-with-her-head/">
  • <input id="first-name" name="first-name" type="text" placeholder="Alice"> <input type="submit" value="Submit!">
  • </form>


If the URLs are different for the page that includes the form and the action of the form, you can easily differentiate these steps in a funnel. In some cases, however, the action of the form may be the same as the current page. After the form is submitted, the page may show different content (a confirmation message, for example), but the URL is the same.


In cases where you can’t differentiate a form by URL, you can track submissions of the form using GTM’s Form trigger. The Form trigger is similar to the Click trigger but instead listens to see if the HTML form element is submitted.


Note  Just as Google Tag Manager includes built-in variables for the Click listener like {{Click ID}} and {{Click URL}}, it has the same set of variables available for the Form listener. You’ll want to make sure these are enabled in the Variables section in Google Tag Manager before setting up a Form listener.



Let’s look at how to create the tag and trigger for a form submission.

  • Create a new tag.
  • Choose Google Analytics ➤ Universal Analytics as the type.


  • Fill in the Tracking ID with the {{GA Property ID}} variable that you previously created.
  • Select Track Type ➤ Pageview.
  • Under More Settings ➤ Basic Configuration,


you’ll find a field labeled Document Path. This is the URL recorded by Google Analytics. By default, it’s just filled in with the current page path, but you can override that label here. (This is the essence of your “virtual pageview”: you’re creating a URL that doesn’t actually exist to represent the form submission.) You can use any combination of text and variables here to construct a URL.


  • Often it makes sense to use the current page (the {{Page Path}} variable) and append some label to the end:
  • {{Page Path}}/red-queen-submitted


  • Now specify a trigger for the tag.
  • Choose Form, and then select the New button to create a new form trigger.


like a link, the form typically submits to the same browser window, replacing the current page. Choose the Wait for Tags option with the default two-second maximum to give the tracking tags time to execute before the form is submitted.


use the Check Validation option to only trigger when the form will successfully submit. Typically a form includes validation checks such as checking that the user has completed the required fields and entered values in the correct formats. With this option enabled, the trigger will only operate when the validation is successful and the form submits. If this option is disabled, the trigger would operate each time the user clicks the submit button, whether or not validation is successful.


under “Enable when”, filter pages on which the trigger listens for the form submission. It’s only necessary for this listener to operate on a page where the form could appear. If it’s a form that appears in many places throughout the site, you can use a regular expression to match any URL:


  • {{Page URL}} – matches RegEx – .*
  • Otherwise, you can be more restrictive to include only the page or pages where this form appears.


  • Under “Fire when”, choose Some Forms and specify one or more criteria to restrict this trigger to the form you want to track. Most commonly, you might use the Form ID or Form URL variables to restrict to a specific form.


  • {{Form ID}} – equals – red-queen
  • Select the Create Trigger button, giving the trigger a name: “Red Queen Form”. Google Tag Manager saves the trigger and returns to creating the tag.


  • Save the tag, giving it a name: “GA – Pageview – Red Queen Form Submission”.
  • Now that you have a distinct URL for the form submission, you can use that URL as a goal or funnel step.


AJAX and Dynamic Processes

Google Analytics

Sometimes a multistep process may occur all within the same page, without the page reloading or the URL changing. The user interacts with the content to step through the process, and the content of the page dynamically changes, but the user is on the same page.


It’s even possible for a whole website or web application to be built as a single page, which changes content as the user “navigates” through, though the page never fully reloads or changes URLs.


This is commonly referred to as AJAX (short for Asynchronous JavaScript and XML, although the term has come to encompass a variety of related techniques that aren’t necessarily asynchronous and don’t necessarily use XML). AJAX can be an elegant and attractive option for dynamic content, but it also introduces several challenges because of the ways it differs from a “normal” website with distinct pages and URLs.


Since the page doesn’t fully refresh, Google Tag Manager only triggers the single, initial page view. To capture further interactions, you’ll have to use other event listeners to trigger tags. There are a couple of possible options, depending on how the site is set up.


The History Listener. Most modern AJAX designs are browser- and search engine-friendly: they allow direct linking to dynamic content, and they allow the browser’s back and forward buttons to operate correctly. They do this by several different methods of inserting entries into the browser’s history to keep track of the state and path of the user. GTM’s History Listener can be triggered by these changes.


The Click Listener. For simple situations, or where dynamic interactions are not reflected in the browser history, you can use the Click Listener to trigger a click on a particular button, link, or another element.

Both of these are described in the following sections.


Caution  If you aren’t the author of the AJAX processes on your website, make sure you speak to the developer and understand how they operate. GTM’s listeners are pretty harmless and unlikely to interfere with the page’s functionality, but you do want to ensure that the data accurately reflects the interactions you want to capture.


The History Listener

There are two major ways that dynamic pages can use to keep track of the state of the page in the browser:

the URL fragment, or HTML5’s window.history API.


The URL fragment is the portion of the URL after the hash (#). You may be familiar with this from links within a page, to jump to a particular location within the page. URL fragments don’t change the base URL and don’t trigger a reload of the page. Since the browser keeps track of these in its history, however, dynamic pages can use artificial labels for the URL fragment as one way to support the Back and Forward buttons.


Dynamic pages using URL fragments might have URLs that look like these:

  • /ticketing/registration.php#signup
  • /ticketing/registration.php#billing
  • /ticketing/registration.php#confirmation


Additionally, HTML5 introduced the window. history API, which allows dynamic pages to directly insert entries into the browser history. The window.history.pushState() and window.history.replaceState() methods allow scripts to insert entries into the browser history, including both a JSON object that maintains the state as well as a new URL. Additionally, the popstate event allows for monitoring any changes to the history state, including the use of the Back and Forward buttons.


To cover these, Google Tag Manager has a History Listener trigger, which allows you to trigger tags on any of the following occurrences:

  • The URL fragment changes
  • The window.history.pushState() or window.history.replaceState() methods are called A popstate event occurs


Whenever one of these occurs, a message is pushed to the data layer that looks like the following:


'event': 'Google Tag Manager.historyChange',

'Google Tag Manager.historyChangeSource': 'pushState',

'Google Tag Manager.newHistoryState': historyStateObject,

'Google Tag Manager.newUrlFragment': '',

'Google Tag Manager.oldHistoryState': null,

'Google Tag Manager.oldUrlFragment: ''


The new and old history state objects and URL fragments are included (if any), as well as the source of the history change (pushState, replaceState, or popstate).


There are several built-in variables to access these; enable those in the list of variables before using the History listener. The {{Page URL}} variable is also updated if changed by pushState or replaceState, and you can create one or more variables to access properties of the state object (if used).



Let’s look at how to create the tag and trigger in Google Tag Manager for a historic change.

  • Create a new tag. Choose Google Analytics ➤ Universal Analytics as the type.


  • Fill in the Tracking ID with the {{GA Property ID}} variable that you previously created.


  • Select Track Type ➤ Pageview.


Under More Settings ➤ Fields to Set, set the page field (the URL recorded by GA). If calls to pushState() or replaceState() change the URL, you might simply use the {{Page Path}} variable or you could use information from the state object as a virtual URL.


For changes in the anchor portion of the URL, you could use the {{New History Fragment}} in conjunction with the {{Page Path}} variable to construct a virtual URL:


{{Page Path}}#{{New History Fragment}}

  • Select the Continue button to specify a trigger for the tag.
  • Choose More to see the list of all listeners. Then choose New to create a new trigger.
  • Choose History Change as the trigger type.


You can choose to trigger on All History Changes, which might be the right option for a completely AJAX-based website. If you’re just measuring a certain page or process, you can specify some criteria to restrict this trigger.


Depending on the scenario, you might restrict the trigger to certain pages (via the {{Page URL}} variable) or to certain types of history change interactions (using the built-in history variables described above). Specify a condition that reflects the situation on your site.


  • select the Create Trigger button, giving the trigger a name: “AJAX Reservation Page”. Google Tag Manager saves the trigger and returns to creating the tag.


  • Save the tag, giving it a name: “GA – Pageview – Ticket Reservations”.

Now that you have distinct URLs for the steps in the dynamic process, you can use those URLs as a goal or funnel step.


Using the Click Listener

An alternative for dynamic content without URL changes is to use the Click listener. If the user causes a dynamic change in the page by clicking an element of the page, the Click listener can capture that interaction.


This is especially useful as a workaround for AJAX processes that don’t use URL fragments or the window. history API to properly support the Back and Forward buttons (described in the previous section).


In such a scenario, you can set up triggers on a link using criteria like the URL, id, or other properties, but instead of using a Google Analytics event tag, you’ll use the pageview tag like the examples in this blog. Remember to specify a virtual URL for the page field to identify the interaction.


Flash and Other Browser Plugins

Google Analytics flash

Interactive, dynamic content in a page may also be in an embedded object handled through a browser plugin, such as content developed using Adobe Flash.


In the browser’s DOM, such objects are a black box: their content is not accessible via JavaScript, so neither GTM’s built-in listeners nor custom JavaScript can give you detailed information about user interactions with the content of Flash. Instead, tracking can be built into the Flash object itself, using Flash’s scripting language (ActionScript) to interface with the browser’s JavaScript.


In the past, Adobe has provided a semiofficial ActionScript library for Flash tracking in Google Analytics, although updates have not occurred in some time, and at the time of this book’s publication, it has not been updated to support GA’s newest Universal Analytics tracking. (Microsoft Silverlight, an alternative to Flash, is in a similar situation, but Microsoft has announced the end of support for Silverlight, so it is unlikely that its Google Analytics tracking library will be updated.)


However, ActionScript in a Flash object can call JavaScript within the page containing the object, so you can push events to the data layer for Google Tag Manager from your Flash widget or application. Google Tag Manager can then trigger tags based on the data layer messages.


Conversions That Span Sessions

GA’s model of conversions includes a funnel that occurs within a single session. For some more complicated processes, it’s possible that the user might actually complete several steps in one session, and come back at a later time to finish. Here’s one common example of how that might happen in an account signup or registration process:


  • The user fills out details to create their account, going through one or several pages of forms on the website (Pages A, B, C).
  • An email is sent to the email address the user registered to confirm that it’s correct.
  • The user clicks a link in the email, opening another page on the website, to confirm and finish the account registration (Page D).


You could create a single goal with a funnel all the way from Page A to Page D. However, it’s certainly possible that a user completes the steps from Page A through C, and then returns at a later time, in a new session, to Page D (after receiving the email). A better approach might be to have two separate goals, one from Page A to Page C, and another for Page D. 


In other scenarios, you might have a long or complicated process in which a user can save their progress and return later. Or, you might be interested in whether the same user comes back twice within a week.


In such cases, you might keep track of specific behaviors or achievements with a cookie, and only trigger a pageview for your goal when some cumulative set of achievements is completed. You can set new cookies with custom JavaScript (using the document.cookie property), and GTM’s variable types include the ability to read a value from a cookie.


Once you’ve created Google Tag Manager variables based on cookie values you’ve set, you can use them in a trigger or in the URLs of virtual pageviews. for tracking users across devices, which is very useful in situations where users log in and you want to tie together their behavior, regardless of the device or browser they’re using to access the site.)


You can set up goals in Google Analytics to easily allow you to make comparisons on conversion metrics. Goals can be based on URLs, events, or the number of pages or duration of a session. Goals based on destination URLs can include a funnel, which is a series of steps, also specified by URL, that lead up to the final conversion page.


For interactions where URLs don’t change, you can still set up URL-based goals using pageviews with virtual URLs. Google Tag Manager includes a Form trigger for form submissions and a History Change trigger for dynamic AJAX-based interactions, as well as the Click trigger discussed previously. You can override the URL recorded by Google Analytics in the tag in Google Tag Manager using variables or text to generate a virtual URL label.