Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

https://github.com/DiegoPino/islandora_piwik

Piwik integration module for Islandora
https://github.com/DiegoPino/islandora_piwik

Last synced: 2 months ago
JSON representation

Piwik integration module for Islandora

Lists

README

        

# Islandora Piwik Integration

## Overview

This module provides integration with the [Piwik Open Analytics Platform](http://piwik.org/) via the Piwik Tracking HTTP API and also the Javascript library to allow Asynchronous/parallel tracking of current page load.

Islandora Piwik tracks object usage and (optionally) collection usage. Object usage is straight foward: each time a user views an object at /islandora/object/pid, the request for that URL is recorded by Piwik.

Collection usage works differently. Each time an object is viewed, a "use" of the collection it is a member of is recorded. If an object is a member of more than one collection, each collection gets a use. Collection usage is recorded using a custom Piwik variable and reports are available under the "Visitors" tab in the Piwiki Dashboard, broken down by collection PID.

However, collections are also objects, so when the default collection object page is viewed, Piwik records a use of the collection as an object. Keep in mind that object usage and collection usage as describe in the previous paragraphs are not the same - object-level usage (including collections as objects) records how many times the object (or collection object) default display at /islandora/object/pid was viewed, whereas the collection usage records how many times objects in each collection were viewed. The two ways collections are counted are completely independent of each other.

The module also tracks searches against Islandora using Islandora Solr Search, including searches that return zero results.

## Reports

Several Piwik report widgets (Real-time map, Visitor map, Islandora object pages, Islandora collection usage, Searches, and Searches returning no results) are available at admin/reports/islandora_piwik_reports to users who have been assigned the "View Islandora Piwik reports" permission. In order to enable these reports, you must enter your Piwik API key in the admin module's settings form. Data for these reports is from the current day. This is a proof-of-concept implementation and feedback is welcome.

The contrib [Piwik Reports](https://www.drupal.org/project/piwik_reports) works out of the box with data generated by Islandora Piwik. If the reports integration provided by this module isn't sufficient for your needs, give that module a try.

## Collection-specific site IDs

This module allows administrators to associate a collection PID with a Piwik site ID, allowing analytics to be broken out by collection and you can also then assign multiple collections to a Virtual Viewer Segment. This feature is intended to allows site owners to view reports on their own collections. Collection and object page visits are recorded using only the collection-specific site ID, not both it and the general site ID. Site search and assets interaction (download, etc) tracking was also added.

If a collection is not associated with a site ID, page visits for it or its child collections use the general site ID. Reports don't work for collection-specific site IDs, only the general site ID.

## Tracking usage of an entire Drupal (Islandora) site

If you want to use this module to provide analytics for your entire Islandora site, you can configure it to inject the JavaScript Tracking Code provided by Piwik into all non-Islandora-object pages. This feature is not intended to replace the contrib [Piwik Web Analytics](https://www.drupal.org/project/piwik) module, however.

## Dependencies

* Islandora
* [A Matomo server](https://matomo.org)

## Configuration

Visit admin/islandora/tools/piwik to configure this module. There is no set up on the Piwik side other than creating a site corresponding to your Islandora instance (and optionally, additional sites corresponding to specific Islandora collections).

## Maintainer

* [Diego Pino at Metro.org](https://github.com/DiegoPino)

## Feature requests

This module was written originally by [Mark Jordan](https://github.com/mjordan) as part of a large migration to Islandora from another repository platform that provided collection-level usage data (hence the focus on collections in this module). Usage of existing Solr information to avoid page load lag and Matomo JS API was added by Metro.org