Version Description
- Adds a new option for site speed tracking (enabled by default).
- Replaces deprecated tracking code _setVar with _setCustomVar.
- Improves the account select dropdown by organizing the accounts. Props bluntly.
- Prevents post preview pages from being tracked and skewing stats.
Download this release
Release Info
Developer | cavemonkey50 |
Plugin | Google Analyticator |
Version | 6.2 |
Comparing to | |
See all releases |
Code changes from version 6.1.3 to 6.2
- google-analyticator.php +96 -39
- readme.txt +9 -2
google-analyticator.php
CHANGED
@@ -1,7 +1,7 @@
|
|
1 |
<?php
|
2 |
/*
|
3 |
* Plugin Name: Google Analyticator
|
4 |
-
* Version: 6.
|
5 |
* Plugin URI: http://ronaldheft.com/code/analyticator/
|
6 |
* Description: Adds the necessary JavaScript code to enable <a href="http://www.google.com/analytics/">Google's Analytics</a>. After enabling this plugin visit <a href="options-general.php?page=google-analyticator.php">the settings page</a> and enter your Google Analytics' UID and enable logging.
|
7 |
* Author: Ronald Heft
|
@@ -9,7 +9,7 @@
|
|
9 |
* Text Domain: google-analyticator
|
10 |
*/
|
11 |
|
12 |
-
define('GOOGLE_ANALYTICATOR_VERSION', '6.
|
13 |
|
14 |
// Constants for enabled/disabled state
|
15 |
define("ga_enabled", "enabled", true);
|
@@ -31,6 +31,7 @@ define("key_ga_outbound_prefix", "ga_outbound_prefix", true);
|
|
31 |
define("key_ga_downloads", "ga_downloads", true);
|
32 |
define("key_ga_downloads_prefix", "ga_downloads_prefix", true);
|
33 |
define("key_ga_widgets", "ga_widgets", true);
|
|
|
34 |
|
35 |
define("ga_uid_default", "XX-XXXXX-X", true);
|
36 |
define("ga_status_default", ga_disabled, true);
|
@@ -45,6 +46,7 @@ define("ga_outbound_prefix_default", 'outgoing', true);
|
|
45 |
define("ga_downloads_default", "", true);
|
46 |
define("ga_downloads_prefix_default", "download", true);
|
47 |
define("ga_widgets_default", ga_enabled, true);
|
|
|
48 |
|
49 |
// Create the default key and status
|
50 |
add_option(key_ga_status, ga_status_default, '');
|
@@ -65,6 +67,7 @@ add_option('ga_profileid', '', '');
|
|
65 |
add_option(key_ga_widgets, ga_widgets_default, '');
|
66 |
add_option('ga_google_token', '', '');
|
67 |
add_option('ga_compatibility', 'off', '');
|
|
|
68 |
|
69 |
# Check if we have a version of WordPress greater than 2.8
|
70 |
if ( function_exists('register_widget') ) {
|
@@ -235,6 +238,12 @@ function ga_options_page() {
|
|
235 |
if ( $ga_compatibility == '' )
|
236 |
$ga_compatibility = 'off';
|
237 |
update_option('ga_compatibility', $ga_compatibility);
|
|
|
|
|
|
|
|
|
|
|
|
|
238 |
|
239 |
// Give an updated message
|
240 |
echo "<div class='updated fade'><p><strong>" . __('Google Analyticator settings saved.', 'google-analyticator') . "</strong></p></div>";
|
@@ -403,6 +412,29 @@ function ga_options_page() {
|
|
403 |
<p style="margin: 5px 10px;" class="setting-description"><?php _e('Selecting the "Remove" option will physically remove the tracking code from logged in users. Selecting the "Use \'admin\' variable" option will assign a variable called \'admin\' to logged in users. This option will allow Google Analytics\' site overlay feature to work, but you will have to manually configure Google Analytics to exclude tracking from pageviews with the \'admin\' variable.', 'google-analyticator'); ?></p>
|
404 |
</td>
|
405 |
</tr>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
406 |
<tr>
|
407 |
<th width="30%" valign="top" style="padding-top: 10px;">
|
408 |
<label for="<?php echo key_ga_outbound ?>"><?php _e('Outbound link tracking', 'google-analyticator'); ?>:</label>
|
@@ -699,14 +731,27 @@ function ga_ajax_accounts()
|
|
699 |
</th>
|
700 |
<td>
|
701 |
<?php
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
702 |
# Create a select box
|
703 |
echo '<select name="' . key_ga_uid . '" id="' . key_ga_uid . '">';
|
704 |
echo '<option value="XX-XXXXX-X">' . __('Select an Account', 'google-analyticator') . '</option>';
|
705 |
|
706 |
# The list of accounts
|
707 |
-
foreach ( $
|
708 |
-
|
709 |
-
|
|
|
|
|
|
|
|
|
710 |
}
|
711 |
|
712 |
# Close the select box
|
@@ -720,6 +765,10 @@ function ga_ajax_accounts()
|
|
720 |
die();
|
721 |
}
|
722 |
|
|
|
|
|
|
|
|
|
723 |
/**
|
724 |
* Checks if the WordPress API is a valid method for selecting an account
|
725 |
*
|
@@ -795,26 +844,29 @@ function add_google_analytics()
|
|
795 |
# Determine if the user is an admin, and should see the tracking code
|
796 |
if ( ( get_option(key_ga_admin) == ga_enabled || !ga_current_user_is(get_option(key_ga_admin_role)) ) && get_option(key_ga_admin_disable) == 'remove' || get_option(key_ga_admin_disable) != 'remove' )
|
797 |
{
|
798 |
-
#
|
799 |
-
|
|
|
|
|
|
|
800 |
|
801 |
-
|
802 |
-
|
803 |
-
|
804 |
|
805 |
-
|
806 |
-
|
807 |
-
|
808 |
-
|
809 |
-
|
810 |
-
|
811 |
-
|
812 |
-
# Include the link tracking prefixes
|
813 |
-
$outbound_prefix = stripslashes(get_option(key_ga_outbound_prefix));
|
814 |
-
$downloads_prefix = stripslashes(get_option(key_ga_downloads_prefix));
|
815 |
-
$event_tracking = get_option(key_ga_event);
|
816 |
|
817 |
-
|
|
|
|
|
|
|
|
|
|
|
818 |
<script type="text/javascript">
|
819 |
var analyticsFileTypes = [<?php echo strtolower($ext); ?>];
|
820 |
<?php if ( $event_tracking != 'enabled' ) { ?>
|
@@ -824,32 +876,36 @@ function add_google_analytics()
|
|
824 |
var analyticsEventTracking = '<?php echo $event_tracking; ?>';
|
825 |
</script>
|
826 |
<?php
|
827 |
-
|
828 |
-
|
829 |
<script type="text/javascript">
|
830 |
var _gaq = _gaq || [];
|
831 |
_gaq.push(['_setAccount', '<?php echo $uid; ?>']);
|
832 |
<?php
|
833 |
|
834 |
-
|
835 |
-
|
836 |
-
|
837 |
-
|
838 |
|
839 |
-
|
840 |
-
|
|
|
|
|
|
|
|
|
841 |
|
842 |
-
|
843 |
-
|
844 |
-
|
845 |
|
846 |
-
|
847 |
-
|
848 |
-
|
849 |
-
|
850 |
|
851 |
-
|
852 |
-
|
853 |
|
854 |
(function() {
|
855 |
var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
|
@@ -858,6 +914,7 @@ function add_google_analytics()
|
|
858 |
})();
|
859 |
</script>
|
860 |
<?php
|
|
|
861 |
} else {
|
862 |
# Add the notice that Google Analyticator tracking is enabled
|
863 |
echo "<!-- Google Analytics Tracking by Google Analyticator " . GOOGLE_ANALYTICATOR_VERSION . ": http://ronaldheft.com/code/analyticator/ -->\n";
|
1 |
<?php
|
2 |
/*
|
3 |
* Plugin Name: Google Analyticator
|
4 |
+
* Version: 6.2
|
5 |
* Plugin URI: http://ronaldheft.com/code/analyticator/
|
6 |
* Description: Adds the necessary JavaScript code to enable <a href="http://www.google.com/analytics/">Google's Analytics</a>. After enabling this plugin visit <a href="options-general.php?page=google-analyticator.php">the settings page</a> and enter your Google Analytics' UID and enable logging.
|
7 |
* Author: Ronald Heft
|
9 |
* Text Domain: google-analyticator
|
10 |
*/
|
11 |
|
12 |
+
define('GOOGLE_ANALYTICATOR_VERSION', '6.2');
|
13 |
|
14 |
// Constants for enabled/disabled state
|
15 |
define("ga_enabled", "enabled", true);
|
31 |
define("key_ga_downloads", "ga_downloads", true);
|
32 |
define("key_ga_downloads_prefix", "ga_downloads_prefix", true);
|
33 |
define("key_ga_widgets", "ga_widgets", true);
|
34 |
+
define("key_ga_sitespeed", "ga_sitespeed", true);
|
35 |
|
36 |
define("ga_uid_default", "XX-XXXXX-X", true);
|
37 |
define("ga_status_default", ga_disabled, true);
|
46 |
define("ga_downloads_default", "", true);
|
47 |
define("ga_downloads_prefix_default", "download", true);
|
48 |
define("ga_widgets_default", ga_enabled, true);
|
49 |
+
define("ga_sitespeed_default", ga_enabled, true);
|
50 |
|
51 |
// Create the default key and status
|
52 |
add_option(key_ga_status, ga_status_default, '');
|
67 |
add_option(key_ga_widgets, ga_widgets_default, '');
|
68 |
add_option('ga_google_token', '', '');
|
69 |
add_option('ga_compatibility', 'off', '');
|
70 |
+
add_option(key_ga_sitespeed, ga_sitespeed_default, '');
|
71 |
|
72 |
# Check if we have a version of WordPress greater than 2.8
|
73 |
if ( function_exists('register_widget') ) {
|
238 |
if ( $ga_compatibility == '' )
|
239 |
$ga_compatibility = 'off';
|
240 |
update_option('ga_compatibility', $ga_compatibility);
|
241 |
+
|
242 |
+
// Update the sitespeed option
|
243 |
+
$ga_sitespeed = $_POST[key_ga_sitespeed];
|
244 |
+
if (($ga_sitespeed != ga_enabled) && ($ga_sitespeed != ga_disabled))
|
245 |
+
$ga_sitespeed = ga_widgets_default;
|
246 |
+
update_option(key_ga_sitespeed, $ga_sitespeed);
|
247 |
|
248 |
// Give an updated message
|
249 |
echo "<div class='updated fade'><p><strong>" . __('Google Analyticator settings saved.', 'google-analyticator') . "</strong></p></div>";
|
412 |
<p style="margin: 5px 10px;" class="setting-description"><?php _e('Selecting the "Remove" option will physically remove the tracking code from logged in users. Selecting the "Use \'admin\' variable" option will assign a variable called \'admin\' to logged in users. This option will allow Google Analytics\' site overlay feature to work, but you will have to manually configure Google Analytics to exclude tracking from pageviews with the \'admin\' variable.', 'google-analyticator'); ?></p>
|
413 |
</td>
|
414 |
</tr>
|
415 |
+
<tr>
|
416 |
+
<th width="30%" valign="top" style="padding-top: 10px;">
|
417 |
+
<label for="<?php echo key_ga_sitespeed ?>"><?php _e('Site speed tracking', 'google-analyticator'); ?>:</label>
|
418 |
+
</th>
|
419 |
+
<td>
|
420 |
+
<?php
|
421 |
+
echo "<select name='".key_ga_sitespeed."' id='".key_ga_sitespeed."'>\n";
|
422 |
+
|
423 |
+
echo "<option value='".ga_enabled."'";
|
424 |
+
if(get_option(key_ga_sitespeed) == ga_enabled)
|
425 |
+
echo " selected='selected'";
|
426 |
+
echo ">" . __('Enabled', 'google-analyticator') . "</option>\n";
|
427 |
+
|
428 |
+
echo "<option value='".ga_disabled."'";
|
429 |
+
if(get_option(key_ga_sitespeed) == ga_disabled)
|
430 |
+
echo" selected='selected'";
|
431 |
+
echo ">" . __('Disabled', 'google-analyticator') . "</option>\n";
|
432 |
+
|
433 |
+
echo "</select>\n";
|
434 |
+
?>
|
435 |
+
<p style="margin: 5px 10px;" class="setting-description"><?php _e('Disabling this option will turn off the tracking required for <a href="http://www.google.com/support/analyticshelp/bin/answer.py?hl=en&answer=1205784&topic=1120718&utm_source=gablog&utm_medium=blog&utm_campaign=newga-blog&utm_content=sitespeed">Google Analytics\' Site Speed tracking report</a>.', 'google-analyticator'); ?></p>
|
436 |
+
</td>
|
437 |
+
</tr>
|
438 |
<tr>
|
439 |
<th width="30%" valign="top" style="padding-top: 10px;">
|
440 |
<label for="<?php echo key_ga_outbound ?>"><?php _e('Outbound link tracking', 'google-analyticator'); ?>:</label>
|
731 |
</th>
|
732 |
<td>
|
733 |
<?php
|
734 |
+
// sort the $ga_accounts array by ga:accountName and then title
|
735 |
+
$sorted_ga_accounts = array();
|
736 |
+
foreach ($ga_accounts as $ga_account) {
|
737 |
+
$sorted_ga_accounts[$ga_account['ga:accountName']][] = $ga_account;
|
738 |
+
}
|
739 |
+
foreach( $sorted_ga_accounts as $id => $sorted_ga_account) {
|
740 |
+
usort($sorted_ga_accounts[$id], 'ga_sort_account_list');
|
741 |
+
}
|
742 |
+
|
743 |
# Create a select box
|
744 |
echo '<select name="' . key_ga_uid . '" id="' . key_ga_uid . '">';
|
745 |
echo '<option value="XX-XXXXX-X">' . __('Select an Account', 'google-analyticator') . '</option>';
|
746 |
|
747 |
# The list of accounts
|
748 |
+
foreach ( $sorted_ga_accounts AS $account_name => $account_list ) {
|
749 |
+
echo "<optgroup label='".htmlentities($account_name)."'>\n";
|
750 |
+
foreach( $account_list as $account) {
|
751 |
+
$select = ( get_option(key_ga_uid) == $account['ga:webPropertyId'] ) ? ' selected="selected"' : '';
|
752 |
+
echo '<option value="' . $account['ga:webPropertyId'] . '"' . $select . '>' . $account['title'] . '</option>';
|
753 |
+
}
|
754 |
+
echo "</optgroup>\n";
|
755 |
}
|
756 |
|
757 |
# Close the select box
|
765 |
die();
|
766 |
}
|
767 |
|
768 |
+
function ga_sort_account_list($a, $b) {
|
769 |
+
return strcmp($a['title'],$b['title']);
|
770 |
+
}
|
771 |
+
|
772 |
/**
|
773 |
* Checks if the WordPress API is a valid method for selecting an account
|
774 |
*
|
844 |
# Determine if the user is an admin, and should see the tracking code
|
845 |
if ( ( get_option(key_ga_admin) == ga_enabled || !ga_current_user_is(get_option(key_ga_admin_role)) ) && get_option(key_ga_admin_disable) == 'remove' || get_option(key_ga_admin_disable) != 'remove' )
|
846 |
{
|
847 |
+
# Disable the tracking code on the post preview page
|
848 |
+
if ( !function_exists("is_preview") || ( function_exists("is_preview") && !is_preview() ) )
|
849 |
+
{
|
850 |
+
# Add the notice that Google Analyticator tracking is enabled
|
851 |
+
echo "<!-- Google Analytics Tracking by Google Analyticator " . GOOGLE_ANALYTICATOR_VERSION . ": http://ronaldheft.com/code/analyticator/ -->\n";
|
852 |
|
853 |
+
# Add the Adsense data if specified
|
854 |
+
if ( get_option(key_ga_adsense) != '' )
|
855 |
+
echo '<script type="text/javascript">window.google_analytics_uacct = "' . get_option(key_ga_adsense) . "\";</script>\n";
|
856 |
|
857 |
+
# Include the file types to track
|
858 |
+
$extensions = explode(',', stripslashes(get_option(key_ga_downloads)));
|
859 |
+
$ext = "";
|
860 |
+
foreach ( $extensions AS $extension )
|
861 |
+
$ext .= "'$extension',";
|
862 |
+
$ext = substr($ext, 0, -1);
|
|
|
|
|
|
|
|
|
|
|
863 |
|
864 |
+
# Include the link tracking prefixes
|
865 |
+
$outbound_prefix = stripslashes(get_option(key_ga_outbound_prefix));
|
866 |
+
$downloads_prefix = stripslashes(get_option(key_ga_downloads_prefix));
|
867 |
+
$event_tracking = get_option(key_ga_event);
|
868 |
+
|
869 |
+
?>
|
870 |
<script type="text/javascript">
|
871 |
var analyticsFileTypes = [<?php echo strtolower($ext); ?>];
|
872 |
<?php if ( $event_tracking != 'enabled' ) { ?>
|
876 |
var analyticsEventTracking = '<?php echo $event_tracking; ?>';
|
877 |
</script>
|
878 |
<?php
|
879 |
+
# Add the first part of the core tracking code
|
880 |
+
?>
|
881 |
<script type="text/javascript">
|
882 |
var _gaq = _gaq || [];
|
883 |
_gaq.push(['_setAccount', '<?php echo $uid; ?>']);
|
884 |
<?php
|
885 |
|
886 |
+
# Add any tracking code before the trackPageview
|
887 |
+
do_action('google_analyticator_extra_js_before');
|
888 |
+
if ( '' != $extra )
|
889 |
+
echo " $extra\n";
|
890 |
|
891 |
+
# Add the track pageview function
|
892 |
+
echo " _gaq.push(['_trackPageview']);\n";
|
893 |
+
|
894 |
+
# Add the site speed tracking
|
895 |
+
if ( get_option(key_ga_sitespeed) == ga_enabled )
|
896 |
+
echo " _gaq.push(['_trackPageLoadTime']);\n";
|
897 |
|
898 |
+
# Disable page tracking if admin is logged in
|
899 |
+
if ( ( get_option(key_ga_admin) == ga_disabled ) && ( ga_current_user_is(get_option(key_ga_admin_role)) ) )
|
900 |
+
echo " _gaq.push(['_setCustomVar', 'admin']);\n";
|
901 |
|
902 |
+
# Add any tracking code after the trackPageview
|
903 |
+
do_action('google_analyticator_extra_js_after');
|
904 |
+
if ( '' != $extra_after )
|
905 |
+
echo " $extra_after\n";
|
906 |
|
907 |
+
# Add the final section of the tracking code
|
908 |
+
?>
|
909 |
|
910 |
(function() {
|
911 |
var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
|
914 |
})();
|
915 |
</script>
|
916 |
<?php
|
917 |
+
}
|
918 |
} else {
|
919 |
# Add the notice that Google Analyticator tracking is enabled
|
920 |
echo "<!-- Google Analytics Tracking by Google Analyticator " . GOOGLE_ANALYTICATOR_VERSION . ": http://ronaldheft.com/code/analyticator/ -->\n";
|
readme.txt
CHANGED
@@ -4,7 +4,7 @@ Donate link: http://ronaldheft.com/code/donate/
|
|
4 |
Tags: stats, statistics, google, analytics, google analytics, tracking, widget
|
5 |
Requires at least: 2.7
|
6 |
Tested up to: 3.2
|
7 |
-
Stable tag: 6.
|
8 |
|
9 |
Adds the necessary JavaScript code to enable Google Analytics. Includes widgets for Analytics data display.
|
10 |
|
@@ -16,12 +16,13 @@ Google Analyticator adds the necessary JavaScript code to enable Google Analytic
|
|
16 |
|
17 |
Google Analyticator Has the Following Features:
|
18 |
|
19 |
-
-
|
20 |
- Includes an admin dashboard widget that displays a graph of the last 30 days of visitors, a summary of site usage, the top pages, the top referrers, and the top searches
|
21 |
- Includes a widget that can be used to display visitor stat information on the front-end
|
22 |
- Supports outbound link tracking of all links on the page, including links not managed by WordPress
|
23 |
- Supports download link tracking
|
24 |
- Supports event tracking with outbound links / downloads instead of the old pageview tracking method
|
|
|
25 |
- Allows hiding of Administrator visits without affecting Google Analytics' site overlay feature
|
26 |
- Supports any advanced tracking code Google provides
|
27 |
- Installs easily - unlike other plugins, the user doesn't even have to know their Analytics UID
|
@@ -49,6 +50,12 @@ Please visit [Google Analyticator's support forum](http://forums.ronaldheft.com/
|
|
49 |
|
50 |
== Changelog ==
|
51 |
|
|
|
|
|
|
|
|
|
|
|
|
|
52 |
= 6.1.3 =
|
53 |
* Fixes a Javascript error on the WordPress login page.
|
54 |
* Improves profile id logic to hopefully fix dashboard errors for the people that experience them.
|
4 |
Tags: stats, statistics, google, analytics, google analytics, tracking, widget
|
5 |
Requires at least: 2.7
|
6 |
Tested up to: 3.2
|
7 |
+
Stable tag: 6.2
|
8 |
|
9 |
Adds the necessary JavaScript code to enable Google Analytics. Includes widgets for Analytics data display.
|
10 |
|
16 |
|
17 |
Google Analyticator Has the Following Features:
|
18 |
|
19 |
+
- Supports standard Google Analytics tracking via the latest async tracking methods (faster and more reliable than the older ga.js tracking method)
|
20 |
- Includes an admin dashboard widget that displays a graph of the last 30 days of visitors, a summary of site usage, the top pages, the top referrers, and the top searches
|
21 |
- Includes a widget that can be used to display visitor stat information on the front-end
|
22 |
- Supports outbound link tracking of all links on the page, including links not managed by WordPress
|
23 |
- Supports download link tracking
|
24 |
- Supports event tracking with outbound links / downloads instead of the old pageview tracking method
|
25 |
+
- **NEW!** Support site speed tracking
|
26 |
- Allows hiding of Administrator visits without affecting Google Analytics' site overlay feature
|
27 |
- Supports any advanced tracking code Google provides
|
28 |
- Installs easily - unlike other plugins, the user doesn't even have to know their Analytics UID
|
50 |
|
51 |
== Changelog ==
|
52 |
|
53 |
+
= 6.2 =
|
54 |
+
* Adds a new option for site speed tracking (enabled by default).
|
55 |
+
* Replaces deprecated tracking code _setVar with _setCustomVar.
|
56 |
+
* Improves the account select dropdown by organizing the accounts. Props bluntly.
|
57 |
+
* Prevents post preview pages from being tracked and skewing stats.
|
58 |
+
|
59 |
= 6.1.3 =
|
60 |
* Fixes a Javascript error on the WordPress login page.
|
61 |
* Improves profile id logic to hopefully fix dashboard errors for the people that experience them.
|