This is a module for the MagicMirror² to display data from Google Analytics.
An optional broadcast of visitors/customers location data to MMM-Globe is also possible.
Unfortunately MMM-Globe is not capable of running properly on a Raspberry Pi 3 causes of lacking computing power.
Or with the words of the creator of MMM-Globe: "Due to the intensive calculations needed to construct the objects, and the computational ability needed, I do not recommend using this module if your Mirror uses a Raspberry Pi. Please only use this module if you have something a little more powerful driving your mirror. I don’t want my work to be responsible for any mishaps with your devices."
In your terminal, go to your MagicMirror's Module folder:
cd ~/MagicMirror/modules
Clone this repository:
git clone https://github.com/SvenSommer/MMM-GoogleAnalytics
Install the Googles Analytics Core Reporting API for Node.js in your MMM-GoogleAnalytics
folder by using npm:
cd MMM-GoogleAnalytics
npm install --save googleapis
npm install node-geocoder
To get the credentials from Google, following this blogpost.
After you have done this, you should be able to:
- Copy your
viewID
. You'll need it in the next step. - Rename your credential file (e.g.
mywebsiteGAapi-6116b1dg49a1.json
) inkeyfile.json
and save it in yourMMM-GoogleAnalytics
folder, likeMMM-GoogleAnalytics/keyfile.json
. If you haven't done already.
To use this module, add the following configuration block to the modules array in the config/config.js
file:
var config = {
modules: [
{
module: 'MMM-GoogleAnalytics',
header: 'mywebsite.com - Today',
position: 'top_left',
config: {
viewID : 'ga:123456700', // see README.md, how to get viewID and your keyfile.json
start_date: 'today', //today,1daysAgo,
end_date: 'today',
metrics: 'ga:newusers, ga:users, ga:sessions, ga:pageviews, ga:sessionDuration',
dimensions: 'ga:country', //ga:country, ga:city,ga:source
sort: '-ga:timeOnPage',
filters: 'ga:timeOnPage>10', //ga:timeOnPage>10 Return results where the time on the page is strictly greater than ten seconds.
segment: '',
start_index: 1,
max_results: 50,
updateInterval: 1 * 10 * 1000, // every minute
showtable: true,
showtotalline: true,
exportdatatoMMM_Globe: false,
debug: false
}
},
]
}
If you want to display the geographic location of your website visitors on the MMM-Globe module, follow the following steps:
- The Query needs to include
'ga:city, ga:country'
for the dimensions. In this specific order. - Follow the install instructions of MMM-Globe
- within the
config section
of MMM-Globe, changereceiveExternalLocations:
to1
.
Check out the common queries in the API Reference.
The Query Explorer lets you play with the API by building queries. Very useful!
Option | Required | Type | Description |
---|---|---|---|
viewID |
yes | string |
Google Analytics view (profile) ID. Follow this blogpost to get it. |
start_date |
yes | string |
Start date for fetching Analytics data. |
end_date |
yes | string |
End date for fetching Analytics data. |
metrics |
yes | string |
The aggregated statistics for user activity to your site, such as clicks or pageviews. See Possible Options. |
dimensions |
no | string |
Breaks down metrics by common criteria. |
sort |
no | string |
A list of metrics and dimensions indicating the sorting order and sorting direction for the returned data. |
filters |
no | string |
restricts the data returned from your request. |
max_results |
no | int |
The maximum number of rows to include in the response. |
showtable |
no | bool |
true - shows results in a table. false - no table is shown |
showtotalline |
no | bool |
true - shows a sum in the end of each column. false - no summary on each column |
exportdatatoMMM_Globe |
no | bool |
true - Modul sends coordinates of users to another module called MMM-Globe. Therefore you need to include ga:city, ga:country in dimension section of your query. |
debug |
no | bool |
true - shows debug information. false - no debug info is shown |