gatsby-goatcounter-analytics-reporter
v0.1.6
Published
A plugin to query most viewed pages from goatcounter analytics
Downloads
10
Maintainers
Readme
gatsby-plugin-goatcounter-analytics-reporter
Queries page views data from goatcounter analytics. Heavily inspired by the gatsby-plugin-google-analytics-reporter
.
How to use
Install
Install the package with npm
.
# with npm
npm i gatsby-plugin-goatcounter-analytics-reporter
# or with yarn
yarn add gatsby-plugin-goatcounter-analytics-reporter
Usage
To use the plugin add it to your gatsby-config.js
, make sure you have set up the variables required.
// gatsby-config.js
{
resolve: `gatsby-plugin-goatcounter-analytics-reporter`,
options: {
code: process.env.GOATCOUNTER_CODE,
personalToken: process.env.GOATCOUNTER_PERSONAL_TOKEN,
daysAgo: `30`,
}
},
| Prop | Required | Type | Description |
| ------------- | :------: | -----: | -------------------------------------------------------------------------------------------- |
| code | true | string | The goatcounter code used to access your site analytics. i.e https://.goatcounter.com/ |
| personalToken | true | string | The personal token from your goatcounter account, which will allow us to access the api. |
| daysAgo | false | string | The number of days ago to get data from like 30
. Defaults to 2020-01-01
. |
Once implemented, you can check that the query work on localhost:8000/__graphql
. Here is an example using allPageViews
.
// graphql
query MyQuery {
allPageViews(sort: {order: DESC, fields: totalCount}) {
nodes {
id
totalCount
}
}
}
// returns
{
"data": {
"allPageViews": {
"nodes": [
{
"id": "/",
"totalCount": 703
},
{
"id": "/how-to-set-up-gatsby-typescript-eslint-prettier/",
"totalCount": 126
},
{
"id": "/react-hooks-vs-redux/",
"totalCount": 121
},
],
},
},
}
Here is an example using pageViews
.
// graphql
query MyQuery {
pageViews(id: {eq: "/how-to-set-up-gatsby-typescript-eslint-prettier/"}) {
id
totalCount
}
}
// returns
{
"data": {
"pageViews": {
"id": "/how-to-set-up-gatsby-typescript-eslint-prettier/",
"totalCount": 126
}
}
}
``
## Appendix
- Heavily inspired by [gatsby-plugin-google-analytics-reporter](https://github.com/Kornil/gatsby-plugin-google-analytics-reporter)