Measure pageviews

Whenever someone loads a page of your website or their browser history state is changed by the active site, an enhanced measurement event called page_view is sent from your website to Google Analytics. Since the event is sent automatically, you don't need to send pageview data to Analytics manually.

However, when you want to manually control how pageviews are sent (e.g. single-page applications or infinite scrolling), you can disable pageviews and then manually send them from your website. This article describes the default pageview behavior and then how to send your own pageviews manually.

For information about how to measure screenviews on a mobile app, see Measure screenviews instead.

Before you begin

Default behavior

Name Type Required Default value Description
page_title string No document.title The title of the page.
page_location string No location.href

The URL of the page.

If you override page_location, the value must start with the protocol followed by the full URL; for example,

send_page_view boolean No true Whether or not a pageview should be sent.

Manual pageviews

When you want to manually control how pageviews are sent (e.g. single-page applications or infinite scrolling), do the following:

  1. Disable pageview measurement
  2. Send the page_view event when appropriate

Measure virtual pageviews

If your site loads page content dynamically and updates the document's URL, you might want to send additional pageviews to measure these virtual pageviews. To measure virtual pageviews, either rely on enhanced measurement, which sends a pageview when the browser history state changes, or manually send the page_view event.

If you manually send page_view events, make sure enhanced measurement is configured correctly to avoid double counting pageviews on history state changes. Typically, this means disabling Page changes based on browser history events under the advanced settings of the pageviews section.

When a pageview is sent to Analytics, the default page parameter values are used, unless modified. This means you do not need to modify page_title or page_location parameters if updates to window.location (e.g. via the History API) and document.title are made prior to the event being sent.

If your app relies on a library to handle page updates, it's recommended that you review the behavior to confirm the library sets window.location and document.title as expected. Alternatively, you can always explicitly set page parameters when sending a page_view event to ensure accuracy and clarity.