---
template: overrides/main.html
---
# Setting up site analytics
As with any other service that is offered on the web, understanding how your
documentation is actually used can be an essential success factor. While
Material for MkDocs natively integrates with [Google Analytics][1], other
analytics services can be used, too.
[1]: https://developers.google.com/analytics
## Configuration
### Site analytics
[:octicons-file-code-24: Source][2] · :octicons-milestone-24: Default: _none_
After heading over to your [Google Analytics][1] account to [create a new
property][3] in order to obtain a new tracking id of the form `UA-XXXXXXXX-X`,
add it to `mkdocs.yml`:
``` yaml
google_analytics:
- UA-XXXXXXXX-X
- auto
```
Publish and refresh your site, and you should see events bubbling up.
[2]: https://github.com/squidfunk/mkdocs-material/blob/master/src/partials/integrations/analytics.html
[3]: https://support.google.com/analytics/answer/1042508
### Site search analytics
Besides basic page views, _site search_ can also be tracked to better understand
how people use your documentation and what they expect to find. To enable
search tracking:
1. Go to your Google Analytics __admin settings__
2. Select the property for the respective tracking code
3. Go to the __view settings__ tab.
4. Scroll down and enable __site search settings__
5. Set the __query parameter__ to `q`.
## Customization
### Other analytics services
[:octicons-file-code-24: Source][2] ·
:octicons-mortar-board-24: Difficulty: _easy_
In order to integrate another analytics service provider offering an
asynchronous JavaScript-based tracking solution, you can [extend the theme][4]
and [override the `analytics` block][5].
[4]: ../customization.md#extending-the-theme
[5]: ../customization.md#overriding-blocks
### Instant loading
[:octicons-file-code-24: Source][2] ·
:octicons-mortar-board-24: Difficulty: _easy_
If you're using [instant loading][6], you can use the `DOMContentSwitch` event
to listen for navigation events and register a page view event with:
``` js
document.addEventListener("DOMContentSwitch", function() {
/* Register page event here */
})
```
[6]: setting-up-navigation.md#instant-loading