If you track your site's page view using Google Analytics, this plugin can pull
the page view information from your Google Analytics profile and add a
page_view
attribute to each article and page in your Pelican site. See few
live examples here.
First, follow the instructions here to set up Google API service account.
Then in Google Analytics, add the email address you created above as an user so
that we can access the Google Anaytics API. Also make sure you have enabled Analytics API
access for
the newly created project.
At this point, you should have:
- Google API service email:
<prioject_id>-<unique_id>@developer.gserviceaccount.com
- Google private key file:
client_private.p12
. Save this file somewhere secure. If you put this file in a Git repository, don't forget to add it to.gitignore
.
Finally, install the Google API Python library:
$ pip install --upgrade google-api-python-client
You may also need other dependencies specified in requirements.txt
. To install all the dependencies at once, use:
$ pip install -r requirements.txt
You need to provide the following information in your Pelican configuration file for this plugin to communicate with the Google Analytics API.
GOOGLE_SERVICE_ACCOUNT
: the service email.GOOGLE_KEY_FILE
: path to the private key file, E.g../client_private.p12
.GA_START_DATE
: start date to count page view. E.g.,2005-01-01
.GA_END_DATE
: end date to count page view. E.g.,today
.GA_METRIC
: counting metrics, default isga:pageviews
. See other options here. Right now we only support query with ONE metric.POPULAR_POST_START
: start date to count popular page views. E.g.,A month ago
.
With this plugin installed, each article
and page
object has two extra
attributes:
pageview
: total number of page views betweenGA_START_DATE
andGA_END_DATE
.popular_pageview
: total number of page view betweenPOPULAR_POST_START
andGA_END_DATE
.
And there is one global context named total_page_view
,
which is the total page view of the entire site. You may want to show the number at page like index.html
:
<div class="page_view"> The total number of page views of this site is {{ total_page_view }}. </div>
If you encounter this error while building:
NotImplementedError: PKCS12 format is not supported by the PyCrypto library.
Try convert the p12
file to pem
file:
$ openssl pkcs12 -in client_private.p12 -nodes -nocerts > client_private.pem
The password should be notasecret
.
Then set GOOGLE_KEY_FILE
to be the pem
file just generated.