diff --git a/serendipity_event_google_analytics/ChangeLog b/serendipity_event_google_analytics/ChangeLog
index 01c09e93..e585a57b 100644
--- a/serendipity_event_google_analytics/ChangeLog
+++ b/serendipity_event_google_analytics/ChangeLog
@@ -1,4 +1,10 @@
+1.4.0 (fishnix):
+-----
+# add enhanced link attribution option
+# changed link to kleinerChemiker's github since the blog seems gone
+
1.3.0:
+-----
# added tracking for Google AdSense
# memo for myself: correct version number scheme: major release number -> plugin rewrite, minor release number -> new feature, patch level -> bug fix
diff --git a/serendipity_event_google_analytics/lang_en.inc.php b/serendipity_event_google_analytics/lang_en.inc.php
index 031575e0..93090f1c 100644
--- a/serendipity_event_google_analytics/lang_en.inc.php
+++ b/serendipity_event_google_analytics/lang_en.inc.php
@@ -18,3 +18,5 @@
@define('PLUGIN_EVENT_GOOGLE_ANALYTICS_INTERNAL_HOSTS_DESC', 'One host per line (www.example.net).');
@define('PLUGIN_EVENT_GOOGLE_ANALYTICS_EXCLUDE_GROUPS', 'Which usergroups should not be tracked?');
@define('PLUGIN_EVENT_GOOGLE_ANALYTICS_EXCLUDE_GROUPS_DESC', 'Select group(s) from list.');
+@define('PLUGIN_EVENT_GOOGLE_ANALYTICS_ENH_LINK_ATTR', 'Enhanced link attribution?');
+@define('PLUGIN_EVENT_GOOGLE_ANALYTICS_ENH_LINK_ATTR_DESC', 'https://support.google.com/analytics/answer/2558867?hl=en&utm_id=ad');
diff --git a/serendipity_event_google_analytics/serendipity_event_google_analytics.php b/serendipity_event_google_analytics/serendipity_event_google_analytics.php
index af002f43..defd18d5 100644
--- a/serendipity_event_google_analytics/serendipity_event_google_analytics.php
+++ b/serendipity_event_google_analytics/serendipity_event_google_analytics.php
@@ -20,8 +20,8 @@ class serendipity_event_google_analytics extends serendipity_event {
$propbag->add ('name', PLUGIN_EVENT_GOOGLE_ANALYTICS_NAME);
$propbag->add ('description', PLUGIN_EVENT_GOOGLE_ANALYTICS_DESC);
$propbag->add ('stackable', false);
- $propbag->add ('author', 'kleinerChemiker');
- $propbag->add ('version', '1.3.0');
+ $propbag->add ('author', 'kleinerChemiker');
+ $propbag->add ('version', '1.4.0');
$propbag->add ('requirements', array ('serendipity' => '0.8', 'smarty' => '2.6.7', 'php' => '4.1.0' ));
$propbag->add ('groups', array ('STATISTICS' ));
$propbag->add ('cachable_events', array ('frontend_display' => true ));
@@ -38,6 +38,7 @@ class serendipity_event_google_analytics extends serendipity_event {
$conf_array[] = 'analytics_download_extensions';
$conf_array[] = 'analytics_internal_hosts';
$conf_array[] = 'analytics_exclude_groups';
+ $conf_array[] = 'analytics_enh_link_attr';
foreach ( $this->markup_elements as $element ) {
$conf_array[] = $element['name'];
@@ -90,6 +91,12 @@ class serendipity_event_google_analytics extends serendipity_event {
$propbag->add ('description', PLUGIN_EVENT_GOOGLE_ANALYTICS_DOWNLOAD_EXTENSIONS_DESC);
$propbag->add ('default', 'zip,rar');
break;
+ case 'analytics_enh_link_attr' :
+ $propbag->add ('type', 'boolean');
+ $propbag->add ('name', PLUGIN_EVENT_GOOGLE_ANALYTICS_ENH_LINK_ATTR);
+ $propbag->add ('description', PLUGIN_EVENT_GOOGLE_ANALYTICS_ENH_LINK_ATTR_DESC);
+ $propbag->add ('default', 'false');
+ break;
case 'analytics_exclude_groups' :
$_groups = & serendipity_getAllGroups ();
if (is_array ($_groups)) {
@@ -194,6 +201,7 @@ class serendipity_event_google_analytics extends serendipity_event {
static $analytics_track_adsense = null;
static $analytics_track_external = null;
static $analytics_track_downloads = null;
+ static $analytics_enh_link_attr = null;
static $analytics_exclude_groups = null;
static $usergroup = false;
$hooks = &$bag->get ('event_hooks');
@@ -214,6 +222,10 @@ class serendipity_event_google_analytics extends serendipity_event {
$analytics_track_external = serendipity_db_bool ($this->get_config ('analytics_track_external', true));
}
+ if ($analytics_enh_link_attr === null) {
+ $analytics_enh_link_attr = serendipity_db_bool ($this->get_config ('analytics_enh_link_attr', false));
+ }
+
if ($analytics_exclude_groups === null) {
$analytics_exclude_groups = explode ("^", $this->get_config ('analytics_exclude_groups', true));
if (!empty ($analytics_exclude_groups)) {
@@ -232,14 +244,15 @@ class serendipity_event_google_analytics extends serendipity_event {
if (isset ($hooks[$event])) {
switch ($event) {
case 'frontend_header' :
+ $analytics_enh_link_attr ? $analytics_enh_link_attr_code = "var pluginUrl = '//www.google-analytics.com/plugins/ga/inpage_linkid.js'; _gaq.push(['_require', 'inpage_linkid', pluginUrl]);" : $analytics_enh_link_attr_code = '';
$analytics_anonymizeIp ? $analytics_anonymizeIp_code = "_gaq.push(['_gat._anonymizeIp']);\r " : $analytics_anonymizeIp_code = '';
$analytics_track_adsense ? $analytics_track_adsense_code = "\r\r" : $analytics_track_adsense_code = '';
if ($serendipity['authorid'] === null || !$this->in_array_loop ($usergroup, $analytics_exclude_groups)) {
echo $analytics_track_adsense_code;
echo '