Better Google Analytics - Version 1.0.7

Version Description

  • Feature: Added support for tracking RevContent ad clicks
  • Feature: Manage Google Analytics Goals from within WordPress admin area (create, edit, enable, disable, etc.)
  • Feature: Google Analytics Goal management includes all four types of goals (destination URL [including optional funnels], session duration, page views per session, events)
  • Change: Google Analytics Goal management requires different Google Analytics API credentials (needs edit access)
  • Change: Option to Auto-Configure Google Analytics account no longer requires a separate permissions request since the base Google Analytics account permissions now include edit access
  • Note: You can authenticate for the new Google Analytics permissions under Analytics -> Settings -> API -> Link/Authenticate A Different Google Analytics Account
  • Note: If you do not authenticate your Google Analytics account for new permissions, all existing features you have always had will continue to work just fine (it's only needed when trying to edit/add new Google Analytics Goals from within the WordPress admin)
Download this release

Release Info

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

Code changes from version 1.0.6 to 1.0.7

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 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 .can_auto_config{background-color:lightgoldenrodyellow}#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 .can_auto_config{background-color:lightgoldenrodyellow}#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}.goals tbody,.goals tbody th.check-column{padding:8px 0 0 2px}.goals .inactive .check-column,.goals tfoot th.check-column,.goals thead th.check-column{padding-left:6px}.goals .active .check-column{border-left:4px solid #00d2a0}.goals .active td,.goals .active th{background-color:#f7fefc}.goals .column-value{min-width:55px}.goals td{padding-bottom:0}.optional{padding-left:5px;font-weight:normal;font-size:75%;position:relative;top:-3px;color:chocolate}.extra_info td{padding-top:0;padding-bottom:8px}.funnel ol{counter-reset:item;list-style-type:none;margin-left:0}.funnel li:before{content:counter(item) " ";counter-increment:item;font-size:16px;font-weight:bold}.funnel .delete{position:relative;top:2px;color:lightgrey}.funnel .delete:hover{color:red;cursor:pointer}.funnel li:first-child .delete{display:none}.VISIT_TIME_ON_SITE input,.VISIT_NUM_PAGES input{width:75px}.VISIT_TIME_ON_SITE td>div,.VISIT_NUM_PAGES td>div,.EVENT td>div{display:table}.VISIT_TIME_ON_SITE td>div>div,.VISIT_NUM_PAGES td>div>div,.EVENT td>div>div{display:table-row}.VISIT_TIME_ON_SITE td>div>div>span,.VISIT_NUM_PAGES td>div>div>span,.EVENT td>div>div>span{display:table-cell}.dynamic_options{display:none}.EVENT div>span:first-of-type{text-align:right;padding-right:5px}
assets/digitalpoint/js/admin.js CHANGED
@@ -1,23 +1,25 @@
1
- var BetterAnalyticsAdmin={};jQuery.easing.easeOutExpo=function(a,g,f,k,b){return g==b?f+k:k*(-Math.pow(2,-10*g/b)+1)+f};
2
- !function(a,g,f,k){BetterAnalyticsAdmin.Admin=function(){this.__construct()};BetterAnalyticsAdmin.Admin.prototype={__construct:function(){a(f).ready(function(){a("#better-analytics_tabs.nav-tab-wrapper").length&&BetterAnalyticsAdmin._Admin.init_tabs();"function"==typeof a().tooltipster&&a(".tooltip").tooltipster({contentAsHTML:!0,animation:"grow",interactive:!0,speed:150,maxWidth:600,theme:"tooltipster-better_analytics"});"function"==typeof a().chosen&&(a(".chosen-charts").chosen({search_contains:!0,
3
  width:"80%"}),a(".chosen-select").not("#ba_pick_profile").chosen({search_contains:!0,width:"100%"}),a("#ba_pick_profile.chosen-select").chosen({search_contains:!0,width:"70%"}));a("#ba_realtime").on("change",function(){this.checked?(a("#ba_history select").prop("disabled",!0),a("#ba_history").css("color","grey")):(a("#ba_history select").prop("disabled",!1),a("#ba_history").css("color","inherit"))});a("#ba_api_use_own").length&&(a("#ba_api_use_own").on("change",function(){BetterAnalyticsAdmin._Admin.toggle_credentials()}),
4
  BetterAnalyticsAdmin._Admin.toggle_credentials());a("#ba_pick_profile").on("change",function(){a(this).val()&&a("#ba_property_id").val(a(this).val())});a("#dashboard-widgets #better-analytics select").length&&(a("#dashboard-widgets #better-analytics select,#dashboard-widgets #better-analytics input").on("change",function(){BetterAnalyticsAdmin._Admin.chart_draw()}),BetterAnalyticsAdmin._Admin.chart_draw());a("#Heatmap").length&&(BetterAnalyticsAdmin._Admin.heatmap_draw(),a("#Heatmap + form #parameters input,#Heatmap + form #parameters select").on("change",
5
- function(){BetterAnalyticsAdmin._Admin.get_new_heatmap_data()}));a("#area_chart").length&&(BetterAnalyticsAdmin._Admin.get_new_area_chart_data(),a("#area_chart + form #parameters input,#area_chart + form #parameters select").on("change",function(){BetterAnalyticsAdmin._Admin.get_new_area_chart_data()}));a(".ba_monitor_form").length&&(BetterAnalyticsAdmin._Admin.get_new_monitor_data(),a(".ba_monitor_form input").on("change",function(){BetterAnalyticsAdmin._Admin.get_new_monitor_data()}))})},init_tabs:function(){var b=
6
- g.location.hash.slice(5);b||(b=a(".nav-tab:first").prop("id").slice(0,-4));BetterAnalyticsAdmin._Admin.select_tab(b);a("#better-analytics_tabs a").each(function(){a(this).on("click",BetterAnalyticsAdmin._Admin.select_tab)})},select_tab:function(b){b="object"===typeof b?a(b.currentTarget.hash.slice(4)+"-tab"):a("#"+b+"-tab");try{a("#ba_current_tab").val(a(b).prop("id").slice(0,-4))}catch(f){a("#ba_current_tab").val("general")}a(".nav-tab").removeClass("nav-tab-active");b.addClass("nav-tab-active");
7
- a(".tab_content").css("display","none");a(".group_"+a("#ba_current_tab").val()).not(".api_hideable").fadeIn();BetterAnalyticsAdmin._Admin.toggle_credentials();a(".group_"+a("#ba_current_tab").val()+" .pro").length?a("#better-analytics_sidebar .pro").fadeIn():a("#better-analytics_sidebar .pro").fadeOut()},min:999999999,max:0,range:0,toggle_credentials:function(){a("#ba_api_use_own").prop("checked")&&"api"==a("#ba_current_tab").val()?a(".api_hideable").fadeIn():a(".api_hideable").fadeOut()},heatmap_draw:function(){BetterAnalyticsAdmin._Admin.min=
8
- 999999999;BetterAnalyticsAdmin._Admin.max=0;a(".cell[data-val]").each(function(b,f){var c=a(f).data("val");BetterAnalyticsAdmin._Admin.min>c&&(BetterAnalyticsAdmin._Admin.min=c);BetterAnalyticsAdmin._Admin.max<c&&(BetterAnalyticsAdmin._Admin.max=c)});BetterAnalyticsAdmin._Admin.range=BetterAnalyticsAdmin._Admin.max-BetterAnalyticsAdmin._Admin.min;a(".cell[data-val]").each(function(b,f){var c=a(f).data("val");a(f).css("opacity",0==BetterAnalyticsAdmin._Admin.range?1:(c-BetterAnalyticsAdmin._Admin.min)/
9
- BetterAnalyticsAdmin._Admin.range)})},get_new_heatmap_data:function(){a(".ba_error").remove();a("#chart_loading").css("opacity",1);a.ajax(ajaxurl,{method:"POST",data:{action:"better-analytics_heatmaps",metric:a("#ba_metric").val(),segment:a("#ba_segment").val(),weeks:a("#ba_weeks").val(),end:a("#ba_end").val(),page_path:a("#ba_page_path").val()},complete:function(){a("#chart_loading").css("opacity",0)}}).done(function(b,f){void 0===b.error?(a.each(b.heatmap_data,function(b,e){a.each(e,function(d,
10
- e){a("#slot"+b+"-"+d).data("val",e)})}),BetterAnalyticsAdmin._Admin.heatmap_draw()):BetterAnalyticsAdmin._Admin.hasResponseError(b,f)})},get_new_area_chart_data:function(){a(".ba_error").remove();a("#chart_loading").css("opacity",1);a.ajax(ajaxurl,{method:"POST",data:{action:"better-analytics_area_charts",dimension:a("#ba_dimension").val(),time_frame:a("#ba_time_frame").val(),scope:a("#ba_scope").val(),minimum:a("#ba_minimum").val(),chart_type:a("input[name=chart_type]:checked").val(),page_path:a("#ba_page_path").val()},
11
- complete:function(){a("#chart_loading").css("opacity",0)}}).done(function(b,h){if(void 0===b.error){a.each(b.chart_data,function(a,c){0<a&&(dateString=String(c[0]),8==dateString.length?b.chart_data[a][0]=new Date(dateString.slice(0,4),dateString.slice(4,6)-1,dateString.slice(6,8)):6==dateString.length&&(b.chart_data[a][0]=new Date(dateString.slice(0,4),dateString.slice(4,6)-1)))});var c=google.visualization.arrayToDataTable(b.chart_data),e=new google.visualization.NumberFormat({fractionDigits:0});
12
- a.each(b.chart_data[0],function(a,b){0<a&&e.format(c,a)});var d={title:b.title,isStacked:b.chart_type,hAxis:{format:""},legend:{position:"bottom"},backgroundColor:"transparent",width:a("#area_chart").width(),height:.6*a("#area_chart").width()};(new google.visualization.AreaChart(f.getElementById("area_chart"))).draw(c,d)}else BetterAnalyticsAdmin._Admin.hasResponseError(b,h)})},get_new_monitor_data:function(){a(".ba_error").remove();a("#chart_loading").css("opacity",1);a.ajax(ajaxurl,{method:"POST",
13
- data:{action:"better-analytics_"+a("#ba_monitor").data("type"),days:a("#ba_days").val(),page_path:a("#ba_page_path").val()},complete:function(){a("#chart_loading").css("opacity",0)}}).done(function(b,h){if(void 0===b.error){if("object"==typeof b.chart_data){var c=google.visualization.arrayToDataTable(b.chart_data);(new google.visualization.NumberFormat({fractionDigits:0})).format(c,1);var e={width:a("#ba_monitor").width(),allowHtml:!0,page:"enable",pageSize:25};(new google.visualization.Table(f.getElementById("ba_monitor"))).draw(c,
14
- e)}}else BetterAnalyticsAdmin._Admin.hasResponseError(b,h)})},last_timeout_id:null,chart_draw:function(){a.ajax(ajaxurl,{method:"POST",data:{action:"better-analytics_charts",metric:a("#ba_metric").val(),dimension:a("#ba_dimension").val(),days:a("#ba_days").val(),realtime:a("#ba_realtime").prop("checked")?1:0}}).done(function(b,h){if(void 0===b.error)if("object"==typeof b.realtime_data?(BetterAnalyticsAdmin._Admin.last_timeout_id=setTimeout(BetterAnalyticsAdmin._Admin.chart_draw,6E4),a("#ba_chart").slideUp(),
15
- a("#ba_realtime_charts").slideDown()):(clearTimeout(BetterAnalyticsAdmin._Admin.last_timeout_id),a("#ba_realtime_charts").slideUp(),a("#ba_chart").slideDown()),"object"==typeof b.realtime_data){var c=b.realtime_data.users,e=c-a("#ba_rt_users .number").data("number");a("#ba_rt_users .number").data("number",c);0!=e&&(a("#ba_rt_users .number").addClass(0<e?"up":"down"),setTimeout("jQuery('#ba_rt_users .number').removeClass('up down')",1));a("#ba_rt_users .number").animate({val:parseInt(c)},{easing:"easeOutExpo",
16
- duration:5E3,step:function(b){a(this).html(parseInt(b).toString().replace(/\B(?=(\d{3})+(?!\d))/g,","))}});if("object"==typeof b.realtime_data.country){var c=google.visualization.arrayToDataTable(b.realtime_data.country),d=new google.visualization.NumberFormat({fractionDigits:0});d.format(c,1);e={title:b.realtime_data.devices[0][0],animation:{startup:!0},width:a("#ba_rt_map").width(),height:.7*a("#ba_rt_map").width()};d=new google.visualization.GeoChart(f.getElementById("ba_rt_map"));d.draw(c,e)}"object"==
17
- typeof b.realtime_data.medium&&(c=google.visualization.arrayToDataTable(b.realtime_data.medium),d=new google.visualization.NumberFormat({fractionDigits:0}),d.format(c,1),e={title:b.realtime_data.medium[0][0],is3D:!0,animation:{startup:!0},width:a("#ba_rt_medium").width(),height:.7*a("#ba_rt_medium").width()},d=new google.visualization.PieChart(f.getElementById("ba_rt_medium")),d.draw(c,e));"object"==typeof b.realtime_data.devices&&(c=google.visualization.arrayToDataTable(b.realtime_data.devices),
18
- d=new google.visualization.NumberFormat({fractionDigits:0}),d.format(c,1),e={title:b.realtime_data.devices[0][0],is3D:!0,animation:{startup:!0},width:a("#ba_rt_device").width(),height:.7*a("#ba_rt_device").width()},d=new google.visualization.PieChart(f.getElementById("ba_rt_device")),d.draw(c,e));e={width:a("#ba_rt_keywords").width(),allowHtml:!0,page:"enable"};"object"==typeof b.realtime_data.keywords&&(c=google.visualization.arrayToDataTable(b.realtime_data.keywords),d=new google.visualization.NumberFormat({fractionDigits:0}),
19
- d.format(c,1),d=new google.visualization.Table(f.getElementById("ba_rt_keywords")),d.draw(c,e));"object"==typeof b.realtime_data.referral_path&&(a.each(b.realtime_data.referral_path,function(a,c){0<a&&"(not set)"!=c[0]&&(b.realtime_data.referral_path[a]=['<a href="http://'+c[0]+'" target="_blank">'+c[0]+"</a>",c[1]])}),c=google.visualization.arrayToDataTable(b.realtime_data.referral_path),d=new google.visualization.Table(f.getElementById("ba_rt_referral_path")),d.draw(c,e));"object"==typeof b.realtime_data.page_path&&
20
- (a.each(b.realtime_data.page_path,function(a,c){0<a&&"(not set)"!=c[0]&&(b.realtime_data.page_path[a]=['<a href="'+c[0]+'" target="_blank">'+c[0]+"</a>",c[1]])}),c=google.visualization.arrayToDataTable(b.realtime_data.page_path),d=new google.visualization.Table(f.getElementById("ba_rt_page_path")),d.draw(c,e))}else if("p"==b.type)c=google.visualization.arrayToDataTable(b.chart_data),d=new google.visualization.NumberFormat({fractionDigits:0}),d.format(c,1),e={title:b.title,is3D:!0,animation:{startup:!0},
21
- width:a("#ba_chart").width(),height:.7*a("#ba_chart").width()},d=new google.visualization.PieChart(f.getElementById("ba_chart")),d.draw(c,e);else if("l"==b.type){var g=[];a.each(b.chart_data,function(a,b){0<a?(dateString=String(b[0]),g[a]=[new Date(dateString.slice(0,4),dateString.slice(4,6)-1,dateString.slice(6,8)),Number(b[1])]):g[a]=[b[0],b[1]]});c=google.visualization.arrayToDataTable(g);d=new google.visualization.NumberFormat({fractionDigits:0});d.format(c,1);e={animation:{startup:!0},width:a("#ba_chart").width(),
22
- height:.7*a("#ba_chart").width(),legend:{position:"bottom"}};d=new google.visualization.LineChart(f.getElementById("ba_chart"));d.draw(c,e)}else"g"==b.type&&(c=google.visualization.arrayToDataTable(b.chart_data),d=new google.visualization.NumberFormat({fractionDigits:0}),d.format(c,1),e={title:b.title,animation:{startup:!0},width:a("#ba_chart").width(),height:.7*a("#ba_chart").width()},d=new google.visualization.GeoChart(f.getElementById("ba_chart")),d.draw(c,e));else BetterAnalyticsAdmin._Admin.hasResponseError(b,
23
- h)})},hasResponseError:function(b,f){a('<div class="ba_error">'+b.error+'<input type="submit" class="dismiss button button-primary" value="Okay"></div>').appendTo("body");a(".ba_error .dismiss").on("click",function(){a(this).closest(".ba_error").remove()});console.log(b.error)}};BetterAnalyticsAdmin._Admin=new BetterAnalyticsAdmin.Admin}(jQuery,this,document);
 
 
1
+ var BetterAnalyticsAdmin={};jQuery.easing.easeOutExpo=function(a,g,e,h,b){return g==b?e+h:h*(-Math.pow(2,-10*g/b)+1)+e};
2
+ !function(a,g,e,h){BetterAnalyticsAdmin.Admin=function(){this.__construct()};BetterAnalyticsAdmin.Admin.prototype={__construct:function(){a(e).ready(function(){a("#better-analytics_tabs.nav-tab-wrapper").length&&BetterAnalyticsAdmin._Admin.init_tabs();"function"==typeof a().tooltipster&&a(".tooltip").tooltipster({contentAsHTML:!0,animation:"grow",interactive:!0,speed:150,maxWidth:600,theme:"tooltipster-better_analytics"});"function"==typeof a().chosen&&(a(".chosen-charts").chosen({search_contains:!0,
3
  width:"80%"}),a(".chosen-select").not("#ba_pick_profile").chosen({search_contains:!0,width:"100%"}),a("#ba_pick_profile.chosen-select").chosen({search_contains:!0,width:"70%"}));a("#ba_realtime").on("change",function(){this.checked?(a("#ba_history select").prop("disabled",!0),a("#ba_history").css("color","grey")):(a("#ba_history select").prop("disabled",!1),a("#ba_history").css("color","inherit"))});a("#ba_api_use_own").length&&(a("#ba_api_use_own").on("change",function(){BetterAnalyticsAdmin._Admin.toggle_credentials()}),
4
  BetterAnalyticsAdmin._Admin.toggle_credentials());a("#ba_pick_profile").on("change",function(){a(this).val()&&a("#ba_property_id").val(a(this).val())});a("#dashboard-widgets #better-analytics select").length&&(a("#dashboard-widgets #better-analytics select,#dashboard-widgets #better-analytics input").on("change",function(){BetterAnalyticsAdmin._Admin.chart_draw()}),BetterAnalyticsAdmin._Admin.chart_draw());a("#Heatmap").length&&(BetterAnalyticsAdmin._Admin.heatmap_draw(),a("#Heatmap + form #parameters input,#Heatmap + form #parameters select").on("change",
5
+ function(){BetterAnalyticsAdmin._Admin.get_new_heatmap_data()}));a("#area_chart").length&&(BetterAnalyticsAdmin._Admin.get_new_area_chart_data(),a("#area_chart + form #parameters input,#area_chart + form #parameters select").on("change",function(){BetterAnalyticsAdmin._Admin.get_new_area_chart_data()}));a(".ba_monitor_form").length&&(BetterAnalyticsAdmin._Admin.get_new_monitor_data(),a(".ba_monitor_form input").on("change",function(){BetterAnalyticsAdmin._Admin.get_new_monitor_data()}));if(a(".goals").length&&
6
+ history.pushState){var b=g.location.search.indexOf("&id=");0<b&&(b=g.location.origin+g.location.pathname+g.location.search.substring(0,b),history.pushState({url:b},e.title,b))}a(".goal_create").length&&(BetterAnalyticsAdmin._Admin.bind_funnel_delete(),a("#new_step").on("click",BetterAnalyticsAdmin._Admin.bind_funnel_add),a("#ba_type").on("change",BetterAnalyticsAdmin._Admin.goal_type_change),BetterAnalyticsAdmin._Admin.goal_type_change())})},init_tabs:function(){var b=g.location.hash.slice(5);b||
7
+ (b=a(".nav-tab:first").prop("id").slice(0,-4));BetterAnalyticsAdmin._Admin.select_tab(b);a("#better-analytics_tabs a").each(function(){a(this).on("click",BetterAnalyticsAdmin._Admin.select_tab)})},select_tab:function(b){b="object"===typeof b?a(b.currentTarget.hash.slice(4)+"-tab"):a("#"+b+"-tab");try{a("#ba_current_tab").val(a(b).prop("id").slice(0,-4))}catch(e){a("#ba_current_tab").val("general")}a(".nav-tab").removeClass("nav-tab-active");b.addClass("nav-tab-active");a(".tab_content").css("display",
8
+ "none");a(".group_"+a("#ba_current_tab").val()).not(".api_hideable").fadeIn();BetterAnalyticsAdmin._Admin.toggle_credentials();a(".group_"+a("#ba_current_tab").val()+" .pro").length?a("#better-analytics_sidebar .pro").fadeIn():a("#better-analytics_sidebar .pro").fadeOut()},bind_funnel_delete:function(){a(".funnel .delete").each(function(){a(this).off("click").on("click",function(){a(this).closest("li").fadeOut(400,function(){a(this).remove()})})})},bind_funnel_add:function(){a(".funnel li.funnel_step:first").clone(!0).hide().appendTo(".funnel ol").fadeIn(400).find("input").attr("value",
9
+ "").last().parent().remove()},goal_type_change:function(){a(".dynamic_options").fadeOut(400);a("."+a("#ba_type").val()).fadeIn(400)},min:999999999,max:0,range:0,toggle_credentials:function(){a("#ba_api_use_own").prop("checked")&&"api"==a("#ba_current_tab").val()?a(".api_hideable").fadeIn():a(".api_hideable").fadeOut()},heatmap_draw:function(){BetterAnalyticsAdmin._Admin.min=999999999;BetterAnalyticsAdmin._Admin.max=0;a(".cell[data-val]").each(function(b,e){var c=a(e).data("val");BetterAnalyticsAdmin._Admin.min>
10
+ c&&(BetterAnalyticsAdmin._Admin.min=c);BetterAnalyticsAdmin._Admin.max<c&&(BetterAnalyticsAdmin._Admin.max=c)});BetterAnalyticsAdmin._Admin.range=BetterAnalyticsAdmin._Admin.max-BetterAnalyticsAdmin._Admin.min;a(".cell[data-val]").each(function(b,e){var c=a(e).data("val");a(e).css("opacity",0==BetterAnalyticsAdmin._Admin.range?1:(c-BetterAnalyticsAdmin._Admin.min)/BetterAnalyticsAdmin._Admin.range)})},get_new_heatmap_data:function(){a(".ba_error").remove();a("#chart_loading").css("opacity",1);a.ajax(ajaxurl,
11
+ {method:"POST",data:{action:"better-analytics_heatmaps",metric:a("#ba_metric").val(),segment:a("#ba_segment").val(),weeks:a("#ba_weeks").val(),end:a("#ba_end").val(),page_path:a("#ba_page_path").val()},complete:function(){a("#chart_loading").css("opacity",0)}}).done(function(b,e){void 0===b.error?(a.each(b.heatmap_data,function(b,e){a.each(e,function(d,e){a("#slot"+b+"-"+d).data("val",e)})}),BetterAnalyticsAdmin._Admin.heatmap_draw()):BetterAnalyticsAdmin._Admin.hasResponseError(b,e)})},get_new_area_chart_data:function(){a(".ba_error").remove();
12
+ a("#chart_loading").css("opacity",1);a.ajax(ajaxurl,{method:"POST",data:{action:"better-analytics_area_charts",dimension:a("#ba_dimension").val(),time_frame:a("#ba_time_frame").val(),scope:a("#ba_scope").val(),minimum:a("#ba_minimum").val(),chart_type:a("input[name=chart_type]:checked").val(),page_path:a("#ba_page_path").val()},complete:function(){a("#chart_loading").css("opacity",0)}}).done(function(b,g){if(void 0===b.error){a.each(b.chart_data,function(a,c){0<a&&(dateString=String(c[0]),8==dateString.length?
13
+ b.chart_data[a][0]=new Date(dateString.slice(0,4),dateString.slice(4,6)-1,dateString.slice(6,8)):6==dateString.length&&(b.chart_data[a][0]=new Date(dateString.slice(0,4),dateString.slice(4,6)-1)))});var c=google.visualization.arrayToDataTable(b.chart_data),f=new google.visualization.NumberFormat({fractionDigits:0});a.each(b.chart_data[0],function(a,b){0<a&&f.format(c,a)});var d={title:b.title,isStacked:b.chart_type,hAxis:{format:""},legend:{position:"bottom"},backgroundColor:"transparent",width:a("#area_chart").width(),
14
+ height:.6*a("#area_chart").width()};(new google.visualization.AreaChart(e.getElementById("area_chart"))).draw(c,d)}else BetterAnalyticsAdmin._Admin.hasResponseError(b,g)})},get_new_monitor_data:function(){a(".ba_error").remove();a("#chart_loading").css("opacity",1);a.ajax(ajaxurl,{method:"POST",data:{action:"better-analytics_"+a("#ba_monitor").data("type"),days:a("#ba_days").val(),page_path:a("#ba_page_path").val()},complete:function(){a("#chart_loading").css("opacity",0)}}).done(function(b,g){if(void 0===
15
+ b.error){if("object"==typeof b.chart_data){var c=google.visualization.arrayToDataTable(b.chart_data);(new google.visualization.NumberFormat({fractionDigits:0})).format(c,1);var f={width:a("#ba_monitor").width(),allowHtml:!0,page:"enable",pageSize:25};(new google.visualization.Table(e.getElementById("ba_monitor"))).draw(c,f)}}else BetterAnalyticsAdmin._Admin.hasResponseError(b,g)})},last_timeout_id:null,chart_draw:function(){a.ajax(ajaxurl,{method:"POST",data:{action:"better-analytics_charts",metric:a("#ba_metric").val(),
16
+ dimension:a("#ba_dimension").val(),days:a("#ba_days").val(),realtime:a("#ba_realtime").prop("checked")?1:0}}).done(function(b,g){if(void 0===b.error)if("object"==typeof b.realtime_data?(BetterAnalyticsAdmin._Admin.last_timeout_id=setTimeout(BetterAnalyticsAdmin._Admin.chart_draw,6E4),a("#ba_chart").slideUp(),a("#ba_realtime_charts").slideDown()):(clearTimeout(BetterAnalyticsAdmin._Admin.last_timeout_id),a("#ba_realtime_charts").slideUp(),a("#ba_chart").slideDown()),"object"==typeof b.realtime_data){var c=
17
+ b.realtime_data.users,f=c-a("#ba_rt_users .number").data("number");a("#ba_rt_users .number").data("number",c);0!=f&&(a("#ba_rt_users .number").addClass(0<f?"up":"down"),setTimeout("jQuery('#ba_rt_users .number').removeClass('up down')",1));a("#ba_rt_users .number").animate({val:parseInt(c)},{easing:"easeOutExpo",duration:5E3,step:function(b){a(this).html(parseInt(b).toString().replace(/\B(?=(\d{3})+(?!\d))/g,","))}});if("object"==typeof b.realtime_data.country){var c=google.visualization.arrayToDataTable(b.realtime_data.country),
18
+ d=new google.visualization.NumberFormat({fractionDigits:0});d.format(c,1);f={title:b.realtime_data.devices[0][0],animation:{startup:!0},width:a("#ba_rt_map").width(),height:.7*a("#ba_rt_map").width()};d=new google.visualization.GeoChart(e.getElementById("ba_rt_map"));d.draw(c,f)}"object"==typeof b.realtime_data.medium&&(c=google.visualization.arrayToDataTable(b.realtime_data.medium),d=new google.visualization.NumberFormat({fractionDigits:0}),d.format(c,1),f={title:b.realtime_data.medium[0][0],is3D:!0,
19
+ animation:{startup:!0},width:a("#ba_rt_medium").width(),height:.7*a("#ba_rt_medium").width()},d=new google.visualization.PieChart(e.getElementById("ba_rt_medium")),d.draw(c,f));"object"==typeof b.realtime_data.devices&&(c=google.visualization.arrayToDataTable(b.realtime_data.devices),d=new google.visualization.NumberFormat({fractionDigits:0}),d.format(c,1),f={title:b.realtime_data.devices[0][0],is3D:!0,animation:{startup:!0},width:a("#ba_rt_device").width(),height:.7*a("#ba_rt_device").width()},d=
20
+ new google.visualization.PieChart(e.getElementById("ba_rt_device")),d.draw(c,f));f={width:a("#ba_rt_keywords").width(),allowHtml:!0,page:"enable"};"object"==typeof b.realtime_data.keywords&&(c=google.visualization.arrayToDataTable(b.realtime_data.keywords),d=new google.visualization.NumberFormat({fractionDigits:0}),d.format(c,1),d=new google.visualization.Table(e.getElementById("ba_rt_keywords")),d.draw(c,f));"object"==typeof b.realtime_data.referral_path&&(a.each(b.realtime_data.referral_path,function(a,
21
+ c){0<a&&"(not set)"!=c[0]&&(b.realtime_data.referral_path[a]=['<a href="http://'+c[0]+'" target="_blank">'+c[0]+"</a>",c[1]])}),c=google.visualization.arrayToDataTable(b.realtime_data.referral_path),d=new google.visualization.Table(e.getElementById("ba_rt_referral_path")),d.draw(c,f));"object"==typeof b.realtime_data.page_path&&(a.each(b.realtime_data.page_path,function(a,c){0<a&&"(not set)"!=c[0]&&(b.realtime_data.page_path[a]=['<a href="'+c[0]+'" target="_blank">'+c[0]+"</a>",c[1]])}),c=google.visualization.arrayToDataTable(b.realtime_data.page_path),
22
+ d=new google.visualization.Table(e.getElementById("ba_rt_page_path")),d.draw(c,f))}else if("p"==b.type)c=google.visualization.arrayToDataTable(b.chart_data),d=new google.visualization.NumberFormat({fractionDigits:0}),d.format(c,1),f={title:b.title,is3D:!0,animation:{startup:!0},width:a("#ba_chart").width(),height:.7*a("#ba_chart").width()},d=new google.visualization.PieChart(e.getElementById("ba_chart")),d.draw(c,f);else if("l"==b.type){var h=[];a.each(b.chart_data,function(a,b){0<a?(dateString=String(b[0]),
23
+ h[a]=[new Date(dateString.slice(0,4),dateString.slice(4,6)-1,dateString.slice(6,8)),Number(b[1])]):h[a]=[b[0],b[1]]});c=google.visualization.arrayToDataTable(h);d=new google.visualization.NumberFormat({fractionDigits:0});d.format(c,1);f={animation:{startup:!0},width:a("#ba_chart").width(),height:.7*a("#ba_chart").width(),legend:{position:"bottom"}};d=new google.visualization.LineChart(e.getElementById("ba_chart"));d.draw(c,f)}else"g"==b.type&&(c=google.visualization.arrayToDataTable(b.chart_data),
24
+ d=new google.visualization.NumberFormat({fractionDigits:0}),d.format(c,1),f={title:b.title,animation:{startup:!0},width:a("#ba_chart").width(),height:.7*a("#ba_chart").width()},d=new google.visualization.GeoChart(e.getElementById("ba_chart")),d.draw(c,f));else BetterAnalyticsAdmin._Admin.hasResponseError(b,g)})},hasResponseError:function(b,e){a('<div class="ba_error">'+b.error+'<input type="submit" class="dismiss button button-primary" value="Okay"></div>').appendTo("body");a(".ba_error .dismiss").on("click",
25
+ function(){a(this).closest(".ba_error").remove()});console.log(b.error)}};BetterAnalyticsAdmin._Admin=new BetterAnalyticsAdmin.Admin}(jQuery,this,document);
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.6
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.6');
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.7
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.7');
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
@@ -137,7 +137,8 @@ $jsonOptions['a'] =
137
  (@$betterAnalyticsOptions['ads']['adsense'] ? 2 : 0) +
138
  (@$betterAnalyticsOptions['ads']['outbrain'] ? 4 : 0) +
139
  (@$betterAnalyticsOptions['ads']['taboola'] ? 8 : 0) +
140
- (@$betterAnalyticsOptions['ads']['digitalpoint'] ? 16 : 0)
 
141
  ;
142
 
143
  if (!empty($betterAnalyticsOptions['dimension']['category']) && $baCategories)
137
  (@$betterAnalyticsOptions['ads']['adsense'] ? 2 : 0) +
138
  (@$betterAnalyticsOptions['ads']['outbrain'] ? 4 : 0) +
139
  (@$betterAnalyticsOptions['ads']['taboola'] ? 8 : 0) +
140
+ (@$betterAnalyticsOptions['ads']['digitalpoint'] ? 16 : 0) +
141
+ (@$betterAnalyticsOptions['ads']['revcontent'] ? 32 : 0)
142
  ;
143
 
144
  if (!empty($betterAnalyticsOptions['dimension']['category']) && $baCategories)
languages/better-analytics.pot CHANGED
@@ -2,9 +2,9 @@
2
  # This file is distributed under the same license as the Better Analytics package.
3
  msgid ""
4
  msgstr ""
5
- "Project-Id-Version: Better Analytics 1.0.5\n"
6
  "Report-Msgid-Bugs-To: https://wordpress.org/support/plugin/better-analytics\n"
7
- "POT-Creation-Date: 2015-07-06 18:42:28+00:00\n"
8
  "MIME-Version: 1.0\n"
9
  "Content-Type: text/plain; charset=UTF-8\n"
10
  "Content-Transfer-Encoding: 8bit\n"
@@ -17,7 +17,7 @@ msgid "Test Analytics Setup"
17
  msgstr ""
18
 
19
  #: library/DigitalPointBetterAnalytics/Base/Admin.php:88
20
- #: library/DigitalPointBetterAnalytics/Base/Admin.php:109
21
  msgid "OAuth2 Endpoint"
22
  msgstr ""
23
 
@@ -54,92 +54,97 @@ msgid "Events"
54
  msgstr ""
55
 
56
  #: library/DigitalPointBetterAnalytics/Base/Admin.php:100
57
- #: library/DigitalPointBetterAnalytics/Base/Admin.php:121
58
- #: library/DigitalPointBetterAnalytics/Base/Admin.php:221
 
 
 
 
 
59
  msgid "Settings"
60
  msgstr ""
61
 
62
- #: library/DigitalPointBetterAnalytics/Base/Admin.php:101
63
  msgid "Test Setup"
64
  msgstr ""
65
 
66
- #. #-#-#-#-# plugin.pot (Better Analytics 1.0.5) #-#-#-#-#
67
  #. Plugin Name of the plugin/theme
68
- #: library/DigitalPointBetterAnalytics/Base/Admin.php:103
69
- #: library/DigitalPointBetterAnalytics/Base/Admin.php:196
70
- #: library/DigitalPointBetterAnalytics/Base/Admin.php:362
71
- #: library/DigitalPointBetterAnalytics/Base/Admin.php:405
72
  #: library/DigitalPointBetterAnalytics/ViewAdmin/config.php:27
73
  msgid "Better Analytics"
74
  msgstr ""
75
 
76
- #: library/DigitalPointBetterAnalytics/Base/Admin.php:132
77
  msgid "Pro version not up to date."
78
  msgstr ""
79
 
80
- #: library/DigitalPointBetterAnalytics/Base/Admin.php:133
81
  msgid "Installed:"
82
  msgstr ""
83
 
84
- #: library/DigitalPointBetterAnalytics/Base/Admin.php:135
85
  msgid "Latest:"
86
  msgstr ""
87
 
88
- #: library/DigitalPointBetterAnalytics/Base/Admin.php:140
89
  msgid "Pro version installed"
90
  msgstr ""
91
 
92
- #: library/DigitalPointBetterAnalytics/Base/Admin.php:144
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:151
99
  msgid "Pro version not installed."
100
  msgstr ""
101
 
102
- #: library/DigitalPointBetterAnalytics/Base/Admin.php:221
103
  msgid "Google Analytics Web Property ID not selected."
104
  msgstr ""
105
 
106
- #: library/DigitalPointBetterAnalytics/Base/Admin.php:228
107
  msgid "Google Analytics account not linked for API functions."
108
  msgstr ""
109
 
110
- #: library/DigitalPointBetterAnalytics/Base/Admin.php:228
111
  msgid "API Settings"
112
  msgstr ""
113
 
114
- #: library/DigitalPointBetterAnalytics/Base/Admin.php:235
115
  msgid "Google Analytics account not yet configured."
116
  msgstr ""
117
 
118
- #: library/DigitalPointBetterAnalytics/Base/Admin.php:235
119
  msgid "Test Setup / Auto-Configure"
120
  msgstr ""
121
 
122
- #: library/DigitalPointBetterAnalytics/Base/Admin.php:241
123
  msgid "Last Analytics Error:"
124
  msgstr ""
125
 
126
- #: library/DigitalPointBetterAnalytics/Base/Admin.php:276
127
  msgid "Invalid method:"
128
  msgstr ""
129
 
130
- #: library/DigitalPointBetterAnalytics/Base/Admin.php:301
131
  msgid "Invalid Google API Code:"
132
  msgstr ""
133
 
134
- #: library/DigitalPointBetterAnalytics/Base/Admin.php:307
135
  msgid "Unknown Google API Error:"
136
  msgstr ""
137
 
138
- #: library/DigitalPointBetterAnalytics/Base/Admin.php:360
139
  msgid "Overview"
140
  msgstr ""
141
 
142
- #: library/DigitalPointBetterAnalytics/Base/Admin.php:363
143
  msgid ""
144
  "At the most basic level, it will automatically add Google Analytics "
145
  "Universal code to your website. It gives you the flexibility to track "
@@ -147,76 +152,76 @@ msgid ""
147
  "engagement (and everything in between)."
148
  msgstr ""
149
 
150
- #: library/DigitalPointBetterAnalytics/Base/Admin.php:370
151
- #: library/DigitalPointBetterAnalytics/Base/Admin.php:384
152
  msgid "Pro"
153
  msgstr ""
154
 
155
- #: library/DigitalPointBetterAnalytics/Base/Admin.php:372
156
  msgid "Pro Version"
157
  msgstr ""
158
 
159
- #: library/DigitalPointBetterAnalytics/Base/Admin.php:373
160
  msgid ""
161
  "There is a Pro version of this plugin that gives you a few added features. "
162
  "More metrics/dimensions, more tracking options, etc."
163
  msgstr ""
164
 
165
- #: library/DigitalPointBetterAnalytics/Base/Admin.php:381
166
  msgid "For more information:"
167
  msgstr ""
168
 
169
- #: library/DigitalPointBetterAnalytics/Base/Admin.php:382
170
  msgid "Info"
171
  msgstr ""
172
 
173
- #: library/DigitalPointBetterAnalytics/Base/Admin.php:383
174
- #: library/DigitalPointBetterAnalytics/Base/Admin.php:424
175
  msgid "Support"
176
  msgstr ""
177
 
178
- #: library/DigitalPointBetterAnalytics/Base/Admin.php:396
179
  msgid "colossal"
180
  msgstr ""
181
 
182
- #: library/DigitalPointBetterAnalytics/Base/Admin.php:396
183
  msgid "elephantine"
184
  msgstr ""
185
 
186
- #: library/DigitalPointBetterAnalytics/Base/Admin.php:396
187
  msgid "glorious"
188
  msgstr ""
189
 
190
- #: library/DigitalPointBetterAnalytics/Base/Admin.php:396
191
  msgid "grand"
192
  msgstr ""
193
 
194
- #: library/DigitalPointBetterAnalytics/Base/Admin.php:396
195
  msgid "huge"
196
  msgstr ""
197
 
198
- #: library/DigitalPointBetterAnalytics/Base/Admin.php:396
199
  msgid "mighty"
200
  msgstr ""
201
 
202
- #: library/DigitalPointBetterAnalytics/Base/Admin.php:396
203
  msgid "WTF?"
204
  msgstr ""
205
 
206
- #: library/DigitalPointBetterAnalytics/Base/Admin.php:396
207
  msgid "sexy"
208
  msgstr ""
209
 
210
- #: library/DigitalPointBetterAnalytics/Base/Admin.php:404
211
  msgid ""
212
  "If you like %1$s, please leave us a %2$s rating. A %3$s thank you in advance!"
213
  msgstr ""
214
 
215
- #: library/DigitalPointBetterAnalytics/Base/Admin.php:424
216
  msgid "Visit Support Forum"
217
  msgstr ""
218
 
219
- #: library/DigitalPointBetterAnalytics/Base/Admin.php:429
220
  msgid "Verify Domain"
221
  msgstr ""
222
 
@@ -247,7 +252,7 @@ msgid "Current Page"
247
  msgstr ""
248
 
249
  #: library/DigitalPointBetterAnalytics/ControllerAdmin/Analytics.php:39
250
- #: library/DigitalPointBetterAnalytics/ControllerAdmin/Analytics.php:532
251
  #: library/DigitalPointBetterAnalytics/Model/Reporting.php:184
252
  msgid "Medium"
253
  msgstr ""
@@ -311,11 +316,13 @@ msgstr ""
311
 
312
  #: library/DigitalPointBetterAnalytics/ControllerAdmin/Analytics.php:384
313
  #: library/DigitalPointBetterAnalytics/ControllerAdmin/Analytics.php:442
 
314
  msgid "Category"
315
  msgstr ""
316
 
317
  #: library/DigitalPointBetterAnalytics/ControllerAdmin/Analytics.php:385
318
  #: library/DigitalPointBetterAnalytics/ControllerAdmin/Analytics.php:443
 
319
  msgid "Type"
320
  msgstr ""
321
 
@@ -324,91 +331,173 @@ msgstr ""
324
  msgid "Detail"
325
  msgstr ""
326
 
327
- #: library/DigitalPointBetterAnalytics/ControllerAdmin/Analytics.php:477
328
  msgid "No Linked Google Analytics Account."
329
  msgstr ""
330
 
331
- #: library/DigitalPointBetterAnalytics/ControllerAdmin/Analytics.php:479
332
  msgid "You can link one in the Better Analytics API settings."
333
  msgstr ""
334
 
335
- #: library/DigitalPointBetterAnalytics/ControllerAdmin/Analytics.php:504
336
  msgid "Date"
337
  msgstr ""
338
 
339
- #: library/DigitalPointBetterAnalytics/ControllerAdmin/Analytics.php:508
340
  msgid "Categories"
341
  msgstr ""
342
 
343
- #: library/DigitalPointBetterAnalytics/ControllerAdmin/Analytics.php:512
344
  msgid "Authors"
345
  msgstr ""
346
 
347
- #: library/DigitalPointBetterAnalytics/ControllerAdmin/Analytics.php:516
348
  msgid "Tags"
349
  msgstr ""
350
 
351
- #: library/DigitalPointBetterAnalytics/ControllerAdmin/Analytics.php:520
352
  msgid "Publication Year"
353
  msgstr ""
354
 
355
- #: library/DigitalPointBetterAnalytics/ControllerAdmin/Analytics.php:524
356
  msgid "User Role"
357
  msgstr ""
358
 
359
- #: library/DigitalPointBetterAnalytics/ControllerAdmin/Analytics.php:526
360
  #: library/DigitalPointBetterAnalytics/Model/Reporting.php:191
361
  msgid "Browser"
362
  msgstr ""
363
 
364
- #: library/DigitalPointBetterAnalytics/ControllerAdmin/Analytics.php:527
365
  #: library/DigitalPointBetterAnalytics/Model/Reporting.php:192
366
  msgid "Operating System"
367
  msgstr ""
368
 
369
- #: library/DigitalPointBetterAnalytics/ControllerAdmin/Analytics.php:528
370
  #: library/DigitalPointBetterAnalytics/Model/Reporting.php:199
371
  msgid "Device Category"
372
  msgstr ""
373
 
374
- #: library/DigitalPointBetterAnalytics/ControllerAdmin/Analytics.php:529
375
  #: library/DigitalPointBetterAnalytics/Model/Reporting.php:183
376
  msgid "Source"
377
  msgstr ""
378
 
379
- #: library/DigitalPointBetterAnalytics/ControllerAdmin/Analytics.php:530
380
  msgid "Referrer"
381
  msgstr ""
382
 
383
- #: library/DigitalPointBetterAnalytics/ControllerAdmin/Analytics.php:533
384
  #: library/DigitalPointBetterAnalytics/Model/Reporting.php:204
385
  msgid "Country"
386
  msgstr ""
387
 
388
- #: library/DigitalPointBetterAnalytics/ControllerAdmin/Analytics.php:550
389
  #: library/DigitalPointBetterAnalytics/Model/Reporting.php:44
390
  msgid "Page Views"
391
  msgstr ""
392
 
393
- #: library/DigitalPointBetterAnalytics/ControllerAdmin/Analytics.php:551
394
  #: library/DigitalPointBetterAnalytics/Model/Reporting.php:14
395
  msgid "Sessions"
396
  msgstr ""
397
 
398
- #: library/DigitalPointBetterAnalytics/ControllerAdmin/Analytics.php:552
399
  #: library/DigitalPointBetterAnalytics/Model/Reporting.php:9
400
  msgid "Users"
401
  msgstr ""
402
 
403
- #: library/DigitalPointBetterAnalytics/ControllerAdmin/Analytics.php:553
404
  msgid "Session Length"
405
  msgstr ""
406
 
407
- #: library/DigitalPointBetterAnalytics/ControllerAdmin/Analytics.php:554
408
  #: library/DigitalPointBetterAnalytics/Model/Reporting.php:20
409
  msgid "Organic Search"
410
  msgstr ""
411
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
412
  #: library/DigitalPointBetterAnalytics/Helper/Reporting.php:78
413
  msgid "No API tokens to refresh."
414
  msgstr ""
@@ -419,6 +508,56 @@ msgid ""
419
  "%2$s. \"Create an account\" is on the upper right of that page."
420
  msgstr ""
421
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
422
  #: library/DigitalPointBetterAnalytics/Model/Reporting.php:8
423
  #: library/DigitalPointBetterAnalytics/Model/Reporting.php:173
424
  msgid "User"
@@ -630,37 +769,37 @@ msgid "File Downloads"
630
  msgstr ""
631
 
632
  #: library/DigitalPointBetterAnalytics/Model/Reporting.php:70
633
- #: library/DigitalPointBetterAnalytics/ViewAdmin/config.php:674
634
  msgid "Images Not Loading"
635
  msgstr ""
636
 
637
  #: library/DigitalPointBetterAnalytics/Model/Reporting.php:71
638
- #: library/DigitalPointBetterAnalytics/ViewAdmin/config.php:669
639
  msgid "Page Not Found (404)"
640
  msgstr ""
641
 
642
  #: library/DigitalPointBetterAnalytics/Model/Reporting.php:72
643
- #: library/DigitalPointBetterAnalytics/ViewAdmin/config.php:710
644
  msgid "AJAX Requests"
645
  msgstr ""
646
 
647
  #: library/DigitalPointBetterAnalytics/Model/Reporting.php:73
648
- #: library/DigitalPointBetterAnalytics/ViewAdmin/config.php:681
649
  msgid "JavaScript Errors"
650
  msgstr ""
651
 
652
  #: library/DigitalPointBetterAnalytics/Model/Reporting.php:74
653
- #: library/DigitalPointBetterAnalytics/ViewAdmin/config.php:686
654
  msgid "AJAX Errors"
655
  msgstr ""
656
 
657
  #: library/DigitalPointBetterAnalytics/Model/Reporting.php:75
658
- #: library/DigitalPointBetterAnalytics/ViewAdmin/config.php:690
659
  msgid "Browser Console Errors"
660
  msgstr ""
661
 
662
  #: library/DigitalPointBetterAnalytics/Model/Reporting.php:76
663
- #: library/DigitalPointBetterAnalytics/ViewAdmin/config.php:694
664
  msgid "YouTube Errors"
665
  msgstr ""
666
 
@@ -736,7 +875,7 @@ msgid "Default Segments"
736
  msgstr ""
737
 
738
  #: library/DigitalPointBetterAnalytics/Model/Reporting.php:134
739
- #: library/DigitalPointBetterAnalytics/ViewAdmin/config.php:965
740
  msgid "Everything"
741
  msgstr ""
742
 
@@ -857,6 +996,7 @@ msgid "Days Since Last Visit"
857
  msgstr ""
858
 
859
  #: library/DigitalPointBetterAnalytics/Model/Reporting.php:179
 
860
  msgid "Session Duration"
861
  msgstr ""
862
 
@@ -1166,12 +1306,12 @@ msgid "Google Analytics Web Property ID"
1166
  msgstr ""
1167
 
1168
  #: library/DigitalPointBetterAnalytics/ViewAdmin/config.php:178
1169
- #: library/DigitalPointBetterAnalytics/ViewAdmin/config.php:761
1170
  msgid "Pick profile"
1171
  msgstr ""
1172
 
1173
  #: library/DigitalPointBetterAnalytics/ViewAdmin/config.php:180
1174
- #: library/DigitalPointBetterAnalytics/ViewAdmin/config.php:763
1175
  msgid "please pick a profile"
1176
  msgstr ""
1177
 
@@ -1397,20 +1537,24 @@ msgid "Outbrain"
1397
  msgstr ""
1398
 
1399
  #: library/DigitalPointBetterAnalytics/ViewAdmin/config.php:647
 
 
 
 
1400
  msgid "Taboola"
1401
  msgstr ""
1402
 
1403
- #. #-#-#-#-# plugin.pot (Better Analytics 1.0.5) #-#-#-#-#
1404
  #. Author of the plugin/theme
1405
- #: library/DigitalPointBetterAnalytics/ViewAdmin/config.php:652
1406
  msgid "Digital Point"
1407
  msgstr ""
1408
 
1409
- #: library/DigitalPointBetterAnalytics/ViewAdmin/config.php:663
1410
  msgid "Site Issues To Track"
1411
  msgstr ""
1412
 
1413
- #: library/DigitalPointBetterAnalytics/ViewAdmin/config.php:675
1414
  msgid ""
1415
  "This relies on the ability of the user's browser to load images which will "
1416
  "vary between browsers and Internet connections. This event can be a useful "
@@ -1418,70 +1562,70 @@ msgid ""
1418
  "that the end user's browser did not load (for any reason)."
1419
  msgstr ""
1420
 
1421
- #: library/DigitalPointBetterAnalytics/ViewAdmin/config.php:695
1422
  msgid ""
1423
  "This allows you to quickly find old videos that the author has removed or "
1424
  "disabled embeding for."
1425
  msgstr ""
1426
 
1427
- #: library/DigitalPointBetterAnalytics/ViewAdmin/config.php:704
1428
  msgid "Debugging Events"
1429
  msgstr ""
1430
 
1431
- #: library/DigitalPointBetterAnalytics/ViewAdmin/config.php:723
1432
  msgid "WooCommerce"
1433
  msgstr ""
1434
 
1435
- #: library/DigitalPointBetterAnalytics/ViewAdmin/config.php:731
1436
  msgid "WooCommerce not enabled/active."
1437
  msgstr ""
1438
 
1439
- #: library/DigitalPointBetterAnalytics/ViewAdmin/config.php:734
1440
  msgid "More information about %s"
1441
  msgstr ""
1442
 
1443
- #: library/DigitalPointBetterAnalytics/ViewAdmin/config.php:736
1444
  msgid "View details"
1445
  msgstr ""
1446
 
1447
- #: library/DigitalPointBetterAnalytics/ViewAdmin/config.php:758
1448
  msgid "Profile Used For Reporting"
1449
  msgstr ""
1450
 
1451
- #: library/DigitalPointBetterAnalytics/ViewAdmin/config.php:793
1452
  msgid "Multisite Mode: Analytics account linked at network level"
1453
  msgstr ""
1454
 
1455
- #: library/DigitalPointBetterAnalytics/ViewAdmin/config.php:807
1456
  #: library/DigitalPointBetterAnalytics/ViewAdmin/config_network.php:20
1457
  #: library/DigitalPointBetterAnalytics/ViewAdmin/test.php:122
1458
  msgid "Link/Authenticate A Different Google Analytics Account"
1459
  msgstr ""
1460
 
1461
- #: library/DigitalPointBetterAnalytics/ViewAdmin/config.php:807
1462
  #: library/DigitalPointBetterAnalytics/ViewAdmin/config_network.php:20
1463
  msgid "Link/Authenticate Your Google Analytics Account"
1464
  msgstr ""
1465
 
1466
- #: library/DigitalPointBetterAnalytics/ViewAdmin/config.php:826
1467
  #: library/DigitalPointBetterAnalytics/ViewAdmin/config_network.php:39
1468
  msgid "Use Your Own Project Credentials"
1469
  msgstr ""
1470
 
1471
- #: library/DigitalPointBetterAnalytics/ViewAdmin/config.php:828
1472
  #: library/DigitalPointBetterAnalytics/ViewAdmin/config_network.php:40
1473
  msgid ""
1474
  "If you have your own Google API Project that you wish to use, you can use "
1475
  "your credentials for that web application."
1476
  msgstr ""
1477
 
1478
- #: library/DigitalPointBetterAnalytics/ViewAdmin/config.php:839
1479
  #: library/DigitalPointBetterAnalytics/ViewAdmin/config_network.php:50
1480
  msgid "Configuration"
1481
  msgstr ""
1482
 
1483
  #. translators: %1$s = <strong>, %2$s = </strong>
1484
- #: library/DigitalPointBetterAnalytics/ViewAdmin/config.php:841
1485
  #: library/DigitalPointBetterAnalytics/ViewAdmin/config_network.php:52
1486
  msgid ""
1487
  "Project needs to have the %1$sAnalytics API%2$s enabled under %1$sAPIs & "
@@ -1489,7 +1633,7 @@ msgid ""
1489
  msgstr ""
1490
 
1491
  #. translators: %1$s = <strong>, %2$s = </strong>
1492
- #: library/DigitalPointBetterAnalytics/ViewAdmin/config.php:843
1493
  #: library/DigitalPointBetterAnalytics/ViewAdmin/config_network.php:54
1494
  msgid ""
1495
  "Under %1$sAPIs & auth -> Credentials%2$s, you need to %1$sCreate new Client "
@@ -1497,105 +1641,105 @@ msgid ""
1497
  "%1$s%3$s%2$s"
1498
  msgstr ""
1499
 
1500
- #: library/DigitalPointBetterAnalytics/ViewAdmin/config.php:851
1501
  #: library/DigitalPointBetterAnalytics/ViewAdmin/config_network.php:61
1502
  msgid "Client ID"
1503
  msgstr ""
1504
 
1505
- #: library/DigitalPointBetterAnalytics/ViewAdmin/config.php:861
1506
  #: library/DigitalPointBetterAnalytics/ViewAdmin/config_network.php:68
1507
  msgid "Client Secret"
1508
  msgstr ""
1509
 
1510
- #: library/DigitalPointBetterAnalytics/ViewAdmin/config.php:872
1511
  msgid "Roles To Not Track"
1512
  msgstr ""
1513
 
1514
- #: library/DigitalPointBetterAnalytics/ViewAdmin/config.php:872
1515
- #: library/DigitalPointBetterAnalytics/ViewAdmin/config.php:908
1516
  msgid ""
1517
  "If a logged in user is part of one of these groups, Analytics will not track "
1518
  "them."
1519
  msgstr ""
1520
 
1521
- #: library/DigitalPointBetterAnalytics/ViewAdmin/config.php:875
1522
  msgid "Pick roles to not track"
1523
  msgstr ""
1524
 
1525
- #: library/DigitalPointBetterAnalytics/ViewAdmin/config.php:890
1526
  msgid "Roles Able To View Reports/Dashboard"
1527
  msgstr ""
1528
 
1529
- #: library/DigitalPointBetterAnalytics/ViewAdmin/config.php:893
1530
  msgid "Pick roles that are able to view reports"
1531
  msgstr ""
1532
 
1533
- #: library/DigitalPointBetterAnalytics/ViewAdmin/config.php:908
1534
  msgid "File Extensions To Track As Downloads"
1535
  msgstr ""
1536
 
1537
- #: library/DigitalPointBetterAnalytics/ViewAdmin/config.php:910
1538
  msgid "Pick file extensions"
1539
  msgstr ""
1540
 
1541
- #: library/DigitalPointBetterAnalytics/ViewAdmin/config.php:915
1542
  msgid "Audio Video Interleave (.avi)"
1543
  msgstr ""
1544
 
1545
- #: library/DigitalPointBetterAnalytics/ViewAdmin/config.php:916
1546
  msgid "Word (.doc)"
1547
  msgstr ""
1548
 
1549
- #: library/DigitalPointBetterAnalytics/ViewAdmin/config.php:917
1550
  msgid "Executable (.exe)"
1551
  msgstr ""
1552
 
1553
- #: library/DigitalPointBetterAnalytics/ViewAdmin/config.php:918
1554
  msgid "gzip (.gz)"
1555
  msgstr ""
1556
 
1557
- #: library/DigitalPointBetterAnalytics/ViewAdmin/config.php:919
1558
  msgid "MPEG-1 Video (.mpg)"
1559
  msgstr ""
1560
 
1561
- #: library/DigitalPointBetterAnalytics/ViewAdmin/config.php:920
1562
  msgid "MP3 (.mp3)"
1563
  msgstr ""
1564
 
1565
- #: library/DigitalPointBetterAnalytics/ViewAdmin/config.php:921
1566
  msgid "Acrobat (.pdf)"
1567
  msgstr ""
1568
 
1569
- #: library/DigitalPointBetterAnalytics/ViewAdmin/config.php:922
1570
  msgid "PowerPoint (.ppt)"
1571
  msgstr ""
1572
 
1573
- #: library/DigitalPointBetterAnalytics/ViewAdmin/config.php:923
1574
  msgid "Photoshop (.psd)"
1575
  msgstr ""
1576
 
1577
- #: library/DigitalPointBetterAnalytics/ViewAdmin/config.php:924
1578
  msgid "RAR (.rar)"
1579
  msgstr ""
1580
 
1581
- #: library/DigitalPointBetterAnalytics/ViewAdmin/config.php:925
1582
  msgid "Windows Media Video (.wmv)"
1583
  msgstr ""
1584
 
1585
- #: library/DigitalPointBetterAnalytics/ViewAdmin/config.php:926
1586
  msgid "Excel (.xls)"
1587
  msgstr ""
1588
 
1589
- #: library/DigitalPointBetterAnalytics/ViewAdmin/config.php:927
1590
  msgid "Zip Archive (.zip)"
1591
  msgstr ""
1592
 
1593
- #: library/DigitalPointBetterAnalytics/ViewAdmin/config.php:941
1594
  msgid "Track Users With Analytics Blockers"
1595
  msgstr ""
1596
 
1597
  #. translators: %1$s = <strong>, %2$s = </strong>, %3$s = <p />
1598
- #: library/DigitalPointBetterAnalytics/ViewAdmin/config.php:944
1599
  msgid ""
1600
  "If a user has a mechanism that is blocking them from being tracked with "
1601
  "Google Analytics, you can use this option to do server-side page view "
@@ -1606,92 +1750,92 @@ msgid ""
1606
  "tracked (ones not popular enough to be widely known as a spider)."
1607
  msgstr ""
1608
 
1609
- #: library/DigitalPointBetterAnalytics/ViewAdmin/config.php:950
1610
  msgid "Never"
1611
  msgstr ""
1612
 
1613
- #: library/DigitalPointBetterAnalytics/ViewAdmin/config.php:955
1614
  msgid "Registered Users"
1615
  msgstr ""
1616
 
1617
- #: library/DigitalPointBetterAnalytics/ViewAdmin/config.php:960
1618
  msgid "Humans"
1619
  msgstr ""
1620
 
1621
- #: library/DigitalPointBetterAnalytics/ViewAdmin/config.php:973
1622
  msgid "Location For Analytics Code"
1623
  msgstr ""
1624
 
1625
- #: library/DigitalPointBetterAnalytics/ViewAdmin/config.php:978
1626
  msgid "Header"
1627
  msgstr ""
1628
 
1629
- #: library/DigitalPointBetterAnalytics/ViewAdmin/config.php:983
1630
  msgid "Footer"
1631
  msgstr ""
1632
 
1633
- #: library/DigitalPointBetterAnalytics/ViewAdmin/config.php:988
1634
  msgid "No JavaScript (you have your own/other already)"
1635
  msgstr ""
1636
 
1637
- #: library/DigitalPointBetterAnalytics/ViewAdmin/config.php:994
1638
  msgid "Use In Staff Area (wp-admin)"
1639
  msgstr ""
1640
 
1641
- #: library/DigitalPointBetterAnalytics/ViewAdmin/config.php:1000
1642
  msgid "When To Run Analytics Code"
1643
  msgstr ""
1644
 
1645
- #: library/DigitalPointBetterAnalytics/ViewAdmin/config.php:1005
1646
  msgid "Immediately"
1647
  msgstr ""
1648
 
1649
- #: library/DigitalPointBetterAnalytics/ViewAdmin/config.php:1010
1650
  msgid "After Page Loads"
1651
  msgstr ""
1652
 
1653
- #: library/DigitalPointBetterAnalytics/ViewAdmin/config.php:1017
1654
  msgid "Campaign Tracking Within URLs"
1655
  msgstr ""
1656
 
1657
- #: library/DigitalPointBetterAnalytics/ViewAdmin/config.php:1022
1658
  msgid "In Anchor"
1659
  msgstr ""
1660
 
1661
- #: library/DigitalPointBetterAnalytics/ViewAdmin/config.php:1027
1662
  msgid "In Parameters"
1663
  msgstr ""
1664
 
1665
- #: library/DigitalPointBetterAnalytics/ViewAdmin/config.php:1034
1666
  msgid "Sample Rate"
1667
  msgstr ""
1668
 
1669
- #: library/DigitalPointBetterAnalytics/ViewAdmin/config.php:1034
1670
  msgid ""
1671
  "Specifies what percentage of users should be tracked. Very large sites may "
1672
  "need to use a lower sample rate to stay within Google Analytics processing "
1673
  "limits."
1674
  msgstr ""
1675
 
1676
- #: library/DigitalPointBetterAnalytics/ViewAdmin/config.php:1055
1677
  msgid "Extra JavaScript"
1678
  msgstr ""
1679
 
1680
- #: library/DigitalPointBetterAnalytics/ViewAdmin/config.php:1055
1681
  msgid ""
1682
  "This allows you to add your own JavaScript code to the Analytics tracking "
1683
  "code. This JavaScript is inserted right before the %1$s function."
1684
  msgstr ""
1685
 
1686
- #: library/DigitalPointBetterAnalytics/ViewAdmin/config.php:1062
1687
  msgid "Debugging"
1688
  msgstr ""
1689
 
1690
- #: library/DigitalPointBetterAnalytics/ViewAdmin/config.php:1067
1691
  msgid "Enable Google Analytics Debugging"
1692
  msgstr ""
1693
 
1694
- #: library/DigitalPointBetterAnalytics/ViewAdmin/config.php:1068
1695
  msgid "This will display Google Analytics debug data in the browser console."
1696
  msgstr ""
1697
 
@@ -1751,6 +1895,123 @@ msgstr ""
1751
  msgid "active users"
1752
  msgstr ""
1753
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1754
  #: library/DigitalPointBetterAnalytics/ViewAdmin/reports/area_charts.php:10
1755
  #: library/DigitalPointBetterAnalytics/ViewAdmin/reports/events.php:7
1756
  #: library/DigitalPointBetterAnalytics/ViewAdmin/reports/heatmaps.php:8
@@ -1891,7 +2152,7 @@ msgstr ""
1891
 
1892
  #: library/DigitalPointBetterAnalytics/ViewAdmin/test.php:68
1893
  #: library/DigitalPointBetterAnalytics/ViewAdmin/test.php:114
1894
- #: library/DigitalPointBetterAnalytics/ViewAdmin/test.php:354
1895
  msgid "Auto-Configure"
1896
  msgstr ""
1897
 
@@ -1961,225 +2222,225 @@ msgstr ""
1961
  msgid "Create Analytics Account Manually Within Your Google Account"
1962
  msgstr ""
1963
 
1964
- #: library/DigitalPointBetterAnalytics/ViewAdmin/test.php:253
1965
  msgid ""
1966
  "Google API Quota Exceeded (you will need to configure your Google Analytics "
1967
  "account manually)."
1968
  msgstr ""
1969
 
1970
- #: library/DigitalPointBetterAnalytics/ViewAdmin/test.php:294
1971
  msgid "Test Analytics Integration"
1972
  msgstr ""
1973
 
1974
- #: library/DigitalPointBetterAnalytics/ViewAdmin/test.php:297
1975
  msgid ""
1976
  "This is a checklist of things for full integration with Google Analytics. "
1977
  "You can click on any of the titles to be taken where you need to go to "
1978
  "configure that item."
1979
  msgstr ""
1980
 
1981
- #: library/DigitalPointBetterAnalytics/ViewAdmin/test.php:301
1982
  msgid "Things That Can Be Automatically Checked"
1983
  msgstr ""
1984
 
1985
- #: library/DigitalPointBetterAnalytics/ViewAdmin/test.php:306
1986
  msgid "Web Property ID Defined"
1987
  msgstr ""
1988
 
1989
- #: library/DigitalPointBetterAnalytics/ViewAdmin/test.php:315
1990
  msgid "cURL Installed"
1991
  msgstr ""
1992
 
1993
- #: library/DigitalPointBetterAnalytics/ViewAdmin/test.php:321
1994
  msgid ""
1995
  "Not required, but recommended to have the cURL extensions enabled in PHP."
1996
  msgstr ""
1997
 
1998
- #: library/DigitalPointBetterAnalytics/ViewAdmin/test.php:341
1999
  msgid "Google Analytics Account Linked"
2000
  msgstr ""
2001
 
2002
- #: library/DigitalPointBetterAnalytics/ViewAdmin/test.php:353
2003
  msgid ""
2004
  "Items highlighted in yellow can be auto-configured via the Google Analytics "
2005
  "API if you wish."
2006
  msgstr ""
2007
 
2008
- #: library/DigitalPointBetterAnalytics/ViewAdmin/test.php:362
2009
  msgid "Analytics Profile Selected"
2010
  msgstr ""
2011
 
2012
- #: library/DigitalPointBetterAnalytics/ViewAdmin/test.php:368
2013
  msgid ""
2014
  "If you would like the Auto-Configure system to create a new Web Property on "
2015
  "your Google Analytics account, don't select an existing profile."
2016
  msgstr ""
2017
 
2018
- #: library/DigitalPointBetterAnalytics/ViewAdmin/test.php:375
2019
  msgid "Site Search Setup"
2020
  msgstr ""
2021
 
2022
  #. translators: %1$s = <strong>, %2$s = </strong>
2023
- #: library/DigitalPointBetterAnalytics/ViewAdmin/test.php:382
2024
  msgid ""
2025
  "Found in Google Analytics account under %1$sView Settings -> Query Parameter"
2026
  "%2$s (should be set to \"%1$ss%2$s\")."
2027
  msgstr ""
2028
 
2029
- #: library/DigitalPointBetterAnalytics/ViewAdmin/test.php:388
2030
  msgid "Ecommerce Tracking Enabled"
2031
  msgstr ""
2032
 
2033
  #. translators: %1$s = <strong>, %2$s = </strong>
2034
- #: library/DigitalPointBetterAnalytics/ViewAdmin/test.php:396
2035
- #: library/DigitalPointBetterAnalytics/ViewAdmin/test.php:409
2036
  msgid "Found in Google Analytics account under %1$sEcommerce Settings%2$s."
2037
  msgstr ""
2038
 
2039
- #: library/DigitalPointBetterAnalytics/ViewAdmin/test.php:402
2040
  msgid "Enhanced Ecommerce Tracking Enabled"
2041
  msgstr ""
2042
 
2043
- #: library/DigitalPointBetterAnalytics/ViewAdmin/test.php:415
2044
  msgid "Industry Vertical Set"
2045
  msgstr ""
2046
 
2047
  #. translators: %1$s = <strong>, %2$s = </strong>, %3$s = current setting in
2048
  #. Google Analytics account
2049
- #: library/DigitalPointBetterAnalytics/ViewAdmin/test.php:422
2050
  msgid ""
2051
  "Found in Google Analytics account under %1$sProperty Settings%2$s (currently "
2052
  "set to %1$s%3$s%2$s)."
2053
  msgstr ""
2054
 
2055
- #: library/DigitalPointBetterAnalytics/ViewAdmin/test.php:428
2056
  msgid "Custom Dimension For Category Tracking"
2057
  msgstr ""
2058
 
2059
  #. translators: %1$s = <strong>, %2$s = </strong> ... %3$s can't be translated
2060
  #. - leave
2061
- #: library/DigitalPointBetterAnalytics/ViewAdmin/test.php:435
2062
- #: library/DigitalPointBetterAnalytics/ViewAdmin/test.php:449
2063
- #: library/DigitalPointBetterAnalytics/ViewAdmin/test.php:462
2064
- #: library/DigitalPointBetterAnalytics/ViewAdmin/test.php:476
2065
- #: library/DigitalPointBetterAnalytics/ViewAdmin/test.php:490
2066
- #: library/DigitalPointBetterAnalytics/ViewAdmin/test.php:505
2067
  msgid ""
2068
  "Found in Google Analytics account under %1$sCustom Definitions -> Custom "
2069
  "Dimensions%2$s (should be named \"%1$s%3$s%2$s\" and scoped for \"%1$sHit%2$s"
2070
  "\")."
2071
  msgstr ""
2072
 
2073
- #: library/DigitalPointBetterAnalytics/ViewAdmin/test.php:441
2074
  msgid "Custom Dimension For Author Tracking"
2075
  msgstr ""
2076
 
2077
- #: library/DigitalPointBetterAnalytics/ViewAdmin/test.php:455
2078
  msgid "Custom Dimension For Tag Tracking"
2079
  msgstr ""
2080
 
2081
- #: library/DigitalPointBetterAnalytics/ViewAdmin/test.php:468
2082
  msgid "Custom Dimension For Publication Year Tracking"
2083
  msgstr ""
2084
 
2085
- #: library/DigitalPointBetterAnalytics/ViewAdmin/test.php:482
2086
  msgid "Custom Dimension For User Role Tracking"
2087
  msgstr ""
2088
 
2089
- #: library/DigitalPointBetterAnalytics/ViewAdmin/test.php:497
2090
  msgid "Custom Dimension For User Tracking"
2091
  msgstr ""
2092
 
2093
- #: library/DigitalPointBetterAnalytics/ViewAdmin/test.php:512
2094
  msgid "Category Tracking Dimension Index Set"
2095
  msgstr ""
2096
 
2097
- #: library/DigitalPointBetterAnalytics/ViewAdmin/test.php:521
2098
  msgid "Author Tracking Dimension Index Set"
2099
  msgstr ""
2100
 
2101
- #: library/DigitalPointBetterAnalytics/ViewAdmin/test.php:529
2102
  msgid "Tag Tracking Dimension Index Set"
2103
  msgstr ""
2104
 
2105
- #: library/DigitalPointBetterAnalytics/ViewAdmin/test.php:537
2106
  msgid "Publication Year Tracking Dimension Index Set"
2107
  msgstr ""
2108
 
2109
- #: library/DigitalPointBetterAnalytics/ViewAdmin/test.php:545
2110
  msgid "User Role Tracking Dimension Index Set"
2111
  msgstr ""
2112
 
2113
- #: library/DigitalPointBetterAnalytics/ViewAdmin/test.php:553
2114
  msgid "Registered User Tracking Dimension Index Set"
2115
  msgstr ""
2116
 
2117
- #: library/DigitalPointBetterAnalytics/ViewAdmin/test.php:561
2118
  msgid "Better Analytics Pro License"
2119
  msgstr ""
2120
 
2121
- #: library/DigitalPointBetterAnalytics/ViewAdmin/test.php:566
2122
  msgid ""
2123
  "A few extra advanced features are available when you license the Better "
2124
  "Analytics Pro plugin. Please don't steal, a crazy amount of work went into "
2125
  "this. Some of the extra features:"
2126
  msgstr ""
2127
 
2128
- #: library/DigitalPointBetterAnalytics/ViewAdmin/test.php:570
2129
  msgid "More metrics available for %1$sHeat Maps%2$s"
2130
  msgstr ""
2131
 
2132
- #: library/DigitalPointBetterAnalytics/ViewAdmin/test.php:575
2133
  msgid "More dimensions available for %1$sCharts%2$s"
2134
  msgstr ""
2135
 
2136
- #: library/DigitalPointBetterAnalytics/ViewAdmin/test.php:580
2137
  msgid "More %1$sadvertising platform click tracking%2$s"
2138
  msgstr ""
2139
 
2140
- #: library/DigitalPointBetterAnalytics/ViewAdmin/test.php:585
2141
  msgid "More %1$sissue monitoring options%2$s"
2142
  msgstr ""
2143
 
2144
- #: library/DigitalPointBetterAnalytics/ViewAdmin/test.php:590
2145
  msgid "%1$seCommerce tracking%2$s"
2146
  msgstr ""
2147
 
2148
- #: library/DigitalPointBetterAnalytics/ViewAdmin/test.php:595
2149
  msgid "Ability to do %1$sserver-side tracking of users%2$s"
2150
  msgstr ""
2151
 
2152
- #: library/DigitalPointBetterAnalytics/ViewAdmin/test.php:600
2153
  msgid "Faster API calls (utilizes a multi-threaded mechanism)"
2154
  msgstr ""
2155
 
2156
- #: library/DigitalPointBetterAnalytics/ViewAdmin/test.php:605
2157
  msgid "%1$sPriority support%2$s"
2158
  msgstr ""
2159
 
2160
- #: library/DigitalPointBetterAnalytics/ViewAdmin/test.php:610
2161
  msgid ""
2162
  "A Warm & Fuzzy Feeling knowing you are helping to continue future development"
2163
  msgstr ""
2164
 
2165
- #: library/DigitalPointBetterAnalytics/ViewAdmin/test.php:622
2166
  msgid "Things That Need To Be Checked Manually"
2167
  msgstr ""
2168
 
2169
- #: library/DigitalPointBetterAnalytics/ViewAdmin/test.php:626
2170
  msgid "User-ID Tracking"
2171
  msgstr ""
2172
 
2173
- #: library/DigitalPointBetterAnalytics/ViewAdmin/test.php:629
2174
  msgid ""
2175
  "Found in Google Analytics account under %1$sTracking Info -> User-ID%2$s."
2176
  msgstr ""
2177
 
2178
- #: library/DigitalPointBetterAnalytics/ViewAdmin/test.php:634
2179
  msgid "Demographic and Interest Reports"
2180
  msgstr ""
2181
 
2182
- #: library/DigitalPointBetterAnalytics/ViewAdmin/test.php:637
2183
  msgid "Found in Google Analytics account under %1$sProperty Settings%1$s."
2184
  msgstr ""
2185
 
2
  # This file is distributed under the same license as the Better Analytics package.
3
  msgid ""
4
  msgstr ""
5
+ "Project-Id-Version: Better Analytics 1.0.6\n"
6
  "Report-Msgid-Bugs-To: https://wordpress.org/support/plugin/better-analytics\n"
7
+ "POT-Creation-Date: 2015-07-12 17:56:24+00:00\n"
8
  "MIME-Version: 1.0\n"
9
  "Content-Type: text/plain; charset=UTF-8\n"
10
  "Content-Transfer-Encoding: 8bit\n"
17
  msgstr ""
18
 
19
  #: library/DigitalPointBetterAnalytics/Base/Admin.php:88
20
+ #: library/DigitalPointBetterAnalytics/Base/Admin.php:112
21
  msgid "OAuth2 Endpoint"
22
  msgstr ""
23
 
54
  msgstr ""
55
 
56
  #: library/DigitalPointBetterAnalytics/Base/Admin.php:100
57
+ #: library/DigitalPointBetterAnalytics/ViewAdmin/goals.php:479
58
+ msgid "Goals"
59
+ msgstr ""
60
+
61
+ #: library/DigitalPointBetterAnalytics/Base/Admin.php:102
62
+ #: library/DigitalPointBetterAnalytics/Base/Admin.php:124
63
+ #: library/DigitalPointBetterAnalytics/Base/Admin.php:224
64
  msgid "Settings"
65
  msgstr ""
66
 
67
+ #: library/DigitalPointBetterAnalytics/Base/Admin.php:103
68
  msgid "Test Setup"
69
  msgstr ""
70
 
71
+ #. #-#-#-#-# plugin.pot (Better Analytics 1.0.6) #-#-#-#-#
72
  #. Plugin Name of the plugin/theme
73
+ #: library/DigitalPointBetterAnalytics/Base/Admin.php:106
74
+ #: library/DigitalPointBetterAnalytics/Base/Admin.php:199
75
+ #: library/DigitalPointBetterAnalytics/Base/Admin.php:365
76
+ #: library/DigitalPointBetterAnalytics/Base/Admin.php:408
77
  #: library/DigitalPointBetterAnalytics/ViewAdmin/config.php:27
78
  msgid "Better Analytics"
79
  msgstr ""
80
 
81
+ #: library/DigitalPointBetterAnalytics/Base/Admin.php:135
82
  msgid "Pro version not up to date."
83
  msgstr ""
84
 
85
+ #: library/DigitalPointBetterAnalytics/Base/Admin.php:136
86
  msgid "Installed:"
87
  msgstr ""
88
 
89
+ #: library/DigitalPointBetterAnalytics/Base/Admin.php:138
90
  msgid "Latest:"
91
  msgstr ""
92
 
93
+ #: library/DigitalPointBetterAnalytics/Base/Admin.php:143
94
  msgid "Pro version installed"
95
  msgstr ""
96
 
97
+ #: library/DigitalPointBetterAnalytics/Base/Admin.php:147
98
  msgid ""
99
  "Pro version installed, but not active. Did you %1$sverify ownership of your "
100
  "domain%2$s?"
101
  msgstr ""
102
 
103
+ #: library/DigitalPointBetterAnalytics/Base/Admin.php:154
104
  msgid "Pro version not installed."
105
  msgstr ""
106
 
107
+ #: library/DigitalPointBetterAnalytics/Base/Admin.php:224
108
  msgid "Google Analytics Web Property ID not selected."
109
  msgstr ""
110
 
111
+ #: library/DigitalPointBetterAnalytics/Base/Admin.php:231
112
  msgid "Google Analytics account not linked for API functions."
113
  msgstr ""
114
 
115
+ #: library/DigitalPointBetterAnalytics/Base/Admin.php:231
116
  msgid "API Settings"
117
  msgstr ""
118
 
119
+ #: library/DigitalPointBetterAnalytics/Base/Admin.php:238
120
  msgid "Google Analytics account not yet configured."
121
  msgstr ""
122
 
123
+ #: library/DigitalPointBetterAnalytics/Base/Admin.php:238
124
  msgid "Test Setup / Auto-Configure"
125
  msgstr ""
126
 
127
+ #: library/DigitalPointBetterAnalytics/Base/Admin.php:244
128
  msgid "Last Analytics Error:"
129
  msgstr ""
130
 
131
+ #: library/DigitalPointBetterAnalytics/Base/Admin.php:279
132
  msgid "Invalid method:"
133
  msgstr ""
134
 
135
+ #: library/DigitalPointBetterAnalytics/Base/Admin.php:304
136
  msgid "Invalid Google API Code:"
137
  msgstr ""
138
 
139
+ #: library/DigitalPointBetterAnalytics/Base/Admin.php:310
140
  msgid "Unknown Google API Error:"
141
  msgstr ""
142
 
143
+ #: library/DigitalPointBetterAnalytics/Base/Admin.php:363
144
  msgid "Overview"
145
  msgstr ""
146
 
147
+ #: library/DigitalPointBetterAnalytics/Base/Admin.php:366
148
  msgid ""
149
  "At the most basic level, it will automatically add Google Analytics "
150
  "Universal code to your website. It gives you the flexibility to track "
152
  "engagement (and everything in between)."
153
  msgstr ""
154
 
155
+ #: library/DigitalPointBetterAnalytics/Base/Admin.php:373
156
+ #: library/DigitalPointBetterAnalytics/Base/Admin.php:387
157
  msgid "Pro"
158
  msgstr ""
159
 
160
+ #: library/DigitalPointBetterAnalytics/Base/Admin.php:375
161
  msgid "Pro Version"
162
  msgstr ""
163
 
164
+ #: library/DigitalPointBetterAnalytics/Base/Admin.php:376
165
  msgid ""
166
  "There is a Pro version of this plugin that gives you a few added features. "
167
  "More metrics/dimensions, more tracking options, etc."
168
  msgstr ""
169
 
170
+ #: library/DigitalPointBetterAnalytics/Base/Admin.php:384
171
  msgid "For more information:"
172
  msgstr ""
173
 
174
+ #: library/DigitalPointBetterAnalytics/Base/Admin.php:385
175
  msgid "Info"
176
  msgstr ""
177
 
178
+ #: library/DigitalPointBetterAnalytics/Base/Admin.php:386
179
+ #: library/DigitalPointBetterAnalytics/Base/Admin.php:427
180
  msgid "Support"
181
  msgstr ""
182
 
183
+ #: library/DigitalPointBetterAnalytics/Base/Admin.php:399
184
  msgid "colossal"
185
  msgstr ""
186
 
187
+ #: library/DigitalPointBetterAnalytics/Base/Admin.php:399
188
  msgid "elephantine"
189
  msgstr ""
190
 
191
+ #: library/DigitalPointBetterAnalytics/Base/Admin.php:399
192
  msgid "glorious"
193
  msgstr ""
194
 
195
+ #: library/DigitalPointBetterAnalytics/Base/Admin.php:399
196
  msgid "grand"
197
  msgstr ""
198
 
199
+ #: library/DigitalPointBetterAnalytics/Base/Admin.php:399
200
  msgid "huge"
201
  msgstr ""
202
 
203
+ #: library/DigitalPointBetterAnalytics/Base/Admin.php:399
204
  msgid "mighty"
205
  msgstr ""
206
 
207
+ #: library/DigitalPointBetterAnalytics/Base/Admin.php:399
208
  msgid "WTF?"
209
  msgstr ""
210
 
211
+ #: library/DigitalPointBetterAnalytics/Base/Admin.php:399
212
  msgid "sexy"
213
  msgstr ""
214
 
215
+ #: library/DigitalPointBetterAnalytics/Base/Admin.php:407
216
  msgid ""
217
  "If you like %1$s, please leave us a %2$s rating. A %3$s thank you in advance!"
218
  msgstr ""
219
 
220
+ #: library/DigitalPointBetterAnalytics/Base/Admin.php:427
221
  msgid "Visit Support Forum"
222
  msgstr ""
223
 
224
+ #: library/DigitalPointBetterAnalytics/Base/Admin.php:432
225
  msgid "Verify Domain"
226
  msgstr ""
227
 
252
  msgstr ""
253
 
254
  #: library/DigitalPointBetterAnalytics/ControllerAdmin/Analytics.php:39
255
+ #: library/DigitalPointBetterAnalytics/ControllerAdmin/Analytics.php:612
256
  #: library/DigitalPointBetterAnalytics/Model/Reporting.php:184
257
  msgid "Medium"
258
  msgstr ""
316
 
317
  #: library/DigitalPointBetterAnalytics/ControllerAdmin/Analytics.php:384
318
  #: library/DigitalPointBetterAnalytics/ControllerAdmin/Analytics.php:442
319
+ #: library/DigitalPointBetterAnalytics/Model/Goals.php:59
320
  msgid "Category"
321
  msgstr ""
322
 
323
  #: library/DigitalPointBetterAnalytics/ControllerAdmin/Analytics.php:385
324
  #: library/DigitalPointBetterAnalytics/ControllerAdmin/Analytics.php:443
325
+ #: library/DigitalPointBetterAnalytics/ViewAdmin/goals.php:73
326
  msgid "Type"
327
  msgstr ""
328
 
331
  msgid "Detail"
332
  msgstr ""
333
 
334
+ #: library/DigitalPointBetterAnalytics/ControllerAdmin/Analytics.php:557
335
  msgid "No Linked Google Analytics Account."
336
  msgstr ""
337
 
338
+ #: library/DigitalPointBetterAnalytics/ControllerAdmin/Analytics.php:559
339
  msgid "You can link one in the Better Analytics API settings."
340
  msgstr ""
341
 
342
+ #: library/DigitalPointBetterAnalytics/ControllerAdmin/Analytics.php:584
343
  msgid "Date"
344
  msgstr ""
345
 
346
+ #: library/DigitalPointBetterAnalytics/ControllerAdmin/Analytics.php:588
347
  msgid "Categories"
348
  msgstr ""
349
 
350
+ #: library/DigitalPointBetterAnalytics/ControllerAdmin/Analytics.php:592
351
  msgid "Authors"
352
  msgstr ""
353
 
354
+ #: library/DigitalPointBetterAnalytics/ControllerAdmin/Analytics.php:596
355
  msgid "Tags"
356
  msgstr ""
357
 
358
+ #: library/DigitalPointBetterAnalytics/ControllerAdmin/Analytics.php:600
359
  msgid "Publication Year"
360
  msgstr ""
361
 
362
+ #: library/DigitalPointBetterAnalytics/ControllerAdmin/Analytics.php:604
363
  msgid "User Role"
364
  msgstr ""
365
 
366
+ #: library/DigitalPointBetterAnalytics/ControllerAdmin/Analytics.php:606
367
  #: library/DigitalPointBetterAnalytics/Model/Reporting.php:191
368
  msgid "Browser"
369
  msgstr ""
370
 
371
+ #: library/DigitalPointBetterAnalytics/ControllerAdmin/Analytics.php:607
372
  #: library/DigitalPointBetterAnalytics/Model/Reporting.php:192
373
  msgid "Operating System"
374
  msgstr ""
375
 
376
+ #: library/DigitalPointBetterAnalytics/ControllerAdmin/Analytics.php:608
377
  #: library/DigitalPointBetterAnalytics/Model/Reporting.php:199
378
  msgid "Device Category"
379
  msgstr ""
380
 
381
+ #: library/DigitalPointBetterAnalytics/ControllerAdmin/Analytics.php:609
382
  #: library/DigitalPointBetterAnalytics/Model/Reporting.php:183
383
  msgid "Source"
384
  msgstr ""
385
 
386
+ #: library/DigitalPointBetterAnalytics/ControllerAdmin/Analytics.php:610
387
  msgid "Referrer"
388
  msgstr ""
389
 
390
+ #: library/DigitalPointBetterAnalytics/ControllerAdmin/Analytics.php:613
391
  #: library/DigitalPointBetterAnalytics/Model/Reporting.php:204
392
  msgid "Country"
393
  msgstr ""
394
 
395
+ #: library/DigitalPointBetterAnalytics/ControllerAdmin/Analytics.php:630
396
  #: library/DigitalPointBetterAnalytics/Model/Reporting.php:44
397
  msgid "Page Views"
398
  msgstr ""
399
 
400
+ #: library/DigitalPointBetterAnalytics/ControllerAdmin/Analytics.php:631
401
  #: library/DigitalPointBetterAnalytics/Model/Reporting.php:14
402
  msgid "Sessions"
403
  msgstr ""
404
 
405
+ #: library/DigitalPointBetterAnalytics/ControllerAdmin/Analytics.php:632
406
  #: library/DigitalPointBetterAnalytics/Model/Reporting.php:9
407
  msgid "Users"
408
  msgstr ""
409
 
410
+ #: library/DigitalPointBetterAnalytics/ControllerAdmin/Analytics.php:633
411
  msgid "Session Length"
412
  msgstr ""
413
 
414
+ #: library/DigitalPointBetterAnalytics/ControllerAdmin/Analytics.php:634
415
  #: library/DigitalPointBetterAnalytics/Model/Reporting.php:20
416
  msgid "Organic Search"
417
  msgstr ""
418
 
419
+ #: library/DigitalPointBetterAnalytics/Formatting/GoalTable.php:102
420
+ #: library/DigitalPointBetterAnalytics/ViewAdmin/goals.php:66
421
+ #: library/DigitalPointBetterAnalytics/ViewAdmin/goals.php:153
422
+ msgid "Name"
423
+ msgstr ""
424
+
425
+ #: library/DigitalPointBetterAnalytics/Formatting/GoalTable.php:103
426
+ #: library/DigitalPointBetterAnalytics/ViewAdmin/goals.php:38
427
+ msgid "Slot"
428
+ msgstr ""
429
+
430
+ #: library/DigitalPointBetterAnalytics/Formatting/GoalTable.php:104
431
+ #: library/DigitalPointBetterAnalytics/Model/Goals.php:62
432
+ #: library/DigitalPointBetterAnalytics/ViewAdmin/goals.php:103
433
+ msgid "Value"
434
+ msgstr ""
435
+
436
+ #: library/DigitalPointBetterAnalytics/Formatting/GoalTable.php:105
437
+ msgid "Created"
438
+ msgstr ""
439
+
440
+ #: library/DigitalPointBetterAnalytics/Formatting/GoalTable.php:106
441
+ msgid "Updated"
442
+ msgstr ""
443
+
444
+ #. translators: %1$s = label, %2$s = <span>, %3$s = </span>, %4$u = number
445
+ #: library/DigitalPointBetterAnalytics/Formatting/GoalTable.php:136
446
+ #: library/DigitalPointBetterAnalytics/Formatting/GoalTable.php:146
447
+ #: library/DigitalPointBetterAnalytics/Formatting/GoalTable.php:156
448
+ msgid "%1$s %2$s(%4$u)%3$s"
449
+ msgstr ""
450
+
451
+ #: library/DigitalPointBetterAnalytics/Formatting/GoalTable.php:137
452
+ msgid "All"
453
+ msgid_plural "All"
454
+ msgstr[0] ""
455
+ msgstr[1] ""
456
+
457
+ #: library/DigitalPointBetterAnalytics/Formatting/GoalTable.php:147
458
+ #: library/DigitalPointBetterAnalytics/ViewAdmin/goals.php:97
459
+ msgid "Active"
460
+ msgid_plural "Active"
461
+ msgstr[0] ""
462
+ msgstr[1] ""
463
+
464
+ #: library/DigitalPointBetterAnalytics/Formatting/GoalTable.php:157
465
+ msgid "Inactive"
466
+ msgid_plural "Inactive"
467
+ msgstr[0] ""
468
+ msgstr[1] ""
469
+
470
+ #: library/DigitalPointBetterAnalytics/Formatting/GoalTable.php:185
471
+ #: library/DigitalPointBetterAnalytics/Formatting/GoalTable.php:236
472
+ msgid "Activate"
473
+ msgstr ""
474
+
475
+ #: library/DigitalPointBetterAnalytics/Formatting/GoalTable.php:189
476
+ #: library/DigitalPointBetterAnalytics/Formatting/GoalTable.php:232
477
+ msgid "Deactivate"
478
+ msgstr ""
479
+
480
+ #. translators: %1$s = hours, %2$s = minutes, %3$s = seconds
481
+ #: library/DigitalPointBetterAnalytics/Formatting/GoalTable.php:212
482
+ msgid "%1$u hours, %2$u minutes, %3$u seconds"
483
+ msgstr ""
484
+
485
+ #: library/DigitalPointBetterAnalytics/Formatting/GoalTable.php:277
486
+ msgid "Select %s"
487
+ msgstr ""
488
+
489
+ #: library/DigitalPointBetterAnalytics/Formatting/GoalTable.php:291
490
+ #: library/DigitalPointBetterAnalytics/ViewAdmin/goals.php:46
491
+ #: library/DigitalPointBetterAnalytics/ViewAdmin/goals.php:57
492
+ msgid "Goal ID %1$u / Goal Set %2$u"
493
+ msgstr ""
494
+
495
+ #. translators: PHP date format - see: http:php.net/manual/function.date.php
496
+ #: library/DigitalPointBetterAnalytics/Formatting/GoalTable.php:302
497
+ #: library/DigitalPointBetterAnalytics/Formatting/GoalTable.php:308
498
+ msgid "Y/m/d g:i a"
499
+ msgstr ""
500
+
501
  #: library/DigitalPointBetterAnalytics/Helper/Reporting.php:78
502
  msgid "No API tokens to refresh."
503
  msgstr ""
508
  "%2$s. \"Create an account\" is on the upper right of that page."
509
  msgstr ""
510
 
511
+ #: library/DigitalPointBetterAnalytics/Model/Goals.php:8
512
+ msgid "Destination URL"
513
+ msgstr ""
514
+
515
+ #: library/DigitalPointBetterAnalytics/Model/Goals.php:9
516
+ msgid "Session duration"
517
+ msgstr ""
518
+
519
+ #: library/DigitalPointBetterAnalytics/Model/Goals.php:10
520
+ msgid "Pages per session"
521
+ msgstr ""
522
+
523
+ #: library/DigitalPointBetterAnalytics/Model/Goals.php:11
524
+ msgid "Event"
525
+ msgstr ""
526
+
527
+ #: library/DigitalPointBetterAnalytics/Model/Goals.php:28
528
+ #: library/DigitalPointBetterAnalytics/Model/Goals.php:36
529
+ #: library/DigitalPointBetterAnalytics/Model/Goals.php:50
530
+ msgid "Equal to"
531
+ msgstr ""
532
+
533
+ #: library/DigitalPointBetterAnalytics/Model/Goals.php:29
534
+ #: library/DigitalPointBetterAnalytics/Model/Goals.php:37
535
+ msgid "Begins with"
536
+ msgstr ""
537
+
538
+ #: library/DigitalPointBetterAnalytics/Model/Goals.php:30
539
+ #: library/DigitalPointBetterAnalytics/Model/Goals.php:38
540
+ msgid "Regular expression"
541
+ msgstr ""
542
+
543
+ #: library/DigitalPointBetterAnalytics/Model/Goals.php:48
544
+ msgid "Less than"
545
+ msgstr ""
546
+
547
+ #: library/DigitalPointBetterAnalytics/Model/Goals.php:49
548
+ #: library/DigitalPointBetterAnalytics/ViewAdmin/goals.php:190
549
+ #: library/DigitalPointBetterAnalytics/ViewAdmin/goals.php:210
550
+ msgid "Greater than"
551
+ msgstr ""
552
+
553
+ #: library/DigitalPointBetterAnalytics/Model/Goals.php:60
554
+ msgid "Action"
555
+ msgstr ""
556
+
557
+ #: library/DigitalPointBetterAnalytics/Model/Goals.php:61
558
+ msgid "Label"
559
+ msgstr ""
560
+
561
  #: library/DigitalPointBetterAnalytics/Model/Reporting.php:8
562
  #: library/DigitalPointBetterAnalytics/Model/Reporting.php:173
563
  msgid "User"
769
  msgstr ""
770
 
771
  #: library/DigitalPointBetterAnalytics/Model/Reporting.php:70
772
+ #: library/DigitalPointBetterAnalytics/ViewAdmin/config.php:679
773
  msgid "Images Not Loading"
774
  msgstr ""
775
 
776
  #: library/DigitalPointBetterAnalytics/Model/Reporting.php:71
777
+ #: library/DigitalPointBetterAnalytics/ViewAdmin/config.php:674
778
  msgid "Page Not Found (404)"
779
  msgstr ""
780
 
781
  #: library/DigitalPointBetterAnalytics/Model/Reporting.php:72
782
+ #: library/DigitalPointBetterAnalytics/ViewAdmin/config.php:715
783
  msgid "AJAX Requests"
784
  msgstr ""
785
 
786
  #: library/DigitalPointBetterAnalytics/Model/Reporting.php:73
787
+ #: library/DigitalPointBetterAnalytics/ViewAdmin/config.php:686
788
  msgid "JavaScript Errors"
789
  msgstr ""
790
 
791
  #: library/DigitalPointBetterAnalytics/Model/Reporting.php:74
792
+ #: library/DigitalPointBetterAnalytics/ViewAdmin/config.php:691
793
  msgid "AJAX Errors"
794
  msgstr ""
795
 
796
  #: library/DigitalPointBetterAnalytics/Model/Reporting.php:75
797
+ #: library/DigitalPointBetterAnalytics/ViewAdmin/config.php:695
798
  msgid "Browser Console Errors"
799
  msgstr ""
800
 
801
  #: library/DigitalPointBetterAnalytics/Model/Reporting.php:76
802
+ #: library/DigitalPointBetterAnalytics/ViewAdmin/config.php:699
803
  msgid "YouTube Errors"
804
  msgstr ""
805
 
875
  msgstr ""
876
 
877
  #: library/DigitalPointBetterAnalytics/Model/Reporting.php:134
878
+ #: library/DigitalPointBetterAnalytics/ViewAdmin/config.php:970
879
  msgid "Everything"
880
  msgstr ""
881
 
996
  msgstr ""
997
 
998
  #: library/DigitalPointBetterAnalytics/Model/Reporting.php:179
999
+ #: library/DigitalPointBetterAnalytics/ViewAdmin/goals.php:177
1000
  msgid "Session Duration"
1001
  msgstr ""
1002
 
1306
  msgstr ""
1307
 
1308
  #: library/DigitalPointBetterAnalytics/ViewAdmin/config.php:178
1309
+ #: library/DigitalPointBetterAnalytics/ViewAdmin/config.php:766
1310
  msgid "Pick profile"
1311
  msgstr ""
1312
 
1313
  #: library/DigitalPointBetterAnalytics/ViewAdmin/config.php:180
1314
+ #: library/DigitalPointBetterAnalytics/ViewAdmin/config.php:768
1315
  msgid "please pick a profile"
1316
  msgstr ""
1317
 
1537
  msgstr ""
1538
 
1539
  #: library/DigitalPointBetterAnalytics/ViewAdmin/config.php:647
1540
+ msgid "RevContent"
1541
+ msgstr ""
1542
+
1543
+ #: library/DigitalPointBetterAnalytics/ViewAdmin/config.php:652
1544
  msgid "Taboola"
1545
  msgstr ""
1546
 
1547
+ #. #-#-#-#-# plugin.pot (Better Analytics 1.0.6) #-#-#-#-#
1548
  #. Author of the plugin/theme
1549
+ #: library/DigitalPointBetterAnalytics/ViewAdmin/config.php:657
1550
  msgid "Digital Point"
1551
  msgstr ""
1552
 
1553
+ #: library/DigitalPointBetterAnalytics/ViewAdmin/config.php:668
1554
  msgid "Site Issues To Track"
1555
  msgstr ""
1556
 
1557
+ #: library/DigitalPointBetterAnalytics/ViewAdmin/config.php:680
1558
  msgid ""
1559
  "This relies on the ability of the user's browser to load images which will "
1560
  "vary between browsers and Internet connections. This event can be a useful "
1562
  "that the end user's browser did not load (for any reason)."
1563
  msgstr ""
1564
 
1565
+ #: library/DigitalPointBetterAnalytics/ViewAdmin/config.php:700
1566
  msgid ""
1567
  "This allows you to quickly find old videos that the author has removed or "
1568
  "disabled embeding for."
1569
  msgstr ""
1570
 
1571
+ #: library/DigitalPointBetterAnalytics/ViewAdmin/config.php:709
1572
  msgid "Debugging Events"
1573
  msgstr ""
1574
 
1575
+ #: library/DigitalPointBetterAnalytics/ViewAdmin/config.php:728
1576
  msgid "WooCommerce"
1577
  msgstr ""
1578
 
1579
+ #: library/DigitalPointBetterAnalytics/ViewAdmin/config.php:736
1580
  msgid "WooCommerce not enabled/active."
1581
  msgstr ""
1582
 
1583
+ #: library/DigitalPointBetterAnalytics/ViewAdmin/config.php:739
1584
  msgid "More information about %s"
1585
  msgstr ""
1586
 
1587
+ #: library/DigitalPointBetterAnalytics/ViewAdmin/config.php:741
1588
  msgid "View details"
1589
  msgstr ""
1590
 
1591
+ #: library/DigitalPointBetterAnalytics/ViewAdmin/config.php:763
1592
  msgid "Profile Used For Reporting"
1593
  msgstr ""
1594
 
1595
+ #: library/DigitalPointBetterAnalytics/ViewAdmin/config.php:798
1596
  msgid "Multisite Mode: Analytics account linked at network level"
1597
  msgstr ""
1598
 
1599
+ #: library/DigitalPointBetterAnalytics/ViewAdmin/config.php:812
1600
  #: library/DigitalPointBetterAnalytics/ViewAdmin/config_network.php:20
1601
  #: library/DigitalPointBetterAnalytics/ViewAdmin/test.php:122
1602
  msgid "Link/Authenticate A Different Google Analytics Account"
1603
  msgstr ""
1604
 
1605
+ #: library/DigitalPointBetterAnalytics/ViewAdmin/config.php:812
1606
  #: library/DigitalPointBetterAnalytics/ViewAdmin/config_network.php:20
1607
  msgid "Link/Authenticate Your Google Analytics Account"
1608
  msgstr ""
1609
 
1610
+ #: library/DigitalPointBetterAnalytics/ViewAdmin/config.php:831
1611
  #: library/DigitalPointBetterAnalytics/ViewAdmin/config_network.php:39
1612
  msgid "Use Your Own Project Credentials"
1613
  msgstr ""
1614
 
1615
+ #: library/DigitalPointBetterAnalytics/ViewAdmin/config.php:833
1616
  #: library/DigitalPointBetterAnalytics/ViewAdmin/config_network.php:40
1617
  msgid ""
1618
  "If you have your own Google API Project that you wish to use, you can use "
1619
  "your credentials for that web application."
1620
  msgstr ""
1621
 
1622
+ #: library/DigitalPointBetterAnalytics/ViewAdmin/config.php:844
1623
  #: library/DigitalPointBetterAnalytics/ViewAdmin/config_network.php:50
1624
  msgid "Configuration"
1625
  msgstr ""
1626
 
1627
  #. translators: %1$s = <strong>, %2$s = </strong>
1628
+ #: library/DigitalPointBetterAnalytics/ViewAdmin/config.php:846
1629
  #: library/DigitalPointBetterAnalytics/ViewAdmin/config_network.php:52
1630
  msgid ""
1631
  "Project needs to have the %1$sAnalytics API%2$s enabled under %1$sAPIs & "
1633
  msgstr ""
1634
 
1635
  #. translators: %1$s = <strong>, %2$s = </strong>
1636
+ #: library/DigitalPointBetterAnalytics/ViewAdmin/config.php:848
1637
  #: library/DigitalPointBetterAnalytics/ViewAdmin/config_network.php:54
1638
  msgid ""
1639
  "Under %1$sAPIs & auth -> Credentials%2$s, you need to %1$sCreate new Client "
1641
  "%1$s%3$s%2$s"
1642
  msgstr ""
1643
 
1644
+ #: library/DigitalPointBetterAnalytics/ViewAdmin/config.php:856
1645
  #: library/DigitalPointBetterAnalytics/ViewAdmin/config_network.php:61
1646
  msgid "Client ID"
1647
  msgstr ""
1648
 
1649
+ #: library/DigitalPointBetterAnalytics/ViewAdmin/config.php:866
1650
  #: library/DigitalPointBetterAnalytics/ViewAdmin/config_network.php:68
1651
  msgid "Client Secret"
1652
  msgstr ""
1653
 
1654
+ #: library/DigitalPointBetterAnalytics/ViewAdmin/config.php:877
1655
  msgid "Roles To Not Track"
1656
  msgstr ""
1657
 
1658
+ #: library/DigitalPointBetterAnalytics/ViewAdmin/config.php:877
1659
+ #: library/DigitalPointBetterAnalytics/ViewAdmin/config.php:913
1660
  msgid ""
1661
  "If a logged in user is part of one of these groups, Analytics will not track "
1662
  "them."
1663
  msgstr ""
1664
 
1665
+ #: library/DigitalPointBetterAnalytics/ViewAdmin/config.php:880
1666
  msgid "Pick roles to not track"
1667
  msgstr ""
1668
 
1669
+ #: library/DigitalPointBetterAnalytics/ViewAdmin/config.php:895
1670
  msgid "Roles Able To View Reports/Dashboard"
1671
  msgstr ""
1672
 
1673
+ #: library/DigitalPointBetterAnalytics/ViewAdmin/config.php:898
1674
  msgid "Pick roles that are able to view reports"
1675
  msgstr ""
1676
 
1677
+ #: library/DigitalPointBetterAnalytics/ViewAdmin/config.php:913
1678
  msgid "File Extensions To Track As Downloads"
1679
  msgstr ""
1680
 
1681
+ #: library/DigitalPointBetterAnalytics/ViewAdmin/config.php:915
1682
  msgid "Pick file extensions"
1683
  msgstr ""
1684
 
1685
+ #: library/DigitalPointBetterAnalytics/ViewAdmin/config.php:920
1686
  msgid "Audio Video Interleave (.avi)"
1687
  msgstr ""
1688
 
1689
+ #: library/DigitalPointBetterAnalytics/ViewAdmin/config.php:921
1690
  msgid "Word (.doc)"
1691
  msgstr ""
1692
 
1693
+ #: library/DigitalPointBetterAnalytics/ViewAdmin/config.php:922
1694
  msgid "Executable (.exe)"
1695
  msgstr ""
1696
 
1697
+ #: library/DigitalPointBetterAnalytics/ViewAdmin/config.php:923
1698
  msgid "gzip (.gz)"
1699
  msgstr ""
1700
 
1701
+ #: library/DigitalPointBetterAnalytics/ViewAdmin/config.php:924
1702
  msgid "MPEG-1 Video (.mpg)"
1703
  msgstr ""
1704
 
1705
+ #: library/DigitalPointBetterAnalytics/ViewAdmin/config.php:925
1706
  msgid "MP3 (.mp3)"
1707
  msgstr ""
1708
 
1709
+ #: library/DigitalPointBetterAnalytics/ViewAdmin/config.php:926
1710
  msgid "Acrobat (.pdf)"
1711
  msgstr ""
1712
 
1713
+ #: library/DigitalPointBetterAnalytics/ViewAdmin/config.php:927
1714
  msgid "PowerPoint (.ppt)"
1715
  msgstr ""
1716
 
1717
+ #: library/DigitalPointBetterAnalytics/ViewAdmin/config.php:928
1718
  msgid "Photoshop (.psd)"
1719
  msgstr ""
1720
 
1721
+ #: library/DigitalPointBetterAnalytics/ViewAdmin/config.php:929
1722
  msgid "RAR (.rar)"
1723
  msgstr ""
1724
 
1725
+ #: library/DigitalPointBetterAnalytics/ViewAdmin/config.php:930
1726
  msgid "Windows Media Video (.wmv)"
1727
  msgstr ""
1728
 
1729
+ #: library/DigitalPointBetterAnalytics/ViewAdmin/config.php:931
1730
  msgid "Excel (.xls)"
1731
  msgstr ""
1732
 
1733
+ #: library/DigitalPointBetterAnalytics/ViewAdmin/config.php:932
1734
  msgid "Zip Archive (.zip)"
1735
  msgstr ""
1736
 
1737
+ #: library/DigitalPointBetterAnalytics/ViewAdmin/config.php:946
1738
  msgid "Track Users With Analytics Blockers"
1739
  msgstr ""
1740
 
1741
  #. translators: %1$s = <strong>, %2$s = </strong>, %3$s = <p />
1742
+ #: library/DigitalPointBetterAnalytics/ViewAdmin/config.php:949
1743
  msgid ""
1744
  "If a user has a mechanism that is blocking them from being tracked with "
1745
  "Google Analytics, you can use this option to do server-side page view "
1750
  "tracked (ones not popular enough to be widely known as a spider)."
1751
  msgstr ""
1752
 
1753
+ #: library/DigitalPointBetterAnalytics/ViewAdmin/config.php:955
1754
  msgid "Never"
1755
  msgstr ""
1756
 
1757
+ #: library/DigitalPointBetterAnalytics/ViewAdmin/config.php:960
1758
  msgid "Registered Users"
1759
  msgstr ""
1760
 
1761
+ #: library/DigitalPointBetterAnalytics/ViewAdmin/config.php:965
1762
  msgid "Humans"
1763
  msgstr ""
1764
 
1765
+ #: library/DigitalPointBetterAnalytics/ViewAdmin/config.php:978
1766
  msgid "Location For Analytics Code"
1767
  msgstr ""
1768
 
1769
+ #: library/DigitalPointBetterAnalytics/ViewAdmin/config.php:983
1770
  msgid "Header"
1771
  msgstr ""
1772
 
1773
+ #: library/DigitalPointBetterAnalytics/ViewAdmin/config.php:988
1774
  msgid "Footer"
1775
  msgstr ""
1776
 
1777
+ #: library/DigitalPointBetterAnalytics/ViewAdmin/config.php:993
1778
  msgid "No JavaScript (you have your own/other already)"
1779
  msgstr ""
1780
 
1781
+ #: library/DigitalPointBetterAnalytics/ViewAdmin/config.php:999
1782
  msgid "Use In Staff Area (wp-admin)"
1783
  msgstr ""
1784
 
1785
+ #: library/DigitalPointBetterAnalytics/ViewAdmin/config.php:1005
1786
  msgid "When To Run Analytics Code"
1787
  msgstr ""
1788
 
1789
+ #: library/DigitalPointBetterAnalytics/ViewAdmin/config.php:1010
1790
  msgid "Immediately"
1791
  msgstr ""
1792
 
1793
+ #: library/DigitalPointBetterAnalytics/ViewAdmin/config.php:1015
1794
  msgid "After Page Loads"
1795
  msgstr ""
1796
 
1797
+ #: library/DigitalPointBetterAnalytics/ViewAdmin/config.php:1022
1798
  msgid "Campaign Tracking Within URLs"
1799
  msgstr ""
1800
 
1801
+ #: library/DigitalPointBetterAnalytics/ViewAdmin/config.php:1027
1802
  msgid "In Anchor"
1803
  msgstr ""
1804
 
1805
+ #: library/DigitalPointBetterAnalytics/ViewAdmin/config.php:1032
1806
  msgid "In Parameters"
1807
  msgstr ""
1808
 
1809
+ #: library/DigitalPointBetterAnalytics/ViewAdmin/config.php:1039
1810
  msgid "Sample Rate"
1811
  msgstr ""
1812
 
1813
+ #: library/DigitalPointBetterAnalytics/ViewAdmin/config.php:1039
1814
  msgid ""
1815
  "Specifies what percentage of users should be tracked. Very large sites may "
1816
  "need to use a lower sample rate to stay within Google Analytics processing "
1817
  "limits."
1818
  msgstr ""
1819
 
1820
+ #: library/DigitalPointBetterAnalytics/ViewAdmin/config.php:1060
1821
  msgid "Extra JavaScript"
1822
  msgstr ""
1823
 
1824
+ #: library/DigitalPointBetterAnalytics/ViewAdmin/config.php:1060
1825
  msgid ""
1826
  "This allows you to add your own JavaScript code to the Analytics tracking "
1827
  "code. This JavaScript is inserted right before the %1$s function."
1828
  msgstr ""
1829
 
1830
+ #: library/DigitalPointBetterAnalytics/ViewAdmin/config.php:1067
1831
  msgid "Debugging"
1832
  msgstr ""
1833
 
1834
+ #: library/DigitalPointBetterAnalytics/ViewAdmin/config.php:1072
1835
  msgid "Enable Google Analytics Debugging"
1836
  msgstr ""
1837
 
1838
+ #: library/DigitalPointBetterAnalytics/ViewAdmin/config.php:1073
1839
  msgid "This will display Google Analytics debug data in the browser console."
1840
  msgstr ""
1841
 
1895
  msgid "active users"
1896
  msgstr ""
1897
 
1898
+ #: library/DigitalPointBetterAnalytics/ViewAdmin/goals.php:26
1899
+ msgid "Edit Goal"
1900
+ msgstr ""
1901
+
1902
+ #: library/DigitalPointBetterAnalytics/ViewAdmin/goals.php:26
1903
+ msgid "Create Goal"
1904
+ msgstr ""
1905
+
1906
+ #: library/DigitalPointBetterAnalytics/ViewAdmin/goals.php:50
1907
+ msgid "Pick slot"
1908
+ msgstr ""
1909
+
1910
+ #: library/DigitalPointBetterAnalytics/ViewAdmin/goals.php:77
1911
+ #: library/DigitalPointBetterAnalytics/ViewAdmin/goals.php:114
1912
+ msgid "Pick type"
1913
+ msgstr ""
1914
+
1915
+ #: library/DigitalPointBetterAnalytics/ViewAdmin/goals.php:103
1916
+ #: library/DigitalPointBetterAnalytics/ViewAdmin/goals.php:135
1917
+ msgid "Optional"
1918
+ msgstr ""
1919
+
1920
+ #: library/DigitalPointBetterAnalytics/ViewAdmin/goals.php:110
1921
+ msgid "Destination"
1922
+ msgstr ""
1923
+
1924
+ #: library/DigitalPointBetterAnalytics/ViewAdmin/goals.php:125
1925
+ #: library/DigitalPointBetterAnalytics/ViewAdmin/goals.php:154
1926
+ msgid "URL"
1927
+ msgstr ""
1928
+
1929
+ #: library/DigitalPointBetterAnalytics/ViewAdmin/goals.php:129
1930
+ msgid "Case sensitive"
1931
+ msgstr ""
1932
+
1933
+ #: library/DigitalPointBetterAnalytics/ViewAdmin/goals.php:134
1934
+ msgid "Funnel"
1935
+ msgstr ""
1936
+
1937
+ #: library/DigitalPointBetterAnalytics/ViewAdmin/goals.php:162
1938
+ msgid "Required"
1939
+ msgstr ""
1940
+
1941
+ #: library/DigitalPointBetterAnalytics/ViewAdmin/goals.php:172
1942
+ msgid "Add another step"
1943
+ msgstr ""
1944
+
1945
+ #: library/DigitalPointBetterAnalytics/ViewAdmin/goals.php:185
1946
+ msgid "Hours"
1947
+ msgstr ""
1948
+
1949
+ #: library/DigitalPointBetterAnalytics/ViewAdmin/goals.php:186
1950
+ msgid "Minutes"
1951
+ msgstr ""
1952
+
1953
+ #: library/DigitalPointBetterAnalytics/ViewAdmin/goals.php:187
1954
+ msgid "Seconds"
1955
+ msgstr ""
1956
+
1957
+ #: library/DigitalPointBetterAnalytics/ViewAdmin/goals.php:206
1958
+ msgid "Pages Per Session"
1959
+ msgstr ""
1960
+
1961
+ #: library/DigitalPointBetterAnalytics/ViewAdmin/goals.php:220
1962
+ msgid "Conditions"
1963
+ msgstr ""
1964
+
1965
+ #: library/DigitalPointBetterAnalytics/ViewAdmin/goals.php:294
1966
+ msgid "Use the Event value as the Goal Value for the conversion"
1967
+ msgstr ""
1968
+
1969
+ #: library/DigitalPointBetterAnalytics/ViewAdmin/goals.php:326
1970
+ msgid "Goal name is required."
1971
+ msgstr ""
1972
+
1973
+ #: library/DigitalPointBetterAnalytics/ViewAdmin/goals.php:362
1974
+ msgid "Destination URL is required."
1975
+ msgstr ""
1976
+
1977
+ #: library/DigitalPointBetterAnalytics/ViewAdmin/goals.php:425
1978
+ msgid "You must specify a Category, Action or Label."
1979
+ msgstr ""
1980
+
1981
+ #. translators: %1$s = <strong>, %2$s = </strong>
1982
+ #: library/DigitalPointBetterAnalytics/ViewAdmin/goals.php:452
1983
+ msgid "Goal %1$supdated%2$s."
1984
+ msgstr ""
1985
+
1986
+ #. translators: %1$s = <strong>, %2$s = </strong>
1987
+ #: library/DigitalPointBetterAnalytics/ViewAdmin/goals.php:457
1988
+ msgid "Goal %1$screated%2$s."
1989
+ msgstr ""
1990
+
1991
+ #: library/DigitalPointBetterAnalytics/ViewAdmin/goals.php:480
1992
+ msgid "Add New"
1993
+ msgstr ""
1994
+
1995
+ #. translators: %1$s = <strong>, %2$s = </strong>
1996
+ #: library/DigitalPointBetterAnalytics/ViewAdmin/goals.php:491
1997
+ msgid "Goal %1$sactivated%2$s."
1998
+ msgstr ""
1999
+
2000
+ #. translators: %1$s = <strong>, %2$s = </strong>
2001
+ #: library/DigitalPointBetterAnalytics/ViewAdmin/goals.php:496
2002
+ msgid "Selected goals %1$sactivated%2$s."
2003
+ msgstr ""
2004
+
2005
+ #. translators: %1$s = <strong>, %2$s = </strong>
2006
+ #: library/DigitalPointBetterAnalytics/ViewAdmin/goals.php:501
2007
+ msgid "Goal %1$sdeactivated%2$s."
2008
+ msgstr ""
2009
+
2010
+ #. translators: %1$s = <strong>, %2$s = </strong>
2011
+ #: library/DigitalPointBetterAnalytics/ViewAdmin/goals.php:506
2012
+ msgid "Selected goals %1$sdeactivated%2$s."
2013
+ msgstr ""
2014
+
2015
  #: library/DigitalPointBetterAnalytics/ViewAdmin/reports/area_charts.php:10
2016
  #: library/DigitalPointBetterAnalytics/ViewAdmin/reports/events.php:7
2017
  #: library/DigitalPointBetterAnalytics/ViewAdmin/reports/heatmaps.php:8
2152
 
2153
  #: library/DigitalPointBetterAnalytics/ViewAdmin/test.php:68
2154
  #: library/DigitalPointBetterAnalytics/ViewAdmin/test.php:114
2155
+ #: library/DigitalPointBetterAnalytics/ViewAdmin/test.php:346
2156
  msgid "Auto-Configure"
2157
  msgstr ""
2158
 
2222
  msgid "Create Analytics Account Manually Within Your Google Account"
2223
  msgstr ""
2224
 
2225
+ #: library/DigitalPointBetterAnalytics/ViewAdmin/test.php:247
2226
  msgid ""
2227
  "Google API Quota Exceeded (you will need to configure your Google Analytics "
2228
  "account manually)."
2229
  msgstr ""
2230
 
2231
+ #: library/DigitalPointBetterAnalytics/ViewAdmin/test.php:286
2232
  msgid "Test Analytics Integration"
2233
  msgstr ""
2234
 
2235
+ #: library/DigitalPointBetterAnalytics/ViewAdmin/test.php:289
2236
  msgid ""
2237
  "This is a checklist of things for full integration with Google Analytics. "
2238
  "You can click on any of the titles to be taken where you need to go to "
2239
  "configure that item."
2240
  msgstr ""
2241
 
2242
+ #: library/DigitalPointBetterAnalytics/ViewAdmin/test.php:293
2243
  msgid "Things That Can Be Automatically Checked"
2244
  msgstr ""
2245
 
2246
+ #: library/DigitalPointBetterAnalytics/ViewAdmin/test.php:298
2247
  msgid "Web Property ID Defined"
2248
  msgstr ""
2249
 
2250
+ #: library/DigitalPointBetterAnalytics/ViewAdmin/test.php:307
2251
  msgid "cURL Installed"
2252
  msgstr ""
2253
 
2254
+ #: library/DigitalPointBetterAnalytics/ViewAdmin/test.php:313
2255
  msgid ""
2256
  "Not required, but recommended to have the cURL extensions enabled in PHP."
2257
  msgstr ""
2258
 
2259
+ #: library/DigitalPointBetterAnalytics/ViewAdmin/test.php:333
2260
  msgid "Google Analytics Account Linked"
2261
  msgstr ""
2262
 
2263
+ #: library/DigitalPointBetterAnalytics/ViewAdmin/test.php:345
2264
  msgid ""
2265
  "Items highlighted in yellow can be auto-configured via the Google Analytics "
2266
  "API if you wish."
2267
  msgstr ""
2268
 
2269
+ #: library/DigitalPointBetterAnalytics/ViewAdmin/test.php:354
2270
  msgid "Analytics Profile Selected"
2271
  msgstr ""
2272
 
2273
+ #: library/DigitalPointBetterAnalytics/ViewAdmin/test.php:360
2274
  msgid ""
2275
  "If you would like the Auto-Configure system to create a new Web Property on "
2276
  "your Google Analytics account, don't select an existing profile."
2277
  msgstr ""
2278
 
2279
+ #: library/DigitalPointBetterAnalytics/ViewAdmin/test.php:367
2280
  msgid "Site Search Setup"
2281
  msgstr ""
2282
 
2283
  #. translators: %1$s = <strong>, %2$s = </strong>
2284
+ #: library/DigitalPointBetterAnalytics/ViewAdmin/test.php:374
2285
  msgid ""
2286
  "Found in Google Analytics account under %1$sView Settings -> Query Parameter"
2287
  "%2$s (should be set to \"%1$ss%2$s\")."
2288
  msgstr ""
2289
 
2290
+ #: library/DigitalPointBetterAnalytics/ViewAdmin/test.php:380
2291
  msgid "Ecommerce Tracking Enabled"
2292
  msgstr ""
2293
 
2294
  #. translators: %1$s = <strong>, %2$s = </strong>
2295
+ #: library/DigitalPointBetterAnalytics/ViewAdmin/test.php:388
2296
+ #: library/DigitalPointBetterAnalytics/ViewAdmin/test.php:401
2297
  msgid "Found in Google Analytics account under %1$sEcommerce Settings%2$s."
2298
  msgstr ""
2299
 
2300
+ #: library/DigitalPointBetterAnalytics/ViewAdmin/test.php:394
2301
  msgid "Enhanced Ecommerce Tracking Enabled"
2302
  msgstr ""
2303
 
2304
+ #: library/DigitalPointBetterAnalytics/ViewAdmin/test.php:407
2305
  msgid "Industry Vertical Set"
2306
  msgstr ""
2307
 
2308
  #. translators: %1$s = <strong>, %2$s = </strong>, %3$s = current setting in
2309
  #. Google Analytics account
2310
+ #: library/DigitalPointBetterAnalytics/ViewAdmin/test.php:414
2311
  msgid ""
2312
  "Found in Google Analytics account under %1$sProperty Settings%2$s (currently "
2313
  "set to %1$s%3$s%2$s)."
2314
  msgstr ""
2315
 
2316
+ #: library/DigitalPointBetterAnalytics/ViewAdmin/test.php:420
2317
  msgid "Custom Dimension For Category Tracking"
2318
  msgstr ""
2319
 
2320
  #. translators: %1$s = <strong>, %2$s = </strong> ... %3$s can't be translated
2321
  #. - leave
2322
+ #: library/DigitalPointBetterAnalytics/ViewAdmin/test.php:427
2323
+ #: library/DigitalPointBetterAnalytics/ViewAdmin/test.php:441
2324
+ #: library/DigitalPointBetterAnalytics/ViewAdmin/test.php:454
2325
+ #: library/DigitalPointBetterAnalytics/ViewAdmin/test.php:468
2326
+ #: library/DigitalPointBetterAnalytics/ViewAdmin/test.php:482
2327
+ #: library/DigitalPointBetterAnalytics/ViewAdmin/test.php:497
2328
  msgid ""
2329
  "Found in Google Analytics account under %1$sCustom Definitions -> Custom "
2330
  "Dimensions%2$s (should be named \"%1$s%3$s%2$s\" and scoped for \"%1$sHit%2$s"
2331
  "\")."
2332
  msgstr ""
2333
 
2334
+ #: library/DigitalPointBetterAnalytics/ViewAdmin/test.php:433
2335
  msgid "Custom Dimension For Author Tracking"
2336
  msgstr ""
2337
 
2338
+ #: library/DigitalPointBetterAnalytics/ViewAdmin/test.php:447
2339
  msgid "Custom Dimension For Tag Tracking"
2340
  msgstr ""
2341
 
2342
+ #: library/DigitalPointBetterAnalytics/ViewAdmin/test.php:460
2343
  msgid "Custom Dimension For Publication Year Tracking"
2344
  msgstr ""
2345
 
2346
+ #: library/DigitalPointBetterAnalytics/ViewAdmin/test.php:474
2347
  msgid "Custom Dimension For User Role Tracking"
2348
  msgstr ""
2349
 
2350
+ #: library/DigitalPointBetterAnalytics/ViewAdmin/test.php:489
2351
  msgid "Custom Dimension For User Tracking"
2352
  msgstr ""
2353
 
2354
+ #: library/DigitalPointBetterAnalytics/ViewAdmin/test.php:504
2355
  msgid "Category Tracking Dimension Index Set"
2356
  msgstr ""
2357
 
2358
+ #: library/DigitalPointBetterAnalytics/ViewAdmin/test.php:513
2359
  msgid "Author Tracking Dimension Index Set"
2360
  msgstr ""
2361
 
2362
+ #: library/DigitalPointBetterAnalytics/ViewAdmin/test.php:521
2363
  msgid "Tag Tracking Dimension Index Set"
2364
  msgstr ""
2365
 
2366
+ #: library/DigitalPointBetterAnalytics/ViewAdmin/test.php:529
2367
  msgid "Publication Year Tracking Dimension Index Set"
2368
  msgstr ""
2369
 
2370
+ #: library/DigitalPointBetterAnalytics/ViewAdmin/test.php:537
2371
  msgid "User Role Tracking Dimension Index Set"
2372
  msgstr ""
2373
 
2374
+ #: library/DigitalPointBetterAnalytics/ViewAdmin/test.php:545
2375
  msgid "Registered User Tracking Dimension Index Set"
2376
  msgstr ""
2377
 
2378
+ #: library/DigitalPointBetterAnalytics/ViewAdmin/test.php:553
2379
  msgid "Better Analytics Pro License"
2380
  msgstr ""
2381
 
2382
+ #: library/DigitalPointBetterAnalytics/ViewAdmin/test.php:558
2383
  msgid ""
2384
  "A few extra advanced features are available when you license the Better "
2385
  "Analytics Pro plugin. Please don't steal, a crazy amount of work went into "
2386
  "this. Some of the extra features:"
2387
  msgstr ""
2388
 
2389
+ #: library/DigitalPointBetterAnalytics/ViewAdmin/test.php:562
2390
  msgid "More metrics available for %1$sHeat Maps%2$s"
2391
  msgstr ""
2392
 
2393
+ #: library/DigitalPointBetterAnalytics/ViewAdmin/test.php:567
2394
  msgid "More dimensions available for %1$sCharts%2$s"
2395
  msgstr ""
2396
 
2397
+ #: library/DigitalPointBetterAnalytics/ViewAdmin/test.php:572
2398
  msgid "More %1$sadvertising platform click tracking%2$s"
2399
  msgstr ""
2400
 
2401
+ #: library/DigitalPointBetterAnalytics/ViewAdmin/test.php:577
2402
  msgid "More %1$sissue monitoring options%2$s"
2403
  msgstr ""
2404
 
2405
+ #: library/DigitalPointBetterAnalytics/ViewAdmin/test.php:582
2406
  msgid "%1$seCommerce tracking%2$s"
2407
  msgstr ""
2408
 
2409
+ #: library/DigitalPointBetterAnalytics/ViewAdmin/test.php:587
2410
  msgid "Ability to do %1$sserver-side tracking of users%2$s"
2411
  msgstr ""
2412
 
2413
+ #: library/DigitalPointBetterAnalytics/ViewAdmin/test.php:592
2414
  msgid "Faster API calls (utilizes a multi-threaded mechanism)"
2415
  msgstr ""
2416
 
2417
+ #: library/DigitalPointBetterAnalytics/ViewAdmin/test.php:597
2418
  msgid "%1$sPriority support%2$s"
2419
  msgstr ""
2420
 
2421
+ #: library/DigitalPointBetterAnalytics/ViewAdmin/test.php:602
2422
  msgid ""
2423
  "A Warm & Fuzzy Feeling knowing you are helping to continue future development"
2424
  msgstr ""
2425
 
2426
+ #: library/DigitalPointBetterAnalytics/ViewAdmin/test.php:614
2427
  msgid "Things That Need To Be Checked Manually"
2428
  msgstr ""
2429
 
2430
+ #: library/DigitalPointBetterAnalytics/ViewAdmin/test.php:618
2431
  msgid "User-ID Tracking"
2432
  msgstr ""
2433
 
2434
+ #: library/DigitalPointBetterAnalytics/ViewAdmin/test.php:621
2435
  msgid ""
2436
  "Found in Google Analytics account under %1$sTracking Info -> User-ID%2$s."
2437
  msgstr ""
2438
 
2439
+ #: library/DigitalPointBetterAnalytics/ViewAdmin/test.php:626
2440
  msgid "Demographic and Interest Reports"
2441
  msgstr ""
2442
 
2443
+ #: library/DigitalPointBetterAnalytics/ViewAdmin/test.php:629
2444
  msgid "Found in Google Analytics account under %1$sProperty Settings%1$s."
2445
  msgstr ""
2446
 
library/DigitalPointBetterAnalytics/Base/Admin.php CHANGED
@@ -97,9 +97,12 @@ class DigitalPointBetterAnalytics_Base_Admin
97
  add_submenu_page( 'better-analytics_heatmaps', esc_html__('Events', 'better-analytics'), esc_html__('Events', 'better-analytics'), 'read', 'better-analytics_events', array($this, 'display_page') );
98
  }
99
 
 
 
100
  add_submenu_page( 'better-analytics_heatmaps', esc_html__('Settings', 'better-analytics'), esc_html__('Settings', 'better-analytics'), 'manage_options', 'options-general.php' . '?page=better-analytics' );
101
  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' );
102
 
 
103
  $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'));
104
  add_action( "load-$hook", array($this, 'admin_help'));
105
  }
@@ -338,7 +341,7 @@ class DigitalPointBetterAnalytics_Base_Admin
338
  $url = str_replace('wp-admin/settings.php', 'wp-admin/network/settings.php', $url);
339
  }
340
 
341
- wp_redirect(DigitalPointBetterAnalytics_Helper_Reporting::getInstance()->getAuthenticationUrl($url), 302);
342
  }
343
 
344
 
97
  add_submenu_page( 'better-analytics_heatmaps', esc_html__('Events', 'better-analytics'), esc_html__('Events', 'better-analytics'), 'read', 'better-analytics_events', array($this, 'display_page') );
98
  }
99
 
100
+ add_submenu_page( 'better-analytics_heatmaps', esc_html__('Goals', 'better-analytics'), esc_html__('Goals', 'better-analytics'), 'manage_options', 'better-analytics_goals', array($this, 'display_page') );
101
+ //add_submenu_page( 'better-analytics_heatmaps', esc_html__('A/B Testing', 'better-analytics'), esc_html__('A/B Testing', 'better-analytics'), 'manage_options', 'better-analytics_experiments', array($this, 'display_page') );
102
  add_submenu_page( 'better-analytics_heatmaps', esc_html__('Settings', 'better-analytics'), esc_html__('Settings', 'better-analytics'), 'manage_options', 'options-general.php' . '?page=better-analytics' );
103
  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' );
104
 
105
+
106
  $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'));
107
  add_action( "load-$hook", array($this, 'admin_help'));
108
  }
341
  $url = str_replace('wp-admin/settings.php', 'wp-admin/network/settings.php', $url);
342
  }
343
 
344
+ wp_redirect(DigitalPointBetterAnalytics_Helper_Reporting::getInstance()->getAuthenticationUrl($url, true), 302);
345
  }
346
 
347
 
library/DigitalPointBetterAnalytics/ControllerAdmin/Analytics.php CHANGED
@@ -464,6 +464,86 @@ class DigitalPointBetterAnalytics_ControllerAdmin_Analytics
464
  $this->_view('reports/events', array('type' => 'events'));
465
  }
466
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
467
 
468
 
469
 
464
  $this->_view('reports/events', array('type' => 'events'));
465
  }
466
 
467
+ public function actionGoals()
468
+ {
469
+ if (!$this->_assertLinkedAccount())
470
+ {
471
+ return;
472
+ }
473
+
474
+ $betterAnalyticsOptions = get_option('better_analytics');
475
+ $reportingClass = DigitalPointBetterAnalytics_Helper_Reporting::getInstance();
476
+
477
+ if (@$_REQUEST['action'] == 'activate' || @$_REQUEST['action'] == 'deactivate')
478
+ {
479
+ if ($goalId = absint(@$_REQUEST['id']))
480
+ {
481
+ check_admin_referer($_REQUEST['action'] . '-goal');
482
+
483
+ if ($profile = $reportingClass->getProfileByProfileId($betterAnalyticsOptions['api']['profile']))
484
+ {
485
+ $goal = $reportingClass->patchGoal($profile['accountId'], $profile['webPropertyId'], $profile['id'], $goalId, array(
486
+ 'active' => ($_REQUEST['action'] == 'activate' ? true : false),
487
+ ));
488
+
489
+ $reportingClass->deleteGoalCache();
490
+ }
491
+ }
492
+ }
493
+ elseif (@$_REQUEST['action'] == 'activate-selected' || @$_REQUEST['action'] == 'deactivate-selected')
494
+ {
495
+ if (!empty($_REQUEST['checked']) && is_array($_REQUEST['checked']))
496
+ {
497
+ $checkIds = array();
498
+ foreach ($_REQUEST['checked'] as $check)
499
+ {
500
+ if ($id = absint($check))
501
+ {
502
+ $checkIds[] = absint($check);
503
+ }
504
+ }
505
+
506
+ if ($checkIds)
507
+ {
508
+ check_admin_referer('bulk-goals');
509
+
510
+ if ($profile = $reportingClass->getProfileByProfileId($betterAnalyticsOptions['api']['profile']))
511
+ {
512
+ foreach ($checkIds as $id)
513
+ {
514
+ $goal = $reportingClass->patchGoal($profile['accountId'], $profile['webPropertyId'], $profile['id'], $id, array(
515
+ 'active' => ($_REQUEST['action'] == 'activate-selected' ? true : false),
516
+ ));
517
+ }
518
+
519
+ $reportingClass->deleteGoalCache();
520
+ }
521
+ }
522
+ }
523
+ }
524
+
525
+ global $totals;
526
+ $totals = array();
527
+
528
+ $goals = $reportingClass->getGoals('~all', '~all', '~all');
529
+ $goals = DigitalPointBetterAnalytics_Model_Reporting::filterGoalsByProfile($goals, @$betterAnalyticsOptions['property_id'], @$betterAnalyticsOptions['api']['profile'], $totals);
530
+
531
+
532
+ $this->_view('goals', array('goals' => $goals));
533
+
534
+ }
535
+
536
+
537
+ public function actionExperiments()
538
+ {
539
+ if (!$this->_assertLinkedAccount())
540
+ {
541
+ return;
542
+ }
543
+
544
+ exit;
545
+ }
546
+
547
 
548
 
549
 
library/DigitalPointBetterAnalytics/Formatting/GoalTable.php ADDED
@@ -0,0 +1,311 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ class DigitalPointBetterAnalytics_Formatting_GoalTable extends WP_List_Table
4
+ {
5
+ public function __construct( $args = array())
6
+ {
7
+ global $status;
8
+
9
+ $status = 'all';
10
+ if ( isset( $_REQUEST['goal_status'] ) && in_array( $_REQUEST['goal_status'], array( 'active', 'inactive') ) )
11
+ {
12
+ $status = $_REQUEST['goal_status'];
13
+
14
+ $goals = array();
15
+
16
+ if (!empty($args['goals']) && is_array($args['goals']))
17
+ {
18
+ foreach ($args['goals'] as $key => $goal)
19
+ {
20
+ if ($_REQUEST['goal_status'] == 'active' && $goal['active'])
21
+ {
22
+ $goals[$key] = $goal;
23
+ }
24
+ elseif ($_REQUEST['goal_status'] == 'inactive' && !$goal['active'])
25
+ {
26
+ $goals[$key] = $goal;
27
+ }
28
+ }
29
+
30
+ $args['goals'] = $goals;
31
+ }
32
+ }
33
+
34
+ // because this isn't hacky, right? lol
35
+ if (@$_GET['action'] == 'activate' || @$_GET['action'] == 'deactivate')
36
+ {
37
+ $_SERVER['REQUEST_URI'] = remove_query_arg(array('id', 'action', '_wpnonce'), $_SERVER['REQUEST_URI']);
38
+ }
39
+
40
+ parent::__construct($args);
41
+ }
42
+
43
+ protected function _getCurrentUrl()
44
+ {
45
+ return set_url_scheme('http://' . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI']);
46
+ }
47
+
48
+ public function ajax_user_can()
49
+ {
50
+ return current_user_can('manage_options');
51
+ }
52
+
53
+ public function prepare_items()
54
+ {
55
+ global $totals, $status;
56
+
57
+ $columns = $this->get_columns();
58
+ $hidden = array();
59
+ $sortable = $this->get_sortable_columns();
60
+ $this->_column_headers = array($columns, $hidden, $sortable);
61
+
62
+ $this->items = $this->_args['goals'];
63
+
64
+ if (!empty($_REQUEST['orderby']))
65
+ {
66
+ $sortOrders = array(
67
+ 'name' => array('key' => 'name', 'type' => SORT_STRING),
68
+ 'slot' => array('key' => 'id', 'type' => SORT_NUMERIC),
69
+ 'value' => array('key' => 'value', 'type' => SORT_NUMERIC),
70
+ 'created' => array('key' => 'created', 'type' => SORT_STRING),
71
+ 'updated' => array('key' => 'updated', 'type' => SORT_STRING),
72
+ );
73
+
74
+ if (!empty($sortOrders[$_REQUEST['orderby']]))
75
+ {
76
+ $sortOrder = array();
77
+
78
+ foreach($this->items as $item)
79
+ {
80
+ $sortOrder[] = strtolower($item[$sortOrders[$_REQUEST['orderby']]['key']]);
81
+ }
82
+
83
+ array_multisort($sortOrder, (@$_REQUEST['order'] == 'desc' ? SORT_DESC : SORT_ASC), $sortOrders[$_REQUEST['orderby']]['type'], $this->items);
84
+ }
85
+ }
86
+
87
+ $this->set_pagination_args( array(
88
+ 'total_items' => $totals[$status],
89
+ 'per_page' => 1000,
90
+ ));
91
+ }
92
+
93
+ protected function get_table_classes()
94
+ {
95
+ return array('goals', 'widefat', $this->_args['plural'] );
96
+ }
97
+
98
+ public function get_columns()
99
+ {
100
+ return array(
101
+ 'cb' => '<input type="checkbox" />',
102
+ 'name' => esc_html__('Name', 'better-analytics'),
103
+ 'slot' => esc_html__('Slot', 'better-analytics'),
104
+ 'value' => esc_html__('Value', 'better-analytics'),
105
+ 'created' => esc_html__('Created', 'better-analytics'),
106
+ 'updated' => esc_html__('Updated', 'better-analytics'),
107
+ );
108
+ }
109
+
110
+ protected function get_sortable_columns()
111
+ {
112
+ return array(
113
+ 'name' => array('name', false),
114
+ 'slot' => array('slot', false),
115
+ 'value' => array('value', true),
116
+ 'created' => array('created', true),
117
+ 'updated' => array('updated', true),
118
+ );
119
+ }
120
+
121
+ protected function get_views()
122
+ {
123
+ global $totals, $status;
124
+
125
+ $status_links = array();
126
+ foreach ($totals as $type => $count)
127
+ {
128
+ if (!$count)
129
+ {
130
+ continue;
131
+ }
132
+
133
+ switch ( $type ) {
134
+ case 'all':
135
+ /* translators: %1$s = label, %2$s = <span>, %3$s = </span>, %4$u = number */
136
+ $text = sprintf(esc_html__('%1$s %2$s(%4$u)%3$s', 'better-analytics'),
137
+ _n('All', 'All', $count),
138
+ '<span class="count">',
139
+ '</span>',
140
+ $count
141
+ );
142
+ break;
143
+
144
+ case 'active':
145
+ /* translators: %1$s = label, %2$s = <span>, %3$s = </span>, %4$u = number */
146
+ $text = sprintf(esc_html__('%1$s %2$s(%4$u)%3$s', 'better-analytics'),
147
+ _n('Active', 'Active', $count),
148
+ '<span class="count">',
149
+ '</span>',
150
+ $count
151
+ );
152
+ break;
153
+
154
+ case 'inactive':
155
+ /* translators: %1$s = label, %2$s = <span>, %3$s = </span>, %4$u = number */
156
+ $text = sprintf(esc_html__('%1$s %2$s(%4$u)%3$s', 'better-analytics'),
157
+ _n('Inactive', 'Inactive', $count),
158
+ '<span class="count">',
159
+ '</span>',
160
+ $count
161
+ );
162
+ }
163
+
164
+ if ( 'search' != $type )
165
+ {
166
+ $status_links[$type] = sprintf( "<a href='%s' %s>%s</a>",
167
+ add_query_arg('goal_status', $type, menu_page_url('better-analytics_goals', false)),
168
+ ( $type == $status ) ? ' class="current"' : '',
169
+ sprintf( $text, number_format_i18n( $count ) )
170
+ );
171
+ }
172
+ }
173
+
174
+ return $status_links;
175
+ }
176
+
177
+ protected function get_bulk_actions()
178
+ {
179
+ global $status;
180
+
181
+ $actions = array();
182
+
183
+ if ($status != 'active')
184
+ {
185
+ $actions['activate-selected'] = esc_html__('Activate', 'better-analytics');
186
+ }
187
+ if ( $status != 'inactive')
188
+ {
189
+ $actions['deactivate-selected'] = esc_html__('Deactivate', 'better-analytics');
190
+ }
191
+
192
+ return $actions;
193
+ }
194
+
195
+ public function single_row($item)
196
+ {
197
+ echo '<tr' . ($item['active'] ? ' class="active"' : '') . '>';
198
+ $this->single_row_columns($item);
199
+ echo '</tr>';
200
+
201
+ echo '<tr class="extra_info' . ($item['active'] ? ' active' : '') . '"><td colspan="5">' . '<div>' . DigitalPointBetterAnalytics_Model_Goals::getTypeNameByCode($item['type']) . ': ' . '<strong style="padding-left: 5px;">';
202
+
203
+ switch ($item['type'])
204
+ {
205
+ case 'URL_DESTINATION':
206
+ echo $item['urlDestinationDetails']['url'];
207
+ break;
208
+ case 'VISIT_TIME_ON_SITE':
209
+ $durations = explode(":", gmdate('j:H:i:s', @$item['visitTimeOnSiteDetails']['comparisonValue']));
210
+
211
+ /* translators: %1$s = hours, %2$s = minutes, %3$s = seconds */
212
+ printf(esc_html__('%1$u hours, %2$u minutes, %3$u seconds', 'better-analytics'),
213
+ (absint($durations[0] - 1) * 24) + absint($durations[1]),
214
+ $durations[2],
215
+ $durations[3]
216
+ );
217
+ break;
218
+ case 'VISIT_NUM_PAGES':
219
+ echo number_format_i18n(@$item['visitNumPagesDetails']['comparisonValue']);
220
+ break;
221
+ case 'EVENT':
222
+ echo @$item['eventDetails']['eventConditions'][0]['expression'];
223
+ break;
224
+ }
225
+
226
+ echo '</strong>';
227
+ echo '</div>';
228
+
229
+ $url = $this->_getCurrentUrl();
230
+ if ($item['active'])
231
+ {
232
+ echo '<div class="row-actions visible"><a href="' . wp_nonce_url(add_query_arg(array('id' => $item['id'], 'action' => 'deactivate'), $url), 'deactivate-goal') . '" title="' . esc_html__('Deactivate', 'better-analytics') . '">' . esc_html__('Deactivate', 'better-analytics') . '</a></div>';
233
+ }
234
+ else
235
+ {
236
+ echo '<div class="row-actions visible"><a href="' . wp_nonce_url(add_query_arg(array('id' => $item['id'], 'action' => 'activate'), $url), 'activate-goal') . '" title="' . esc_html__('Activate', 'better-analytics') . '">' . esc_html__('Activate', 'better-analytics') . '</a></div>';
237
+ }
238
+
239
+
240
+ echo '</td></tr>';
241
+
242
+ }
243
+
244
+ protected function single_row_columns($item)
245
+ {
246
+ list( $columns, $hidden ) = $this->get_column_info();
247
+
248
+ foreach ( $columns as $column_name => $column_display_name ) {
249
+ $class = "class='$column_name column-$column_name'";
250
+
251
+ $style = '';
252
+ if ( in_array( $column_name, $hidden ) )
253
+ $style = ' style="display:none;"';
254
+
255
+ $attributes = "$class$style";
256
+
257
+ if ( 'cb' == $column_name ) {
258
+ echo '<th scope="row" class="check-column" rowspan="2">';
259
+ echo $this->column_cb( $item );
260
+ echo '</th>';
261
+ }
262
+ elseif ( method_exists( $this, 'column_' . $column_name ) ) {
263
+ echo "<td $attributes>";
264
+ echo call_user_func( array( $this, 'column_' . $column_name ), $item );
265
+ echo "</td>";
266
+ }
267
+ else {
268
+ echo "<td $attributes>";
269
+ echo $this->column_default( $item, $column_name );
270
+ echo "</td>";
271
+ }
272
+ }
273
+ }
274
+
275
+ protected function column_cb($item)
276
+ {
277
+ echo "<label class='screen-reader-text' for='checkbox_" . $item['id'] . "' >" . sprintf(esc_html__('Select %s', 'better-analytics'), $item['name']) . "</label>"
278
+ . "<input type='checkbox' name='checked[]' value='" . esc_attr( $item['id'] ) . "' id='checkbox_" . $item['id'] . "' />";
279
+ }
280
+
281
+
282
+ protected function column_name($item)
283
+ {
284
+ echo '<strong><a class="row-title" href="' . add_query_arg(array('action' => 'create_edit', 'id' => $item['id']), menu_page_url('better-analytics_goals', false)) . '">' . sanitize_text_field($item['name']) . '</a></strong>';
285
+ }
286
+
287
+ protected function column_slot($item)
288
+ {
289
+ $goalSet = DigitalPointBetterAnalytics_Model_Goals::getGoalSetByGoal($item['id']);
290
+
291
+ printf(esc_html__('Goal ID %1$u / Goal Set %2$u', 'better-analytics'), $item['id'], $goalSet);
292
+ }
293
+
294
+ protected function column_value($item)
295
+ {
296
+ echo number_format_i18n($item['value'], 2);
297
+ }
298
+
299
+ protected function column_created($item)
300
+ {
301
+ /* translators: PHP date format - see: http://php.net/manual/function.date.php */
302
+ echo get_date_from_gmt($item['created'], esc_html__('Y/m/d g:i a', 'better-analytics'));
303
+ }
304
+
305
+ protected function column_updated($item)
306
+ {
307
+ /* translators: PHP date format - see: http://php.net/manual/function.date.php */
308
+ echo get_date_from_gmt($item['updated'], esc_html__('Y/m/d g:i a', 'better-analytics'));
309
+ }
310
+
311
+ }
library/DigitalPointBetterAnalytics/Helper/Reporting/Abstract.php CHANGED
@@ -13,6 +13,8 @@ abstract class DigitalPointBetterAnalytics_Helper_Reporting_Abstract
13
  protected static $_webPropertiesEndpoint = '/%s/webproperties';
14
  protected static $_profilesEndpoint = '/%s/profiles';
15
  protected static $_dimensionsEndpoint = '/%s/customDimensions';
 
 
16
 
17
  protected static $_curlHandles = array();
18
 
@@ -98,7 +100,7 @@ abstract class DigitalPointBetterAnalytics_Helper_Reporting_Abstract
98
 
99
  public function getAuthenticationUrl($state = null, $includeEditScope = false, $accessType = 'offline')
100
  {
101
- return self::$_oAuthEndpoint . 'auth?redirect_uri=' . urlencode($this->_getAdminAuthUrl()) . ($state ? '&state=' . urlencode($state) : '') . '&response_type=code&client_id=' . urlencode($this->_getOption('apiClientId')) . '&scope=https%3A%2F%2Fwww.googleapis.com%2Fauth%2Fanalytics' . ($includeEditScope ? '.edit' : '') . '&approval_prompt=force&access_type=' . urlencode($accessType);
102
  }
103
 
104
  public function exchangeCodeForToken($code)
@@ -511,6 +513,97 @@ abstract class DigitalPointBetterAnalytics_Helper_Reporting_Abstract
511
  return $foundProfile;
512
  }
513
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
514
 
515
 
516
  public function getWeeklyHeatmap($endDaysAgo, $weeks, $metric, $segment = null)
13
  protected static $_webPropertiesEndpoint = '/%s/webproperties';
14
  protected static $_profilesEndpoint = '/%s/profiles';
15
  protected static $_dimensionsEndpoint = '/%s/customDimensions';
16
+ protected static $_goalsEndpoint = '/%s/goals';
17
+ protected static $_experimentsEndpoint = '/%s/experiments';
18
 
19
  protected static $_curlHandles = array();
20
 
100
 
101
  public function getAuthenticationUrl($state = null, $includeEditScope = false, $accessType = 'offline')
102
  {
103
+ return self::$_oAuthEndpoint . 'auth?redirect_uri=' . urlencode($this->_getAdminAuthUrl()) . ($state ? '&state=' . urlencode($state) : '') . '&response_type=code&client_id=' . urlencode($this->_getOption('apiClientId')) . '&scope=https%3A%2F%2Fwww.googleapis.com%2Fauth%2Fanalytics' . ($includeEditScope ? '+https%3A%2F%2Fwww.googleapis.com%2Fauth%2Fanalytics.edit' : '') . '&approval_prompt=force&access_type=' . urlencode($accessType);
104
  }
105
 
106
  public function exchangeCodeForToken($code)
513
  return $foundProfile;
514
  }
515
 
516
+ public function getGoals($accountId, $webPropertyId, $profileId, $goalId = null)
517
+ {
518
+ return $this->_makeApiCall(
519
+ sprintf(self::$_accountsEndpoint . self::$_webPropertiesEndpoint . self::$_profilesEndpoint . self::$_goalsEndpoint . ($goalId ? '/%s' : ''), $accountId, $webPropertyId, $profileId, $goalId),
520
+ 'ba_goals_' . md5($accountId . '-' . $webPropertyId . '-' . $profileId . '-' . $goalId),
521
+ 'GET',
522
+ 60
523
+ );
524
+ }
525
+
526
+ public function insertGoal($accountId, $webPropertyId, $profileId, $fields = array())
527
+ {
528
+ return $this->_makeApiCall(
529
+ sprintf(self::$_accountsEndpoint . self::$_webPropertiesEndpoint . self::$_profilesEndpoint . self::$_goalsEndpoint, $accountId, $webPropertyId, $profileId),
530
+ null,
531
+ 'INSERT',
532
+ 0,
533
+ $fields
534
+ );
535
+ }
536
+
537
+ public function patchGoal($accountId, $webPropertyId, $profileId, $goalId, $fields = array())
538
+ {
539
+ return $this->_makeApiCall(
540
+ sprintf(self::$_accountsEndpoint . self::$_webPropertiesEndpoint . self::$_profilesEndpoint . self::$_goalsEndpoint . ($goalId ? '/%s' : ''), $accountId, $webPropertyId, $profileId, $goalId),
541
+ null,
542
+ 'PATCH',
543
+ 0,
544
+ $fields
545
+ );
546
+ }
547
+
548
+ public function deleteGoalCache($accountId = '~all', $webPropertyId = '~all', $profileId = '~all', $goalId = null)
549
+ {
550
+ $cacheKey = 'ba_goals_' . md5($accountId . '-' . $webPropertyId . '-' . $profileId . '-' . $goalId);
551
+ $this->_cacheDelete($cacheKey);
552
+ }
553
+
554
+
555
+ public function getExperiments($accountId, $webPropertyId, $profileId)
556
+ {
557
+ return $this->_makeApiCall(
558
+ sprintf(self::$_accountsEndpoint . self::$_webPropertiesEndpoint . self::$_profilesEndpoint . self::$_experimentsEndpoint, $accountId, $webPropertyId, $profileId),
559
+ 'ba_exp_' . md5($accountId . '-' . $webPropertyId . '-' . $profileId),
560
+ 'GET',
561
+ 60
562
+ );
563
+ }
564
+
565
+ protected function _makeApiCall($endpoint, $cacheKey = null, $method = 'GET', $cacheMinutes = 60, $fields = array())
566
+ {
567
+ if (empty($cacheKey) || !$results = $this->_cacheLoad($cacheKey))
568
+ {
569
+ $fromCache = false;
570
+
571
+ if ($tokens = $this->checkAccessToken())
572
+ {
573
+ $this->_initHttp($endpoint);
574
+
575
+ $params = array('access_token' => $tokens->access_token);
576
+ if ($fields)
577
+ {
578
+ $params['body'] = json_encode($fields);
579
+ }
580
+
581
+ $this->_setParamsAction($params);
582
+
583
+ $response = $this->_execHandlerAction($method);
584
+
585
+ $results = json_decode($response, true);
586
+
587
+ if ($this->_hasError($results))
588
+ {
589
+ $fromCache = true;
590
+ }
591
+ }
592
+ }
593
+ else
594
+ {
595
+ $fromCache = true;
596
+ }
597
+
598
+ if ($cacheKey && !$fromCache)
599
+ {
600
+ $this->_cacheSave($cacheKey, $results, $cacheMinutes);
601
+ }
602
+ return $results;
603
+
604
+ }
605
+
606
+
607
 
608
 
609
  public function getWeeklyHeatmap($endDaysAgo, $weeks, $metric, $segment = null)
library/DigitalPointBetterAnalytics/Model/Goals.php ADDED
@@ -0,0 +1,78 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ class DigitalPointBetterAnalytics_Model_Goals
4
+ {
5
+ public static function getTypes()
6
+ {
7
+ $types = array(
8
+ 'URL_DESTINATION' => esc_html__('Destination URL', 'better-analytics'),
9
+ 'VISIT_TIME_ON_SITE' => esc_html__('Session duration', 'better-analytics'),
10
+ 'VISIT_NUM_PAGES' => esc_html__('Pages per session', 'better-analytics'),
11
+ 'EVENT' => esc_html__('Event', 'better-analytics'),
12
+ );
13
+
14
+ return $types;
15
+ }
16
+
17
+ public static function getTypeNameByCode($typeCode)
18
+ {
19
+ $types = self::getTypes();
20
+ return @$types[$typeCode];
21
+ }
22
+
23
+ public static function getMatchTypes($goals = false)
24
+ {
25
+ if ($goals)
26
+ {
27
+ $types = array(
28
+ 'EXACT' => esc_html__('Equal to', 'better-analytics'),
29
+ 'BEGINS_WITH' => esc_html__('Begins with', 'better-analytics'),
30
+ 'REGEXP' => esc_html__('Regular expression', 'better-analytics'),
31
+ );
32
+ }
33
+ else
34
+ {
35
+ $types = array(
36
+ 'EXACT' => esc_html__('Equal to', 'better-analytics'),
37
+ 'HEAD' => esc_html__('Begins with', 'better-analytics'),
38
+ 'REGEX' => esc_html__('Regular expression', 'better-analytics'),
39
+ );
40
+ }
41
+
42
+ return $types;
43
+ }
44
+
45
+ public static function getComparisonTypes()
46
+ {
47
+ $types = array(
48
+ 'LESS_THAN' => esc_html__('Less than', 'better-analytics'),
49
+ 'GREATER_THAN' => esc_html__('Greater than', 'better-analytics'),
50
+ 'EQUAL' => esc_html__('Equal to', 'better-analytics'),
51
+ );
52
+
53
+ return $types;
54
+ }
55
+
56
+ public static function getEventConditionTypes()
57
+ {
58
+ $types = array(
59
+ 'CATEGORY' => esc_html__('Category', 'better-analytics'),
60
+ 'ACTION' => esc_html__('Action', 'better-analytics'),
61
+ 'LABEL' => esc_html__('Label', 'better-analytics'),
62
+ 'VALUE' => esc_html__('Value', 'better-analytics'),
63
+ );
64
+
65
+ return $types;
66
+ }
67
+
68
+ public static function getUrlMatchTypeNameByCode($typeCode)
69
+ {
70
+ $types = self::getMatchTypes();
71
+ return @$types[$typeCode];
72
+ }
73
+
74
+ public static function getGoalSetByGoal($goalId)
75
+ {
76
+ return ((($goalId - 1) - (($goalId - 1) % 5)) / 5) + 1;
77
+ }
78
+ }
library/DigitalPointBetterAnalytics/Model/Reporting.php CHANGED
@@ -282,4 +282,46 @@ class DigitalPointBetterAnalytics_Model_Reporting
282
  }
283
  return $output;
284
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
285
  }
282
  }
283
  return $output;
284
  }
285
+
286
+ public static function filterGoalsByProfile($goals, $webPropertyId, $profileId, &$totals)
287
+ {
288
+ $output = array();
289
+ if (@$goals['items'])
290
+ {
291
+ foreach($goals['items'] as $goal)
292
+ {
293
+ if ($goal['webPropertyId'] == $webPropertyId && $goal['profileId'] == $profileId)
294
+ {
295
+ $output[$goal['id']] = $goal;
296
+ @$totals['all']++;
297
+ if ($goal['active'])
298
+ {
299
+ @$totals['active']++;
300
+ }
301
+ else
302
+ {
303
+ @$totals['inactive']++;
304
+ }
305
+ }
306
+ }
307
+ }
308
+ return $output;
309
+ }
310
+
311
+ public static function getGoalByGoalId($goals, $webPropertyId, $profileId, $goalId)
312
+ {
313
+ $goal = null;
314
+ if (@$goals['items'])
315
+ {
316
+ foreach($goals['items'] as $goal)
317
+ {
318
+ if ($goal['webPropertyId'] == $webPropertyId && $goal['profileId'] == $profileId && $goal['id'] == $goalId)
319
+ {
320
+ break;
321
+ }
322
+ }
323
+ }
324
+ return $goal;
325
+ }
326
+
327
  }
library/DigitalPointBetterAnalytics/ViewAdmin/config.php CHANGED
@@ -642,6 +642,11 @@
642
  <?php esc_html_e('Outbrain', 'better-analytics');?></label>
643
  <br />
644
 
 
 
 
 
 
645
  <label for="ba_ads_taboola"<?php echo (!intval(@$betterAnalyticsInternal['v']) ? ' class="pro"' : ''); ?>>
646
  <input name="better_analytics[ads][taboola]" type="checkbox" id="ba_ads_taboola" value="1" <?php checked('1', @$betterAnalyticsOptions['ads']['taboola'] ); disabled(0, intval(@$betterAnalyticsInternal['v'])); ?>>
647
  <?php esc_html_e('Taboola', 'better-analytics');?></label>
642
  <?php esc_html_e('Outbrain', 'better-analytics');?></label>
643
  <br />
644
 
645
+ <label for="ba_ads_revcontent"<?php echo (!intval(@$betterAnalyticsInternal['v']) ? ' class="pro"' : ''); ?>>
646
+ <input name="better_analytics[ads][revcontent]" type="checkbox" id="ba_ads_revcontent" value="1" <?php checked('1', @$betterAnalyticsOptions['ads']['revcontent'] ); disabled(0, intval(@$betterAnalyticsInternal['v'])); ?>>
647
+ <?php esc_html_e('RevContent', 'better-analytics');?></label>
648
+ <br />
649
+
650
  <label for="ba_ads_taboola"<?php echo (!intval(@$betterAnalyticsInternal['v']) ? ' class="pro"' : ''); ?>>
651
  <input name="better_analytics[ads][taboola]" type="checkbox" id="ba_ads_taboola" value="1" <?php checked('1', @$betterAnalyticsOptions['ads']['taboola'] ); disabled(0, intval(@$betterAnalyticsInternal['v'])); ?>>
652
  <?php esc_html_e('Taboola', 'better-analytics');?></label>
library/DigitalPointBetterAnalytics/ViewAdmin/goals.php ADDED
@@ -0,0 +1,517 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ wp_enqueue_script('better_analytics_admin_js', BETTER_ANALYTICS_PLUGIN_URL . 'assets/digitalpoint/js/admin.js', array(), BETTER_ANALYTICS_VERSION );
4
+ wp_enqueue_style('better_analytics_admin_css', BETTER_ANALYTICS_PLUGIN_URL . 'assets/digitalpoint/css/admin.css', array(), BETTER_ANALYTICS_VERSION);
5
+
6
+ $betterAnalyticsOptions = get_option('better_analytics');
7
+
8
+ $nOnceSalt = @$betterAnalyticsOptions['property_id'] . '-' . @$betterAnalyticsOptions['api']['profile'];
9
+
10
+ $noticeAtTop = '';
11
+
12
+ if (@$_REQUEST['action'] == 'create_edit')
13
+ {
14
+ $goalId = absint(@$_REQUEST['id']);
15
+
16
+ $goalsAll = DigitalPointBetterAnalytics_Helper_Reporting::getInstance()->getGoals('~all', '~all', '~all');
17
+
18
+ if ($goalId)
19
+ {
20
+ $goal = DigitalPointBetterAnalytics_Model_Reporting::getGoalByGoalId($goalsAll, @$betterAnalyticsOptions['property_id'], @$betterAnalyticsOptions['api']['profile'], $goalId);
21
+ }
22
+
23
+ if ($_SERVER['REQUEST_METHOD'] != 'POST')
24
+ {
25
+ echo '<div class="wrap goal_create">
26
+ <h2>' . ($goalId ? esc_html__('Edit Goal', 'better-analytics') : esc_html__('Create Goal', 'better-analytics')) . '</h2>
27
+
28
+ <form method="post" action="' . esc_url(menu_page_url('better-analytics_goals', false)) . '">
29
+ <input type="hidden" name="page" value="better-analytics_goals"/>
30
+ <input type="hidden" name="action" value="create_edit"/>';
31
+ wp_nonce_field('create_edit-goal' . $nOnceSalt);
32
+
33
+ ?>
34
+
35
+ <table class="form-table">
36
+
37
+ <tr valign="top">
38
+ <th scope="row"><?php esc_html_e('Slot', 'better-analytics');?></th>
39
+ <td>
40
+ <?php
41
+
42
+ if ($goalId)
43
+ {
44
+ echo '<input type="hidden" name="id" value="' . $goalId . '"/>';
45
+ $goalSet = DigitalPointBetterAnalytics_Model_Goals::getGoalSetByGoal($goalId);
46
+ printf(esc_html__('Goal ID %1$u / Goal Set %2$u', 'better-analytics'), $goal['id'], $goalSet);
47
+ }
48
+ else
49
+ {
50
+ echo '<select name="slot" data-placeholder="' . esc_html__('Pick slot', 'better-analytics') . '" id="ba_slot" class="chosen-select">';
51
+
52
+ $goalsAll = DigitalPointBetterAnalytics_Model_Reporting::filterGoalsByProfile($goalsAll, @$betterAnalyticsOptions['property_id'], @$betterAnalyticsOptions['api']['profile'], $totals);
53
+
54
+ foreach (range(1, 20) as $number)
55
+ {
56
+ $goalSet = DigitalPointBetterAnalytics_Model_Goals::getGoalSetByGoal($number);
57
+ echo '<option value="' . $number . '"' . (!empty($goalsAll[$number]) ? ' disabled="disabled"' : '') . '>' . htmlentities(sprintf(esc_html__('Goal ID %1$u / Goal Set %2$u', 'better-analytics'), $number, $goalSet)) . '</option>';
58
+ }
59
+ echo '</select>';
60
+ }
61
+ ?>
62
+ </td>
63
+ </tr>
64
+
65
+ <tr valign="top">
66
+ <th scope="row"><?php esc_html_e('Name', 'better-analytics');?></th>
67
+ <td>
68
+ <input type="text" name="name" class="regular-text" id="ba_name" value="<?php echo esc_attr( @$goal['name'] ); ?>" required />
69
+ </td>
70
+ </tr>
71
+
72
+ <tr valign="top">
73
+ <th scope="row"><?php esc_html_e('Type', 'better-analytics');?></th>
74
+ <td>
75
+
76
+ <?php
77
+ echo '<select name="type" data-placeholder="' . esc_html__('Pick type', 'better-analytics') . '" id="ba_type" class="chosen-select">';
78
+
79
+ $types = DigitalPointBetterAnalytics_Model_Goals::getTypes();
80
+
81
+ foreach ($types as $key => $type)
82
+ {
83
+ echo '<option value="' . $key . '"' . ($key == @$goal['type'] ? ' selected="selected"' : '') . '>' . htmlentities($type) . '</option>';
84
+ }
85
+ echo '</select>';
86
+ ?>
87
+
88
+ </td>
89
+ </tr>
90
+
91
+ <tr valign="top">
92
+ <th scope="row"></th>
93
+ <td>
94
+ <fieldset>
95
+ <label for="ba_active">
96
+ <input name="active" type="checkbox" id="ba_active" value="1" <?php checked('1', (@$goal ? @$goal['active'] : '1')); ?>>
97
+ <?php esc_html_e('Active', 'better-analytics');?></label>
98
+ </fieldset>
99
+ </td>
100
+ </tr>
101
+
102
+ <tr valign="top">
103
+ <th scope="row"><?php esc_html_e('Value', 'better-analytics');?><span class="optional"><?php esc_html_e('Optional', 'better-analytics');?></span></th>
104
+ <td>
105
+ <input type="number" name="value" id="ba_value" min="0" step="0.01" value="<?php echo number_format(@$goal['value'], 2); ?>" />
106
+ </td>
107
+ </tr>
108
+
109
+ <tr valign="top" class="dynamic_options URL_DESTINATION">
110
+ <th scope="row"><?php esc_html_e('Destination', 'better-analytics');?></th>
111
+ <td>
112
+
113
+ <?php
114
+ echo '<select name="destination_match_type" data-placeholder="' . esc_html__('Pick type', 'better-analytics') . '" id="ba_destination_match_type" class="chosen-select">';
115
+
116
+ $types = DigitalPointBetterAnalytics_Model_Goals::getMatchTypes();
117
+
118
+ foreach ($types as $key => $type)
119
+ {
120
+ echo '<option value="' . $key . '"' . ($key == @$goal['urlDestinationDetails']['matchType'] ? ' selected="selected"' : '') . '>' . htmlentities($type) . '</option>';
121
+ }
122
+ echo '</select>';
123
+ ?>
124
+
125
+ <input type="text" name="destination_url" class="regular-text" id="ba_destination_url" placeholder="<?php echo esc_attr(esc_html__('URL', 'better-analytics'));?>" value="<?php echo esc_attr( @$goal['urlDestinationDetails']['url'] ); ?>" />
126
+
127
+ <label for="ba_case_sensitive">
128
+ <input name="case_sensitive" type="checkbox" id="ba_case_sensitive" value="1" <?php checked('1', (@$goal['urlDestinationDetails']['caseSensitive'] ? '1' : '')); ?>>
129
+ <?php esc_html_e('Case sensitive', 'better-analytics');?></label>
130
+ </td>
131
+ </tr>
132
+
133
+ <tr valign="top" class="dynamic_options URL_DESTINATION funnel">
134
+ <th scope="row"><?php esc_html_e('Funnel', 'better-analytics'); ?><span
135
+ class="optional"><?php esc_html_e('Optional', 'better-analytics'); ?></span></th>
136
+ <td>
137
+ <div>
138
+ <ol>
139
+ <?php
140
+
141
+ // show first line when creating new
142
+ if (empty($goal['urlDestinationDetails']['steps']))
143
+ {
144
+ $goal['urlDestinationDetails']['steps'] = array(true);
145
+ }
146
+
147
+ if (!empty($goal['urlDestinationDetails']['steps']) && is_array($goal['urlDestinationDetails']['steps']))
148
+ {
149
+ $i = 0;
150
+ foreach ($goal['urlDestinationDetails']['steps'] as $step)
151
+ {
152
+ echo '<li class="funnel_step">
153
+ <span><input type="text" placeholder="' . esc_attr(esc_html__('Name', 'better-analytics')) .'" name="funnel[name][]" value="' . esc_attr(@$step['name']) .'" /></span>
154
+ <span><input type="text" placeholder="' . esc_attr(esc_html__('URL', 'better-analytics')) .'" class="regular-text" name="funnel[url][]" value="' . esc_attr(@$step['url']) .'" /></span>';
155
+
156
+ echo '<a class="delete"><span class="dashicons dashicons-dismiss"></span></a>';
157
+
158
+ if (!$i)
159
+ {
160
+ echo '<span><label for="ba_first_step_required">
161
+ <input name="first_step_required" type="checkbox" id="ba_first_step_required" value="1"' . checked('1', (@$goal['urlDestinationDetails']['firstStepRequired'] ? '1' : ''), false) .'>' .
162
+ esc_html__('Required', 'better-analytics') . '</label>';
163
+ }
164
+
165
+ echo '</li>';
166
+ $i++;
167
+ }
168
+ }
169
+ ?>
170
+ </ol>
171
+ </div>
172
+ <a id="new_step" class="button"><?php esc_html_e('Add another step', 'better-analytics') ?></a>
173
+ </td>
174
+ </tr>
175
+
176
+ <tr valign="top" class="dynamic_options VISIT_TIME_ON_SITE">
177
+ <th scope="row"><?php esc_html_e('Session Duration', 'better-analytics');?></th>
178
+ <td>
179
+ <?php
180
+ $durations = explode(":", gmdate('j:H:i:s', @$goal['visitTimeOnSiteDetails']['comparisonValue']));
181
+ ?>
182
+ <div>
183
+ <div>
184
+ <span></span>
185
+ <span><?php esc_html_e('Hours', 'better-analytics') ?></span>
186
+ <span><?php esc_html_e('Minutes', 'better-analytics') ?></span>
187
+ <span><?php esc_html_e('Seconds', 'better-analytics') ?></span>
188
+ </div>
189
+ <div>
190
+ <span style="padding-right:5px;"><?php esc_html_e('Greater than', 'better-analytics') ?></span>
191
+ <span>
192
+ <input type="number" name="hours" min="0" id="ba_hours" value="<?php echo esc_attr((absint($durations[0] - 1) * 24) + absint($durations[1])); ?>" />
193
+ </span>
194
+ <span>
195
+ <input type="number" name="minutes" min="0" id="ba_minutes" value="<?php echo esc_attr(absint($durations[2])); ?>" />
196
+ </span>
197
+ <span>
198
+ <input type="number" name="seconds" min="0" id="ba_seconds" value="<?php echo esc_attr(absint($durations[3])); ?>" />
199
+ </span>
200
+ </div>
201
+ </div>
202
+ </td>
203
+ </tr>
204
+
205
+ <tr valign="top" class="dynamic_options VISIT_NUM_PAGES">
206
+ <th scope="row"><?php esc_html_e('Pages Per Session', 'better-analytics');?></th>
207
+ <td>
208
+ <div>
209
+ <div>
210
+ <span style="padding-right:5px;"><?php esc_html_e('Greater than', 'better-analytics') ?></span>
211
+ <span>
212
+ <input type="number" name="pages" min="0" id="ba_pages" value="<?php echo esc_attr(absint(@$goal['visitNumPagesDetails']['comparisonValue'])); ?>" />
213
+ </span>
214
+ </div>
215
+ </div>
216
+ </td>
217
+ </tr>
218
+
219
+ <tr valign="top" class="dynamic_options EVENT">
220
+ <th scope="row"><?php esc_html_e('Conditions', 'better-analytics');?></th>
221
+ <td>
222
+ <div>
223
+ <?php
224
+
225
+ $matchTypes = DigitalPointBetterAnalytics_Model_Goals::getMatchTypes(true);
226
+ $comparisonTypes = DigitalPointBetterAnalytics_Model_Goals::getComparisonTypes();
227
+ $eventConditionTypes = DigitalPointBetterAnalytics_Model_Goals::getEventConditionTypes();
228
+
229
+ foreach ($eventConditionTypes as $conditionCode => $conditionLabel)
230
+ {
231
+ if ($conditionCode == 'VALUE')
232
+ {
233
+ $condition = array(
234
+ 'type' => $conditionCode,
235
+ 'comparisonType' => true
236
+ );
237
+ }
238
+ else
239
+ {
240
+ $condition = array(
241
+ 'type' => $conditionCode,
242
+ 'matchType' => true
243
+ );
244
+ }
245
+
246
+ if (!empty($goal['eventDetails']['eventConditions']) && count($goal['eventDetails']['eventConditions']) > 0)
247
+ {
248
+ foreach ($goal['eventDetails']['eventConditions'] as $existingCondition)
249
+ {
250
+ if (@$existingCondition['type'] == $conditionCode)
251
+ {
252
+ $condition = $existingCondition;
253
+ break;
254
+ }
255
+ }
256
+ }
257
+
258
+ echo '<div><span>' . @$eventConditionTypes[$condition['type']] . ':</span><span>';
259
+
260
+ echo '<select name="event_' . strtolower($condition['type']) . '" id="ba_event_' . strtolower($condition['type']) . '" class="chosen-select">';
261
+
262
+ foreach (!empty($condition['matchType']) ? $matchTypes : $comparisonTypes as $key => $type)
263
+ {
264
+ $selected = '';
265
+ if (!empty($condition['matchType']))
266
+ {
267
+ if ($key === $condition['matchType'])
268
+ {
269
+ $selected = ' selected="selected"';
270
+ }
271
+ }
272
+ elseif (!empty($condition['comparisonType']))
273
+ {
274
+ if ($key === $condition['comparisonType'])
275
+ {
276
+ $selected = ' selected="selected"';
277
+ }
278
+ }
279
+
280
+ echo '<option value="' . $key . '"' . $selected . '>' . htmlentities($type) . '</option>';
281
+ }
282
+ echo '</select></span><span>';
283
+
284
+ echo ' <input type="text" name="event_' . strtolower($condition['type']) . '_value" id="ba_event_' . strtolower($condition['type']) . '_value" value="' . esc_attr(@$condition['expression'] ? @$condition['expression'] : @$condition['comparisonValue']) . '" /></span></div>';
285
+
286
+ }
287
+
288
+ ?>
289
+
290
+ </div>
291
+ <fieldset>
292
+ <label for="ba_use_event_value">
293
+ <input name="use_event_value" type="checkbox" id="ba_use_event_value" value="1" <?php checked('1', (@$goal['eventDetails']['useEventValue'] ? '1' : '')); ?>>
294
+ <?php esc_html_e('Use the Event value as the Goal Value for the conversion', 'better-analytics');?></label>
295
+ </fieldset>
296
+
297
+ </td>
298
+ </tr>
299
+ </table>
300
+
301
+
302
+ <?php
303
+ submit_button();
304
+ echo '</form>
305
+ </div>';
306
+ }
307
+ else
308
+ {
309
+ check_admin_referer('create_edit-goal' . $nOnceSalt);
310
+
311
+ $errorMessage = array();
312
+
313
+ $goalObject = array(
314
+ 'name' => sanitize_text_field(@$_POST['name']),
315
+ 'value' => (@$_POST['value'] + 0),
316
+ 'type' => sanitize_text_field(@$_POST['type']),
317
+ 'active' => (@$_POST['active'] ? true : false),
318
+ 'urlDestinationDetails' => array(),
319
+ 'visitTimeOnSiteDetails' => array(),
320
+ 'visitNumPagesDetails' => array(),
321
+ 'eventDetails' => array(),
322
+ );
323
+
324
+ if (!$goalObject['name'])
325
+ {
326
+ $errorMessage[] = esc_html__('Goal name is required.', 'better-analytics');
327
+ }
328
+
329
+ // calling out slot on insert
330
+ if ($slot = absint(@$_POST['slot']))
331
+ {
332
+ $goalObject['id'] = $slot;
333
+ }
334
+
335
+ if (@$_POST['type'] == 'URL_DESTINATION')
336
+ {
337
+ $goalObject['urlDestinationDetails'] = array(
338
+ 'url' => esc_url(@$_POST['destination_url']),
339
+ 'caseSensitive' => (@$_POST['case_sensitive'] ? true : false),
340
+ 'matchType' => @$_POST['destination_match_type'],
341
+ 'firstStepRequired' => (@$_POST['first_step_required'] ? true : false),
342
+ );
343
+ if (!empty($_POST['funnel']) && is_array($_POST['funnel']))
344
+ {
345
+ $goalObject['urlDestinationDetails']['steps'] = array();
346
+
347
+ if (!empty($_POST['funnel']['url'][0]))
348
+ {
349
+ foreach ($_POST['funnel']['name'] as $step => $name)
350
+ {
351
+ $goalObject['urlDestinationDetails']['steps'][] = array(
352
+ 'number' => ($step + 1),
353
+ 'name' => sanitize_text_field($name),
354
+ 'url' => esc_url($_POST['funnel']['url'][$step])
355
+ );
356
+ }
357
+ }
358
+ }
359
+
360
+ if (!$goalObject['urlDestinationDetails']['url'])
361
+ {
362
+ $errorMessage[] = esc_html__('Destination URL is required.', 'better-analytics');
363
+ }
364
+
365
+ }
366
+ elseif (@$_POST['type'] == 'VISIT_TIME_ON_SITE')
367
+ {
368
+ $goalObject['visitTimeOnSiteDetails'] = array(
369
+ 'comparisonType' => 'GREATER_THAN',
370
+ 'comparisonValue' => (absint(@$_POST['hours']) * 3600) + (absint(@$_POST['minutes']) * 60) + absint(@$_POST['seconds']),
371
+ );
372
+ }
373
+ elseif (@$_POST['type'] == 'VISIT_NUM_PAGES')
374
+ {
375
+ $goalObject['visitNumPagesDetails'] = array(
376
+ 'comparisonType' => 'GREATER_THAN',
377
+ 'comparisonValue' => absint(@$_POST['pages']),
378
+ );
379
+ }
380
+ elseif (@$_POST['type'] == 'EVENT')
381
+ {
382
+ $goalObject['eventDetails'] = array(
383
+ 'useEventValue' => (@$_POST['use_event_value'] ? true : false),
384
+ 'eventConditions' => array()
385
+ );
386
+
387
+ if (!empty($_POST['event_category_value']))
388
+ {
389
+ $goalObject['eventDetails']['eventConditions'][] = array(
390
+ 'type' => 'CATEGORY',
391
+ 'matchType' => $_POST['event_category'],
392
+ 'expression' => $_POST['event_category_value']
393
+ );
394
+ }
395
+
396
+ if (!empty($_POST['event_action_value']))
397
+ {
398
+ $goalObject['eventDetails']['eventConditions'][] = array(
399
+ 'type' => 'ACTION',
400
+ 'matchType' => $_POST['event_action'],
401
+ 'expression' => $_POST['event_action_value']
402
+ );
403
+ }
404
+
405
+ if (!empty($_POST['event_label_value']))
406
+ {
407
+ $goalObject['eventDetails']['eventConditions'][] = array(
408
+ 'type' => 'LABEL',
409
+ 'matchType' => $_POST['event_label'],
410
+ 'expression' => $_POST['event_label_value']
411
+ );
412
+ }
413
+
414
+ if (!empty($_POST['event_value_value']))
415
+ {
416
+ $goalObject['eventDetails']['eventConditions'][] = array(
417
+ 'type' => 'VALUE',
418
+ 'comparisonType' => $_POST['event_value'],
419
+ 'comparisonValue' => $_POST['event_value_value']
420
+ );
421
+ }
422
+
423
+ if (count($goalObject['eventDetails']['eventConditions']) == 0)
424
+ {
425
+ $errorMessage[] = esc_html__('You must specify a Category, Action or Label.', 'better-analytics');
426
+ }
427
+
428
+
429
+ }
430
+
431
+ $reportingClass = DigitalPointBetterAnalytics_Helper_Reporting::getInstance();
432
+
433
+ if (!$errorMessage && $profile = $reportingClass->getProfileByProfileId(@$betterAnalyticsOptions['api']['profile']))
434
+ {
435
+ if ($goalId)
436
+ {
437
+ $goal = $reportingClass->patchGoal($profile['accountId'], $profile['webPropertyId'], $profile['id'], $goalId, $goalObject);
438
+ }
439
+ else
440
+ {
441
+ $goal = $reportingClass->insertGoal($profile['accountId'], $profile['webPropertyId'], $profile['id'], $goalObject);
442
+ }
443
+
444
+ $reportingClass->deleteGoalCache();
445
+
446
+ $goals = $reportingClass->getGoals('~all', '~all', '~all');
447
+ $goals = DigitalPointBetterAnalytics_Model_Reporting::filterGoalsByProfile($goals, @$betterAnalyticsOptions['property_id'], @$betterAnalyticsOptions['api']['profile'], $totals);
448
+
449
+ if ($goalId)
450
+ {
451
+ /* translators: %1$s = <strong>, %2$s = </strong> */
452
+ $noticeAtTop = '<div id="message" class="updated notice is-dismissible"><p>' . sprintf(esc_html__('Goal %1$supdated%2$s.'), '<strong>', '</strong>') . '</p></div>';
453
+ }
454
+ else
455
+ {
456
+ /* translators: %1$s = <strong>, %2$s = </strong> */
457
+ $noticeAtTop = '<div id="message" class="updated notice is-dismissible"><p>' . sprintf(esc_html__('Goal %1$screated%2$s.'), '<strong>', '</strong>') . '</p></div>';
458
+ }
459
+ }
460
+ }
461
+
462
+ }
463
+
464
+ if (@$_REQUEST['action'] != 'create_edit' || @$_SERVER['REQUEST_METHOD'] == 'POST')
465
+ {
466
+ if (!empty($errorMessage))
467
+ {
468
+ echo '<div class="wrap">';
469
+
470
+ foreach($errorMessage as $error)
471
+ {
472
+ echo '<div class="error"><p>' . $error . '</p></div>';
473
+ }
474
+ echo '</div>';
475
+ }
476
+ else
477
+ {
478
+ echo '<div class="wrap goals">
479
+ <h2>' . esc_html__('Goals', 'better-analytics') .
480
+ ' <a href="' . add_query_arg(array('action' => 'create_edit'), esc_url(menu_page_url('better-analytics_goals', false))) . '" class="add-new-h2">' . esc_html__('Add New', 'better-analytics') . '</a>' .
481
+ '</h2>
482
+
483
+ <form method="post" action="' . esc_url(menu_page_url('better-analytics_goals', false)) . '">
484
+ <input type="hidden" name="page" value="better-analytics_goals"/>';
485
+
486
+ echo $noticeAtTop;
487
+
488
+ if (isset($_REQUEST['action']) && $_REQUEST['action'] == 'activate')
489
+ {
490
+ /* translators: %1$s = <strong>, %2$s = </strong> */
491
+ echo '<div id="message" class="updated notice is-dismissible"><p>' . sprintf(esc_html__('Goal %1$sactivated%2$s.'), '<strong>', '</strong>') . '</p></div>';
492
+ }
493
+ elseif (isset($_REQUEST['action']) && $_REQUEST['action'] == 'activate-selected')
494
+ {
495
+ /* translators: %1$s = <strong>, %2$s = </strong> */
496
+ echo '<div id="message" class="updated notice is-dismissible"><p>' . sprintf(esc_html__('Selected goals %1$sactivated%2$s.'), '<strong>', '</strong>') . '</p></div>';
497
+ }
498
+ elseif (isset($_REQUEST['action']) && $_REQUEST['action'] == 'deactivate')
499
+ {
500
+ /* translators: %1$s = <strong>, %2$s = </strong> */
501
+ echo '<div id="message" class="updated notice is-dismissible"><p>' . sprintf(esc_html__('Goal %1$sdeactivated%2$s.'), '<strong>', '</strong>') . '</p></div>';
502
+ }
503
+ elseif (isset($_REQUEST['action']) && $_REQUEST['action'] == 'deactivate-selected')
504
+ {
505
+ /* translators: %1$s = <strong>, %2$s = </strong> */
506
+ echo '<div id="message" class="updated notice is-dismissible"><p>' . sprintf(esc_html__('Selected goals %1$sdeactivated%2$s.'), '<strong>', '</strong>') . '</p></div>';
507
+ }
508
+
509
+ $goalTable = new DigitalPointBetterAnalytics_Formatting_GoalTable(array('plural' => 'goals', 'goals' => $goals));
510
+
511
+ $goalTable->prepare_items();
512
+ $goalTable->views();
513
+ $goalTable->display();
514
+
515
+ echo '</form></div>';
516
+ }
517
+ }
library/DigitalPointBetterAnalytics/ViewAdmin/test.php CHANGED
@@ -32,7 +32,7 @@
32
 
33
  $checks['licensed'] = DigitalPointBetterAnalytics_Helper_Api::check(true);
34
 
35
- if ($code = sanitize_text_field(@$_REQUEST['code']))
36
  {
37
  if (!$hasTokens)
38
  {
@@ -71,8 +71,8 @@
71
  {
72
  echo '<div class="error"><p>' . esc_html__('Only use this option if you are sure you want to auto-configure everything.', 'better-analytics') . '</p></div>';
73
 
74
- echo '<form action="' . esc_url(menu_page_url('better-analytics_test', false)) . '" method="POST" style="padding:15px">
75
- <input type="hidden" name="code" value="' . htmlentities($_REQUEST['code']) . '">';
76
 
77
  if ($accounts)
78
  {
@@ -131,10 +131,6 @@
131
  $vertical = sanitize_text_field($_REQUEST['vertical']);
132
  $accountId = absint(@$_REQUEST['account_id']);
133
 
134
- $tokens = $reportingClass->exchangeCodeForToken($code);
135
-
136
- $reportingClass->overrideTokens($tokens);
137
-
138
  $overQuota = false;
139
 
140
  if ($accountId = absint(@$_REQUEST['account_id']))
@@ -175,8 +171,6 @@
175
  $betterAnalyticsOptions['api']['profile'] = $profile['id'];
176
  }
177
 
178
-
179
-
180
  // Really seems like an Analytics bug because the enhancedECommerceTracking option doesn't take upon insert, so for now, PATCHing after the fact.
181
  // See: https://code.google.com/p/analytics-issues/issues/detail?id=688
182
  if (!$overQuota && !empty($profile['id']) && empty($profile['enhancedECommerceTracking']))
@@ -253,8 +247,6 @@
253
  set_transient('ba_last_error', esc_html__('Google API Quota Exceeded (you will need to configure your Google Analytics account manually).'), 10);
254
  }
255
 
256
- $reportingClass->overrideTokens(null);
257
-
258
  $reportingClass->deleteProfileCache();
259
  $reportingClass->deleteProfileCache($property['accountId'], null);
260
  $reportingClass->deleteDimensionCache($property['accountId'], $property['id']);
@@ -351,7 +343,7 @@
351
  <tr>
352
  <td colspan="3" style="text-align:center">
353
  <?php esc_html_e('Items highlighted in yellow can be auto-configured via the Google Analytics API if you wish.', 'better-analytics'); ?>
354
- <br/><br/><a class="button button-primary" href="<?php echo $reportingClass->getAuthenticationUrl(esc_url(menu_page_url('better-analytics_test', false)), true, 'online'); ?>"><?php esc_html_e('Auto-Configure', 'better-analytics');?></a>
355
  </td>
356
  </tr>
357
  <?php
32
 
33
  $checks['licensed'] = DigitalPointBetterAnalytics_Helper_Api::check(true);
34
 
35
+ if (@$_REQUEST['action'] == 'config')
36
  {
37
  if (!$hasTokens)
38
  {
71
  {
72
  echo '<div class="error"><p>' . esc_html__('Only use this option if you are sure you want to auto-configure everything.', 'better-analytics') . '</p></div>';
73
 
74
+ echo '<form action="' . esc_url(menu_page_url('better-analytics_test', false)) . '" method="POST" style="padding:15px">';
75
+ echo '<input type="hidden" name="action" value="config">';
76
 
77
  if ($accounts)
78
  {
131
  $vertical = sanitize_text_field($_REQUEST['vertical']);
132
  $accountId = absint(@$_REQUEST['account_id']);
133
 
 
 
 
 
134
  $overQuota = false;
135
 
136
  if ($accountId = absint(@$_REQUEST['account_id']))
171
  $betterAnalyticsOptions['api']['profile'] = $profile['id'];
172
  }
173
 
 
 
174
  // Really seems like an Analytics bug because the enhancedECommerceTracking option doesn't take upon insert, so for now, PATCHing after the fact.
175
  // See: https://code.google.com/p/analytics-issues/issues/detail?id=688
176
  if (!$overQuota && !empty($profile['id']) && empty($profile['enhancedECommerceTracking']))
247
  set_transient('ba_last_error', esc_html__('Google API Quota Exceeded (you will need to configure your Google Analytics account manually).'), 10);
248
  }
249
 
 
 
250
  $reportingClass->deleteProfileCache();
251
  $reportingClass->deleteProfileCache($property['accountId'], null);
252
  $reportingClass->deleteDimensionCache($property['accountId'], $property['id']);
343
  <tr>
344
  <td colspan="3" style="text-align:center">
345
  <?php esc_html_e('Items highlighted in yellow can be auto-configured via the Google Analytics API if you wish.', 'better-analytics'); ?>
346
+ <br/><br/><a class="button button-primary" href="<?php echo add_query_arg(array('action' => 'config'), esc_url(menu_page_url('better-analytics_test', false))); ?>"><?php esc_html_e('Auto-Configure', 'better-analytics');?></a>
347
  </td>
348
  </tr>
349
  <?php
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.6
8
  License: GPLv2
9
  License URI: https://www.gnu.org/licenses/gpl-2.0.html
10
 
@@ -19,6 +19,13 @@ The Better Google Analytics plugin allows you to easily add Google Analytics cod
19
 
20
  Better Google Analytics utilizes all the latest and greatest features of Google Analytics (Universal analytics, user-ID session unification, event tracking, campaign tracking, custom dimensions, server-side tracking, social engagement tracking, remarketing, etc.)
21
 
 
 
 
 
 
 
 
22
  If you link your Google Analytics account, the Better Google Analytics plugin is able to make extensive use of the Google Analytics API to give you a plethora of reporting options (both historical and realtime). Google Analytics API calls are cached to make them as fast as possible.
23
 
24
  Better Google Analytics uses lightweight (and client-side cacheable) JavaScript to give your users the fastest possible experience on your website. Fully compatible with multisite network setups.
@@ -166,16 +173,24 @@ Thank you to all the individuals who have contributed translations for Better Go
166
  12. A built-in auto-configure mode takes the hassle out of setting up your Google Analytics account for all tracking options.
167
  13. 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).
168
  14. Better Google Analytics includes an optional front-end widget that allows you to display your Google Analytics stats based on any metric you wish.
169
- 15. Better Google Analytics General settings allows you to enable/disable all sorts of tracking features in your Google Analytics account.
170
- 16. Google Google Analytics custom dimension tracking allows you to track categories, authors, tags, publication year, user roles and registered users.
171
- 18. Social button engagement allows you to track things like Likes/Unlikes/Tweets/Shares right within your Google Analytics account.
172
- 19. Track clicks on the ads on your site within your Google Analytics account.
173
- 19. Issue monitoring settings allow you to utilize your Google Analytics account to keep on top of client-side issues with your site.
174
- 20. Advanced settings allow you to fine tune how the system works with Google Analytics.
 
 
175
 
176
  == Changelog ==
177
  = 1.0.7 =
178
  * Feature: Added support for tracking RevContent ad clicks
 
 
 
 
 
 
179
 
180
  = 1.0.6 =
181
  * Added stubs for Better Google Analytics eCommerce module
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.7
8
  License: GPLv2
9
  License URI: https://www.gnu.org/licenses/gpl-2.0.html
10
 
19
 
20
  Better Google Analytics utilizes all the latest and greatest features of Google Analytics (Universal analytics, user-ID session unification, event tracking, campaign tracking, custom dimensions, server-side tracking, social engagement tracking, remarketing, etc.)
21
 
22
+ > <strong>Google Analytics Account Management</strong><br>
23
+ >
24
+ > * The Better Google Analytics plugin can create a new web property/profile on your Google Analytics account if needed (if it's a new site)
25
+ > * Auto-Configure system will set certain options automatically on your Google Analytics account if needed
26
+ > * Auto-Configure system can create custom dimensions for your Google Analytics Web Property and map them to the appropriate Better Google Analytics settings
27
+ > * Google Analytics Goal Management system allows you to create, edit, activate and disable Google Analytics Goals from within your WordPress admin area
28
+
29
  If you link your Google Analytics account, the Better Google Analytics plugin is able to make extensive use of the Google Analytics API to give you a plethora of reporting options (both historical and realtime). Google Analytics API calls are cached to make them as fast as possible.
30
 
31
  Better Google Analytics uses lightweight (and client-side cacheable) JavaScript to give your users the fastest possible experience on your website. Fully compatible with multisite network setups.
173
  12. A built-in auto-configure mode takes the hassle out of setting up your Google Analytics account for all tracking options.
174
  13. 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).
175
  14. Better Google Analytics includes an optional front-end widget that allows you to display your Google Analytics stats based on any metric you wish.
176
+ 15. Better Google Analytics has a full-blown goal management system that allows you to create and edit all the goals on your Google Analytics profile.
177
+ 16. You have the ability to edit/create your Google Analytics Goals from within the WordPress admin area. Includes advanced Google Analytics Goal functions such as funnels.
178
+ 17. Better Google Analytics General settings allows you to enable/disable all sorts of tracking features in your Google Analytics account.
179
+ 18. Google Google Analytics custom dimension tracking allows you to track categories, authors, tags, publication year, user roles and registered users.
180
+ 19. Social button engagement allows you to track things like Likes/Unlikes/Tweets/Shares right within your Google Analytics account.
181
+ 20. Track clicks on the ads on your site within your Google Analytics account.
182
+ 21. Issue monitoring settings allow you to utilize your Google Analytics account to keep on top of client-side issues with your site.
183
+ 22. Advanced settings allow you to fine tune how the system works with Google Analytics.
184
 
185
  == Changelog ==
186
  = 1.0.7 =
187
  * Feature: Added support for tracking RevContent ad clicks
188
+ * Feature: Manage Google Analytics Goals from within WordPress admin area (create, edit, enable, disable, etc.)
189
+ * Feature: Google Analytics Goal management includes all four types of goals (destination URL [including optional funnels], session duration, page views per session, events)
190
+ * Change: Google Analytics Goal management requires different Google Analytics API credentials (needs edit access)
191
+ * Change: Option to Auto-Configure Google Analytics account no longer requires a separate permissions request since the base Google Analytics account permissions now include edit access
192
+ * Note: You can authenticate for the new Google Analytics permissions under Analytics -> Settings -> API -> Link/Authenticate A Different Google Analytics Account
193
+ * Note: If you do not authenticate your Google Analytics account for new permissions, all existing features you have always had will continue to work just fine (it's only needed when trying to edit/add new Google Analytics Goals from within the WordPress admin)
194
 
195
  = 1.0.6 =
196
  * Added stubs for Better Google Analytics eCommerce module