DokuWiki

It's better when it's simple

User Tools

Site Tools


plugin:ganalytics

ganalytics plugin

Compatible with DokuWiki

>=2009-02-14

plugin Displays Google analytics data using Google Chart API

Last updated on
2009-05-04
Provides
Syntax

This extension has not been updated in over 2 years. It may no longer be maintained or supported and may have compatibility issues.

Tagged with chart, diagram, embed, google, images, media, statistics

Download and Installation

Download and install the plugin using the Plugin Manager using the following URL. Refer to Plugins on how to install plugins manually. Google Analytics requires additional configuration for best use with DokuWiki (e.g., site search and goals). See Google Analytics integration for DokuWiki for details.

FIXME (download link is broken)

Blog entry: http://greenbird.tweakblogs.net/blog/3420/ganalytics-dokuwiki-plugin.html

Changes

  • 2009-05-04: Original version

Syntax

Basic statistics can be displayed like this:

{{ganalytics>data:<metrics>}}

See available parameters for allowed options for <metrics>.

Parameters

A number of parameters can be set by appending them with / character to data parameter. Each parameter needs to be separated with a / character. Defaults for all parameters can be set in the config manager. Below is a list of all recognized parameters and allowed values:

Parameter Default Required Allowed Options Description
data:<metrics> - Y unique, pageviews, visitors,
country, countrynewvisitors, browser,
resolution, OS, referrers,
searchwords, visitortype
Metrics which is displayed:
unique: Displays a line chart with the unique visitors on your on a day-by-day basis.
pageviews: Displays a line chart with the pageviews on your on a day-by-day basis.
visitors: Displays a line chart with the non-unique visitors on your on a day-by-day basis.
country: Displays a map chart with the location of your visitors for the selected range.
countrynewvisitors: Displays a map chart with the location of new visitors to your site for the selected range.
browser: Displays a pie chart with the browser used by your visitors for the selected range.
resolution: Displays a pie chart with the screen resolution used by your visitors for the selected range.
OS: Displays a pie chart with the operating system used by your visitors for the selected range.
referrers: Displays a pie chart with the referrers used by your visitors for the selected range.
searchwords: Displays a pie chart with the search engine keywords used by your visitors for the selected range.
visitortype: Displays a pie chart with visitor type for your visitors for the selected range (new visitor or returning visitor).
linecolor:<linecolor> 000000 N <hex color>[[, hex color], …] This parameter has different meanings for different charts:
Line chart: Color of the line, last value is repeated if there are more lines then colors
Pie chart: Color of the pie, colors are interpolated if there are more slices then colors
Map chart: Color of country's, first color is for country's which are not in the dataset, the other colors are interpolated
bgcolor:<bgcolor> FFFFFF N <hex color> Background color of the line and pie chart. Color of the water on map charts
size:<size> 200×200 N <integer>x<integer> Size of the chart. Best is to make the at least twice as wide as height.
history:<history> 0 N <integer> Selects how many previous months are included in the statistics. Example: setting it to 1 makes a pie chart display statistics of this month and the previous month
now:<now> - N <hex color> Shows a marker on line charts at the current date in color <now>
continent:<continent> world N world, africa, asia, europe,
middle_east, south_america, usa
Selects which area is displayed by the map chart
title:<title> - N <string> Displays title above chart (not allowed for map charts)

Example:

{{ganalytics>data:<metrics>[/linecolor:<linecolor>][/bgcolor:<bgcolor>][/size:<size>][/history:<history>][/now:<now>][/continent:<continent>][/title:<title>]}}
{{ganalytics>data:unique/linecolor:007B9F,55A7BF,AAD3DF/size:550x220/history:2/now:FF0000}}
{{ganalytics>data:countrynewvisitors/continent:world/size:440x220/linecolor:FFFFFF,FFFFFF,019E18/bgcolor:EAF7FE/history:5}}

Additional setting

There are a few additional settings in the Configuration Manager:

Setting Description
Google Analytics username Google analytics username (email)
Google Analytics password Google analytics password
Google Analytics profiel ID Google analytics profile ID (example ga:12345)
Show browser version When selected, the data:browser option shows the browser version. Example Firefox or Firefox 3.
Show OS version When selected, the data:osoption shows the OS version. Example Windows or Windows XP.
Maximum slices for pie chart The maximum number of slices in a pie chart. The remaining slices are combine as '(other)'.
Show slice size When selected, a pie chart shows the size of each slice. Example Windows or Windows (80%)
Show referral path When selected, the data:referrs shows the domain and referral path. Example example.com or example.com/dir/.
3D pie chart When selected, pie charts are shown in 3D.
Use simple encoding (only for charts smaller then 300px) When selected, all data is encoded. This limits both URL size and resolution.

Adding metrics

Metrics are added in the following manner:

  • Have a look at the Google Analytics Data Export API
  • Add a new function at the bottom of analytics.class.php
  • Add the new metric parameter in the handle-function. Adding it to the list of unique for a line chart, to country for a map chart or to browser for a pie chart.
  • Add the new metric parameter in the render-function. Same as above.
  • Add the new metric parameter in the PieChartGetData-function, MapChartGetData-function or LineChartGetData-function
  • Done :-)

Demo Installations

Here are a few user provided examples of the Google analytics plugin in use:

Discussion

Ask your questions here.

* May not work on php5 ? —> I this errors :
“Parse error: syntax error, unexpected '&', expecting T_VARIABLE or '$' in /homez.57/momas/www/lib/plugins/ganalytics/syntax.php on line 572”
Parse error: syntax error, unexpected T_STRING, expecting T_OLD_FUNCTION or T_FUNCTION or T_VAR or '}' in /homez.57/momas/www/lib/plugins/ganalytics/analytics.class.php on line 47
I'm using PHP Version 5.2.9 and it's working fine. It doesn't work with PHP4 as foreach($array as &$value) is only allowed since PHP5. You can remove this construct by replacing line 569 in syntax.php:
    function SimpleEncode($array, $max) {
        $encode = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789";
 
        foreach ($array as &$value) {
            if ($value < 0)
                $value = '_';
	    	else
                $value = substr($encode, round(((strlen($encode)-1)*$value)/$max), 1); 
        }
        return $array;
    }

with

    function SimpleEncode($array, $max) {
        $encode = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789";
 
        foreach ($array as $key => $value) {
            if ($value < 0)
                $array[$key] = $value = '_';
	    	else
                $array[$key] = substr($encode, round(((strlen($encode)-1)*$value)/$max), 1); 
        }
        return $array;
    }

It also uses classes for connecting with the Google analytics server, which also requires, and is supported by, PHP5 or up.

Just a question about howto get the param “Google Analytics profiel ID”
It is simply the ga:+“id” param that appear when you navigate on analytics report:
https://www.google.com/analytics/reporting/?reset=1&id=13129515&pdr=20090406-20090506
"Google Analytics profiel ID" = ga:13129515

Thank you for this plugin, have a suggestion: could it be possible to display a list of the most visited pages?

for instance:

$data = $api→data($id, 'ga:pageTitle,ga:pagePath', 'ga:pageviews',false, date('Y-m-d', strtotime('1 week ago')), false, 15);

where “15” and “1 week” should be implemented.

Monitor two sites

I have two sites, and I want to monitor them at the same time. So it will be more useful to make “Google Analytics profile ID” one of the parameter in syntax. For example, {{ganalytics>id:12345/data:<metrics>}}。I modified the syntax.php to achieve this.

First, add the id parameter. That is, change:

switch($parameter){	
    case 'data': 
	 $img['data'] = $value;   

to

switch($parameter){
    case 'id':
         $img['id']=$value;	
    break;    
    case 'data': 
	 $img['data'] = $value;   

Then, replace

$oAnalytics->setProfileById($this->getconf('ganalytics_id'));

with

if(array_key_exists('id', $img)){
    $oAnalytics->setProfileById("ga:".$data['id']);
}
else{
    $oAnalytics->setProfileById($this->getconf('ganalytics_id'));
}
plugin/ganalytics.txt · Last modified: 2011-01-13 20:12 by HåkanS