mkdocs-material/docs/setup/setting-up-site-analytics.md

132 lines
4.0 KiB
Markdown
Raw Normal View History

2020-07-22 10:54:17 +03:00
---
template: overrides/main.html
---
# Setting up site analytics
2020-07-26 15:46:09 +03:00
As with any other service offered on the web, understanding how your project
2020-07-22 10:54:17 +03:00
documentation is actually used can be an essential success factor. While
2020-07-22 12:57:41 +03:00
Material for MkDocs natively integrates with [Google Analytics][1], [other
2021-05-01 21:26:54 +03:00
analytics providers][2] can be used, too.
2020-07-22 10:54:17 +03:00
[1]: https://developers.google.com/analytics
2020-09-03 16:32:32 +03:00
[2]: #other-analytics-providers
2020-07-22 10:54:17 +03:00
## Configuration
2020-07-22 12:57:41 +03:00
### Google Analytics
2020-07-22 10:54:17 +03:00
2020-07-22 12:57:41 +03:00
[:octicons-file-code-24: Source][3] · :octicons-milestone-24: Default: _none_
2020-07-22 10:54:17 +03:00
Material for MkDocs integrates with both, Google Analytics 4 and the now phasing
out Universal Analytics (`UA-*`). Depending on the prefix of the property, add
the following to `mkdocs.yml`:
2020-07-22 10:54:17 +03:00
=== "Google Analytics 4"
``` yaml
extra:
analytics:
provider: google
property: G-XXXXXXXXXX
```
=== "Universal Analytics"
``` yaml
extra:
analytics:
provider: google
property: UA-XXXXXXXX-X
```
2020-07-22 10:54:17 +03:00
2020-07-22 12:57:41 +03:00
[3]: https://github.com/squidfunk/mkdocs-material/blob/master/src/partials/integrations/analytics.html
2020-07-22 10:54:17 +03:00
2020-07-24 15:30:03 +03:00
#### Site search tracking
2020-07-22 10:54:17 +03:00
2020-07-26 15:46:09 +03:00
Besides basic page views, _site search_ can also be tracked to understand better
2020-07-22 10:54:17 +03:00
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`.
_Site search tracking is not supported with Google Analytics 4 due to the much
more complicated manual setup. If you want to set up site search tracking
yourself, [this tutorial][4] might be a good start._
[4]: https://www.analyticsmania.com/post/track-site-search-with-google-tag-manager-and-google-analytics/
2021-07-10 16:21:22 +03:00
### Cookie consent
[:octicons-file-code-24: Source][5] ·
:octicons-beaker-24: Experimental ·
[:octicons-heart-fill-24:{ .mdx-heart } Insiders only][5]{ .mdx-insiders }
Material for MkDocs ships a native and extensible cookie consent form, which
when enabled will ask the user for his consent prior to sending analytics.
Add the following to `mkdocs.yml`:
``` yaml
extra:
2021-07-18 18:57:45 +03:00
consent:
title: Cookie consent
description: >
We use cookies to recognize your repeated visits and preferences, as well
as to measure the effectiveness of our documentation and whether users
find what they're searching for. With your consent, you're helping us to
make our documentation better.
2021-07-10 16:21:22 +03:00
```
When a user first visits your site, a cookie consent form is rendered:
[![With tabs][6]][6]
[5]: ../insiders/index.md
[6]: ../assets/screenshots/consent.png
_Let's get this feature out of the experimental status! You are encouraged to
share your feedback in #1914, so we can provide the necessary configuration
options for easy customizations. If you wish to customize it today, you can
override_ `partials/consent.html`.
2020-07-22 10:54:17 +03:00
## Customization
### Other analytics providers
2020-07-22 10:54:17 +03:00
[:octicons-file-code-24: Source][3] ·
2020-07-22 10:54:17 +03:00
:octicons-mortar-board-24: Difficulty: _easy_
In order to integrate another analytics service provider offering an
2021-07-10 16:21:22 +03:00
asynchronous JavaScript-based tracking solution, you can [extend the theme][7]
and [override the `analytics` block][8]:
2020-07-22 12:57:41 +03:00
``` html
2020-07-22 12:57:41 +03:00
{% block analytics %}
<!-- Add custom analytics integration here -->
2020-07-22 12:57:41 +03:00
{% endblock %}
```
2020-07-22 10:54:17 +03:00
2021-07-10 16:21:22 +03:00
[7]: ../customization.md#extending-the-theme
[8]: ../customization.md#overriding-blocks-recommended
2020-07-22 10:54:17 +03:00
2021-07-10 16:21:22 +03:00
If you're using [instant loading][9], you may use the `location$` observable,
2020-07-22 12:57:41 +03:00
which will emit the current `URL` to listen for navigation events and register
a page view event with:
2020-07-22 10:54:17 +03:00
``` js
2021-02-23 00:27:30 +03:00
location$.subscribe(function(url) {
2020-07-22 12:57:41 +03:00
/* Add custom page event tracking here */
2020-07-22 10:54:17 +03:00
})
```
2021-07-10 16:21:22 +03:00
Note that this must be integrated with [additional JavaScript][10], and cannot be
2020-07-26 15:46:09 +03:00
included as part of the `analytics` block, as it is included in the `head` of
2020-07-22 12:57:41 +03:00
the document.
2021-07-10 16:21:22 +03:00
[9]: setting-up-navigation.md#instant-loading
[10]: ../customization.md#additional-javascript