Better Google Analytics - Version 1.0.4

Version Description

  • Bug: Fixed cosmetic formatting issue on settings page when on very thin screens (responsive mobile)
  • Feature: Added new Google Analytics Custom Dimension tracking option (Publication Year)
  • Feature: Added new Google Analytics Custom Dimension tracking option (User Role)
  • Feature: Added ability to optionally have a single linked Google Analytics account for all sites in a multisite network setup
  • Feature: Added ability to specify a custom Google Analytics API project ID for a multisite network (similar to how you can already for a single site)
  • Added "Verify Domain" link to plugin page when Pro version is installed on an unknown domain
Download this release

Release Info

Developer digitalpoint
Plugin Icon 128x128 Better Google Analytics
Version 1.0.4
Comparing to
See all releases

Code changes from version 1.0.3 to 1.0.4

assets/digitalpoint/css/admin.css CHANGED
@@ -1 +1 @@
1
- .ba_error{background-color:#333;width:40%;position:absolute;top:200px;left:30%;border:1px black solid;box-shadow:0 0 0 10px rgba(100,100,100,.7);border-radius:3px;color:white;padding:10px;opacity:.9;z-index:10}.ba_error .dismiss{float:right;margin-top:40px}#contextual-help-link-wrap{z-index:10}#better-analytics_sidebar_wrapper{position:absolute;right:20px;width:275px;margin-left:10px}#better-analytics_sidebar{position:relative;top:15px}#better-analytics_sidebar .pro{display:none}#better-analytics_sidebar>div{border-color:#ddd #bbb #bbb #ddd;padding:10px}#better-analytics_sidebar h4{margin-top:2em}#better-analytics_sidebar>.postbox>h4{margin-top:0}#better-analytics_sidebar .dashicons-twitter{vertical-align:middle;font-size:16px;height:18px}#better-analytics_settings form{margin-right:285px}@media screen and (max-width:782px){#better-analytics_sidebar{display:none}#better-analytics_settings form{margin-right:0}}@media only screen and (max-width:960px){#better-analytics_settings form{margin-right:215px}#better-analytics_sidebar_wrapper{width:205px}#better-analytics_sidebar .postbox{min-width:185px}}#ba_settings.form-table .dashicons-before{opacity:.6}#ba_settings.form-table th,#ba_test.form-table th{white-space:nowrap;text-align:right}#ba_monitor{padding-right:20px}#ba_monitor td{white-space:nowrap}#ba_monitor td:last-of-type{white-space:normal}@media screen and (max-width:782px){.form-table th{text-align:left!important}.responsiveHide{display:none}}.tooltipster-better_analytics{border-radius:5px;border:2px solid #000;background:#4c4c4c;color:#fff;opacity:.9}.tooltipster-better_analytics .tooltipster-content{font-family:Arial,sans-serif;font-size:12px;line-height:18px;padding:8px 10px;overflow:hidden}.tooltipster-better_analytics .tooltipster-content a{color:#7bf}.tooltipster-better_analytics .tooltipster-content a:hover{color:#9df}.group_api input[type="text"]{width:100%}#ba_test .good{color:green;font-size:24px;padding-right:10px}#ba_test .bad{color:red;font-size:24px;padding-right:10px}#ba_test .unknown{color:orange;font-size:24px}#ba_test th+td{vertical-align:top}#ba_test.form-table th,#ba_test.form-table td,#parameters.form-table th,#parameters.form-table td{padding-top:10px;padding-bottom:10px;line-height:1em}#ba_test.form-table th{padding-top:15px}.ba_monitor_form #parameters.form-table th{padding-top:18px}#ba_test .description{color:#777;font-size:12px;line-height:1.5em!important}#ba_test .description ul{list-style:disc;padding-left:30px}.table{display:table;width:95%}.table .row{display:table-row}.table .row.header{font-size:11px;color:#032a46;background:#6cb2e4 linear-gradient(rgba(255,255,255,0.35) 0,rgba(255,255,255,0.35) 50%,rgba(255,255,255,0) 100%)}.table .cell{text-align:center;display:table-cell;border-bottom:1px solid #a5cae4;border-right:1px solid #a5cae4;padding:5px 0;width:12.5%;transition:all 1s;opacity:0;background-color:#176093}.table .cell:first-of-type{border-left:1px solid #a5cae4}.table .row.header .cell{font-weight:bold;border-top:1px solid #6cb2e4;border-bottom:1px solid #65a5d1;border-right:0;border-left:0;background-color:transparent}#Heatmap .row:nth-of-type(2) .cell{border-top:1px solid #a5cae4}#Heatmap .row .cell:nth-of-type(2){border-left:1px solid #a5cae4}#Heatmap .row:first-of-type,#Heatmap .row:first-of-type .cell,#Heatmap .row .cell:first-of-type{border:0;font-weight:bold;background-color:transparent;opacity:1}#Heatmap .row .cell:first-of-type{text-align:right;padding-right:10px;white-space:nowrap}#parameters.form-table th{text-align:right;padding-top:15px}#ba_chart,#ba_realtime_charts{display:none}#ba_realtime_charts>div{display:inline-block;vertical-align:top;line-height:1em}#ba_rt_users{width:30%;text-align:center;padding-top:50px}#ba_rt_users .number{font-weight:bold;font-size:400%;transition:background-color 5s}#ba_rt_users .number.up{background-color:lightgreen;transition:background-color 0s}#ba_rt_users .number.down{background-color:#e77;transition:background-color 0s}#ba_rt_map{width:70%}#ba_rt_medium,#ba_rt_device{width:50%}#ba_realtime_charts #ba_rt_keywords,#ba_realtime_charts #ba_rt_referral_path,#ba_realtime_charts #ba_rt_page_path{display:block;width:100%;padding:15px 0}.google-visualization-table-td{word-wrap:break-word;word-break:break-all;overflow:hidden}#better-analytics_settings .pro{border:2px dashed orange;padding-right:5px}#better-analytics_settings .pro li{list-style:disc;margin-left:25px}#better-analytics_sidebar .postbox h4+div{line-height:1.4em}#ba_track_blocked{display:inline}#chart_loading{font-size:40px;width:40px;height:40px;color:lightgrey;position:absolute;-webkit-animation:rotation 1s infinite linear;animation:rotation 1s infinite linear;transition:opacity .5s;opacity:0}table.plugins #better-analytics p{white-space:normal}table.plugins #better-analytics p.green{color:green}table.plugins #better-analytics p.green a{color:darkgreen}table.plugins #better-analytics p.green a:hover{color:#009600}table.plugins #better-analytics p.orange{color:orange}table.plugins #better-analytics p.orange a{color:darkorange}table.plugins #better-analytics p.orange a:hover{color:lightcoral}
1
+ .ba_error{background-color:#333;width:40%;position:absolute;top:200px;left:30%;border:1px black solid;box-shadow:0 0 0 10px rgba(100,100,100,.7);border-radius:3px;color:white;padding:10px;opacity:.9;z-index:10}.ba_error .dismiss{float:right;margin-top:40px}#contextual-help-link-wrap{z-index:10}#better-analytics_sidebar_wrapper{position:absolute;right:20px;width:275px;margin-left:10px}#better-analytics_sidebar{position:relative;top:15px}#better-analytics_sidebar .pro{display:none}#better-analytics_sidebar>div{border-color:#ddd #bbb #bbb #ddd;padding:10px}#better-analytics_sidebar h4{margin-top:2em}#better-analytics_sidebar>.postbox>h4{margin-top:0}#better-analytics_sidebar .dashicons-twitter{vertical-align:middle;font-size:16px;height:18px}#better-analytics_settings form{margin-right:285px}@media only screen and (max-width:960px){#better-analytics_settings form{margin-right:215px}#better-analytics_sidebar_wrapper{width:205px}#better-analytics_sidebar .postbox{min-width:185px}}@media screen and (max-width:782px){#better-analytics_sidebar{display:none}#better-analytics_settings form{margin-right:0}}#ba_settings.form-table .dashicons-before{opacity:.6}#ba_settings.form-table th,#ba_test.form-table th{white-space:nowrap;text-align:right}#ba_monitor{padding-right:20px}#ba_monitor td{white-space:nowrap}#ba_monitor td:last-of-type{white-space:normal}@media screen and (max-width:782px){.form-table th{text-align:left!important}.responsiveHide{display:none}}.tooltipster-better_analytics{border-radius:5px;border:2px solid #000;background:#4c4c4c;color:#fff;opacity:.9}.tooltipster-better_analytics .tooltipster-content{font-family:Arial,sans-serif;font-size:12px;line-height:18px;padding:8px 10px;overflow:hidden}.tooltipster-better_analytics .tooltipster-content a{color:#7bf}.tooltipster-better_analytics .tooltipster-content a:hover{color:#9df}.group_api input[type="text"]{width:100%}#ba_test .good{color:green;font-size:24px;padding-right:10px}#ba_test .bad{color:red;font-size:24px;padding-right:10px}#ba_test .unknown{color:orange;font-size:24px}#ba_test th+td{vertical-align:top}#ba_test.form-table th,#ba_test.form-table td,#parameters.form-table th,#parameters.form-table td{padding-top:10px;padding-bottom:10px;line-height:1em}#ba_test.form-table th{padding-top:15px}.ba_monitor_form #parameters.form-table th{padding-top:18px}#ba_test .description{color:#777;font-size:12px;line-height:1.5em!important}#ba_test .description ul{list-style:disc;padding-left:30px}.table{display:table;width:95%}.table .row{display:table-row}.table .row.header{font-size:11px;color:#032a46;background:#6cb2e4 linear-gradient(rgba(255,255,255,0.35) 0,rgba(255,255,255,0.35) 50%,rgba(255,255,255,0) 100%)}.table .cell{text-align:center;display:table-cell;border-bottom:1px solid #a5cae4;border-right:1px solid #a5cae4;padding:5px 0;width:12.5%;transition:all 1s;opacity:0;background-color:#176093}.table .cell:first-of-type{border-left:1px solid #a5cae4}.table .row.header .cell{font-weight:bold;border-top:1px solid #6cb2e4;border-bottom:1px solid #65a5d1;border-right:0;border-left:0;background-color:transparent}#Heatmap .row:nth-of-type(2) .cell{border-top:1px solid #a5cae4}#Heatmap .row .cell:nth-of-type(2){border-left:1px solid #a5cae4}#Heatmap .row:first-of-type,#Heatmap .row:first-of-type .cell,#Heatmap .row .cell:first-of-type{border:0;font-weight:bold;background-color:transparent;opacity:1}#Heatmap .row .cell:first-of-type{text-align:right;padding-right:10px;white-space:nowrap}#parameters.form-table th{text-align:right;padding-top:15px}#ba_chart,#ba_realtime_charts{display:none}#ba_realtime_charts>div{display:inline-block;vertical-align:top;line-height:1em}#ba_rt_users{width:30%;text-align:center;padding-top:50px}#ba_rt_users .number{font-weight:bold;font-size:400%;transition:background-color 5s}#ba_rt_users .number.up{background-color:lightgreen;transition:background-color 0s}#ba_rt_users .number.down{background-color:#e77;transition:background-color 0s}#ba_rt_map{width:70%}#ba_rt_medium,#ba_rt_device{width:50%}#ba_realtime_charts #ba_rt_keywords,#ba_realtime_charts #ba_rt_referral_path,#ba_realtime_charts #ba_rt_page_path{display:block;width:100%;padding:15px 0}.google-visualization-table-td{word-wrap:break-word;word-break:break-all;overflow:hidden}#better-analytics_settings .pro{border:2px dashed orange;padding-right:5px}#better-analytics_settings .pro li{list-style:disc;margin-left:25px}#better-analytics_sidebar .postbox h4+div{line-height:1.4em}#ba_track_blocked{display:inline}#chart_loading{font-size:40px;width:40px;height:40px;color:lightgrey;position:absolute;-webkit-animation:rotation 1s infinite linear;animation:rotation 1s infinite linear;transition:opacity .5s;opacity:0}table.plugins #better-analytics p{white-space:normal}table.plugins #better-analytics p.green{color:green}table.plugins #better-analytics p.green a{color:darkgreen}table.plugins #better-analytics p.green a:hover{color:#009600}table.plugins #better-analytics p.orange{color:orange}table.plugins #better-analytics p.orange a{color:darkorange}table.plugins #better-analytics p.orange a:hover{color:lightcoral}
better-analytics.php CHANGED
@@ -7,7 +7,7 @@
7
  Plugin Name: Better Analytics
8
  Plugin URI: https://marketplace.digitalpoint.com/better-analytics.3354/item
9
  Description: Adds Google Universal Analytics code to your WordPress site. Options to track most everything (social button interactions, advertising clicks, emails sent/opened, YouTube video engagement, custom dimension tracking of authors/categories, etc.) Integrates with API for reports/charts on dashboard, heat maps and real-time traffic tracking.
10
- Version: 1.0.3
11
  Author: Digital Point
12
  Author URI: https://www.digitalpoint.com/
13
  License: GPLv2
@@ -23,7 +23,7 @@ if (!function_exists('add_action'))
23
  exit;
24
  }
25
 
26
- define('BETTER_ANALYTICS_VERSION', '1.0.3');
27
  define('BETTER_ANALYTICS_MINIMUM_WP_VERSION', '3.8'); // Dashicons: https://codex.wordpress.org/Function_Reference/add_menu_page
28
  define('BETTER_ANALYTICS_PRODUCT_URL', 'https://marketplace.digitalpoint.com/better-analytics.3354/item');
29
  define('BETTER_ANALYTICS_PRO_PRODUCT_URL', 'https://marketplace.digitalpoint.com/better-analytics-pro.3355/item');
7
  Plugin Name: Better Analytics
8
  Plugin URI: https://marketplace.digitalpoint.com/better-analytics.3354/item
9
  Description: Adds Google Universal Analytics code to your WordPress site. Options to track most everything (social button interactions, advertising clicks, emails sent/opened, YouTube video engagement, custom dimension tracking of authors/categories, etc.) Integrates with API for reports/charts on dashboard, heat maps and real-time traffic tracking.
10
+ Version: 1.0.4
11
  Author: Digital Point
12
  Author URI: https://www.digitalpoint.com/
13
  License: GPLv2
23
  exit;
24
  }
25
 
26
+ define('BETTER_ANALYTICS_VERSION', '1.0.4');
27
  define('BETTER_ANALYTICS_MINIMUM_WP_VERSION', '3.8'); // Dashicons: https://codex.wordpress.org/Function_Reference/add_menu_page
28
  define('BETTER_ANALYTICS_PRODUCT_URL', 'https://marketplace.digitalpoint.com/better-analytics.3354/item');
29
  define('BETTER_ANALYTICS_PRO_PRODUCT_URL', 'https://marketplace.digitalpoint.com/better-analytics-pro.3355/item');
js/universal.php CHANGED
@@ -5,7 +5,8 @@ $betterAnalyticsInternal = get_transient('ba_int');
5
  $createOptions = array();
6
 
7
  $baCategories = $baTags = array();
8
- $baAuthor = null;
 
9
 
10
  // get category ID from category archives pages
11
  global $wp_query;
@@ -40,6 +41,8 @@ if (!count($baCategories) && !is_front_page())
40
 
41
  if ($post = get_post())
42
  {
 
 
43
  if ($post->post_author > 0)
44
  {
45
  $baAuthor = get_the_author_meta('display_name', $post->post_author);
@@ -63,6 +66,11 @@ if (!count($baCategories) && !is_front_page())
63
  $jsonOptions = array('tid' => @$betterAnalyticsOptions['property_id']);
64
 
65
  $currentUser = wp_get_current_user();
 
 
 
 
 
66
  if (@$betterAnalyticsOptions['track_userid'] && @$currentUser->ID > 0)
67
  {
68
  $createOptions['userId'] = intval($currentUser->ID);
@@ -148,7 +156,6 @@ if (!empty($betterAnalyticsOptions['dimension']['author']) && $baAuthor)
148
  );
149
  }
150
 
151
-
152
  if (!empty($betterAnalyticsOptions['dimension']['tag']) && $baTags)
153
  {
154
  $jsonOptions['d']['t'] = array(
@@ -157,6 +164,22 @@ if (!empty($betterAnalyticsOptions['dimension']['tag']) && $baTags)
157
  );
158
  }
159
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
160
  if (!empty($betterAnalyticsOptions['dimension']['user']) && @$currentUser->ID > 0)
161
  {
162
  $jsonOptions['d']['u'] = array(
5
  $createOptions = array();
6
 
7
  $baCategories = $baTags = array();
8
+ $baAuthor = $baRole = null;
9
+ $baYear = 0;
10
 
11
  // get category ID from category archives pages
12
  global $wp_query;
41
 
42
  if ($post = get_post())
43
  {
44
+ $baYear = absint(substr(@$post->post_date, 0, 4));
45
+
46
  if ($post->post_author > 0)
47
  {
48
  $baAuthor = get_the_author_meta('display_name', $post->post_author);
66
  $jsonOptions = array('tid' => @$betterAnalyticsOptions['property_id']);
67
 
68
  $currentUser = wp_get_current_user();
69
+ if (!$baRole = implode(',', (array)@$currentUser->roles))
70
+ {
71
+ $baRole = 'guest';
72
+ }
73
+
74
  if (@$betterAnalyticsOptions['track_userid'] && @$currentUser->ID > 0)
75
  {
76
  $createOptions['userId'] = intval($currentUser->ID);
156
  );
157
  }
158
 
 
159
  if (!empty($betterAnalyticsOptions['dimension']['tag']) && $baTags)
160
  {
161
  $jsonOptions['d']['t'] = array(
164
  );
165
  }
166
 
167
+ if (!empty($betterAnalyticsOptions['dimension']['year']) && $baYear)
168
+ {
169
+ $jsonOptions['d']['y'] = array(
170
+ intval($betterAnalyticsOptions['dimension']['year']),
171
+ $baYear
172
+ );
173
+ }
174
+
175
+ if (!empty($betterAnalyticsOptions['dimension']['role']) && $baRole)
176
+ {
177
+ $jsonOptions['d']['r'] = array(
178
+ intval($betterAnalyticsOptions['dimension']['role']),
179
+ $baRole
180
+ );
181
+ }
182
+
183
  if (!empty($betterAnalyticsOptions['dimension']['user']) && @$currentUser->ID > 0)
184
  {
185
  $jsonOptions['d']['u'] = array(
languages/better-analytics.pot CHANGED
@@ -4,7 +4,7 @@ msgid ""
4
  msgstr ""
5
  "Project-Id-Version: Better Analytics 1.0.3\n"
6
  "Report-Msgid-Bugs-To: https://wordpress.org/support/plugin/better-analytics\n"
7
- "POT-Creation-Date: 2015-06-20 18:25:56+00:00\n"
8
  "MIME-Version: 1.0\n"
9
  "Content-Type: text/plain; charset=UTF-8\n"
10
  "Content-Transfer-Encoding: 8bit\n"
@@ -12,38 +12,39 @@ msgstr ""
12
  "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
13
  "Language-Team: LANGUAGE <LL@li.org>\n"
14
 
15
- #: library/DigitalPointBetterAnalytics/Base/Admin.php:70
16
  msgid "Test Analytics Setup"
17
  msgstr ""
18
 
19
- #: library/DigitalPointBetterAnalytics/Base/Admin.php:71
 
20
  msgid "OAuth2 Endpoint"
21
  msgstr ""
22
 
23
- #: library/DigitalPointBetterAnalytics/Base/Admin.php:76
24
  msgid "Analytics"
25
  msgstr ""
26
 
27
- #: library/DigitalPointBetterAnalytics/Base/Admin.php:77
28
  msgid "Heat Maps"
29
  msgstr ""
30
 
31
- #: library/DigitalPointBetterAnalytics/Base/Admin.php:77
32
  msgid "Reports"
33
  msgstr ""
34
 
35
- #: library/DigitalPointBetterAnalytics/Base/Admin.php:79
36
  #: library/DigitalPointBetterAnalytics/ViewAdmin/reports/area_charts.php:17
37
  #: library/DigitalPointBetterAnalytics/ViewAdmin/reports/events.php:14
38
  #: library/DigitalPointBetterAnalytics/ViewAdmin/reports/heatmaps.php:14
39
  msgid "Charts"
40
  msgstr ""
41
 
42
- #: library/DigitalPointBetterAnalytics/Base/Admin.php:80
43
  msgid "Issue Monitor"
44
  msgstr ""
45
 
46
- #: library/DigitalPointBetterAnalytics/Base/Admin.php:81
47
  #: library/DigitalPointBetterAnalytics/ControllerAdmin/Analytics.php:384
48
  #: library/DigitalPointBetterAnalytics/ControllerAdmin/Analytics.php:442
49
  #: library/DigitalPointBetterAnalytics/ViewAdmin/reports/area_charts.php:18
@@ -52,77 +53,77 @@ msgstr ""
52
  msgid "Events"
53
  msgstr ""
54
 
55
- #: library/DigitalPointBetterAnalytics/Base/Admin.php:85
56
- #: library/DigitalPointBetterAnalytics/Base/Admin.php:102
57
- #: library/DigitalPointBetterAnalytics/Base/Admin.php:200
58
  msgid "Settings"
59
  msgstr ""
60
 
61
- #: library/DigitalPointBetterAnalytics/Base/Admin.php:86
62
  msgid "Test Setup"
63
  msgstr ""
64
 
65
  #. #-#-#-#-# plugin.pot (Better Analytics 1.0.3) #-#-#-#-#
66
  #. Plugin Name of the plugin/theme
67
- #: library/DigitalPointBetterAnalytics/Base/Admin.php:89
68
- #: library/DigitalPointBetterAnalytics/Base/Admin.php:176
69
- #: library/DigitalPointBetterAnalytics/Base/Admin.php:308
70
- #: library/DigitalPointBetterAnalytics/Base/Admin.php:352
71
  #: library/DigitalPointBetterAnalytics/ViewAdmin/config.php:27
72
  msgid "Better Analytics"
73
  msgstr ""
74
 
75
- #: library/DigitalPointBetterAnalytics/Base/Admin.php:113
76
  msgid "Pro version not up to date."
77
  msgstr ""
78
 
79
- #: library/DigitalPointBetterAnalytics/Base/Admin.php:114
80
  msgid "Installed:"
81
  msgstr ""
82
 
83
- #: library/DigitalPointBetterAnalytics/Base/Admin.php:116
84
  msgid "Latest:"
85
  msgstr ""
86
 
87
- #: library/DigitalPointBetterAnalytics/Base/Admin.php:121
88
  msgid "Pro version installed"
89
  msgstr ""
90
 
91
- #: library/DigitalPointBetterAnalytics/Base/Admin.php:125
92
  msgid ""
93
  "Pro version installed, but not active. Did you %1$sverify ownership of your "
94
  "domain%2$s?"
95
  msgstr ""
96
 
97
- #: library/DigitalPointBetterAnalytics/Base/Admin.php:132
98
  msgid "Pro version not installed."
99
  msgstr ""
100
 
101
- #: library/DigitalPointBetterAnalytics/Base/Admin.php:200
102
  msgid "Google Analytics Web Property ID not selected."
103
  msgstr ""
104
 
105
- #: library/DigitalPointBetterAnalytics/Base/Admin.php:205
106
  msgid "Last Analytics Error:"
107
  msgstr ""
108
 
109
- #: library/DigitalPointBetterAnalytics/Base/Admin.php:240
110
  msgid "Invalid method:"
111
  msgstr ""
112
 
113
- #: library/DigitalPointBetterAnalytics/Base/Admin.php:265
114
  msgid "Invalid Google API Code:"
115
  msgstr ""
116
 
117
- #: library/DigitalPointBetterAnalytics/Base/Admin.php:271
118
  msgid "Unknown Google API Error:"
119
  msgstr ""
120
 
121
- #: library/DigitalPointBetterAnalytics/Base/Admin.php:306
122
  msgid "Overview"
123
  msgstr ""
124
 
125
- #: library/DigitalPointBetterAnalytics/Base/Admin.php:309
126
  msgid ""
127
  "At the most basic level, it will automatically add Google Analytics "
128
  "Universal code to your website. It gives you the flexibility to track "
@@ -130,75 +131,79 @@ msgid ""
130
  "engagement (and everything in between)."
131
  msgstr ""
132
 
133
- #: library/DigitalPointBetterAnalytics/Base/Admin.php:316
134
- #: library/DigitalPointBetterAnalytics/Base/Admin.php:331
135
  msgid "Pro"
136
  msgstr ""
137
 
138
- #: library/DigitalPointBetterAnalytics/Base/Admin.php:318
139
  msgid "Pro Version"
140
  msgstr ""
141
 
142
- #: library/DigitalPointBetterAnalytics/Base/Admin.php:319
143
  msgid ""
144
  "There is a Pro version of this plugin that gives you a few added features. "
145
  "More metrics/dimensions, more tracking options, etc."
146
  msgstr ""
147
 
148
- #: library/DigitalPointBetterAnalytics/Base/Admin.php:328
149
  msgid "For more information:"
150
  msgstr ""
151
 
152
- #: library/DigitalPointBetterAnalytics/Base/Admin.php:329
153
  msgid "Info"
154
  msgstr ""
155
 
156
- #: library/DigitalPointBetterAnalytics/Base/Admin.php:330
157
- #: library/DigitalPointBetterAnalytics/Base/Admin.php:364
158
  msgid "Support"
159
  msgstr ""
160
 
161
- #: library/DigitalPointBetterAnalytics/Base/Admin.php:343
162
  msgid "colossal"
163
  msgstr ""
164
 
165
- #: library/DigitalPointBetterAnalytics/Base/Admin.php:343
166
  msgid "elephantine"
167
  msgstr ""
168
 
169
- #: library/DigitalPointBetterAnalytics/Base/Admin.php:343
170
  msgid "glorious"
171
  msgstr ""
172
 
173
- #: library/DigitalPointBetterAnalytics/Base/Admin.php:343
174
  msgid "grand"
175
  msgstr ""
176
 
177
- #: library/DigitalPointBetterAnalytics/Base/Admin.php:343
178
  msgid "huge"
179
  msgstr ""
180
 
181
- #: library/DigitalPointBetterAnalytics/Base/Admin.php:343
182
  msgid "mighty"
183
  msgstr ""
184
 
185
- #: library/DigitalPointBetterAnalytics/Base/Admin.php:343
186
  msgid "WTF?"
187
  msgstr ""
188
 
189
- #: library/DigitalPointBetterAnalytics/Base/Admin.php:343
190
  msgid "sexy"
191
  msgstr ""
192
 
193
- #: library/DigitalPointBetterAnalytics/Base/Admin.php:351
194
  msgid ""
195
  "If you like %1$s, please leave us a %2$s rating. A %3$s thank you in advance!"
196
  msgstr ""
197
 
198
- #: library/DigitalPointBetterAnalytics/Base/Admin.php:364
199
  msgid "Visit Support Forum"
200
  msgstr ""
201
 
 
 
 
 
202
  #: library/DigitalPointBetterAnalytics/Base/Public.php:123
203
  msgid ""
204
  "%1$sBetter Analytics %4$s requires WordPress %5$s or higher.%2$s%3$sPlease "
@@ -226,7 +231,7 @@ msgid "Current Page"
226
  msgstr ""
227
 
228
  #: library/DigitalPointBetterAnalytics/ControllerAdmin/Analytics.php:39
229
- #: library/DigitalPointBetterAnalytics/ControllerAdmin/Analytics.php:523
230
  #: library/DigitalPointBetterAnalytics/Model/Reporting.php:142
231
  msgid "Medium"
232
  msgstr ""
@@ -327,45 +332,53 @@ msgstr ""
327
  msgid "Tags"
328
  msgstr ""
329
 
330
- #: library/DigitalPointBetterAnalytics/ControllerAdmin/Analytics.php:520
 
 
 
 
 
 
 
 
331
  #: library/DigitalPointBetterAnalytics/Model/Reporting.php:141
332
  msgid "Source"
333
  msgstr ""
334
 
335
- #: library/DigitalPointBetterAnalytics/ControllerAdmin/Analytics.php:521
336
  msgid "Referrer"
337
  msgstr ""
338
 
339
- #: library/DigitalPointBetterAnalytics/ControllerAdmin/Analytics.php:524
340
  #: library/DigitalPointBetterAnalytics/Model/Reporting.php:163
341
  msgid "Country"
342
  msgstr ""
343
 
344
- #: library/DigitalPointBetterAnalytics/ControllerAdmin/Analytics.php:541
345
  #: library/DigitalPointBetterAnalytics/Model/Reporting.php:29
346
  msgid "Page Views"
347
  msgstr ""
348
 
349
- #: library/DigitalPointBetterAnalytics/ControllerAdmin/Analytics.php:542
350
  #: library/DigitalPointBetterAnalytics/Model/Reporting.php:12
351
  msgid "Sessions"
352
  msgstr ""
353
 
354
- #: library/DigitalPointBetterAnalytics/ControllerAdmin/Analytics.php:543
355
  #: library/DigitalPointBetterAnalytics/Model/Reporting.php:9
356
  msgid "Users"
357
  msgstr ""
358
 
359
- #: library/DigitalPointBetterAnalytics/ControllerAdmin/Analytics.php:544
360
  msgid "Session Length"
361
  msgstr ""
362
 
363
- #: library/DigitalPointBetterAnalytics/ControllerAdmin/Analytics.php:545
364
  #: library/DigitalPointBetterAnalytics/Model/Reporting.php:16
365
  msgid "Organic Search"
366
  msgstr ""
367
 
368
- #: library/DigitalPointBetterAnalytics/Helper/Reporting.php:65
369
  msgid "No API tokens to refresh."
370
  msgstr ""
371
 
@@ -492,37 +505,37 @@ msgid "File Downloads"
492
  msgstr ""
493
 
494
  #: library/DigitalPointBetterAnalytics/Model/Reporting.php:49
495
- #: library/DigitalPointBetterAnalytics/ViewAdmin/config.php:607
496
  msgid "Images Not Loading"
497
  msgstr ""
498
 
499
  #: library/DigitalPointBetterAnalytics/Model/Reporting.php:50
500
- #: library/DigitalPointBetterAnalytics/ViewAdmin/config.php:602
501
  msgid "Page Not Found (404)"
502
  msgstr ""
503
 
504
  #: library/DigitalPointBetterAnalytics/Model/Reporting.php:51
505
- #: library/DigitalPointBetterAnalytics/ViewAdmin/config.php:643
506
  msgid "AJAX Requests"
507
  msgstr ""
508
 
509
  #: library/DigitalPointBetterAnalytics/Model/Reporting.php:52
510
- #: library/DigitalPointBetterAnalytics/ViewAdmin/config.php:614
511
  msgid "JavaScript Errors"
512
  msgstr ""
513
 
514
  #: library/DigitalPointBetterAnalytics/Model/Reporting.php:53
515
- #: library/DigitalPointBetterAnalytics/ViewAdmin/config.php:619
516
  msgid "AJAX Errors"
517
  msgstr ""
518
 
519
  #: library/DigitalPointBetterAnalytics/Model/Reporting.php:54
520
- #: library/DigitalPointBetterAnalytics/ViewAdmin/config.php:623
521
  msgid "Browser Console Errors"
522
  msgstr ""
523
 
524
  #: library/DigitalPointBetterAnalytics/Model/Reporting.php:55
525
- #: library/DigitalPointBetterAnalytics/ViewAdmin/config.php:627
526
  msgid "YouTube Errors"
527
  msgstr ""
528
 
@@ -566,7 +579,7 @@ msgid "CTR"
566
  msgstr ""
567
 
568
  #: library/DigitalPointBetterAnalytics/Model/Reporting.php:76
569
- #: library/DigitalPointBetterAnalytics/ViewAdmin/config.php:570
570
  msgid "AdSense"
571
  msgstr ""
572
 
@@ -603,7 +616,7 @@ msgid "Default Segments"
603
  msgstr ""
604
 
605
  #: library/DigitalPointBetterAnalytics/Model/Reporting.php:110
606
- #: library/DigitalPointBetterAnalytics/ViewAdmin/config.php:862
607
  msgid "Everything"
608
  msgstr ""
609
 
@@ -932,7 +945,7 @@ msgid "Forum"
932
  msgstr ""
933
 
934
  #: library/DigitalPointBetterAnalytics/ViewAdmin/config.php:63
935
- #: library/DigitalPointBetterAnalytics/ViewAdmin/config.php:541
936
  msgid "Twitter"
937
  msgstr ""
938
 
@@ -985,12 +998,12 @@ msgid "Google Analytics Web Property ID"
985
  msgstr ""
986
 
987
  #: library/DigitalPointBetterAnalytics/ViewAdmin/config.php:178
988
- #: library/DigitalPointBetterAnalytics/ViewAdmin/config.php:694
989
  msgid "Pick profile"
990
  msgstr ""
991
 
992
  #: library/DigitalPointBetterAnalytics/ViewAdmin/config.php:180
993
- #: library/DigitalPointBetterAnalytics/ViewAdmin/config.php:696
994
  msgid "please pick a profile"
995
  msgstr ""
996
 
@@ -1126,7 +1139,7 @@ msgstr ""
1126
  msgid ""
1127
  "If you want to track custom dimensions, you need to create the custom "
1128
  "dimensions in your %1$sGoogle Analytics account settings%2$s (under "
1129
- "%3$sCustom Definitions -> Custom Dimension%4$s)%5$sThey should be scoped as "
1130
  "\"%3$sHit%4$s\"."
1131
  msgstr ""
1132
 
@@ -1153,6 +1166,8 @@ msgstr ""
1153
  #: library/DigitalPointBetterAnalytics/ViewAdmin/config.php:430
1154
  #: library/DigitalPointBetterAnalytics/ViewAdmin/config.php:464
1155
  #: library/DigitalPointBetterAnalytics/ViewAdmin/config.php:498
 
 
1156
  msgid "Pick dimension"
1157
  msgstr ""
1158
 
@@ -1160,6 +1175,8 @@ msgstr ""
1160
  #: library/DigitalPointBetterAnalytics/ViewAdmin/config.php:432
1161
  #: library/DigitalPointBetterAnalytics/ViewAdmin/config.php:466
1162
  #: library/DigitalPointBetterAnalytics/ViewAdmin/config.php:500
 
 
1163
  msgid "[none]"
1164
  msgstr ""
1165
 
@@ -1172,52 +1189,60 @@ msgid "Tags: "
1172
  msgstr ""
1173
 
1174
  #: library/DigitalPointBetterAnalytics/ViewAdmin/config.php:490
 
 
 
 
 
 
 
 
1175
  msgid "Registered User: "
1176
  msgstr ""
1177
 
1178
- #: library/DigitalPointBetterAnalytics/ViewAdmin/config.php:530
1179
  msgid "Button Engagement To Track"
1180
  msgstr ""
1181
 
1182
- #: library/DigitalPointBetterAnalytics/ViewAdmin/config.php:536
1183
  msgid "Facebook Like"
1184
  msgstr ""
1185
 
1186
- #: library/DigitalPointBetterAnalytics/ViewAdmin/config.php:546
1187
  msgid "Google+ (Google Analytics always tracks)"
1188
  msgstr ""
1189
 
1190
- #: library/DigitalPointBetterAnalytics/ViewAdmin/config.php:551
1191
  msgid "Pinterest"
1192
  msgstr ""
1193
 
1194
- #: library/DigitalPointBetterAnalytics/ViewAdmin/config.php:556
1195
  msgid "LinkedIn"
1196
  msgstr ""
1197
 
1198
- #: library/DigitalPointBetterAnalytics/ViewAdmin/config.php:564
1199
  msgid "Advertisement Clicks To Track"
1200
  msgstr ""
1201
 
1202
- #: library/DigitalPointBetterAnalytics/ViewAdmin/config.php:575
1203
  msgid "Outbrain"
1204
  msgstr ""
1205
 
1206
- #: library/DigitalPointBetterAnalytics/ViewAdmin/config.php:580
1207
  msgid "Taboola"
1208
  msgstr ""
1209
 
1210
  #. #-#-#-#-# plugin.pot (Better Analytics 1.0.3) #-#-#-#-#
1211
  #. Author of the plugin/theme
1212
- #: library/DigitalPointBetterAnalytics/ViewAdmin/config.php:585
1213
  msgid "Digital Point"
1214
  msgstr ""
1215
 
1216
- #: library/DigitalPointBetterAnalytics/ViewAdmin/config.php:596
1217
  msgid "Site Issues To Track"
1218
  msgstr ""
1219
 
1220
- #: library/DigitalPointBetterAnalytics/ViewAdmin/config.php:608
1221
  msgid ""
1222
  "This relies on the ability of the user's browser to load images which will "
1223
  "vary between browsers and Internet connections. This event can be a useful "
@@ -1225,170 +1250,183 @@ msgid ""
1225
  "that the end user's browser did not load (for any reason)."
1226
  msgstr ""
1227
 
1228
- #: library/DigitalPointBetterAnalytics/ViewAdmin/config.php:628
1229
  msgid ""
1230
  "This allows you to quickly find old videos that the author has removed or "
1231
  "disabled embeding for."
1232
  msgstr ""
1233
 
1234
- #: library/DigitalPointBetterAnalytics/ViewAdmin/config.php:637
1235
  msgid "Debugging Events"
1236
  msgstr ""
1237
 
1238
- #: library/DigitalPointBetterAnalytics/ViewAdmin/config.php:656
1239
  msgid "WooCommerce"
1240
  msgstr ""
1241
 
1242
- #: library/DigitalPointBetterAnalytics/ViewAdmin/config.php:664
1243
  msgid "WooCommerce not enabled/active."
1244
  msgstr ""
1245
 
1246
- #: library/DigitalPointBetterAnalytics/ViewAdmin/config.php:667
1247
  msgid "More information about %s"
1248
  msgstr ""
1249
 
1250
- #: library/DigitalPointBetterAnalytics/ViewAdmin/config.php:669
1251
  msgid "View details"
1252
  msgstr ""
1253
 
1254
- #: library/DigitalPointBetterAnalytics/ViewAdmin/config.php:691
1255
  msgid "Profile Used For Reporting"
1256
  msgstr ""
1257
 
1258
- #: library/DigitalPointBetterAnalytics/ViewAdmin/config.php:720
 
 
 
 
 
1259
  msgid "Link/Authenticate A Different Google Analytics Account"
1260
  msgstr ""
1261
 
1262
- #: library/DigitalPointBetterAnalytics/ViewAdmin/config.php:720
 
1263
  msgid "Link/Authenticate Your Google Analytics Account"
1264
  msgstr ""
1265
 
1266
- #: library/DigitalPointBetterAnalytics/ViewAdmin/config.php:732
 
1267
  msgid "Use Your Own Project Credentials"
1268
  msgstr ""
1269
 
1270
- #: library/DigitalPointBetterAnalytics/ViewAdmin/config.php:733
 
1271
  msgid ""
1272
  "If you have your own Google API Project that you wish to use, you can use "
1273
  "your credentials for that web application."
1274
  msgstr ""
1275
 
1276
- #: library/DigitalPointBetterAnalytics/ViewAdmin/config.php:743
 
1277
  msgid "Configuration"
1278
  msgstr ""
1279
 
1280
  #. translators: %1$s = <strong>, %2$s = </strong>
1281
- #: library/DigitalPointBetterAnalytics/ViewAdmin/config.php:745
 
1282
  msgid ""
1283
  "Project needs to have the %1$sAnalytics API%2$s enabled under %1$sAPIs & "
1284
  "auth -> APIs%2$s."
1285
  msgstr ""
1286
 
1287
  #. translators: %1$s = <strong>, %2$s = </strong>
1288
- #: library/DigitalPointBetterAnalytics/ViewAdmin/config.php:747
 
1289
  msgid ""
1290
  "Under %1$sAPIs & auth -> Credentials%2$s, you need to %1$sCreate new Client "
1291
  "ID%2$s that is a %1$sWeb application%2$s with an authorized redirect URI of: "
1292
  "%1$s%3$s%2$s"
1293
  msgstr ""
1294
 
1295
- #: library/DigitalPointBetterAnalytics/ViewAdmin/config.php:754
 
1296
  msgid "Client ID"
1297
  msgstr ""
1298
 
1299
- #: library/DigitalPointBetterAnalytics/ViewAdmin/config.php:761
 
1300
  msgid "Client Secret"
1301
  msgstr ""
1302
 
1303
- #: library/DigitalPointBetterAnalytics/ViewAdmin/config.php:769
1304
  msgid "Roles To Not Track"
1305
  msgstr ""
1306
 
1307
- #: library/DigitalPointBetterAnalytics/ViewAdmin/config.php:769
1308
- #: library/DigitalPointBetterAnalytics/ViewAdmin/config.php:805
1309
  msgid ""
1310
  "If a logged in user is part of one of these groups, Analytics will not track "
1311
  "them."
1312
  msgstr ""
1313
 
1314
- #: library/DigitalPointBetterAnalytics/ViewAdmin/config.php:772
1315
  msgid "Pick roles to not track"
1316
  msgstr ""
1317
 
1318
- #: library/DigitalPointBetterAnalytics/ViewAdmin/config.php:787
1319
  msgid "Roles Able To View Reports/Dashboard"
1320
  msgstr ""
1321
 
1322
- #: library/DigitalPointBetterAnalytics/ViewAdmin/config.php:790
1323
  msgid "Pick roles that are able to view reports"
1324
  msgstr ""
1325
 
1326
- #: library/DigitalPointBetterAnalytics/ViewAdmin/config.php:805
1327
  msgid "File Extensions To Track As Downloads"
1328
  msgstr ""
1329
 
1330
- #: library/DigitalPointBetterAnalytics/ViewAdmin/config.php:807
1331
  msgid "Pick file extensions"
1332
  msgstr ""
1333
 
1334
- #: library/DigitalPointBetterAnalytics/ViewAdmin/config.php:812
1335
  msgid "Audio Video Interleave (.avi)"
1336
  msgstr ""
1337
 
1338
- #: library/DigitalPointBetterAnalytics/ViewAdmin/config.php:813
1339
  msgid "Word (.doc)"
1340
  msgstr ""
1341
 
1342
- #: library/DigitalPointBetterAnalytics/ViewAdmin/config.php:814
1343
  msgid "Executable (.exe)"
1344
  msgstr ""
1345
 
1346
- #: library/DigitalPointBetterAnalytics/ViewAdmin/config.php:815
1347
  msgid "gzip (.gz)"
1348
  msgstr ""
1349
 
1350
- #: library/DigitalPointBetterAnalytics/ViewAdmin/config.php:816
1351
  msgid "MPEG-1 Video (.mpg)"
1352
  msgstr ""
1353
 
1354
- #: library/DigitalPointBetterAnalytics/ViewAdmin/config.php:817
1355
  msgid "MP3 (.mp3)"
1356
  msgstr ""
1357
 
1358
- #: library/DigitalPointBetterAnalytics/ViewAdmin/config.php:818
1359
  msgid "Acrobat (.pdf)"
1360
  msgstr ""
1361
 
1362
- #: library/DigitalPointBetterAnalytics/ViewAdmin/config.php:819
1363
  msgid "PowerPoint (.ppt)"
1364
  msgstr ""
1365
 
1366
- #: library/DigitalPointBetterAnalytics/ViewAdmin/config.php:820
1367
  msgid "Photoshop (.psd)"
1368
  msgstr ""
1369
 
1370
- #: library/DigitalPointBetterAnalytics/ViewAdmin/config.php:821
1371
  msgid "RAR (.rar)"
1372
  msgstr ""
1373
 
1374
- #: library/DigitalPointBetterAnalytics/ViewAdmin/config.php:822
1375
  msgid "Windows Media Video (.wmv)"
1376
  msgstr ""
1377
 
1378
- #: library/DigitalPointBetterAnalytics/ViewAdmin/config.php:823
1379
  msgid "Excel (.xls)"
1380
  msgstr ""
1381
 
1382
- #: library/DigitalPointBetterAnalytics/ViewAdmin/config.php:824
1383
  msgid "Zip Archive (.zip)"
1384
  msgstr ""
1385
 
1386
- #: library/DigitalPointBetterAnalytics/ViewAdmin/config.php:838
1387
  msgid "Track Users With Analytics Blockers"
1388
  msgstr ""
1389
 
1390
  #. translators: %1$s = <strong>, %2$s = </strong>, %3$s = <p />
1391
- #: library/DigitalPointBetterAnalytics/ViewAdmin/config.php:841
1392
  msgid ""
1393
  "If a user has a mechanism that is blocking them from being tracked with "
1394
  "Google Analytics, you can use this option to do server-side page view "
@@ -1399,95 +1437,103 @@ msgid ""
1399
  "tracked (ones not popular enough to be widely known as a spider)."
1400
  msgstr ""
1401
 
1402
- #: library/DigitalPointBetterAnalytics/ViewAdmin/config.php:847
1403
  msgid "Never"
1404
  msgstr ""
1405
 
1406
- #: library/DigitalPointBetterAnalytics/ViewAdmin/config.php:852
1407
  msgid "Registered Users"
1408
  msgstr ""
1409
 
1410
- #: library/DigitalPointBetterAnalytics/ViewAdmin/config.php:857
1411
  msgid "Humans"
1412
  msgstr ""
1413
 
1414
- #: library/DigitalPointBetterAnalytics/ViewAdmin/config.php:870
1415
  msgid "Location For Analytics Code"
1416
  msgstr ""
1417
 
1418
- #: library/DigitalPointBetterAnalytics/ViewAdmin/config.php:875
1419
  msgid "Header"
1420
  msgstr ""
1421
 
1422
- #: library/DigitalPointBetterAnalytics/ViewAdmin/config.php:880
1423
  msgid "Footer"
1424
  msgstr ""
1425
 
1426
- #: library/DigitalPointBetterAnalytics/ViewAdmin/config.php:885
1427
  msgid "No JavaScript (you have your own/other already)"
1428
  msgstr ""
1429
 
1430
- #: library/DigitalPointBetterAnalytics/ViewAdmin/config.php:891
1431
  msgid "Use In Staff Area (wp-admin)"
1432
  msgstr ""
1433
 
1434
- #: library/DigitalPointBetterAnalytics/ViewAdmin/config.php:897
1435
  msgid "When To Run Analytics Code"
1436
  msgstr ""
1437
 
1438
- #: library/DigitalPointBetterAnalytics/ViewAdmin/config.php:902
1439
  msgid "Immediately"
1440
  msgstr ""
1441
 
1442
- #: library/DigitalPointBetterAnalytics/ViewAdmin/config.php:907
1443
  msgid "After Page Loads"
1444
  msgstr ""
1445
 
1446
- #: library/DigitalPointBetterAnalytics/ViewAdmin/config.php:914
1447
  msgid "Campaign Tracking Within URLs"
1448
  msgstr ""
1449
 
1450
- #: library/DigitalPointBetterAnalytics/ViewAdmin/config.php:919
1451
  msgid "In Anchor"
1452
  msgstr ""
1453
 
1454
- #: library/DigitalPointBetterAnalytics/ViewAdmin/config.php:924
1455
  msgid "In Parameters"
1456
  msgstr ""
1457
 
1458
- #: library/DigitalPointBetterAnalytics/ViewAdmin/config.php:931
1459
  msgid "Sample Rate"
1460
  msgstr ""
1461
 
1462
- #: library/DigitalPointBetterAnalytics/ViewAdmin/config.php:931
1463
  msgid ""
1464
  "Specifies what percentage of users should be tracked. Very large sites may "
1465
  "need to use a lower sample rate to stay within Google Analytics processing "
1466
  "limits."
1467
  msgstr ""
1468
 
1469
- #: library/DigitalPointBetterAnalytics/ViewAdmin/config.php:952
1470
  msgid "Extra JavaScript"
1471
  msgstr ""
1472
 
1473
- #: library/DigitalPointBetterAnalytics/ViewAdmin/config.php:952
1474
  msgid ""
1475
  "This allows you to add your own JavaScript code to the Analytics tracking "
1476
  "code. This JavaScript is inserted right before the %1$s function."
1477
  msgstr ""
1478
 
1479
- #: library/DigitalPointBetterAnalytics/ViewAdmin/config.php:959
1480
  msgid "Debugging"
1481
  msgstr ""
1482
 
1483
- #: library/DigitalPointBetterAnalytics/ViewAdmin/config.php:964
1484
  msgid "Enable Google Analytics Debugging"
1485
  msgstr ""
1486
 
1487
- #: library/DigitalPointBetterAnalytics/ViewAdmin/config.php:965
1488
  msgid "This will display Google Analytics debug data in the browser console."
1489
  msgstr ""
1490
 
 
 
 
 
 
 
 
 
1491
  #: library/DigitalPointBetterAnalytics/ViewAdmin/dashboard.php:13
1492
  msgid "%1$sSet up API access%2$s to utilize Better Analytics charts."
1493
  msgstr ""
@@ -1753,6 +1799,8 @@ msgstr ""
1753
  #: library/DigitalPointBetterAnalytics/ViewAdmin/test.php:162
1754
  #: library/DigitalPointBetterAnalytics/ViewAdmin/test.php:175
1755
  #: library/DigitalPointBetterAnalytics/ViewAdmin/test.php:189
 
 
1756
  msgid ""
1757
  "Found in Google Analytics account under %1$sCustom Definitions -> Custom "
1758
  "Dimensions%2$s (should be named \"%1$s%3$s%2$s\" and scoped for \"%1$sHit%2$s"
@@ -1768,91 +1816,107 @@ msgid "Custom Dimension For Tag Tracking"
1768
  msgstr ""
1769
 
1770
  #: library/DigitalPointBetterAnalytics/ViewAdmin/test.php:181
 
 
 
 
 
 
 
 
1771
  msgid "Custom Dimension For User Tracking"
1772
  msgstr ""
1773
 
1774
- #: library/DigitalPointBetterAnalytics/ViewAdmin/test.php:196
1775
  msgid "Category Tracking Dimension Index Set"
1776
  msgstr ""
1777
 
1778
- #: library/DigitalPointBetterAnalytics/ViewAdmin/test.php:205
1779
  msgid "Author Tracking Dimension Index Set"
1780
  msgstr ""
1781
 
1782
- #: library/DigitalPointBetterAnalytics/ViewAdmin/test.php:213
1783
  msgid "Tag Tracking Dimension Index Set"
1784
  msgstr ""
1785
 
1786
- #: library/DigitalPointBetterAnalytics/ViewAdmin/test.php:221
 
 
 
 
 
 
 
 
1787
  msgid "Registered User Tracking Dimension Index Set"
1788
  msgstr ""
1789
 
1790
- #: library/DigitalPointBetterAnalytics/ViewAdmin/test.php:229
1791
  msgid "Better Analytics Pro License"
1792
  msgstr ""
1793
 
1794
- #: library/DigitalPointBetterAnalytics/ViewAdmin/test.php:234
1795
  msgid ""
1796
  "A few extra advanced features are available when you license the Better "
1797
  "Analytics Pro plugin. Please don't steal, a crazy amount of work went into "
1798
  "this. Some of the extra features:"
1799
  msgstr ""
1800
 
1801
- #: library/DigitalPointBetterAnalytics/ViewAdmin/test.php:238
1802
  msgid "More metrics available for %1$sHeat Maps%2$s"
1803
  msgstr ""
1804
 
1805
- #: library/DigitalPointBetterAnalytics/ViewAdmin/test.php:243
1806
  msgid "More dimensions available for %1$sCharts%2$s"
1807
  msgstr ""
1808
 
1809
- #: library/DigitalPointBetterAnalytics/ViewAdmin/test.php:248
1810
  msgid "More %1$sadvertising platform click tracking%2$s"
1811
  msgstr ""
1812
 
1813
- #: library/DigitalPointBetterAnalytics/ViewAdmin/test.php:253
1814
  msgid "More %1$sissue monitoring options%2$s"
1815
  msgstr ""
1816
 
1817
- #: library/DigitalPointBetterAnalytics/ViewAdmin/test.php:258
1818
  msgid "%1$seCommerce tracking%2$s"
1819
  msgstr ""
1820
 
1821
- #: library/DigitalPointBetterAnalytics/ViewAdmin/test.php:263
1822
  msgid "Ability to do %1$sserver-side tracking of users%2$s"
1823
  msgstr ""
1824
 
1825
- #: library/DigitalPointBetterAnalytics/ViewAdmin/test.php:268
1826
  msgid "Faster API calls (utilizes a multi-threaded mechanism)"
1827
  msgstr ""
1828
 
1829
- #: library/DigitalPointBetterAnalytics/ViewAdmin/test.php:273
1830
  msgid "%1$sPriority support%2$s"
1831
  msgstr ""
1832
 
1833
- #: library/DigitalPointBetterAnalytics/ViewAdmin/test.php:278
1834
  msgid ""
1835
  "A Warm & Fuzzy Feeling knowing you are helping to continue future development"
1836
  msgstr ""
1837
 
1838
- #: library/DigitalPointBetterAnalytics/ViewAdmin/test.php:291
1839
  msgid "Things That Need To Be Checked Manually"
1840
  msgstr ""
1841
 
1842
- #: library/DigitalPointBetterAnalytics/ViewAdmin/test.php:294
1843
  msgid "User-ID Tracking"
1844
  msgstr ""
1845
 
1846
- #: library/DigitalPointBetterAnalytics/ViewAdmin/test.php:297
1847
  msgid ""
1848
  "Found in Google Analytics account under %1$sTracking Info -> User-ID%2$s."
1849
  msgstr ""
1850
 
1851
- #: library/DigitalPointBetterAnalytics/ViewAdmin/test.php:302
1852
  msgid "Demographic and Interest Reports"
1853
  msgstr ""
1854
 
1855
- #: library/DigitalPointBetterAnalytics/ViewAdmin/test.php:305
1856
  msgid "Found in Google Analytics account under %1$sProperty Settings%1$s."
1857
  msgstr ""
1858
 
4
  msgstr ""
5
  "Project-Id-Version: Better Analytics 1.0.3\n"
6
  "Report-Msgid-Bugs-To: https://wordpress.org/support/plugin/better-analytics\n"
7
+ "POT-Creation-Date: 2015-06-23 20:17:58+00:00\n"
8
  "MIME-Version: 1.0\n"
9
  "Content-Type: text/plain; charset=UTF-8\n"
10
  "Content-Transfer-Encoding: 8bit\n"
12
  "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
13
  "Language-Team: LANGUAGE <LL@li.org>\n"
14
 
15
+ #: library/DigitalPointBetterAnalytics/Base/Admin.php:75
16
  msgid "Test Analytics Setup"
17
  msgstr ""
18
 
19
+ #: library/DigitalPointBetterAnalytics/Base/Admin.php:76
20
+ #: library/DigitalPointBetterAnalytics/Base/Admin.php:97
21
  msgid "OAuth2 Endpoint"
22
  msgstr ""
23
 
24
+ #: library/DigitalPointBetterAnalytics/Base/Admin.php:80
25
  msgid "Analytics"
26
  msgstr ""
27
 
28
+ #: library/DigitalPointBetterAnalytics/Base/Admin.php:81
29
  msgid "Heat Maps"
30
  msgstr ""
31
 
32
+ #: library/DigitalPointBetterAnalytics/Base/Admin.php:81
33
  msgid "Reports"
34
  msgstr ""
35
 
36
+ #: library/DigitalPointBetterAnalytics/Base/Admin.php:83
37
  #: library/DigitalPointBetterAnalytics/ViewAdmin/reports/area_charts.php:17
38
  #: library/DigitalPointBetterAnalytics/ViewAdmin/reports/events.php:14
39
  #: library/DigitalPointBetterAnalytics/ViewAdmin/reports/heatmaps.php:14
40
  msgid "Charts"
41
  msgstr ""
42
 
43
+ #: library/DigitalPointBetterAnalytics/Base/Admin.php:84
44
  msgid "Issue Monitor"
45
  msgstr ""
46
 
47
+ #: library/DigitalPointBetterAnalytics/Base/Admin.php:85
48
  #: library/DigitalPointBetterAnalytics/ControllerAdmin/Analytics.php:384
49
  #: library/DigitalPointBetterAnalytics/ControllerAdmin/Analytics.php:442
50
  #: library/DigitalPointBetterAnalytics/ViewAdmin/reports/area_charts.php:18
53
  msgid "Events"
54
  msgstr ""
55
 
56
+ #: library/DigitalPointBetterAnalytics/Base/Admin.php:88
57
+ #: library/DigitalPointBetterAnalytics/Base/Admin.php:109
58
+ #: library/DigitalPointBetterAnalytics/Base/Admin.php:208
59
  msgid "Settings"
60
  msgstr ""
61
 
62
+ #: library/DigitalPointBetterAnalytics/Base/Admin.php:89
63
  msgid "Test Setup"
64
  msgstr ""
65
 
66
  #. #-#-#-#-# plugin.pot (Better Analytics 1.0.3) #-#-#-#-#
67
  #. Plugin Name of the plugin/theme
68
+ #: library/DigitalPointBetterAnalytics/Base/Admin.php:91
69
+ #: library/DigitalPointBetterAnalytics/Base/Admin.php:184
70
+ #: library/DigitalPointBetterAnalytics/Base/Admin.php:329
71
+ #: library/DigitalPointBetterAnalytics/Base/Admin.php:372
72
  #: library/DigitalPointBetterAnalytics/ViewAdmin/config.php:27
73
  msgid "Better Analytics"
74
  msgstr ""
75
 
76
+ #: library/DigitalPointBetterAnalytics/Base/Admin.php:120
77
  msgid "Pro version not up to date."
78
  msgstr ""
79
 
80
+ #: library/DigitalPointBetterAnalytics/Base/Admin.php:121
81
  msgid "Installed:"
82
  msgstr ""
83
 
84
+ #: library/DigitalPointBetterAnalytics/Base/Admin.php:123
85
  msgid "Latest:"
86
  msgstr ""
87
 
88
+ #: library/DigitalPointBetterAnalytics/Base/Admin.php:128
89
  msgid "Pro version installed"
90
  msgstr ""
91
 
92
+ #: library/DigitalPointBetterAnalytics/Base/Admin.php:132
93
  msgid ""
94
  "Pro version installed, but not active. Did you %1$sverify ownership of your "
95
  "domain%2$s?"
96
  msgstr ""
97
 
98
+ #: library/DigitalPointBetterAnalytics/Base/Admin.php:139
99
  msgid "Pro version not installed."
100
  msgstr ""
101
 
102
+ #: library/DigitalPointBetterAnalytics/Base/Admin.php:208
103
  msgid "Google Analytics Web Property ID not selected."
104
  msgstr ""
105
 
106
+ #: library/DigitalPointBetterAnalytics/Base/Admin.php:213
107
  msgid "Last Analytics Error:"
108
  msgstr ""
109
 
110
+ #: library/DigitalPointBetterAnalytics/Base/Admin.php:248
111
  msgid "Invalid method:"
112
  msgstr ""
113
 
114
+ #: library/DigitalPointBetterAnalytics/Base/Admin.php:273
115
  msgid "Invalid Google API Code:"
116
  msgstr ""
117
 
118
+ #: library/DigitalPointBetterAnalytics/Base/Admin.php:279
119
  msgid "Unknown Google API Error:"
120
  msgstr ""
121
 
122
+ #: library/DigitalPointBetterAnalytics/Base/Admin.php:327
123
  msgid "Overview"
124
  msgstr ""
125
 
126
+ #: library/DigitalPointBetterAnalytics/Base/Admin.php:330
127
  msgid ""
128
  "At the most basic level, it will automatically add Google Analytics "
129
  "Universal code to your website. It gives you the flexibility to track "
131
  "engagement (and everything in between)."
132
  msgstr ""
133
 
134
+ #: library/DigitalPointBetterAnalytics/Base/Admin.php:337
135
+ #: library/DigitalPointBetterAnalytics/Base/Admin.php:351
136
  msgid "Pro"
137
  msgstr ""
138
 
139
+ #: library/DigitalPointBetterAnalytics/Base/Admin.php:339
140
  msgid "Pro Version"
141
  msgstr ""
142
 
143
+ #: library/DigitalPointBetterAnalytics/Base/Admin.php:340
144
  msgid ""
145
  "There is a Pro version of this plugin that gives you a few added features. "
146
  "More metrics/dimensions, more tracking options, etc."
147
  msgstr ""
148
 
149
+ #: library/DigitalPointBetterAnalytics/Base/Admin.php:348
150
  msgid "For more information:"
151
  msgstr ""
152
 
153
+ #: library/DigitalPointBetterAnalytics/Base/Admin.php:349
154
  msgid "Info"
155
  msgstr ""
156
 
157
+ #: library/DigitalPointBetterAnalytics/Base/Admin.php:350
158
+ #: library/DigitalPointBetterAnalytics/Base/Admin.php:384
159
  msgid "Support"
160
  msgstr ""
161
 
162
+ #: library/DigitalPointBetterAnalytics/Base/Admin.php:363
163
  msgid "colossal"
164
  msgstr ""
165
 
166
+ #: library/DigitalPointBetterAnalytics/Base/Admin.php:363
167
  msgid "elephantine"
168
  msgstr ""
169
 
170
+ #: library/DigitalPointBetterAnalytics/Base/Admin.php:363
171
  msgid "glorious"
172
  msgstr ""
173
 
174
+ #: library/DigitalPointBetterAnalytics/Base/Admin.php:363
175
  msgid "grand"
176
  msgstr ""
177
 
178
+ #: library/DigitalPointBetterAnalytics/Base/Admin.php:363
179
  msgid "huge"
180
  msgstr ""
181
 
182
+ #: library/DigitalPointBetterAnalytics/Base/Admin.php:363
183
  msgid "mighty"
184
  msgstr ""
185
 
186
+ #: library/DigitalPointBetterAnalytics/Base/Admin.php:363
187
  msgid "WTF?"
188
  msgstr ""
189
 
190
+ #: library/DigitalPointBetterAnalytics/Base/Admin.php:363
191
  msgid "sexy"
192
  msgstr ""
193
 
194
+ #: library/DigitalPointBetterAnalytics/Base/Admin.php:371
195
  msgid ""
196
  "If you like %1$s, please leave us a %2$s rating. A %3$s thank you in advance!"
197
  msgstr ""
198
 
199
+ #: library/DigitalPointBetterAnalytics/Base/Admin.php:384
200
  msgid "Visit Support Forum"
201
  msgstr ""
202
 
203
+ #: library/DigitalPointBetterAnalytics/Base/Admin.php:389
204
+ msgid "Verify Domain"
205
+ msgstr ""
206
+
207
  #: library/DigitalPointBetterAnalytics/Base/Public.php:123
208
  msgid ""
209
  "%1$sBetter Analytics %4$s requires WordPress %5$s or higher.%2$s%3$sPlease "
231
  msgstr ""
232
 
233
  #: library/DigitalPointBetterAnalytics/ControllerAdmin/Analytics.php:39
234
+ #: library/DigitalPointBetterAnalytics/ControllerAdmin/Analytics.php:532
235
  #: library/DigitalPointBetterAnalytics/Model/Reporting.php:142
236
  msgid "Medium"
237
  msgstr ""
332
  msgid "Tags"
333
  msgstr ""
334
 
335
+ #: library/DigitalPointBetterAnalytics/ControllerAdmin/Analytics.php:521
336
+ msgid "Publication Year"
337
+ msgstr ""
338
+
339
+ #: library/DigitalPointBetterAnalytics/ControllerAdmin/Analytics.php:525
340
+ msgid "User Role"
341
+ msgstr ""
342
+
343
+ #: library/DigitalPointBetterAnalytics/ControllerAdmin/Analytics.php:529
344
  #: library/DigitalPointBetterAnalytics/Model/Reporting.php:141
345
  msgid "Source"
346
  msgstr ""
347
 
348
+ #: library/DigitalPointBetterAnalytics/ControllerAdmin/Analytics.php:530
349
  msgid "Referrer"
350
  msgstr ""
351
 
352
+ #: library/DigitalPointBetterAnalytics/ControllerAdmin/Analytics.php:533
353
  #: library/DigitalPointBetterAnalytics/Model/Reporting.php:163
354
  msgid "Country"
355
  msgstr ""
356
 
357
+ #: library/DigitalPointBetterAnalytics/ControllerAdmin/Analytics.php:550
358
  #: library/DigitalPointBetterAnalytics/Model/Reporting.php:29
359
  msgid "Page Views"
360
  msgstr ""
361
 
362
+ #: library/DigitalPointBetterAnalytics/ControllerAdmin/Analytics.php:551
363
  #: library/DigitalPointBetterAnalytics/Model/Reporting.php:12
364
  msgid "Sessions"
365
  msgstr ""
366
 
367
+ #: library/DigitalPointBetterAnalytics/ControllerAdmin/Analytics.php:552
368
  #: library/DigitalPointBetterAnalytics/Model/Reporting.php:9
369
  msgid "Users"
370
  msgstr ""
371
 
372
+ #: library/DigitalPointBetterAnalytics/ControllerAdmin/Analytics.php:553
373
  msgid "Session Length"
374
  msgstr ""
375
 
376
+ #: library/DigitalPointBetterAnalytics/ControllerAdmin/Analytics.php:554
377
  #: library/DigitalPointBetterAnalytics/Model/Reporting.php:16
378
  msgid "Organic Search"
379
  msgstr ""
380
 
381
+ #: library/DigitalPointBetterAnalytics/Helper/Reporting.php:75
382
  msgid "No API tokens to refresh."
383
  msgstr ""
384
 
505
  msgstr ""
506
 
507
  #: library/DigitalPointBetterAnalytics/Model/Reporting.php:49
508
+ #: library/DigitalPointBetterAnalytics/ViewAdmin/config.php:675
509
  msgid "Images Not Loading"
510
  msgstr ""
511
 
512
  #: library/DigitalPointBetterAnalytics/Model/Reporting.php:50
513
+ #: library/DigitalPointBetterAnalytics/ViewAdmin/config.php:670
514
  msgid "Page Not Found (404)"
515
  msgstr ""
516
 
517
  #: library/DigitalPointBetterAnalytics/Model/Reporting.php:51
518
+ #: library/DigitalPointBetterAnalytics/ViewAdmin/config.php:711
519
  msgid "AJAX Requests"
520
  msgstr ""
521
 
522
  #: library/DigitalPointBetterAnalytics/Model/Reporting.php:52
523
+ #: library/DigitalPointBetterAnalytics/ViewAdmin/config.php:682
524
  msgid "JavaScript Errors"
525
  msgstr ""
526
 
527
  #: library/DigitalPointBetterAnalytics/Model/Reporting.php:53
528
+ #: library/DigitalPointBetterAnalytics/ViewAdmin/config.php:687
529
  msgid "AJAX Errors"
530
  msgstr ""
531
 
532
  #: library/DigitalPointBetterAnalytics/Model/Reporting.php:54
533
+ #: library/DigitalPointBetterAnalytics/ViewAdmin/config.php:691
534
  msgid "Browser Console Errors"
535
  msgstr ""
536
 
537
  #: library/DigitalPointBetterAnalytics/Model/Reporting.php:55
538
+ #: library/DigitalPointBetterAnalytics/ViewAdmin/config.php:695
539
  msgid "YouTube Errors"
540
  msgstr ""
541
 
579
  msgstr ""
580
 
581
  #: library/DigitalPointBetterAnalytics/Model/Reporting.php:76
582
+ #: library/DigitalPointBetterAnalytics/ViewAdmin/config.php:638
583
  msgid "AdSense"
584
  msgstr ""
585
 
616
  msgstr ""
617
 
618
  #: library/DigitalPointBetterAnalytics/Model/Reporting.php:110
619
+ #: library/DigitalPointBetterAnalytics/ViewAdmin/config.php:960
620
  msgid "Everything"
621
  msgstr ""
622
 
945
  msgstr ""
946
 
947
  #: library/DigitalPointBetterAnalytics/ViewAdmin/config.php:63
948
+ #: library/DigitalPointBetterAnalytics/ViewAdmin/config.php:609
949
  msgid "Twitter"
950
  msgstr ""
951
 
998
  msgstr ""
999
 
1000
  #: library/DigitalPointBetterAnalytics/ViewAdmin/config.php:178
1001
+ #: library/DigitalPointBetterAnalytics/ViewAdmin/config.php:762
1002
  msgid "Pick profile"
1003
  msgstr ""
1004
 
1005
  #: library/DigitalPointBetterAnalytics/ViewAdmin/config.php:180
1006
+ #: library/DigitalPointBetterAnalytics/ViewAdmin/config.php:764
1007
  msgid "please pick a profile"
1008
  msgstr ""
1009
 
1139
  msgid ""
1140
  "If you want to track custom dimensions, you need to create the custom "
1141
  "dimensions in your %1$sGoogle Analytics account settings%2$s (under "
1142
+ "%3$sCustom Definitions -> Custom Dimension%4$s).%5$sThey should be scoped as "
1143
  "\"%3$sHit%4$s\"."
1144
  msgstr ""
1145
 
1166
  #: library/DigitalPointBetterAnalytics/ViewAdmin/config.php:430
1167
  #: library/DigitalPointBetterAnalytics/ViewAdmin/config.php:464
1168
  #: library/DigitalPointBetterAnalytics/ViewAdmin/config.php:498
1169
+ #: library/DigitalPointBetterAnalytics/ViewAdmin/config.php:532
1170
+ #: library/DigitalPointBetterAnalytics/ViewAdmin/config.php:566
1171
  msgid "Pick dimension"
1172
  msgstr ""
1173
 
1175
  #: library/DigitalPointBetterAnalytics/ViewAdmin/config.php:432
1176
  #: library/DigitalPointBetterAnalytics/ViewAdmin/config.php:466
1177
  #: library/DigitalPointBetterAnalytics/ViewAdmin/config.php:500
1178
+ #: library/DigitalPointBetterAnalytics/ViewAdmin/config.php:534
1179
+ #: library/DigitalPointBetterAnalytics/ViewAdmin/config.php:568
1180
  msgid "[none]"
1181
  msgstr ""
1182
 
1189
  msgstr ""
1190
 
1191
  #: library/DigitalPointBetterAnalytics/ViewAdmin/config.php:490
1192
+ msgid "Publication Year: "
1193
+ msgstr ""
1194
+
1195
+ #: library/DigitalPointBetterAnalytics/ViewAdmin/config.php:524
1196
+ msgid "User Role: "
1197
+ msgstr ""
1198
+
1199
+ #: library/DigitalPointBetterAnalytics/ViewAdmin/config.php:558
1200
  msgid "Registered User: "
1201
  msgstr ""
1202
 
1203
+ #: library/DigitalPointBetterAnalytics/ViewAdmin/config.php:598
1204
  msgid "Button Engagement To Track"
1205
  msgstr ""
1206
 
1207
+ #: library/DigitalPointBetterAnalytics/ViewAdmin/config.php:604
1208
  msgid "Facebook Like"
1209
  msgstr ""
1210
 
1211
+ #: library/DigitalPointBetterAnalytics/ViewAdmin/config.php:614
1212
  msgid "Google+ (Google Analytics always tracks)"
1213
  msgstr ""
1214
 
1215
+ #: library/DigitalPointBetterAnalytics/ViewAdmin/config.php:619
1216
  msgid "Pinterest"
1217
  msgstr ""
1218
 
1219
+ #: library/DigitalPointBetterAnalytics/ViewAdmin/config.php:624
1220
  msgid "LinkedIn"
1221
  msgstr ""
1222
 
1223
+ #: library/DigitalPointBetterAnalytics/ViewAdmin/config.php:632
1224
  msgid "Advertisement Clicks To Track"
1225
  msgstr ""
1226
 
1227
+ #: library/DigitalPointBetterAnalytics/ViewAdmin/config.php:643
1228
  msgid "Outbrain"
1229
  msgstr ""
1230
 
1231
+ #: library/DigitalPointBetterAnalytics/ViewAdmin/config.php:648
1232
  msgid "Taboola"
1233
  msgstr ""
1234
 
1235
  #. #-#-#-#-# plugin.pot (Better Analytics 1.0.3) #-#-#-#-#
1236
  #. Author of the plugin/theme
1237
+ #: library/DigitalPointBetterAnalytics/ViewAdmin/config.php:653
1238
  msgid "Digital Point"
1239
  msgstr ""
1240
 
1241
+ #: library/DigitalPointBetterAnalytics/ViewAdmin/config.php:664
1242
  msgid "Site Issues To Track"
1243
  msgstr ""
1244
 
1245
+ #: library/DigitalPointBetterAnalytics/ViewAdmin/config.php:676
1246
  msgid ""
1247
  "This relies on the ability of the user's browser to load images which will "
1248
  "vary between browsers and Internet connections. This event can be a useful "
1250
  "that the end user's browser did not load (for any reason)."
1251
  msgstr ""
1252
 
1253
+ #: library/DigitalPointBetterAnalytics/ViewAdmin/config.php:696
1254
  msgid ""
1255
  "This allows you to quickly find old videos that the author has removed or "
1256
  "disabled embeding for."
1257
  msgstr ""
1258
 
1259
+ #: library/DigitalPointBetterAnalytics/ViewAdmin/config.php:705
1260
  msgid "Debugging Events"
1261
  msgstr ""
1262
 
1263
+ #: library/DigitalPointBetterAnalytics/ViewAdmin/config.php:724
1264
  msgid "WooCommerce"
1265
  msgstr ""
1266
 
1267
+ #: library/DigitalPointBetterAnalytics/ViewAdmin/config.php:732
1268
  msgid "WooCommerce not enabled/active."
1269
  msgstr ""
1270
 
1271
+ #: library/DigitalPointBetterAnalytics/ViewAdmin/config.php:735
1272
  msgid "More information about %s"
1273
  msgstr ""
1274
 
1275
+ #: library/DigitalPointBetterAnalytics/ViewAdmin/config.php:737
1276
  msgid "View details"
1277
  msgstr ""
1278
 
1279
+ #: library/DigitalPointBetterAnalytics/ViewAdmin/config.php:759
1280
  msgid "Profile Used For Reporting"
1281
  msgstr ""
1282
 
1283
+ #: library/DigitalPointBetterAnalytics/ViewAdmin/config.php:794
1284
+ msgid "Multisite Mode: Analytics account linked at network level"
1285
+ msgstr ""
1286
+
1287
+ #: library/DigitalPointBetterAnalytics/ViewAdmin/config.php:802
1288
+ #: library/DigitalPointBetterAnalytics/ViewAdmin/config_network.php:20
1289
  msgid "Link/Authenticate A Different Google Analytics Account"
1290
  msgstr ""
1291
 
1292
+ #: library/DigitalPointBetterAnalytics/ViewAdmin/config.php:802
1293
+ #: library/DigitalPointBetterAnalytics/ViewAdmin/config_network.php:20
1294
  msgid "Link/Authenticate Your Google Analytics Account"
1295
  msgstr ""
1296
 
1297
+ #: library/DigitalPointBetterAnalytics/ViewAdmin/config.php:821
1298
+ #: library/DigitalPointBetterAnalytics/ViewAdmin/config_network.php:39
1299
  msgid "Use Your Own Project Credentials"
1300
  msgstr ""
1301
 
1302
+ #: library/DigitalPointBetterAnalytics/ViewAdmin/config.php:823
1303
+ #: library/DigitalPointBetterAnalytics/ViewAdmin/config_network.php:40
1304
  msgid ""
1305
  "If you have your own Google API Project that you wish to use, you can use "
1306
  "your credentials for that web application."
1307
  msgstr ""
1308
 
1309
+ #: library/DigitalPointBetterAnalytics/ViewAdmin/config.php:834
1310
+ #: library/DigitalPointBetterAnalytics/ViewAdmin/config_network.php:50
1311
  msgid "Configuration"
1312
  msgstr ""
1313
 
1314
  #. translators: %1$s = <strong>, %2$s = </strong>
1315
+ #: library/DigitalPointBetterAnalytics/ViewAdmin/config.php:836
1316
+ #: library/DigitalPointBetterAnalytics/ViewAdmin/config_network.php:52
1317
  msgid ""
1318
  "Project needs to have the %1$sAnalytics API%2$s enabled under %1$sAPIs & "
1319
  "auth -> APIs%2$s."
1320
  msgstr ""
1321
 
1322
  #. translators: %1$s = <strong>, %2$s = </strong>
1323
+ #: library/DigitalPointBetterAnalytics/ViewAdmin/config.php:838
1324
+ #: library/DigitalPointBetterAnalytics/ViewAdmin/config_network.php:54
1325
  msgid ""
1326
  "Under %1$sAPIs & auth -> Credentials%2$s, you need to %1$sCreate new Client "
1327
  "ID%2$s that is a %1$sWeb application%2$s with an authorized redirect URI of: "
1328
  "%1$s%3$s%2$s"
1329
  msgstr ""
1330
 
1331
+ #: library/DigitalPointBetterAnalytics/ViewAdmin/config.php:846
1332
+ #: library/DigitalPointBetterAnalytics/ViewAdmin/config_network.php:61
1333
  msgid "Client ID"
1334
  msgstr ""
1335
 
1336
+ #: library/DigitalPointBetterAnalytics/ViewAdmin/config.php:856
1337
+ #: library/DigitalPointBetterAnalytics/ViewAdmin/config_network.php:68
1338
  msgid "Client Secret"
1339
  msgstr ""
1340
 
1341
+ #: library/DigitalPointBetterAnalytics/ViewAdmin/config.php:867
1342
  msgid "Roles To Not Track"
1343
  msgstr ""
1344
 
1345
+ #: library/DigitalPointBetterAnalytics/ViewAdmin/config.php:867
1346
+ #: library/DigitalPointBetterAnalytics/ViewAdmin/config.php:903
1347
  msgid ""
1348
  "If a logged in user is part of one of these groups, Analytics will not track "
1349
  "them."
1350
  msgstr ""
1351
 
1352
+ #: library/DigitalPointBetterAnalytics/ViewAdmin/config.php:870
1353
  msgid "Pick roles to not track"
1354
  msgstr ""
1355
 
1356
+ #: library/DigitalPointBetterAnalytics/ViewAdmin/config.php:885
1357
  msgid "Roles Able To View Reports/Dashboard"
1358
  msgstr ""
1359
 
1360
+ #: library/DigitalPointBetterAnalytics/ViewAdmin/config.php:888
1361
  msgid "Pick roles that are able to view reports"
1362
  msgstr ""
1363
 
1364
+ #: library/DigitalPointBetterAnalytics/ViewAdmin/config.php:903
1365
  msgid "File Extensions To Track As Downloads"
1366
  msgstr ""
1367
 
1368
+ #: library/DigitalPointBetterAnalytics/ViewAdmin/config.php:905
1369
  msgid "Pick file extensions"
1370
  msgstr ""
1371
 
1372
+ #: library/DigitalPointBetterAnalytics/ViewAdmin/config.php:910
1373
  msgid "Audio Video Interleave (.avi)"
1374
  msgstr ""
1375
 
1376
+ #: library/DigitalPointBetterAnalytics/ViewAdmin/config.php:911
1377
  msgid "Word (.doc)"
1378
  msgstr ""
1379
 
1380
+ #: library/DigitalPointBetterAnalytics/ViewAdmin/config.php:912
1381
  msgid "Executable (.exe)"
1382
  msgstr ""
1383
 
1384
+ #: library/DigitalPointBetterAnalytics/ViewAdmin/config.php:913
1385
  msgid "gzip (.gz)"
1386
  msgstr ""
1387
 
1388
+ #: library/DigitalPointBetterAnalytics/ViewAdmin/config.php:914
1389
  msgid "MPEG-1 Video (.mpg)"
1390
  msgstr ""
1391
 
1392
+ #: library/DigitalPointBetterAnalytics/ViewAdmin/config.php:915
1393
  msgid "MP3 (.mp3)"
1394
  msgstr ""
1395
 
1396
+ #: library/DigitalPointBetterAnalytics/ViewAdmin/config.php:916
1397
  msgid "Acrobat (.pdf)"
1398
  msgstr ""
1399
 
1400
+ #: library/DigitalPointBetterAnalytics/ViewAdmin/config.php:917
1401
  msgid "PowerPoint (.ppt)"
1402
  msgstr ""
1403
 
1404
+ #: library/DigitalPointBetterAnalytics/ViewAdmin/config.php:918
1405
  msgid "Photoshop (.psd)"
1406
  msgstr ""
1407
 
1408
+ #: library/DigitalPointBetterAnalytics/ViewAdmin/config.php:919
1409
  msgid "RAR (.rar)"
1410
  msgstr ""
1411
 
1412
+ #: library/DigitalPointBetterAnalytics/ViewAdmin/config.php:920
1413
  msgid "Windows Media Video (.wmv)"
1414
  msgstr ""
1415
 
1416
+ #: library/DigitalPointBetterAnalytics/ViewAdmin/config.php:921
1417
  msgid "Excel (.xls)"
1418
  msgstr ""
1419
 
1420
+ #: library/DigitalPointBetterAnalytics/ViewAdmin/config.php:922
1421
  msgid "Zip Archive (.zip)"
1422
  msgstr ""
1423
 
1424
+ #: library/DigitalPointBetterAnalytics/ViewAdmin/config.php:936
1425
  msgid "Track Users With Analytics Blockers"
1426
  msgstr ""
1427
 
1428
  #. translators: %1$s = <strong>, %2$s = </strong>, %3$s = <p />
1429
+ #: library/DigitalPointBetterAnalytics/ViewAdmin/config.php:939
1430
  msgid ""
1431
  "If a user has a mechanism that is blocking them from being tracked with "
1432
  "Google Analytics, you can use this option to do server-side page view "
1437
  "tracked (ones not popular enough to be widely known as a spider)."
1438
  msgstr ""
1439
 
1440
+ #: library/DigitalPointBetterAnalytics/ViewAdmin/config.php:945
1441
  msgid "Never"
1442
  msgstr ""
1443
 
1444
+ #: library/DigitalPointBetterAnalytics/ViewAdmin/config.php:950
1445
  msgid "Registered Users"
1446
  msgstr ""
1447
 
1448
+ #: library/DigitalPointBetterAnalytics/ViewAdmin/config.php:955
1449
  msgid "Humans"
1450
  msgstr ""
1451
 
1452
+ #: library/DigitalPointBetterAnalytics/ViewAdmin/config.php:968
1453
  msgid "Location For Analytics Code"
1454
  msgstr ""
1455
 
1456
+ #: library/DigitalPointBetterAnalytics/ViewAdmin/config.php:973
1457
  msgid "Header"
1458
  msgstr ""
1459
 
1460
+ #: library/DigitalPointBetterAnalytics/ViewAdmin/config.php:978
1461
  msgid "Footer"
1462
  msgstr ""
1463
 
1464
+ #: library/DigitalPointBetterAnalytics/ViewAdmin/config.php:983
1465
  msgid "No JavaScript (you have your own/other already)"
1466
  msgstr ""
1467
 
1468
+ #: library/DigitalPointBetterAnalytics/ViewAdmin/config.php:989
1469
  msgid "Use In Staff Area (wp-admin)"
1470
  msgstr ""
1471
 
1472
+ #: library/DigitalPointBetterAnalytics/ViewAdmin/config.php:995
1473
  msgid "When To Run Analytics Code"
1474
  msgstr ""
1475
 
1476
+ #: library/DigitalPointBetterAnalytics/ViewAdmin/config.php:1000
1477
  msgid "Immediately"
1478
  msgstr ""
1479
 
1480
+ #: library/DigitalPointBetterAnalytics/ViewAdmin/config.php:1005
1481
  msgid "After Page Loads"
1482
  msgstr ""
1483
 
1484
+ #: library/DigitalPointBetterAnalytics/ViewAdmin/config.php:1012
1485
  msgid "Campaign Tracking Within URLs"
1486
  msgstr ""
1487
 
1488
+ #: library/DigitalPointBetterAnalytics/ViewAdmin/config.php:1017
1489
  msgid "In Anchor"
1490
  msgstr ""
1491
 
1492
+ #: library/DigitalPointBetterAnalytics/ViewAdmin/config.php:1022
1493
  msgid "In Parameters"
1494
  msgstr ""
1495
 
1496
+ #: library/DigitalPointBetterAnalytics/ViewAdmin/config.php:1029
1497
  msgid "Sample Rate"
1498
  msgstr ""
1499
 
1500
+ #: library/DigitalPointBetterAnalytics/ViewAdmin/config.php:1029
1501
  msgid ""
1502
  "Specifies what percentage of users should be tracked. Very large sites may "
1503
  "need to use a lower sample rate to stay within Google Analytics processing "
1504
  "limits."
1505
  msgstr ""
1506
 
1507
+ #: library/DigitalPointBetterAnalytics/ViewAdmin/config.php:1050
1508
  msgid "Extra JavaScript"
1509
  msgstr ""
1510
 
1511
+ #: library/DigitalPointBetterAnalytics/ViewAdmin/config.php:1050
1512
  msgid ""
1513
  "This allows you to add your own JavaScript code to the Analytics tracking "
1514
  "code. This JavaScript is inserted right before the %1$s function."
1515
  msgstr ""
1516
 
1517
+ #: library/DigitalPointBetterAnalytics/ViewAdmin/config.php:1057
1518
  msgid "Debugging"
1519
  msgstr ""
1520
 
1521
+ #: library/DigitalPointBetterAnalytics/ViewAdmin/config.php:1062
1522
  msgid "Enable Google Analytics Debugging"
1523
  msgstr ""
1524
 
1525
+ #: library/DigitalPointBetterAnalytics/ViewAdmin/config.php:1063
1526
  msgid "This will display Google Analytics debug data in the browser console."
1527
  msgstr ""
1528
 
1529
+ #: library/DigitalPointBetterAnalytics/ViewAdmin/config_network.php:13
1530
+ msgid "Better Analytics Settings"
1531
+ msgstr ""
1532
+
1533
+ #: library/DigitalPointBetterAnalytics/ViewAdmin/config_network.php:26
1534
+ msgid "Delete Existing Tokens"
1535
+ msgstr ""
1536
+
1537
  #: library/DigitalPointBetterAnalytics/ViewAdmin/dashboard.php:13
1538
  msgid "%1$sSet up API access%2$s to utilize Better Analytics charts."
1539
  msgstr ""
1799
  #: library/DigitalPointBetterAnalytics/ViewAdmin/test.php:162
1800
  #: library/DigitalPointBetterAnalytics/ViewAdmin/test.php:175
1801
  #: library/DigitalPointBetterAnalytics/ViewAdmin/test.php:189
1802
+ #: library/DigitalPointBetterAnalytics/ViewAdmin/test.php:203
1803
+ #: library/DigitalPointBetterAnalytics/ViewAdmin/test.php:219
1804
  msgid ""
1805
  "Found in Google Analytics account under %1$sCustom Definitions -> Custom "
1806
  "Dimensions%2$s (should be named \"%1$s%3$s%2$s\" and scoped for \"%1$sHit%2$s"
1816
  msgstr ""
1817
 
1818
  #: library/DigitalPointBetterAnalytics/ViewAdmin/test.php:181
1819
+ msgid "Custom Dimension For Publication Year Tracking"
1820
+ msgstr ""
1821
+
1822
+ #: library/DigitalPointBetterAnalytics/ViewAdmin/test.php:195
1823
+ msgid "Custom Dimension For User Role Tracking"
1824
+ msgstr ""
1825
+
1826
+ #: library/DigitalPointBetterAnalytics/ViewAdmin/test.php:211
1827
  msgid "Custom Dimension For User Tracking"
1828
  msgstr ""
1829
 
1830
+ #: library/DigitalPointBetterAnalytics/ViewAdmin/test.php:226
1831
  msgid "Category Tracking Dimension Index Set"
1832
  msgstr ""
1833
 
1834
+ #: library/DigitalPointBetterAnalytics/ViewAdmin/test.php:235
1835
  msgid "Author Tracking Dimension Index Set"
1836
  msgstr ""
1837
 
1838
+ #: library/DigitalPointBetterAnalytics/ViewAdmin/test.php:243
1839
  msgid "Tag Tracking Dimension Index Set"
1840
  msgstr ""
1841
 
1842
+ #: library/DigitalPointBetterAnalytics/ViewAdmin/test.php:251
1843
+ msgid "Publication Year Tracking Dimension Index Set"
1844
+ msgstr ""
1845
+
1846
+ #: library/DigitalPointBetterAnalytics/ViewAdmin/test.php:259
1847
+ msgid "User Role Tracking Dimension Index Set"
1848
+ msgstr ""
1849
+
1850
+ #: library/DigitalPointBetterAnalytics/ViewAdmin/test.php:268
1851
  msgid "Registered User Tracking Dimension Index Set"
1852
  msgstr ""
1853
 
1854
+ #: library/DigitalPointBetterAnalytics/ViewAdmin/test.php:276
1855
  msgid "Better Analytics Pro License"
1856
  msgstr ""
1857
 
1858
+ #: library/DigitalPointBetterAnalytics/ViewAdmin/test.php:281
1859
  msgid ""
1860
  "A few extra advanced features are available when you license the Better "
1861
  "Analytics Pro plugin. Please don't steal, a crazy amount of work went into "
1862
  "this. Some of the extra features:"
1863
  msgstr ""
1864
 
1865
+ #: library/DigitalPointBetterAnalytics/ViewAdmin/test.php:285
1866
  msgid "More metrics available for %1$sHeat Maps%2$s"
1867
  msgstr ""
1868
 
1869
+ #: library/DigitalPointBetterAnalytics/ViewAdmin/test.php:290
1870
  msgid "More dimensions available for %1$sCharts%2$s"
1871
  msgstr ""
1872
 
1873
+ #: library/DigitalPointBetterAnalytics/ViewAdmin/test.php:295
1874
  msgid "More %1$sadvertising platform click tracking%2$s"
1875
  msgstr ""
1876
 
1877
+ #: library/DigitalPointBetterAnalytics/ViewAdmin/test.php:300
1878
  msgid "More %1$sissue monitoring options%2$s"
1879
  msgstr ""
1880
 
1881
+ #: library/DigitalPointBetterAnalytics/ViewAdmin/test.php:305
1882
  msgid "%1$seCommerce tracking%2$s"
1883
  msgstr ""
1884
 
1885
+ #: library/DigitalPointBetterAnalytics/ViewAdmin/test.php:310
1886
  msgid "Ability to do %1$sserver-side tracking of users%2$s"
1887
  msgstr ""
1888
 
1889
+ #: library/DigitalPointBetterAnalytics/ViewAdmin/test.php:315
1890
  msgid "Faster API calls (utilizes a multi-threaded mechanism)"
1891
  msgstr ""
1892
 
1893
+ #: library/DigitalPointBetterAnalytics/ViewAdmin/test.php:320
1894
  msgid "%1$sPriority support%2$s"
1895
  msgstr ""
1896
 
1897
+ #: library/DigitalPointBetterAnalytics/ViewAdmin/test.php:325
1898
  msgid ""
1899
  "A Warm & Fuzzy Feeling knowing you are helping to continue future development"
1900
  msgstr ""
1901
 
1902
+ #: library/DigitalPointBetterAnalytics/ViewAdmin/test.php:338
1903
  msgid "Things That Need To Be Checked Manually"
1904
  msgstr ""
1905
 
1906
+ #: library/DigitalPointBetterAnalytics/ViewAdmin/test.php:341
1907
  msgid "User-ID Tracking"
1908
  msgstr ""
1909
 
1910
+ #: library/DigitalPointBetterAnalytics/ViewAdmin/test.php:344
1911
  msgid ""
1912
  "Found in Google Analytics account under %1$sTracking Info -> User-ID%2$s."
1913
  msgstr ""
1914
 
1915
+ #: library/DigitalPointBetterAnalytics/ViewAdmin/test.php:349
1916
  msgid "Demographic and Interest Reports"
1917
  msgstr ""
1918
 
1919
+ #: library/DigitalPointBetterAnalytics/ViewAdmin/test.php:352
1920
  msgid "Found in Google Analytics account under %1$sProperty Settings%1$s."
1921
  msgstr ""
1922
 
library/DigitalPointBetterAnalytics/Base/Admin.php CHANGED
@@ -28,6 +28,8 @@ class DigitalPointBetterAnalytics_Base_Admin
28
  {
29
  add_action('admin_init', array($this, 'admin_init'), 20);
30
  add_action('admin_menu', array($this, 'admin_menu'));
 
 
31
  add_action('admin_head', array($this, 'admin_head'));
32
 
33
  add_action('wp_dashboard_setup', array($this, 'dashboard_setup'));
@@ -44,6 +46,9 @@ class DigitalPointBetterAnalytics_Base_Admin
44
  add_filter('admin_footer_text', array($this, 'admin_footer_text' ));
45
  add_filter('plugin_row_meta', array( $this, 'plugin_row_meta' ), 10, 2 );
46
 
 
 
 
47
  $betterAnalyticsOptions = get_option('better_analytics');
48
  if (!$betterAnalyticsOptions['property_id'])
49
  {
@@ -67,29 +72,31 @@ class DigitalPointBetterAnalytics_Base_Admin
67
 
68
  public function admin_menu()
69
  {
70
- $hook = add_management_page( esc_html__('Test Analytics Setup', 'better-analytics'), esc_html__('Test Analytics Setup', 'better-analytics'), 'manage_options', 'better-analytics_test', array($this, 'display_test_page') );
71
- $hook = add_management_page( esc_html__('OAuth2 Endpoint', 'better-analytics'), esc_html__('OAuth2 Endpoint', 'better-analytics'), 'manage_options', 'better-analytics_auth', array($this, 'api_authentication') );
72
-
73
 
74
  if (DigitalPointBetterAnalytics_Base_Public::getInstance()->canViewReports())
75
  {
76
- $hook = add_menu_page(esc_html__('Analytics', 'better-analytics'), esc_html__('Analytics', 'better-analytics'), 'read', 'better-analytics_heatmaps', null, 'dashicons-chart-line', 3.1975123 );
77
- $hook = add_submenu_page( 'better-analytics_heatmaps', esc_html__('Heat Maps', 'better-analytics'), esc_html__('Reports', 'better-analytics'), 'read', 'better-analytics_heatmaps', array($this, 'display_page') );
78
 
79
- $hook = add_submenu_page( 'better-analytics_heatmaps', esc_html__('Charts', 'better-analytics'), esc_html__('Charts', 'better-analytics'), 'read', 'better-analytics_areacharts', array($this, 'display_page') );
80
- $hook = add_submenu_page( 'better-analytics_heatmaps', esc_html__('Issue Monitor', 'better-analytics'), esc_html__('Issue Monitor', 'better-analytics'), 'read', 'better-analytics_monitor', array($this, 'display_page') );
81
- $hook = add_submenu_page( 'better-analytics_heatmaps', esc_html__('Events', 'better-analytics'), esc_html__('Events', 'better-analytics'), 'read', 'better-analytics_events', array($this, 'display_page') );
82
  }
83
 
84
-
85
- $hook = add_submenu_page( 'better-analytics_heatmaps', esc_html__('Settings', 'better-analytics'), esc_html__('Settings', 'better-analytics'), 'manage_options', 'options-general.php' . '?page=better-analytics' );
86
- $hook = add_submenu_page( 'better-analytics_heatmaps', esc_html__('Test Setup', 'better-analytics'), esc_html__('Test Setup', 'better-analytics'), 'manage_options', 'tools.php' . '?page=better-analytics_test' );
87
-
88
 
89
  $hook = add_options_page( esc_html__('Better Analytics', 'better-analytics'), esc_html__('Better Analytics', 'better-analytics'), 'manage_options', 'better-analytics', array($this, 'display_configuration_page'));
90
  add_action( "load-$hook", array($this, 'admin_help'));
91
  }
92
 
 
 
 
 
 
93
 
94
  public function plugin_action_links( $links, $file)
95
  {
@@ -140,7 +147,8 @@ class DigitalPointBetterAnalytics_Base_Admin
140
 
141
  public function admin_head()
142
  {
143
- remove_submenu_page( 'tools.php', 'better-analytics_auth' );
 
144
 
145
  $_reportingPages = array(
146
  'better-analytics_heatmaps',
@@ -275,17 +283,30 @@ class DigitalPointBetterAnalytics_Base_Admin
275
  $response->expires_at = time() + $response->expires_in - 100;
276
  unset($response->expires_in);
277
 
278
- update_option('ba_tokens', json_encode($response));
279
  DigitalPointBetterAnalytics_CronEntry_Jobs::hour(true);
280
 
281
- wp_redirect(menu_page_url('better-analytics', false) . '#top#api', 302);
282
-
 
 
 
 
 
 
283
  return;
284
  }
285
 
286
- wp_redirect(DigitalPointBetterAnalytics_Helper_Reporting::getInstance()->getAuthenticationUrl(menu_page_url('better-analytics_auth', false)), 302);
287
- }
288
 
 
 
 
 
 
 
 
 
289
 
290
 
291
  /**
@@ -320,7 +341,6 @@ class DigitalPointBetterAnalytics_Base_Admin
320
  ''
321
  )
322
  );
323
-
324
  }
325
 
326
  // Help Sidebar
@@ -362,11 +382,46 @@ class DigitalPointBetterAnalytics_Base_Admin
362
  if ($file == plugin_basename(BETTER_ANALYTICS_PLUGIN_DIR . '/better-analytics.php'))
363
  {
364
  $links['support'] = '<a href="' . esc_url(BETTER_ANALYTICS_SUPPORT_URL ) . '" title="' . esc_attr( esc_html__( 'Visit Support Forum', 'better-analytics' ) ) . '">' . esc_html__( 'Support', 'better-analytics' ) . '</a>';
 
 
 
 
 
 
365
  }
366
 
367
  return $links;
368
  }
369
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
370
  public static function getProfilePropertyIds($profiles)
371
  {
372
  $profilesOutput = array();
28
  {
29
  add_action('admin_init', array($this, 'admin_init'), 20);
30
  add_action('admin_menu', array($this, 'admin_menu'));
31
+ add_action('network_admin_menu', array($this, 'network_admin_menu'));
32
+
33
  add_action('admin_head', array($this, 'admin_head'));
34
 
35
  add_action('wp_dashboard_setup', array($this, 'dashboard_setup'));
46
  add_filter('admin_footer_text', array($this, 'admin_footer_text' ));
47
  add_filter('plugin_row_meta', array( $this, 'plugin_row_meta' ), 10, 2 );
48
 
49
+ add_filter('wpmu_options', array($this, 'show_network_settings'));
50
+ add_action('update_wpmu_options', array($this, 'save_network_settings'));
51
+
52
  $betterAnalyticsOptions = get_option('better_analytics');
53
  if (!$betterAnalyticsOptions['property_id'])
54
  {
72
 
73
  public function admin_menu()
74
  {
75
+ add_management_page( esc_html__('Test Analytics Setup', 'better-analytics'), esc_html__('Test Analytics Setup', 'better-analytics'), 'manage_options', 'better-analytics_test', array($this, 'display_test_page') );
76
+ add_management_page( esc_html__('OAuth2 Endpoint', 'better-analytics'), esc_html__('OAuth2 Endpoint', 'better-analytics'), 'manage_options', 'better-analytics_auth', array($this, 'api_authentication') );
 
77
 
78
  if (DigitalPointBetterAnalytics_Base_Public::getInstance()->canViewReports())
79
  {
80
+ add_menu_page(esc_html__('Analytics', 'better-analytics'), esc_html__('Analytics', 'better-analytics'), 'read', 'better-analytics_heatmaps', null, 'dashicons-chart-line', 3.1975123 );
81
+ add_submenu_page( 'better-analytics_heatmaps', esc_html__('Heat Maps', 'better-analytics'), esc_html__('Reports', 'better-analytics'), 'read', 'better-analytics_heatmaps', array($this, 'display_page') );
82
 
83
+ add_submenu_page( 'better-analytics_heatmaps', esc_html__('Charts', 'better-analytics'), esc_html__('Charts', 'better-analytics'), 'read', 'better-analytics_areacharts', array($this, 'display_page') );
84
+ add_submenu_page( 'better-analytics_heatmaps', esc_html__('Issue Monitor', 'better-analytics'), esc_html__('Issue Monitor', 'better-analytics'), 'read', 'better-analytics_monitor', array($this, 'display_page') );
85
+ add_submenu_page( 'better-analytics_heatmaps', esc_html__('Events', 'better-analytics'), esc_html__('Events', 'better-analytics'), 'read', 'better-analytics_events', array($this, 'display_page') );
86
  }
87
 
88
+ add_submenu_page( 'better-analytics_heatmaps', esc_html__('Settings', 'better-analytics'), esc_html__('Settings', 'better-analytics'), 'manage_options', 'options-general.php' . '?page=better-analytics' );
89
+ add_submenu_page( 'better-analytics_heatmaps', esc_html__('Test Setup', 'better-analytics'), esc_html__('Test Setup', 'better-analytics'), 'manage_options', 'tools.php' . '?page=better-analytics_test' );
 
 
90
 
91
  $hook = add_options_page( esc_html__('Better Analytics', 'better-analytics'), esc_html__('Better Analytics', 'better-analytics'), 'manage_options', 'better-analytics', array($this, 'display_configuration_page'));
92
  add_action( "load-$hook", array($this, 'admin_help'));
93
  }
94
 
95
+ public function network_admin_menu()
96
+ {
97
+ add_submenu_page( 'settings.php', esc_html__('OAuth2 Endpoint', 'better-analytics'), esc_html__('OAuth2 Endpoint', 'better-analytics'), 'manage_network', 'better-analytics_auth', array($this, 'api_authentication') );
98
+ }
99
+
100
 
101
  public function plugin_action_links( $links, $file)
102
  {
147
 
148
  public function admin_head()
149
  {
150
+ remove_submenu_page('tools.php', 'better-analytics_auth');
151
+ remove_submenu_page('settings.php', 'better-analytics_auth');
152
 
153
  $_reportingPages = array(
154
  'better-analytics_heatmaps',
283
  $response->expires_at = time() + $response->expires_in - 100;
284
  unset($response->expires_in);
285
 
286
+ DigitalPointBetterAnalytics_Base_Public::getInstance()->updateTokens($response, is_network_admin());
287
  DigitalPointBetterAnalytics_CronEntry_Jobs::hour(true);
288
 
289
+ if (is_network_admin())
290
+ {
291
+ wp_redirect(self_admin_url('settings.php'), 302);
292
+ }
293
+ else
294
+ {
295
+ wp_redirect(menu_page_url('better-analytics', false) . '#top#api', 302);
296
+ }
297
  return;
298
  }
299
 
300
+ $url = menu_page_url('better-analytics_auth', false);
 
301
 
302
+ // Hacky fix for WordPress bug: https://core.trac.wordpress.org/ticket/28226
303
+ if (strpos($url, 'wp-admin/settings.php'))
304
+ {
305
+ $url = str_replace('wp-admin/settings.php', 'wp-admin/network/settings.php', $url);
306
+ }
307
+
308
+ wp_redirect(DigitalPointBetterAnalytics_Helper_Reporting::getInstance()->getAuthenticationUrl($url), 302);
309
+ }
310
 
311
 
312
  /**
341
  ''
342
  )
343
  );
 
344
  }
345
 
346
  // Help Sidebar
382
  if ($file == plugin_basename(BETTER_ANALYTICS_PLUGIN_DIR . '/better-analytics.php'))
383
  {
384
  $links['support'] = '<a href="' . esc_url(BETTER_ANALYTICS_SUPPORT_URL ) . '" title="' . esc_attr( esc_html__( 'Visit Support Forum', 'better-analytics' ) ) . '">' . esc_html__( 'Support', 'better-analytics' ) . '</a>';
385
+
386
+ $betterAnalyticsInternal = get_transient('ba_int');
387
+ if (DigitalPointBetterAnalytics_Base_Pro::$installed && empty($betterAnalyticsInternal['v']))
388
+ {
389
+ $links['verify_domain'] = '<a href="' . esc_url('https://forums.digitalpoint.com/marketplace/domain-verification#utm_source=admin_plugins&utm_medium=wordpress&utm_campaign=plugin') . '" target="_blank">' . esc_html__( 'Verify Domain', 'better-analytics' ) . '</a>';
390
+ }
391
  }
392
 
393
  return $links;
394
  }
395
 
396
+ public function show_network_settings()
397
+ {
398
+ $this->view('config_network');
399
+ }
400
+
401
+ public function save_network_settings()
402
+ {
403
+ if (@$_POST['better_analytics']['api']['delete_tokens'])
404
+ {
405
+ delete_site_option('ba_site_tokens');
406
+ }
407
+
408
+ $options = array('api' => array());
409
+
410
+ $options['api']['use_own'] = absint(@$_POST['better_analytics']['api']['use_own']);
411
+ if ($options['api']['use_own'])
412
+ {
413
+ $options['api']['client_id'] = sanitize_text_field(@$_POST['better_analytics']['api']['client_id']);
414
+ $options['api']['client_secret'] = sanitize_text_field(@$_POST['better_analytics']['api']['client_secret']);
415
+ }
416
+ else
417
+ {
418
+ $options['api']['client_id'] = $options['api']['client_secret'] = '';
419
+ }
420
+
421
+ update_site_option( 'better_analytics_site', $options);
422
+ }
423
+
424
+
425
  public static function getProfilePropertyIds($profiles)
426
  {
427
  $profilesOutput = array();
library/DigitalPointBetterAnalytics/Base/Public.php CHANGED
@@ -483,6 +483,66 @@ class DigitalPointBetterAnalytics_Base_Public
483
  return $match[0] . $urlDelimiter . 'utm_source=rss&utm_medium=rss';
484
  }
485
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
486
  /**
487
  * Log debugging info to the error log.
488
  *
483
  return $match[0] . $urlDelimiter . 'utm_source=rss&utm_medium=rss';
484
  }
485
 
486
+
487
+ public function usingMultisiteTokens()
488
+ {
489
+ if (is_multisite())
490
+ {
491
+ if (get_site_option('ba_site_tokens'))
492
+ {
493
+ return true;
494
+ }
495
+ }
496
+ return false;
497
+ }
498
+
499
+ public function getTokens()
500
+ {
501
+ if (is_multisite())
502
+ {
503
+ if (!$tokens = get_site_option('ba_site_tokens'))
504
+ {
505
+ $tokens = get_option('ba_tokens');
506
+ }
507
+ }
508
+ else
509
+ {
510
+ $tokens = get_option('ba_tokens');
511
+ }
512
+
513
+ return $tokens;
514
+ }
515
+
516
+ public function updateTokens($tokens, $forceMultisite = false)
517
+ {
518
+ if (!is_string($tokens))
519
+ {
520
+ $tokens = json_encode($tokens);
521
+ }
522
+ if ($forceMultisite || $this->usingMultisiteTokens())
523
+ {
524
+ update_site_option('ba_site_tokens', $tokens);
525
+ }
526
+ else
527
+ {
528
+ update_option('ba_tokens', $tokens);
529
+ }
530
+ }
531
+
532
+ public function deleteTokens()
533
+ {
534
+ if ($this->usingMultisiteTokens())
535
+ {
536
+ delete_site_option('ba_site_tokens');
537
+ }
538
+ else
539
+ {
540
+ delete_option('ba_tokens');
541
+ }
542
+ }
543
+
544
+
545
+
546
  /**
547
  * Log debugging info to the error log.
548
  *
library/DigitalPointBetterAnalytics/ControllerAdmin/Analytics.php CHANGED
@@ -472,7 +472,7 @@ class DigitalPointBetterAnalytics_ControllerAdmin_Analytics
472
  {
473
  $betterAnalyticsOptions = get_option('better_analytics');
474
 
475
- if (!get_option('ba_tokens') || !@$betterAnalyticsOptions['api']['profile'])
476
  {
477
  $this->_responseException(sprintf('%1$s <a href="%2$s">%3$s</a>',
478
  __('No Linked Google Analytics Account.', 'better-analytics'),
@@ -516,6 +516,15 @@ class DigitalPointBetterAnalytics_ControllerAdmin_Analytics
516
  {
517
  $dimensions['p:ga:dimension' . $betterAnalyticsOptions['dimension']['tag']] = __('Tags', 'better-analytics');
518
  }
 
 
 
 
 
 
 
 
 
519
 
520
  $dimensions['p:ga:source'] = __('Source', 'better-analytics');
521
  $dimensions['p:ga:fullReferrer'] = __('Referrer', 'better-analytics');
472
  {
473
  $betterAnalyticsOptions = get_option('better_analytics');
474
 
475
+ if (!DigitalPointBetterAnalytics_Base_Public::getInstance()->getTokens() || !@$betterAnalyticsOptions['api']['profile'])
476
  {
477
  $this->_responseException(sprintf('%1$s <a href="%2$s">%3$s</a>',
478
  __('No Linked Google Analytics Account.', 'better-analytics'),
516
  {
517
  $dimensions['p:ga:dimension' . $betterAnalyticsOptions['dimension']['tag']] = __('Tags', 'better-analytics');
518
  }
519
+ if (!empty($betterAnalyticsOptions['dimension']['year']))
520
+ {
521
+ $dimensions['p:ga:dimension' . $betterAnalyticsOptions['dimension']['year']] = __('Publication Year', 'better-analytics');
522
+ }
523
+ if (!empty($betterAnalyticsOptions['dimension']['role']))
524
+ {
525
+ $dimensions['p:ga:dimension' . $betterAnalyticsOptions['dimension']['role']] = __('User Role', 'better-analytics');
526
+ }
527
+
528
 
529
  $dimensions['p:ga:source'] = __('Source', 'better-analytics');
530
  $dimensions['p:ga:fullReferrer'] = __('Referrer', 'better-analytics');
library/DigitalPointBetterAnalytics/Helper/Reporting.php CHANGED
@@ -15,8 +15,13 @@ class DigitalPointBetterAnalytics_Helper_Reporting extends DigitalPointBetterAna
15
  switch ($option)
16
  {
17
  case 'apiClientId':
 
18
  $betterAnalyticsOptions = get_option('better_analytics');
19
- if (@$betterAnalyticsOptions['api']['use_own'])
 
 
 
 
20
  {
21
  return @$betterAnalyticsOptions['api']['client_id'];
22
  }
@@ -25,8 +30,13 @@ class DigitalPointBetterAnalytics_Helper_Reporting extends DigitalPointBetterAna
25
  return $this->_credentials['client_id'];
26
  }
27
  case 'apiClientSecret':
 
28
  $betterAnalyticsOptions = get_option('better_analytics');
29
- if (@$betterAnalyticsOptions['api']['use_own'])
 
 
 
 
30
  {
31
  return @$betterAnalyticsOptions['api']['client_secret'];
32
  }
@@ -39,7 +49,7 @@ class DigitalPointBetterAnalytics_Helper_Reporting extends DigitalPointBetterAna
39
  return @$betterAnalyticsOptions['api']['profile'];
40
 
41
  case 'tokens':
42
- return @json_decode(get_option('ba_tokens'));
43
 
44
  case 'internalV':
45
  $betterAnalyticsOptions = get_transient('ba_int');
@@ -52,12 +62,12 @@ class DigitalPointBetterAnalytics_Helper_Reporting extends DigitalPointBetterAna
52
 
53
  protected function _saveTokens($tokens)
54
  {
55
- update_option('ba_tokens', json_encode($tokens));
56
  }
57
 
58
  protected function _deleteTokens()
59
  {
60
- delete_option('ba_tokens');
61
  }
62
 
63
  protected function _throwException()
15
  switch ($option)
16
  {
17
  case 'apiClientId':
18
+ $betterAnalyticsSiteOptions = get_site_option('better_analytics_site');
19
  $betterAnalyticsOptions = get_option('better_analytics');
20
+ if (!empty($betterAnalyticsSiteOptions['api']['use_own']))
21
+ {
22
+ return @$betterAnalyticsSiteOptions['api']['client_id'];
23
+ }
24
+ elseif (!empty($betterAnalyticsOptions['api']['use_own']))
25
  {
26
  return @$betterAnalyticsOptions['api']['client_id'];
27
  }
30
  return $this->_credentials['client_id'];
31
  }
32
  case 'apiClientSecret':
33
+ $betterAnalyticsSiteOptions = get_site_option('better_analytics_site');
34
  $betterAnalyticsOptions = get_option('better_analytics');
35
+ if (!empty($betterAnalyticsSiteOptions['api']['use_own']))
36
+ {
37
+ return @$betterAnalyticsSiteOptions['api']['client_secret'];
38
+ }
39
+ elseif (!empty($betterAnalyticsOptions['api']['use_own']))
40
  {
41
  return @$betterAnalyticsOptions['api']['client_secret'];
42
  }
49
  return @$betterAnalyticsOptions['api']['profile'];
50
 
51
  case 'tokens':
52
+ return @json_decode(DigitalPointBetterAnalytics_Base_Public::getInstance()->getTokens());
53
 
54
  case 'internalV':
55
  $betterAnalyticsOptions = get_transient('ba_int');
62
 
63
  protected function _saveTokens($tokens)
64
  {
65
+ DigitalPointBetterAnalytics_Base_Public::getInstance()->updateTokens($tokens);
66
  }
67
 
68
  protected function _deleteTokens()
69
  {
70
+ DigitalPointBetterAnalytics_Base_Public::getInstance()->deleteTokens();
71
  }
72
 
73
  protected function _throwException()
library/DigitalPointBetterAnalytics/Helper/Reporting/Abstract.php CHANGED
@@ -394,7 +394,7 @@ abstract class DigitalPointBetterAnalytics_Helper_Reporting_Abstract
394
  {
395
  foreach ($chartData as $name => $value)
396
  {
397
- $outputData[] = array($name, $value);
398
  }
399
  }
400
 
394
  {
395
  foreach ($chartData as $name => $value)
396
  {
397
+ $outputData[] = array((string)$name, $value);
398
  }
399
  }
400
 
library/DigitalPointBetterAnalytics/Install.php CHANGED
@@ -14,8 +14,8 @@ class DigitalPointBetterAnalytics_Install
14
 
15
  restore_current_blog();
16
  }
17
- // delete_site_option('better_analytics_network_options');
18
- // delete_site_transient('some_option');
19
  }
20
  else
21
  { // Cleanup Single install
14
 
15
  restore_current_blog();
16
  }
17
+ delete_site_option('ba_site_tokens');
18
+ delete_site_option('better_analytics_site');
19
  }
20
  else
21
  { // Cleanup Single install
library/DigitalPointBetterAnalytics/Model/Widget.php CHANGED
@@ -5,7 +5,7 @@ class DigitalPointBetterAnalytics_Model_Widget
5
  public static function getRealtimeData($secondsToCache = 300, $returnData = false)
6
  {
7
  $betterAnalyticsOptions = get_option('better_analytics');
8
- if (get_option('ba_tokens') && @$betterAnalyticsOptions['api']['profile'])
9
  {
10
  $reportingObject = DigitalPointBetterAnalytics_Helper_Reporting::getInstance();
11
  $cacheKey = $reportingObject->getRealtime('rt:activeUsers', 'rt:source,rt:medium,rt:referralPath,rt:pagePath,rt:deviceCategory,rt:country,rt:keyword');
5
  public static function getRealtimeData($secondsToCache = 300, $returnData = false)
6
  {
7
  $betterAnalyticsOptions = get_option('better_analytics');
8
+ if (DigitalPointBetterAnalytics_Base_Public::getInstance()->getTokens() && @$betterAnalyticsOptions['api']['profile'])
9
  {
10
  $reportingObject = DigitalPointBetterAnalytics_Helper_Reporting::getInstance();
11
  $cacheKey = $reportingObject->getRealtime('rt:activeUsers', 'rt:source,rt:medium,rt:referralPath,rt:pagePath,rt:deviceCategory,rt:country,rt:keyword');
library/DigitalPointBetterAnalytics/ViewAdmin/config.php CHANGED
@@ -161,7 +161,7 @@
161
  <tr valign="top" class="group_general tab_content">
162
  <th scope="row"><?php esc_html_e('Google Analytics Web Property ID', 'better-analytics');?></th>
163
  <td>
164
- <input type="text" name="better_analytics[property_id]" id="ba_property_id" placeholder="UA-000000-01" style="width: 25%;" value="<?php echo esc_attr( @$betterAnalyticsOptions['property_id'] ); ?>" />
165
  <?php
166
 
167
 
@@ -339,7 +339,7 @@
339
 
340
  <tr valign="top" class="group_dimensions tab_content">
341
  <td colspan="2">
342
- <?php printf(__('If you want to track custom dimensions, you need to create the custom dimensions in your %1$sGoogle Analytics account settings%2$s (under %3$sCustom Definitions -> Custom Dimension%4$s)%5$sThey should be scoped as "%3$sHit%4$s".', 'better-analytics'),
343
  '<a href="' . esc_url('https://www.google.com/analytics/web/?#management/Settings/') . '" target="_blank">',
344
  '</a>',
345
  '<strong>',
@@ -484,6 +484,74 @@
484
  </div>
485
  </div>
486
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
487
  <div style="display:table-row">
488
  <div style="display:table-cell;text-align:right;padding-right:10px;">
489
  <label
@@ -508,9 +576,9 @@
508
  }
509
  else
510
  {
511
- echo '<input type="number" name="better_analytics[dimension][author]"
512
  id="ba_dimension_user" min="0" max="20" step="1"
513
- value="' . esc_attr(intval(@$betterAnalyticsOptions['dimension']['author'])) . '"/>';
514
  }
515
 
516
  ?>
@@ -713,57 +781,87 @@
713
  }
714
  ?>
715
 
716
- <tr valign="top" class="group_api tab_content">
717
- <th scope="row"></th>
718
- <td>
719
- <a id="ba_select_profile" class="button" href="<?php menu_page_url('better-analytics_auth'); ?>"><?php
720
- get_option('ba_tokens') ? esc_html_e('Link/Authenticate A Different Google Analytics Account', 'better-analytics') : esc_html_e('Link/Authenticate Your Google Analytics Account', 'better-analytics');?></a>
721
- </td>
722
- </tr>
723
-
724
 
725
 
726
  <tr valign="top" class="group_api tab_content">
727
  <th scope="row"></th>
728
  <td>
729
- <fieldset>
730
- <label for="ba_api_use_own">
731
- <input name="better_analytics[api][use_own]" type="checkbox" id="ba_api_use_own" value="1" <?php checked('1', @$betterAnalyticsOptions['api']['use_own'] ); ?>>
732
- <?php esc_html_e('Use Your Own Project Credentials', 'better-analytics');?></label>
733
- <span class="dashicons-before dashicons-info tooltip" title="<?php echo htmlspecialchars(sprintf(__('If you have your own Google API Project that you wish to use, you can use your credentials for that web application.', 'better-analytics')));?>"></span>
734
 
735
- </fieldset>
 
 
 
 
 
 
 
 
 
736
 
 
 
 
 
 
737
  </td>
738
  </tr>
739
 
740
- <tr valign="top" class="group_api tab_content api_hideable"<?php echo (!@$betterAnalyticsOptions['api']['use_own'] ? ' style="display:none"' : '')?>>
741
- <td colspan="2">
742
-
743
- <?php echo '<fieldset style="border:1px solid grey;margin:10px;padding:20px;"><legend style="padding:0 5px;font-weight:bold;font-size:120%">' . esc_html__('Configuration', 'better-analytics') . '</legend>' .
744
- /* translators: %1$s = <strong>, %2$s = </strong> */
745
- sprintf(__('Project needs to have the %1$sAnalytics API%2$s enabled under %1$sAPIs & auth -> APIs%2$s.', 'better_analytics'), '<strong>', '</strong>') . '<br /><br />' .
746
- /* translators: %1$s = <strong>, %2$s = </strong> */
747
- sprintf(__('Under %1$sAPIs & auth -> Credentials%2$s, you need to %1$sCreate new Client ID%2$s that is a %1$sWeb application%2$s with an authorized redirect URI of: %1$s%3$s%2$s', 'better-analytics'), '<strong>', '</strong>', menu_page_url('better-analytics_auth', false))
748
- . '</fieldset>';?>
749
- </td>
750
- </tr>
751
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
752
 
753
- <tr valign="top" class="group_api tab_content api_hideable"<?php echo (!@$betterAnalyticsOptions['api']['use_own'] ? ' style="display:none"' : '')?>>
754
- <th scope="row"><?php esc_html_e('Client ID', 'better-analytics');?></th>
755
- <td>
756
- <input type="text" name="better_analytics[api][client_id]" id="ba_api_client_id" placeholder="0000000000.apps.googleusercontent.com" value="<?php echo esc_attr( @$betterAnalyticsOptions['api']['client_id'] ); ?>" />
757
- </td>
758
- </tr>
 
 
 
 
 
 
 
 
 
759
 
760
- <tr valign="top" class="group_api tab_content api_hideable"<?php echo (!@$betterAnalyticsOptions['api']['use_own'] ? ' style="display:none"' : '')?>>
761
- <th scope="row"><?php esc_html_e('Client Secret', 'better-analytics');?></th>
762
- <td>
763
- <input type="text" name="better_analytics[api][client_secret]" id="ba_api_client_secret" value="<?php echo esc_attr( @$betterAnalyticsOptions['api']['client_secret'] ); ?>" />
764
- </td>
765
- </tr>
766
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
767
 
768
  <tr valign="top" class="group_advanced tab_content">
769
  <th scope="row"><?php esc_html_e('Roles To Not Track', 'better-analytics');?> <span class="dashicons-before dashicons-info tooltip" title="<?php esc_html_e('If a logged in user is part of one of these groups, Analytics will not track them.', 'better-analytics');?>"></span></th>
161
  <tr valign="top" class="group_general tab_content">
162
  <th scope="row"><?php esc_html_e('Google Analytics Web Property ID', 'better-analytics');?></th>
163
  <td>
164
+ <input type="text" name="better_analytics[property_id]" id="ba_property_id" placeholder="UA-000000-01" style="width:25%;min-width:110px;" value="<?php echo esc_attr( @$betterAnalyticsOptions['property_id'] ); ?>" />
165
  <?php
166
 
167
 
339
 
340
  <tr valign="top" class="group_dimensions tab_content">
341
  <td colspan="2">
342
+ <?php printf(__('If you want to track custom dimensions, you need to create the custom dimensions in your %1$sGoogle Analytics account settings%2$s (under %3$sCustom Definitions -> Custom Dimension%4$s).%5$sThey should be scoped as "%3$sHit%4$s".', 'better-analytics'),
343
  '<a href="' . esc_url('https://www.google.com/analytics/web/?#management/Settings/') . '" target="_blank">',
344
  '</a>',
345
  '<strong>',
484
  </div>
485
  </div>
486
 
487
+ <div style="display:table-row">
488
+ <div style="display:table-cell;text-align:right;padding-right:10px;">
489
+ <label
490
+ for="ba_dimension_year"><?php esc_html_e('Publication Year: ', 'better-analytics');?></label>
491
+ </div>
492
+ <div style="display:table-cell">
493
+
494
+ <?php
495
+
496
+ if ($dimensions)
497
+ {
498
+ echo '<select data-placeholder="' . esc_html__('Pick dimension', 'better-analytics') . '" id="ba_dimension_year" name="better_analytics[dimension][year]" class="chosen-select">';
499
+
500
+ echo '<option value="">' . esc_html__('[none]', 'better-analytics') . '</option>';
501
+
502
+ foreach ($dimensions as $index => $name)
503
+ {
504
+ echo '<option value="' . $index . '"' . ($index == @$betterAnalyticsOptions['dimension']['year'] ? ' selected="selected"' : '') . '>' . htmlentities($name) . '</option>';
505
+ }
506
+ echo '</select>';
507
+
508
+ }
509
+ else
510
+ {
511
+ echo '<input type="number" name="better_analytics[dimension][year]"
512
+ id="ba_dimension_user" min="0" max="20" step="1"
513
+ value="' . esc_attr(intval(@$betterAnalyticsOptions['dimension']['year'])) . '"/>';
514
+ }
515
+
516
+ ?>
517
+
518
+ </div>
519
+ </div>
520
+
521
+ <div style="display:table-row">
522
+ <div style="display:table-cell;text-align:right;padding-right:10px;">
523
+ <label
524
+ for="ba_dimension_role"><?php esc_html_e('User Role: ', 'better-analytics');?></label>
525
+ </div>
526
+ <div style="display:table-cell">
527
+
528
+ <?php
529
+
530
+ if ($dimensions)
531
+ {
532
+ echo '<select data-placeholder="' . esc_html__('Pick dimension', 'better-analytics') . '" id="ba_dimension_role" name="better_analytics[dimension][role]" class="chosen-select">';
533
+
534
+ echo '<option value="">' . esc_html__('[none]', 'better-analytics') . '</option>';
535
+
536
+ foreach ($dimensions as $index => $name)
537
+ {
538
+ echo '<option value="' . $index . '"' . ($index == @$betterAnalyticsOptions['dimension']['role'] ? ' selected="selected"' : '') . '>' . htmlentities($name) . '</option>';
539
+ }
540
+ echo '</select>';
541
+
542
+ }
543
+ else
544
+ {
545
+ echo '<input type="number" name="better_analytics[dimension][role]"
546
+ id="ba_dimension_role" min="0" max="20" step="1"
547
+ value="' . esc_attr(intval(@$betterAnalyticsOptions['dimension']['role'])) . '"/>';
548
+ }
549
+
550
+ ?>
551
+
552
+ </div>
553
+ </div>
554
+
555
  <div style="display:table-row">
556
  <div style="display:table-cell;text-align:right;padding-right:10px;">
557
  <label
576
  }
577
  else
578
  {
579
+ echo '<input type="number" name="better_analytics[dimension][user]"
580
  id="ba_dimension_user" min="0" max="20" step="1"
581
+ value="' . esc_attr(intval(@$betterAnalyticsOptions['dimension']['user'])) . '"/>';
582
  }
583
 
584
  ?>
781
  }
782
  ?>
783
 
 
 
 
 
 
 
 
 
784
 
785
 
786
  <tr valign="top" class="group_api tab_content">
787
  <th scope="row"></th>
788
  <td>
 
 
 
 
 
789
 
790
+ <?php
791
+ if (get_site_option('ba_site_tokens') && get_site_option('ba_site_tokens') != get_option('ba_tokens'))
792
+ {
793
+ $multisiteMode = true;
794
+ esc_html_e('Multisite Mode: Analytics account linked at network level');
795
+ }
796
+ else
797
+ {
798
+ $multisiteMode = false;
799
+ ?>
800
 
801
+ <a id="ba_select_profile" class="button" href="<?php menu_page_url('better-analytics_auth'); ?>"><?php
802
+ get_option('ba_tokens') ? esc_html_e('Link/Authenticate A Different Google Analytics Account', 'better-analytics') : esc_html_e('Link/Authenticate Your Google Analytics Account', 'better-analytics');?></a>
803
+ <?php
804
+ }
805
+ ?>
806
  </td>
807
  </tr>
808
 
 
 
 
 
 
 
 
 
 
 
 
809
 
810
+ <?php
811
+ if (!$multisiteMode)
812
+ {
813
+ ?>
814
+ <tr valign="top" class="group_api tab_content">
815
+ <th scope="row"></th>
816
+ <td>
817
+ <fieldset>
818
+ <label for="ba_api_use_own">
819
+ <input name="better_analytics[api][use_own]" type="checkbox" id="ba_api_use_own"
820
+ value="1" <?php checked('1', @$betterAnalyticsOptions['api']['use_own']); ?>>
821
+ <?php esc_html_e('Use Your Own Project Credentials', 'better-analytics');?></label>
822
+ <span class="dashicons-before dashicons-info tooltip"
823
+ title="<?php echo htmlspecialchars(sprintf(__('If you have your own Google API Project that you wish to use, you can use your credentials for that web application.', 'better-analytics')));?>"></span>
824
+
825
+ </fieldset>
826
 
827
+ </td>
828
+ </tr>
829
+
830
+ <tr valign="top"
831
+ class="group_api tab_content api_hideable"<?php echo(!@$betterAnalyticsOptions['api']['use_own'] ? ' style="display:none"' : '')?>>
832
+ <td colspan="2">
833
+
834
+ <?php echo '<fieldset style="border:1px solid grey;margin:10px;padding:20px;"><legend style="padding:0 5px;font-weight:bold;font-size:120%">' . esc_html__('Configuration', 'better-analytics') . '</legend>' .
835
+ /* translators: %1$s = <strong>, %2$s = </strong> */
836
+ sprintf(__('Project needs to have the %1$sAnalytics API%2$s enabled under %1$sAPIs & auth -> APIs%2$s.', 'better_analytics'), '<strong>', '</strong>') . '<br /><br />' .
837
+ /* translators: %1$s = <strong>, %2$s = </strong> */
838
+ sprintf(__('Under %1$sAPIs & auth -> Credentials%2$s, you need to %1$sCreate new Client ID%2$s that is a %1$sWeb application%2$s with an authorized redirect URI of: %1$s%3$s%2$s', 'better-analytics'), '<strong>', '</strong>', menu_page_url('better-analytics_auth', false))
839
+ . '</fieldset>';?>
840
+ </td>
841
+ </tr>
842
 
 
 
 
 
 
 
843
 
844
+ <tr valign="top"
845
+ class="group_api tab_content api_hideable"<?php echo(!@$betterAnalyticsOptions['api']['use_own'] ? ' style="display:none"' : '')?>>
846
+ <th scope="row"><?php esc_html_e('Client ID', 'better-analytics');?></th>
847
+ <td>
848
+ <input type="text" name="better_analytics[api][client_id]" id="ba_api_client_id"
849
+ placeholder="0000000000.apps.googleusercontent.com"
850
+ value="<?php echo esc_attr(@$betterAnalyticsOptions['api']['client_id']); ?>"/>
851
+ </td>
852
+ </tr>
853
+
854
+ <tr valign="top"
855
+ class="group_api tab_content api_hideable"<?php echo(!@$betterAnalyticsOptions['api']['use_own'] ? ' style="display:none"' : '')?>>
856
+ <th scope="row"><?php esc_html_e('Client Secret', 'better-analytics');?></th>
857
+ <td>
858
+ <input type="text" name="better_analytics[api][client_secret]" id="ba_api_client_secret"
859
+ value="<?php echo esc_attr(@$betterAnalyticsOptions['api']['client_secret']); ?>"/>
860
+ </td>
861
+ </tr>
862
+ <?php
863
+ }
864
+ ?>
865
 
866
  <tr valign="top" class="group_advanced tab_content">
867
  <th scope="row"><?php esc_html_e('Roles To Not Track', 'better-analytics');?> <span class="dashicons-before dashicons-info tooltip" title="<?php esc_html_e('If a logged in user is part of one of these groups, Analytics will not track them.', 'better-analytics');?>"></span></th>
library/DigitalPointBetterAnalytics/ViewAdmin/config_network.php ADDED
@@ -0,0 +1,75 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ wp_enqueue_script('tooltipster_js', BETTER_ANALYTICS_PLUGIN_URL . 'assets/tooltipster/js/jquery.tooltipster.min.js', array(), BETTER_ANALYTICS_VERSION );
3
+ wp_enqueue_style('tooltipster_css', BETTER_ANALYTICS_PLUGIN_URL . 'assets/tooltipster/css/tooltipster.css', array(), BETTER_ANALYTICS_VERSION);
4
+
5
+ wp_enqueue_script('better-analytics_admin_js', BETTER_ANALYTICS_PLUGIN_URL . 'assets/digitalpoint/js/admin.js', array(), BETTER_ANALYTICS_VERSION );
6
+ wp_enqueue_style('better-analytics_admin_css', BETTER_ANALYTICS_PLUGIN_URL . 'assets/digitalpoint/css/admin.css', array(), BETTER_ANALYTICS_VERSION);
7
+
8
+ $betterAnalyticsSiteOptions = get_site_option('better_analytics_site');
9
+
10
+
11
+ ?>
12
+ <input type="hidden" id="ba_current_tab" value="api">
13
+ <h3><?php _e('Better Analytics Settings', 'better-analytics'); ?></h3>
14
+ <table id="menu" class="form-table">
15
+
16
+ <tr valign="top">
17
+ <th scope="row"></th>
18
+ <td>
19
+ <a id="ba_select_profile" class="button" href="<?php echo network_admin_url('settings.php?page=better-analytics_auth'); ?>"><?php
20
+ get_site_option('ba_site_tokens') ? esc_html_e('Link/Authenticate A Different Google Analytics Account', 'better-analytics') : esc_html_e('Link/Authenticate Your Google Analytics Account', 'better-analytics');
21
+ ?></a>
22
+
23
+ <?php
24
+ if (get_site_option('ba_site_tokens'))
25
+ {
26
+ echo ' &nbsp; <label for="ba_api_delete_tokens"><input name="better_analytics[api][delete_tokens]" type="checkbox" id="ba_api_delete_tokens" value="1"> ' . esc_html__('Delete Existing Tokens', 'better-analytics') . '</label>';
27
+ }
28
+ ?>
29
+
30
+ </td>
31
+ </tr>
32
+
33
+ <tr valign="top" class="group_api tab_content">
34
+ <th scope="row"></th>
35
+ <td>
36
+ <fieldset>
37
+ <label for="ba_api_use_own">
38
+ <input name="better_analytics[api][use_own]" type="checkbox" id="ba_api_use_own" value="1" <?php checked('1', @$betterAnalyticsSiteOptions['api']['use_own'] ); ?>>
39
+ <?php esc_html_e('Use Your Own Project Credentials', 'better-analytics');?></label>
40
+ <span class="dashicons-before dashicons-info tooltip" title="<?php echo htmlspecialchars(sprintf(__('If you have your own Google API Project that you wish to use, you can use your credentials for that web application.', 'better-analytics')));?>"></span>
41
+
42
+ </fieldset>
43
+
44
+ </td>
45
+ </tr>
46
+
47
+ <tr valign="top" class="group_api tab_content api_hideable"<?php echo (!@$betterAnalyticsSiteOptions['api']['use_own'] ? ' style="display:none"' : '')?>>
48
+ <td colspan="2">
49
+
50
+ <?php echo '<fieldset style="border:1px solid grey;margin:10px;padding:20px;"><legend style="padding:0 5px;font-weight:bold;font-size:120%">' . esc_html__('Configuration', 'better-analytics') . '</legend>' .
51
+ /* translators: %1$s = <strong>, %2$s = </strong> */
52
+ sprintf(__('Project needs to have the %1$sAnalytics API%2$s enabled under %1$sAPIs & auth -> APIs%2$s.', 'better_analytics'), '<strong>', '</strong>') . '<br /><br />' .
53
+ /* translators: %1$s = <strong>, %2$s = </strong> */
54
+ sprintf(__('Under %1$sAPIs & auth -> Credentials%2$s, you need to %1$sCreate new Client ID%2$s that is a %1$sWeb application%2$s with an authorized redirect URI of: %1$s%3$s%2$s', 'better-analytics'), '<strong>', '</strong>', self_admin_url('settings.php?page=better-analytics_auth'))
55
+ . '</fieldset>';?>
56
+ </td>
57
+ </tr>
58
+
59
+
60
+ <tr valign="top" class="group_api tab_content api_hideable"<?php echo (!@$betterAnalyticsSiteOptions['api']['use_own'] ? ' style="display:none"' : '')?>>
61
+ <th scope="row"><?php esc_html_e('Client ID', 'better-analytics');?></th>
62
+ <td>
63
+ <input type="text" name="better_analytics[api][client_id]" id="ba_api_client_id" placeholder="0000000000.apps.googleusercontent.com" value="<?php echo esc_attr( @$betterAnalyticsSiteOptions['api']['client_id'] ); ?>" />
64
+ </td>
65
+ </tr>
66
+
67
+ <tr valign="top" class="group_api tab_content api_hideable"<?php echo (!@$betterAnalyticsSiteOptions['api']['use_own'] ? ' style="display:none"' : '')?>>
68
+ <th scope="row"><?php esc_html_e('Client Secret', 'better-analytics');?></th>
69
+ <td>
70
+ <input type="text" name="better_analytics[api][client_secret]" id="ba_api_client_secret" value="<?php echo esc_attr( @$betterAnalyticsSiteOptions['api']['client_secret'] ); ?>" />
71
+ </td>
72
+ </tr>
73
+
74
+ <?php
75
+ echo '</table>';
library/DigitalPointBetterAnalytics/ViewAdmin/dashboard.php CHANGED
@@ -8,7 +8,7 @@ wp_enqueue_style('better_analytics_admin_css', BETTER_ANALYTICS_PLUGIN_URL . 'as
8
  $betterAnalyticsOptions = get_option('better_analytics');
9
  DigitalPointBetterAnalytics_Helper_Api::check();
10
 
11
- if (!get_option('ba_tokens') || !$betterAnalyticsOptions['api']['profile'])
12
  {
13
  printf(esc_html__('%1$sSet up API access%2$s to utilize Better Analytics charts.', 'better-analytics'),
14
  '<a href="' . esc_url(menu_page_url('better-analytics', false) . '#top#api') . '">',
8
  $betterAnalyticsOptions = get_option('better_analytics');
9
  DigitalPointBetterAnalytics_Helper_Api::check();
10
 
11
+ if (!DigitalPointBetterAnalytics_Base_Public::getInstance()->getTokens() || !$betterAnalyticsOptions['api']['profile'])
12
  {
13
  printf(esc_html__('%1$sSet up API access%2$s to utilize Better Analytics charts.', 'better-analytics'),
14
  '<a href="' . esc_url(menu_page_url('better-analytics', false) . '#top#api') . '">',
library/DigitalPointBetterAnalytics/ViewAdmin/test.php CHANGED
@@ -17,7 +17,7 @@
17
  $checks['level'] = @$property['level'];
18
  $checks['industryVertical'] = @$property['industryVertical'];
19
 
20
- $checks['dimensions'] = DigitalPointBetterAnalytics_Helper_Reporting::getInstance()->getDimensionsByPropertyId(@$checks['matchingProfile']['accountId'], $betterAnalyticsOptions['property_id'], array('Categories', 'Author', 'Tags', 'User'));
21
  }
22
 
23
  $checks['licensed'] = DigitalPointBetterAnalytics_Helper_Api::check(true);
@@ -71,7 +71,7 @@
71
  <tr valign="top">
72
  <th scope="row"><?php printf('<a href="%1$s" target="_blank">%2$s</a>:', menu_page_url('better-analytics', false) . '#top#api', esc_html__('Google Analytics Account Linked', 'better-analytics'));?></th>
73
  <?php
74
- echo (get_option('ba_tokens') ? '<td class="good">✓</td>' : '<td class="bad">✗</td>');
75
  ?>
76
  </tr>
77
 
@@ -86,7 +86,7 @@
86
 
87
  <th scope="row"><?php printf('<a href="%1$s" target="_blank">%2$s</a>:', 'https://www.google.com/analytics/web/?#management/Settings/', esc_html__('Site Search Setup', 'better-analytics'));?></th>
88
  <?php
89
- echo ($checks['siteSearchSetup'] ? '<td class="good">✓</td>' : '<td class="bad">✗</td>');
90
  ?>
91
  <td class="description">
92
  <?php
@@ -99,7 +99,7 @@
99
  <tr valign="top">
100
  <th scope="row"><?php printf('<a href="%1$s" target="_blank">%2$s</a>:', 'https://www.google.com/analytics/web/?#management/Settings/', esc_html__('Ecommerce Tracking Enabled', 'better-analytics'));?></th>
101
  <?php
102
- echo ($checks['ecommerceTracking'] ? '<td class="good">✓</td>' : '<td class="bad">✗</td>');
103
  ?>
104
  <td class="description">
105
 
@@ -113,7 +113,7 @@
113
  <tr valign="top">
114
  <th scope="row"><?php printf('<a href="%1$s" target="_blank">%2$s</a>:', 'https://www.google.com/analytics/web/?#management/Settings/', esc_html__('Enhanced Ecommerce Tracking Enabled', 'better-analytics'));?></th>
115
  <?php
116
- echo ($checks['enhancedEcommerceTracking'] ? '<td class="good">✓</td>' : '<td class="bad">✗</td>');
117
  ?>
118
  <td class="description">
119
  <?php
@@ -126,7 +126,7 @@
126
  <tr valign="top">
127
  <th scope="row"><?php printf('<a href="%1$s" target="_blank">%2$s</a>:', 'https://www.google.com/analytics/web/?#management/Settings/', esc_html__('Industry Vertical Set', 'better-analytics'));?></th>
128
  <?php
129
- echo ($checks['industryVertical'] && $checks['industryVertical'] != 'UNSPECIFIED' ? '<td class="good">✓</td>' : '<td class="bad">✗</td>');
130
  ?>
131
  <td class="description">
132
  <?php
@@ -139,7 +139,7 @@
139
  <tr valign="top">
140
  <th scope="row"><?php printf('<a href="%1$s" target="_blank">%2$s</a>:', 'https://www.google.com/analytics/web/?#management/Settings/', esc_html__('Custom Dimension For Category Tracking', 'better-analytics'));?></th>
141
  <?php
142
- echo ($checks['dimensions']['Categories'] ? '<td class="good">✓</td>' : '<td class="bad">✗</td>');
143
  ?>
144
  <td class="description">
145
  <?php
@@ -152,7 +152,7 @@
152
  <tr valign="top">
153
  <th scope="row"><?php printf('<a href="%1$s" target="_blank">%2$s</a>:', 'https://www.google.com/analytics/web/?#management/Settings/', esc_html__('Custom Dimension For Author Tracking', 'better-analytics'));?></th>
154
  <?php
155
- echo ($checks['dimensions']['Author'] ? '<td class="good">✓</td>' : '<td class="bad">✗</td>');
156
  ?>
157
 
158
  <td class="description">
@@ -167,7 +167,7 @@
167
  <tr valign="top">
168
  <th scope="row"><?php printf('<a href="%1$s" target="_blank">%2$s</a>:', 'https://www.google.com/analytics/web/?#management/Settings/', esc_html__('Custom Dimension For Tag Tracking', 'better-analytics'));?></th>
169
  <?php
170
- echo ($checks['dimensions']['Tags'] ? '<td class="good">✓</td>' : '<td class="bad">✗</td>');
171
  ?>
172
  <td class="description">
173
  <?php
@@ -177,10 +177,40 @@
177
  </td>
178
  </tr>
179
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
180
  <tr valign="top">
181
  <th scope="row"><?php printf('<a href="%1$s" target="_blank">%2$s</a>:', 'https://www.google.com/analytics/web/?#management/Settings/', esc_html__('Custom Dimension For User Tracking', 'better-analytics'));?></th>
182
  <?php
183
- echo ($checks['dimensions']['User'] ? '<td class="good">✓</td>' : '<td class="bad">✗</td>');
184
  ?>
185
  <td class="description">
186
 
@@ -195,7 +225,7 @@
195
 
196
  <th scope="row"><?php printf('<a href="%1$s" target="_blank">%2$s</a>:', menu_page_url('better-analytics', false) . '#top#dimensions', esc_html__('Category Tracking Dimension Index Set', 'better-analytics'));?></th>
197
  <?php
198
- echo ($betterAnalyticsOptions['dimension']['category'] > 0 && @$checks['dimensions']['Categories']['index'] == $betterAnalyticsOptions['dimension']['category'] ? '<td class="good">✓</td>' : '<td class="bad">✗</td>');
199
  ?>
200
  <td></td>
201
  </tr>
@@ -204,7 +234,7 @@
204
 
205
  <th scope="row"><?php printf('<a href="%1$s" target="_blank">%2$s</a>:', menu_page_url('better-analytics', false) . '#top#dimensions', esc_html__('Author Tracking Dimension Index Set', 'better-analytics'));?></th>
206
  <?php
207
- echo ($betterAnalyticsOptions['dimension']['author'] > 0 && @$checks['dimensions']['Author']['index'] == $betterAnalyticsOptions['dimension']['author'] ? '<td class="good">✓</td>' : '<td class="bad">✗</td>');
208
  ?>
209
  <td></td>
210
  </tr>
@@ -212,15 +242,32 @@
212
  <tr valign="top">
213
  <th scope="row"><?php printf('<a href="%1$s" target="_blank">%2$s</a>:', menu_page_url('better-analytics', false) . '#top#dimensions', esc_html__('Tag Tracking Dimension Index Set', 'better-analytics'));?></th>
214
  <?php
215
- echo ($betterAnalyticsOptions['dimension']['tag'] > 0 && @$checks['dimensions']['Tags']['index'] == $betterAnalyticsOptions['dimension']['tag'] ? '<td class="good">✓</td>' : '<td class="bad">✗</td>');
216
  ?>
217
  <td></td>
218
  </tr>
219
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
220
  <tr valign="top">
221
  <th scope="row"><?php printf('<a href="%1$s" target="_blank">%2$s</a>:', menu_page_url('better-analytics', false) . '#top#dimensions', esc_html__('Registered User Tracking Dimension Index Set', 'better-analytics'));?></th>
222
  <?php
223
- echo ($betterAnalyticsOptions['dimension']['user'] > 0 && @$checks['dimensions']['User']['index'] == $betterAnalyticsOptions['dimension']['user'] ? '<td class="good">✓</td>' : '<td class="bad">✗</td>');
224
  ?>
225
  <td></td>
226
  </tr>
17
  $checks['level'] = @$property['level'];
18
  $checks['industryVertical'] = @$property['industryVertical'];
19
 
20
+ $checks['dimensions'] = DigitalPointBetterAnalytics_Helper_Reporting::getInstance()->getDimensionsByPropertyId(@$checks['matchingProfile']['accountId'], $betterAnalyticsOptions['property_id'], array('Categories', 'Author', 'Tags', 'Year', 'Role', 'User'));
21
  }
22
 
23
  $checks['licensed'] = DigitalPointBetterAnalytics_Helper_Api::check(true);
71
  <tr valign="top">
72
  <th scope="row"><?php printf('<a href="%1$s" target="_blank">%2$s</a>:', menu_page_url('better-analytics', false) . '#top#api', esc_html__('Google Analytics Account Linked', 'better-analytics'));?></th>
73
  <?php
74
+ echo (DigitalPointBetterAnalytics_Base_Public::getInstance()->getTokens() ? '<td class="good">✓</td>' : '<td class="bad">✗</td>');
75
  ?>
76
  </tr>
77
 
86
 
87
  <th scope="row"><?php printf('<a href="%1$s" target="_blank">%2$s</a>:', 'https://www.google.com/analytics/web/?#management/Settings/', esc_html__('Site Search Setup', 'better-analytics'));?></th>
88
  <?php
89
+ echo (@$checks['siteSearchSetup'] ? '<td class="good">✓</td>' : '<td class="bad">✗</td>');
90
  ?>
91
  <td class="description">
92
  <?php
99
  <tr valign="top">
100
  <th scope="row"><?php printf('<a href="%1$s" target="_blank">%2$s</a>:', 'https://www.google.com/analytics/web/?#management/Settings/', esc_html__('Ecommerce Tracking Enabled', 'better-analytics'));?></th>
101
  <?php
102
+ echo (@$checks['ecommerceTracking'] ? '<td class="good">✓</td>' : '<td class="bad">✗</td>');
103
  ?>
104
  <td class="description">
105
 
113
  <tr valign="top">
114
  <th scope="row"><?php printf('<a href="%1$s" target="_blank">%2$s</a>:', 'https://www.google.com/analytics/web/?#management/Settings/', esc_html__('Enhanced Ecommerce Tracking Enabled', 'better-analytics'));?></th>
115
  <?php
116
+ echo (@$checks['enhancedEcommerceTracking'] ? '<td class="good">✓</td>' : '<td class="bad">✗</td>');
117
  ?>
118
  <td class="description">
119
  <?php
126
  <tr valign="top">
127
  <th scope="row"><?php printf('<a href="%1$s" target="_blank">%2$s</a>:', 'https://www.google.com/analytics/web/?#management/Settings/', esc_html__('Industry Vertical Set', 'better-analytics'));?></th>
128
  <?php
129
+ echo (!empty($checks['industryVertical']) && $checks['industryVertical'] != 'UNSPECIFIED' ? '<td class="good">✓</td>' : '<td class="bad">✗</td>');
130
  ?>
131
  <td class="description">
132
  <?php
139
  <tr valign="top">
140
  <th scope="row"><?php printf('<a href="%1$s" target="_blank">%2$s</a>:', 'https://www.google.com/analytics/web/?#management/Settings/', esc_html__('Custom Dimension For Category Tracking', 'better-analytics'));?></th>
141
  <?php
142
+ echo (!empty($checks['dimensions']['Categories']) ? '<td class="good">✓</td>' : '<td class="bad">✗</td>');
143
  ?>
144
  <td class="description">
145
  <?php
152
  <tr valign="top">
153
  <th scope="row"><?php printf('<a href="%1$s" target="_blank">%2$s</a>:', 'https://www.google.com/analytics/web/?#management/Settings/', esc_html__('Custom Dimension For Author Tracking', 'better-analytics'));?></th>
154
  <?php
155
+ echo (!empty($checks['dimensions']['Author']) ? '<td class="good">✓</td>' : '<td class="bad">✗</td>');
156
  ?>
157
 
158
  <td class="description">
167
  <tr valign="top">
168
  <th scope="row"><?php printf('<a href="%1$s" target="_blank">%2$s</a>:', 'https://www.google.com/analytics/web/?#management/Settings/', esc_html__('Custom Dimension For Tag Tracking', 'better-analytics'));?></th>
169
  <?php
170
+ echo (!empty($checks['dimensions']['Tags']) ? '<td class="good">✓</td>' : '<td class="bad">✗</td>');
171
  ?>
172
  <td class="description">
173
  <?php
177
  </td>
178
  </tr>
179
 
180
+ <tr valign="top">
181
+ <th scope="row"><?php printf('<a href="%1$s" target="_blank">%2$s</a>:', 'https://www.google.com/analytics/web/?#management/Settings/', esc_html__('Custom Dimension For Publication Year Tracking', 'better-analytics'));?></th>
182
+ <?php
183
+ echo (!empty($checks['dimensions']['Year']) ? '<td class="good">✓</td>' : '<td class="bad">✗</td>');
184
+ ?>
185
+ <td class="description">
186
+
187
+ <?php
188
+ /* translators: %1$s = <strong>, %2$s = </strong> ... %3$s can't be translated - leave */
189
+ printf(esc_html__('Found in Google Analytics account under %1$sCustom Definitions -> Custom Dimensions%2$s (should be named "%1$s%3$s%2$s" and scoped for "%1$sHit%2$s").', 'better-analytics'), '<strong>', '</strong>', 'Year');
190
+ ?>
191
+ </td>
192
+ </tr>
193
+
194
+ <tr valign="top">
195
+ <th scope="row"><?php printf('<a href="%1$s" target="_blank">%2$s</a>:', 'https://www.google.com/analytics/web/?#management/Settings/', esc_html__('Custom Dimension For User Role Tracking', 'better-analytics'));?></th>
196
+ <?php
197
+ echo (!empty($checks['dimensions']['Role']) ? '<td class="good">✓</td>' : '<td class="bad">✗</td>');
198
+ ?>
199
+ <td class="description">
200
+
201
+ <?php
202
+ /* translators: %1$s = <strong>, %2$s = </strong> ... %3$s can't be translated - leave */
203
+ printf(esc_html__('Found in Google Analytics account under %1$sCustom Definitions -> Custom Dimensions%2$s (should be named "%1$s%3$s%2$s" and scoped for "%1$sHit%2$s").', 'better-analytics'), '<strong>', '</strong>', 'Role');
204
+ ?>
205
+ </td>
206
+ </tr>
207
+
208
+
209
+
210
  <tr valign="top">
211
  <th scope="row"><?php printf('<a href="%1$s" target="_blank">%2$s</a>:', 'https://www.google.com/analytics/web/?#management/Settings/', esc_html__('Custom Dimension For User Tracking', 'better-analytics'));?></th>
212
  <?php
213
+ echo (!empty($checks['dimensions']['User']) ? '<td class="good">✓</td>' : '<td class="bad">✗</td>');
214
  ?>
215
  <td class="description">
216
 
225
 
226
  <th scope="row"><?php printf('<a href="%1$s" target="_blank">%2$s</a>:', menu_page_url('better-analytics', false) . '#top#dimensions', esc_html__('Category Tracking Dimension Index Set', 'better-analytics'));?></th>
227
  <?php
228
+ echo (@$betterAnalyticsOptions['dimension']['category'] > 0 && @$checks['dimensions']['Categories']['index'] == $betterAnalyticsOptions['dimension']['category'] ? '<td class="good">✓</td>' : '<td class="bad">✗</td>');
229
  ?>
230
  <td></td>
231
  </tr>
234
 
235
  <th scope="row"><?php printf('<a href="%1$s" target="_blank">%2$s</a>:', menu_page_url('better-analytics', false) . '#top#dimensions', esc_html__('Author Tracking Dimension Index Set', 'better-analytics'));?></th>
236
  <?php
237
+ echo (@$betterAnalyticsOptions['dimension']['author'] > 0 && @$checks['dimensions']['Author']['index'] == $betterAnalyticsOptions['dimension']['author'] ? '<td class="good">✓</td>' : '<td class="bad">✗</td>');
238
  ?>
239
  <td></td>
240
  </tr>
242
  <tr valign="top">
243
  <th scope="row"><?php printf('<a href="%1$s" target="_blank">%2$s</a>:', menu_page_url('better-analytics', false) . '#top#dimensions', esc_html__('Tag Tracking Dimension Index Set', 'better-analytics'));?></th>
244
  <?php
245
+ echo (@$betterAnalyticsOptions['dimension']['tag'] > 0 && @$checks['dimensions']['Tags']['index'] == $betterAnalyticsOptions['dimension']['tag'] ? '<td class="good">✓</td>' : '<td class="bad">✗</td>');
246
  ?>
247
  <td></td>
248
  </tr>
249
 
250
+ <tr valign="top">
251
+ <th scope="row"><?php printf('<a href="%1$s" target="_blank">%2$s</a>:', menu_page_url('better-analytics', false) . '#top#dimensions', esc_html__('Publication Year Tracking Dimension Index Set', 'better-analytics'));?></th>
252
+ <?php
253
+ echo (@$betterAnalyticsOptions['dimension']['year'] > 0 && @$checks['dimensions']['Year']['index'] == $betterAnalyticsOptions['dimension']['year'] ? '<td class="good">✓</td>' : '<td class="bad">✗</td>');
254
+ ?>
255
+ <td></td>
256
+ </tr>
257
+
258
+ <tr valign="top">
259
+ <th scope="row"><?php printf('<a href="%1$s" target="_blank">%2$s</a>:', menu_page_url('better-analytics', false) . '#top#dimensions', esc_html__('User Role Tracking Dimension Index Set', 'better-analytics'));?></th>
260
+ <?php
261
+ echo (@$betterAnalyticsOptions['dimension']['role'] > 0 && @$checks['dimensions']['Role']['index'] == $betterAnalyticsOptions['dimension']['role'] ? '<td class="good">✓</td>' : '<td class="bad">✗</td>');
262
+ ?>
263
+ <td></td>
264
+ </tr>
265
+
266
+
267
  <tr valign="top">
268
  <th scope="row"><?php printf('<a href="%1$s" target="_blank">%2$s</a>:', menu_page_url('better-analytics', false) . '#top#dimensions', esc_html__('Registered User Tracking Dimension Index Set', 'better-analytics'));?></th>
269
  <?php
270
+ echo (@$betterAnalyticsOptions['dimension']['user'] > 0 && @$checks['dimensions']['User']['index'] == $betterAnalyticsOptions['dimension']['user'] ? '<td class="good">✓</td>' : '<td class="bad">✗</td>');
271
  ?>
272
  <td></td>
273
  </tr>
library/DigitalPointBetterAnalytics/Widget/PopularPosts.php CHANGED
@@ -43,7 +43,7 @@ class DigitalPointBetterAnalytics_Widget_PopularPosts extends WP_Widget
43
 
44
  $betterAnalyticsOptions = get_option('better_analytics');
45
 
46
- if (!get_option('ba_tokens') || !$betterAnalyticsOptions['api']['profile'])
47
  {
48
  echo '<p>' . sprintf(esc_html__('No Linked Google Analytics Account (API access required for this widget). You can link one in the %1$sBetter Analytics API settings%2$s.', 'better-analytics'), '<a href="' . esc_url(menu_page_url('better-analytics', false) . '#top#api') . '">', '</a>') . '</p>';
49
  }
43
 
44
  $betterAnalyticsOptions = get_option('better_analytics');
45
 
46
+ if (!DigitalPointBetterAnalytics_Base_Public::getInstance()->getTokens() || !$betterAnalyticsOptions['api']['profile'])
47
  {
48
  echo '<p>' . sprintf(esc_html__('No Linked Google Analytics Account (API access required for this widget). You can link one in the %1$sBetter Analytics API settings%2$s.', 'better-analytics'), '<a href="' . esc_url(menu_page_url('better-analytics', false) . '#top#api') . '">', '</a>') . '</p>';
49
  }
library/DigitalPointBetterAnalytics/Widget/Stats.php CHANGED
@@ -47,7 +47,7 @@ class DigitalPointBetterAnalytics_Widget_Stats extends WP_Widget {
47
 
48
  $betterAnalyticsOptions = get_option('better_analytics');
49
 
50
- if (!get_option('ba_tokens') || !$betterAnalyticsOptions['api']['profile'])
51
  {
52
  echo '<p>' . sprintf(esc_html__('No Linked Google Analytics Account (API access required for this widget). You can link one in the %1$sBetter Analytics API settings%2$s.', 'better-analytics'), '<a href="' . esc_url(menu_page_url('better-analytics', false) . '#top#api') . '">', '</a>') . '</p>';
53
  }
47
 
48
  $betterAnalyticsOptions = get_option('better_analytics');
49
 
50
+ if (!DigitalPointBetterAnalytics_Base_Public::getInstance()->getTokens() || !$betterAnalyticsOptions['api']['profile'])
51
  {
52
  echo '<p>' . sprintf(esc_html__('No Linked Google Analytics Account (API access required for this widget). You can link one in the %1$sBetter Analytics API settings%2$s.', 'better-analytics'), '<a href="' . esc_url(menu_page_url('better-analytics', false) . '#top#api') . '">', '</a>') . '</p>';
53
  }
readme.txt CHANGED
@@ -4,7 +4,7 @@ Tags: analytics, google analytics, universal analytics, statistics, tracking, co
4
  Donate link: https://marketplace.digitalpoint.com/better-analytics.3354/item#utm_source=readme&utm_medium=wordpress&utm_campaign=plugin
5
  Requires at least: 3.8
6
  Tested up to: 4.2.2
7
- Stable tag: 1.0.3
8
  License: GPLv2
9
  License URI: https://www.gnu.org/licenses/gpl-2.0.html
10
 
@@ -32,7 +32,7 @@ Better Google Analytics uses lightweight (and client-side cacheable) JavaScript
32
  * File Downloads
33
  * Anonymize IPs
34
  * Demographic & Interest
35
- * Force Analytics Traffic Over SSL
36
  * RSS/Email Link Source Tracking
37
  * Advertising Ad Clicks
38
  * Page Not Found (404)
@@ -43,6 +43,8 @@ Better Google Analytics uses lightweight (and client-side cacheable) JavaScript
43
  * Categories
44
  * Author
45
  * Tags
 
 
46
  * User
47
 
48
  = Better Google Analytics Social Button Engagement Tracking: =
@@ -64,11 +66,11 @@ Better Google Analytics uses lightweight (and client-side cacheable) JavaScript
64
  = Better Google Analytics Advanced Features: =
65
 
66
  * Suppress Google Analytics Tracking By User Role
67
- * View Reports By User Role
68
  * Adjust Location Of Google Analytics Code
69
  * Google Analytics Campaign Tracking By Anchor or Parameters
70
  * Adjustable Analytics Sample Rate
71
- * Insert Your Own Custom JavaScript
72
  * Debugging Mode
73
 
74
  = Better Google Analytics Widgets Included: =
@@ -77,7 +79,7 @@ Better Google Analytics uses lightweight (and client-side cacheable) JavaScript
77
  * Statistics based on selectable Analytics metric
78
 
79
  > <strong>Better Analytics Pro</strong><br>
80
- > If you would like additional advanced functions, we offer a Pro version.
81
  >
82
  > * Additional ad networks for ad click tracking
83
  > * More options for site issue monitoring
@@ -92,23 +94,26 @@ Better Google Analytics uses lightweight (and client-side cacheable) JavaScript
92
 
93
  == Installation ==
94
  1. Upload `better-analytics` folder to the `/wp-content/plugins/` directory.
95
- 1. Activate the Better Analytics plugin through the 'Plugins' menu in the WordPress admin area.
96
  1. Add your Google Analytics Web Property ID under the 'Settings -> Better Analytics' area of the WordPress admin.
97
  1. Optional (but probably a good idea so you don't double report your traffic inside Google Analytics) - disable any other Google Analytics code you have enabled.
98
 
99
  == Frequently Asked Questions ==
100
  = What are the requirements of the Better Analytics plugin? =
101
- You need a WordPress site (of course) and a Google Analytics account (which is [free over here](http://www.google.com/analytics/) if you don't already have a Google Analytics account).
102
 
103
  = Can Better Analytics be used with legacy Google Analytics code? =
104
  No, the Better Analytics plugin is for Google Universal Analytics. You can upgrade any old non-Universal Google Analytics property to support both legacy and Universal under your [Google Analytics Property Settings](https://www.google.com/analytics/web/?#management/Settings/).
105
 
106
- = Can you add [insert feature here] to Better Analytics? =
107
- If it's possible and it makes sense, then yes. The best way to put in a feature request for Better Analytics would be to create a thread in the [support forum over here](https://forums.digitalpoint.com/forums/better-analytics.31/#utm_source=readme&utm_medium=wordpress&utm_campaign=plugin).
108
 
109
  = I speak a language that isn't supported by Better Analytics, can I help translate it? =
110
  Yes. Unfortunately we don't speak every language in the world, so if you would like to help with translating the Better Google Analytics plugin, please contact us in the [support forum over here](https://forums.digitalpoint.com/forums/better-analytics.31/#utm_source=readme&utm_medium=wordpress&utm_campaign=plugin).
111
 
 
 
 
112
  = Do you have access to our Google Analytics data? =
113
  In no way, shape, or form do we have access to your Google Analytics data.
114
 
@@ -117,11 +122,11 @@ The way OAuth2 works with your Google Analytics account, it wouldn't be possible
117
 
118
  == CDN ==
119
 
120
- The JavaScript used by Better Analytics should be able to be cached properly by content delivery networks (it has been tested with CloudFlare). This means if your site uses CloudFlare, the JavaScript code used by Google Analytics will be cached in their data centers and delivered to end users via the closest data center (long story short is that it will make for a faster user experience).
121
 
122
  == Thanks ==
123
 
124
- Thank you to all the individuals who have contributed translations for Better Analytics:
125
 
126
  * Indonesian: [Arick](http://www.developingwp.com/#utm_source=readme&utm_medium=wordpress&utm_campaign=plugin)
127
 
@@ -133,19 +138,27 @@ Thank you to all the individuals who have contributed translations for Better An
133
  4. Google Analytics dashboard showing sessions by date for the last 3 months.
134
  5. One of ~1,000 metric/segment combinations for Google Analytics weekly heat maps (showing all sessions for the last 4 weeks).
135
  6. Stacked area percent charts of your Google Analytics data allow you to see historical changes (browser usage for the last 10 years shows the rise of Chrome and the fall of Internet Explorer).
136
- 7. Better Analytics event report shows things like external links being clicked, YouTube video engagement, comments being created, etc. You are able to correlate that data against any other metrics from your Google Analytics account. For example maybe you wanted to see what countries users are in that watch YouTube videos.
137
- 8. Better Analytics issue monitoring report alerts to you client-side issues with your site. Things like invalid pages being accessed (404), JavaScript errors, images not loading, embedded YouTube videos that the author removed, etc.
138
  9. An automated system that is able to check your Google Analytics account and helps you configure your Google Analytics web property settings properly is included.
139
- 10. Better Analytics includes an optional front-end widget that shows popular pages/posts being viewed right now (data comes from Google Analytics Real Time API).
140
- 11. Better Analytics includes an optional front-end widget that allows you to display your Google Analytics stats based on any metric you wish.
141
- 12. Better Analytics General settings allows you to enable/disable all sorts of tracking features in your Google Analytics account.
142
- 13. Google Analytics custom dimension tracking allows you to track categories, authors, tags and registered users.
143
  14. Social button engagement allows you to track things like Likes/Unlikes/Tweets/Shares right within your Google Analytics account.
144
  15. Track clicks on the ads on your site within your Google Analytics account.
145
  16. Issue monitoring settings allow you to utilize your Google Analytics account to keep on top of client-side issues with your site.
146
  17. Advanced settings allow you to fine tune how the system works with Google Analytics.
147
 
148
  == Changelog ==
 
 
 
 
 
 
 
 
149
  = 1.0.3 =
150
  * Enhancement: Custom Dimensions settings generates a drop-down list of custom dimensions defined within Google Analytics account (if you have a Google Analytics account linked via API)
151
  * Translation: Added a few missed phrases to WordPress translation system
4
  Donate link: https://marketplace.digitalpoint.com/better-analytics.3354/item#utm_source=readme&utm_medium=wordpress&utm_campaign=plugin
5
  Requires at least: 3.8
6
  Tested up to: 4.2.2
7
+ Stable tag: 1.0.4
8
  License: GPLv2
9
  License URI: https://www.gnu.org/licenses/gpl-2.0.html
10
 
32
  * File Downloads
33
  * Anonymize IPs
34
  * Demographic & Interest
35
+ * Force Google Analytics Traffic Over SSL
36
  * RSS/Email Link Source Tracking
37
  * Advertising Ad Clicks
38
  * Page Not Found (404)
43
  * Categories
44
  * Author
45
  * Tags
46
+ * Publication Year
47
+ * User Role
48
  * User
49
 
50
  = Better Google Analytics Social Button Engagement Tracking: =
66
  = Better Google Analytics Advanced Features: =
67
 
68
  * Suppress Google Analytics Tracking By User Role
69
+ * View Analytics Reports By User Role
70
  * Adjust Location Of Google Analytics Code
71
  * Google Analytics Campaign Tracking By Anchor or Parameters
72
  * Adjustable Analytics Sample Rate
73
+ * Insert Your Own Custom Google Analytics JavaScript
74
  * Debugging Mode
75
 
76
  = Better Google Analytics Widgets Included: =
79
  * Statistics based on selectable Analytics metric
80
 
81
  > <strong>Better Analytics Pro</strong><br>
82
+ > If you would like additional advanced functions for Google Analytics, we offer a Pro version.
83
  >
84
  > * Additional ad networks for ad click tracking
85
  > * More options for site issue monitoring
94
 
95
  == Installation ==
96
  1. Upload `better-analytics` folder to the `/wp-content/plugins/` directory.
97
+ 1. Activate the Better Google Analytics plugin through the 'Plugins' menu in the WordPress admin area.
98
  1. Add your Google Analytics Web Property ID under the 'Settings -> Better Analytics' area of the WordPress admin.
99
  1. Optional (but probably a good idea so you don't double report your traffic inside Google Analytics) - disable any other Google Analytics code you have enabled.
100
 
101
  == Frequently Asked Questions ==
102
  = What are the requirements of the Better Analytics plugin? =
103
+ You need a WordPress site (of course) running WordPress 3.8 or higher and a Google Analytics account (which is [free over here](http://www.google.com/analytics/) if you don't already have a Google Analytics account).
104
 
105
  = Can Better Analytics be used with legacy Google Analytics code? =
106
  No, the Better Analytics plugin is for Google Universal Analytics. You can upgrade any old non-Universal Google Analytics property to support both legacy and Universal under your [Google Analytics Property Settings](https://www.google.com/analytics/web/?#management/Settings/).
107
 
108
+ = Can you add [insert feature here] to Better Google Analytics? =
109
+ If it's possible and it makes sense, then yes. The best way to put in a feature request for Better Google Analytics would be to create a thread in the [support forum over here](https://forums.digitalpoint.com/forums/better-analytics.31/#utm_source=readme&utm_medium=wordpress&utm_campaign=plugin).
110
 
111
  = I speak a language that isn't supported by Better Analytics, can I help translate it? =
112
  Yes. Unfortunately we don't speak every language in the world, so if you would like to help with translating the Better Google Analytics plugin, please contact us in the [support forum over here](https://forums.digitalpoint.com/forums/better-analytics.31/#utm_source=readme&utm_medium=wordpress&utm_campaign=plugin).
113
 
114
+ = Does Better Google Analytics Support A WordPress Multisite Network? =
115
+ Yes, you can install the Better Google Analytics plugin for a single site in the network or for all sites in the network. Additionally, you can optionally link a single Google Analytics account for all sites in the network (or you can link unique Google Analytics accounts for each site in the network... either way, it's up to you).
116
+
117
  = Do you have access to our Google Analytics data? =
118
  In no way, shape, or form do we have access to your Google Analytics data.
119
 
122
 
123
  == CDN ==
124
 
125
+ The JavaScript used by Better Google Analytics should be able to be cached properly by content delivery networks (it has been tested with CloudFlare). This means if your site uses CloudFlare, the JavaScript code used by Google Analytics will be cached in their data centers and delivered to end users via the closest data center (long story short is that it will make for a faster user experience).
126
 
127
  == Thanks ==
128
 
129
+ Thank you to all the individuals who have contributed translations for Better Google Analytics:
130
 
131
  * Indonesian: [Arick](http://www.developingwp.com/#utm_source=readme&utm_medium=wordpress&utm_campaign=plugin)
132
 
138
  4. Google Analytics dashboard showing sessions by date for the last 3 months.
139
  5. One of ~1,000 metric/segment combinations for Google Analytics weekly heat maps (showing all sessions for the last 4 weeks).
140
  6. Stacked area percent charts of your Google Analytics data allow you to see historical changes (browser usage for the last 10 years shows the rise of Chrome and the fall of Internet Explorer).
141
+ 7. Better Google Analytics event report shows things like external links being clicked, YouTube video engagement, comments being created, etc. You are able to correlate that data against any other metrics from your Google Analytics account. For example maybe you wanted to see what countries users are in that watch YouTube videos.
142
+ 8. Better Google Analytics issue monitoring report alerts to you client-side issues with your site. Things like invalid pages being accessed (404), JavaScript errors, images not loading, embedded YouTube videos that the author removed, etc.
143
  9. An automated system that is able to check your Google Analytics account and helps you configure your Google Analytics web property settings properly is included.
144
+ 10. Better Google Analytics includes an optional front-end widget that shows popular pages/posts being viewed right now (data comes from Google Analytics Real Time API).
145
+ 11. Better Google Analytics includes an optional front-end widget that allows you to display your Google Analytics stats based on any metric you wish.
146
+ 12. Better Google Analytics General settings allows you to enable/disable all sorts of tracking features in your Google Analytics account.
147
+ 13. Google Google Analytics custom dimension tracking allows you to track categories, authors, tags, publication year, user roles and registered users.
148
  14. Social button engagement allows you to track things like Likes/Unlikes/Tweets/Shares right within your Google Analytics account.
149
  15. Track clicks on the ads on your site within your Google Analytics account.
150
  16. Issue monitoring settings allow you to utilize your Google Analytics account to keep on top of client-side issues with your site.
151
  17. Advanced settings allow you to fine tune how the system works with Google Analytics.
152
 
153
  == Changelog ==
154
+ = 1.0.4 =
155
+ * Bug: Fixed cosmetic formatting issue on settings page when on very thin screens (responsive mobile)
156
+ * Feature: Added new Google Analytics Custom Dimension tracking option (Publication Year)
157
+ * Feature: Added new Google Analytics Custom Dimension tracking option (User Role)
158
+ * Feature: Added ability to optionally have a single linked Google Analytics account for all sites in a multisite network setup
159
+ * Feature: Added ability to specify a custom Google Analytics API project ID for a multisite network (similar to how you can already for a single site)
160
+ * Added "Verify Domain" link to plugin page when Pro version is installed on an unknown domain
161
+
162
  = 1.0.3 =
163
  * Enhancement: Custom Dimensions settings generates a drop-down list of custom dimensions defined within Google Analytics account (if you have a Google Analytics account linked via API)
164
  * Translation: Added a few missed phrases to WordPress translation system