Better Google Analytics - Version 1.1.0

Version Description

  • Feature: Google Analytics Content Experiments (A/B Testing) for post titles, page titles, CSS and themes
  • Feature: Google Analytics Event tracking for Page Scroll Percent (percentage of the page a user scrolled down before they left the page)
  • Feature: Google Analytics Event tracking for Time On Page (the number of seconds the user stayed on the page)
  • Security: Added user role checking for each type of Google Analytics Content Experiments
  • Change: Removed option to put Google Analytics code in the page header (needs to be in the footer for the new Google Analytics Content Experiments to work)
  • Change: Individual Google Analytics Goals that are being activated/deactivated, rely on WordPress's internal function to hide _wpnonce URL variable
  • Enhancement: Compiled version of live Google Analytics Content Experiments are automatically rebuilt hourly via cron (for multi-armed bandit experiments with variable weighting)
  • Enhancement: Check if the object returned from making an HTTP request is a WP_Error object and display the error message if so
  • Enhancement: Admin top menu bar shows the number of running Google Analytics Content Experiments when there are any
  • Usability: Added title attribute on admin menu for screen readers
  • Bug: Issue where secondary bulk actions drop-down at bottom of Google Analytics Goal management table wouldn't work
  • Bug: Issue where the "Add Variation" button would sometimes not do anything when creating new Google Analytics Content Experiments
  • Bug: Cosmetic issue with green border for enabled Google Analytics Goals on the display table
Download this release

Release Info

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

Code changes from version 1.0.10 to 1.1.0

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}.goals tbody,.goals tbody th.check-column{padding:8px 0 0 2px}.goals .check-column{border-left:4px solid transparent}.goals .manage-column.check-column{border-left:3px solid transparent}.goals .active th:first-of-type,.goals .active+.active td:first-of-type{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}.goals .row-title{font-weight:normal}.goals .active .row-title{font-weight:600}@media screen and (max-width:782px){.goals .column-slot,.goals .column-created,.goals .column-updated,.goals .slot,.goals .created,.goals .updated{display:none}.goals .column-name a{font-size:18px!important}}.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,.experiment_create .delete{position:relative;top:2px;color:lightgrey}.funnel .delete:hover,.experiment_create .delete:hover{color:red;cursor:pointer}.funnel li:first-child .delete,.experiment_create 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}.experiment_create ol{margin:0}.experiment_create ol textarea{vertical-align:top}.experiment_create .CSS textarea.large-text{width:90%}
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 .check-column,.experiments .check-column{border-left:4px solid transparent}.goals .manage-column.check-column{border-left:3px solid transparent}.goals .active th:first-of-type,.goals .extra_info.active td:first-of-type{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}.goals .row-title{font-weight:normal}.goals .active .row-title{font-weight:600}@media screen and (max-width:782px){.goals .column-slot,.goals .column-created,.goals .column-updated,.goals .slot,.goals .created,.goals .updated{display:none}.goals .column-name a{font-size:18px!important}}.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,.experiment_create .delete{position:relative;top:2px;color:lightgrey}.funnel .delete:hover,.experiment_create .delete:hover{color:red;cursor:pointer}.funnel li:first-child .delete,.experiment_create 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}table.experiments .button{margin-left:10px;font-size:10px;height:22px;line-height:20px;padding:0 7px 1px}.wp-core-ui .experiments .draft .status .button-primary{background:#00d200;border-color:#0a0;box-shadow:inset 0 1px 0 rgba(120,230,200,.5),0 1px 0 rgba(0,0,0,.15)}.wp-core-ui .experiments .draft .status .button-primary:hover{background:#00cd00;border-color:#0a0;box-shadow:inset 0 1px 0 rgba(120,230,200,.6)}.wp-core-ui .experiments .running .status .button-primary{background:#d20000;border-color:#a00;box-shadow:inset 0 1px 0 rgba(230,120,200,.5),0 1px 0 rgba(0,0,0,.15)}.wp-core-ui .experiments .running .status .button-primary:hover{background:#cd0000;border-color:#a00a00;box-shadow:inset 0 1px 0 rgba(230,120,200,.6)}.experiments .running th:first-of-type{border-left:4px solid #ffa500}.experiments .running th,.experiments .running td{background-color:#fffcf0}.experiment_create ol{margin:0}.experiment_create ol textarea{vertical-align:top}.experiment_create .CSS textarea.large-text{width:90%}
assets/digitalpoint/js/admin.js CHANGED
@@ -1,25 +1,26 @@
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(".goal_create,.experiment_create").length&&(a("#ba_type").on("change",BetterAnalyticsAdmin._Admin.goal_type_change),BetterAnalyticsAdmin._Admin.goal_type_change())})},init_tabs:function(){var b=
7
- 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(e){a("#ba_current_tab").val("general")}a(".nav-tab").removeClass("nav-tab-active");b.addClass("nav-tab-active");
8
- 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()},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);
 
1
+ var BetterAnalyticsAdmin={};jQuery.easing.easeOutExpo=function(a,h,g,k,b){return h==b?g+k:k*(-Math.pow(2,-10*h/b)+1)+g};
2
+ !function(a,h,g,k){BetterAnalyticsAdmin.Admin=function(){this.__construct()};BetterAnalyticsAdmin.Admin.prototype={__construct:function(){a(g).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()}));a(".goal_create").length&&
6
+ (BetterAnalyticsAdmin._Admin.bind_funnel_delete(),a("#new_step").on("click",BetterAnalyticsAdmin._Admin.bind_funnel_add));a(".goal_create,.experiment_create").length&&(a("#ba_type").on("change",BetterAnalyticsAdmin._Admin.goal_type_change),BetterAnalyticsAdmin._Admin.goal_type_change());if(a(".experiments").length)a(".confirm-prompt").on("click",BetterAnalyticsAdmin._Admin.confirm_prompt);a(".experiment_create .code").on("keydown",BetterAnalyticsAdmin._Admin.experiment_css_tab);a(".experiment_create .variation_button").on("click",
7
+ BetterAnalyticsAdmin._Admin.experiment_variation_add);a(".experiment_create .delete").on("click",BetterAnalyticsAdmin._Admin.experiment_variation_delete)})},init_tabs:function(){var b=h.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+
8
+ "-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");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()},bind_funnel_delete:function(){a(".funnel .delete").each(function(){a(this).off("click").on("click",
9
+ 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","").last().parent().remove()},goal_type_change:function(){a(".dynamic_options").fadeOut(400);a("."+a("#ba_type").val()).fadeIn(400)},confirm_prompt:function(){return confirm(a(this).data("confirm"))},experiment_variation_delete:function(){a(this).closest("li").fadeOut(400,function(){a(this).remove()})},
10
+ experiment_variation_add:function(){var b=a(this).attr("id"),b=b.substring(4,b.length-10),b=b.toUpperCase();a("."+b+":last li:first").clone(!0).find("input,textarea,select").val("").parent().css("display","none").appendTo("."+b+" ol").fadeIn(400)},experiment_css_tab:function(b){if(9==(b.keyCode||b.which)){b.preventDefault();b=a(this).get(0).selectionStart;var f=a(this).get(0).selectionEnd;a(this).val(a(this).val().substring(0,b)+"\t"+a(this).val().substring(f));a(this).get(0).selectionStart=a(this).get(0).selectionEnd=
11
+ b+1}},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,f){var c=a(f).data("val");BetterAnalyticsAdmin._Admin.min>c&&(BetterAnalyticsAdmin._Admin.min=c);BetterAnalyticsAdmin._Admin.max<c&&(BetterAnalyticsAdmin._Admin.max=c)});
12
+ 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)/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(),
13
+ 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,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",
14
+ 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,f){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,
15
+ 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});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(g.getElementById("area_chart"))).draw(c,
16
+ d)}else BetterAnalyticsAdmin._Admin.hasResponseError(b,f)})},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,f){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,
17
+ 1);var e={width:a("#ba_monitor").width(),allowHtml:!0,page:"enable",pageSize:25};(new google.visualization.Table(g.getElementById("ba_monitor"))).draw(c,e)}}else BetterAnalyticsAdmin._Admin.hasResponseError(b,f)})},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,f){if(void 0===b.error)if("object"==
18
+ 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=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<
19
+ e?"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),d=new google.visualization.NumberFormat({fractionDigits:0});d.format(c,1);e={title:b.realtime_data.devices[0][0],animation:{startup:!0},
20
+ width:a("#ba_rt_map").width(),height:.7*a("#ba_rt_map").width()};d=new google.visualization.GeoChart(g.getElementById("ba_rt_map"));d.draw(c,e)}"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),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(g.getElementById("ba_rt_medium")),
21
+ d.draw(c,e));"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),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(g.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&&
22
+ (c=google.visualization.arrayToDataTable(b.realtime_data.keywords),d=new google.visualization.NumberFormat({fractionDigits:0}),d.format(c,1),d=new google.visualization.Table(g.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),
23
+ d=new google.visualization.Table(g.getElementById("ba_rt_referral_path")),d.draw(c,e));"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),d=new google.visualization.Table(g.getElementById("ba_rt_page_path")),d.draw(c,e))}else if("p"==b.type)c=google.visualization.arrayToDataTable(b.chart_data),
24
+ d=new google.visualization.NumberFormat({fractionDigits:0}),d.format(c,1),e={title:b.title,is3D:!0,animation:{startup:!0},width:a("#ba_chart").width(),height:.7*a("#ba_chart").width()},d=new google.visualization.PieChart(g.getElementById("ba_chart")),d.draw(c,e);else if("l"==b.type){var h=[];a.each(b.chart_data,function(a,b){0<a?(dateString=String(b[0]),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);
25
+ d=new google.visualization.NumberFormat({fractionDigits:0});d.format(c,1);e={animation:{startup:!0},width:a("#ba_chart").width(),height:.7*a("#ba_chart").width(),legend:{position:"bottom"}};d=new google.visualization.LineChart(g.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()},
26
+ d=new google.visualization.GeoChart(g.getElementById("ba_chart")),d.draw(c,e));else BetterAnalyticsAdmin._Admin.hasResponseError(b,f)})},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);
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.10
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.10');
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');
@@ -52,7 +52,6 @@ DigitalPointBetterAnalytics_Base_Public::getInstance();
52
  add_action('widgets_init', array('DigitalPointBetterAnalytics_Widget_PopularPosts', 'register_widget'));
53
  add_action('widgets_init', array('DigitalPointBetterAnalytics_Widget_Stats', 'register_widget'));
54
 
55
-
56
  if (is_admin())
57
  {
58
  DigitalPointBetterAnalytics_Base_Admin::getInstance();
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.1.0
11
  Author: Digital Point
12
  Author URI: https://www.digitalpoint.com/
13
  License: GPLv2
23
  exit;
24
  }
25
 
26
+ define('BETTER_ANALYTICS_VERSION', '1.1.0');
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');
52
  add_action('widgets_init', array('DigitalPointBetterAnalytics_Widget_PopularPosts', 'register_widget'));
53
  add_action('widgets_init', array('DigitalPointBetterAnalytics_Widget_Stats', 'register_widget'));
54
 
 
55
  if (is_admin())
56
  {
57
  DigitalPointBetterAnalytics_Base_Admin::getInstance();
js/ba.js CHANGED
@@ -1,12 +1,12 @@
1
  var BetterAnalytics={};
2
- !function(a,b,d,l){BetterAnalytics.BA=function(){this.__construct()};BetterAnalytics.BA.prototype={__construct:function(){this.s=a("#ba_s").data("o");this.s.g&1073741824?this.init():a(d).ready(function(){BetterAnalytics._BA.init()})},s:null,videos:{},init:function(){this.init_start();var c="";this.s.g&2147483648&&(b.ga_debug={trace:!0},c="_debug");(function(a,e,h,f,b,c,d){a.GoogleAnalyticsObject=b;a[b]=a[b]||function(){(a[b].q=a[b].q||[]).push(arguments)};a[b].l=1*new Date;c=e.createElement(h);d=
3
- e.getElementsByTagName(h)[0];c.async=1;c.src=f;d.parentNode.insertBefore(c,d)})(b,d,"script","//www.google-analytics.com/analytics"+c+".js","ga");ga("create",this.s.tid,this.s.co);this.s.g&32&&ga("require","displayfeatures");this.s.g&4&&ga("require","linkid","linkid.js");this.s.g&64&&ga("set","forceSSL",!0);this.s.g&16&&ga("set","anonymizeIp",!0);"object"==typeof this.s.d&&a.each(this.s.d,function(a,b){ga("set","dimension"+b[0],b[1])});"object"==typeof this.s.e&&(ga("set","expId",this.s.e.i),ga("set",
4
- "expVar",this.s.e.v));if("string"==typeof this.s.js)try{eval(this.s.js)}catch(k){console.error(k.stack)}this.init_end();ga("send","pageview");this.s.g&128&&setTimeout("ga('send','event','User','Engagement','Time on page more than 15 seconds')",15E3);this.s.g&2048&&a(d).ajaxComplete(function(a,b,c){a=d.createElement("a");a.href=c.url;ga("send","event","AJAX Request","Trigger",a.pathname)});this.s.g&512&&a(d).ready(function(){a("a").each(function(){if(this.href.slice(0,b.location.origin.length)!=b.location.origin)a(this).on("click",
5
- function(){ga("send","event","Link","Click",jQuery(this).prop("href"))})})});"string"==typeof this.s.dl&&a(d).ready(function(){var b=new RegExp("("+BetterAnalytics._BA.s.dl+")$");a("a").each(function(){if(this.href.match(b))a(this).on("click",function(){ga("send","event","Link","Download",jQuery(this).prop("href"))})})});this.s.g&65536&&a(d).ready(function(){a(".error404").length&&ga("send","event","Error","Page Not Found",b.location.origin+b.location.pathname+" (Referrer: "+d.referrer+")")});this.s.g&
6
- 256&&a(d).ready(function(){if(a('iframe[src*="youtube.com/embed"]').length){a('iframe[src*="youtube.com/embed"]').each(function(c){var f=a(this).prop("src");-1===f.indexOf("origin=")&&a(this).prop("src",f+(-1===f.indexOf("?")?"?":"&")+"enablejsapi=1&origin="+b.location.origin);a(this).prop("id")?c=a(this).prop("id"):(c="ba_yt_"+c,a(this).prop("id",c))});var c=d.createElement("script");c.src="https://www.youtube.com/iframe_api";var e=d.getElementsByTagName("script")[0];e.parentNode.insertBefore(c,
7
- e)}});this.s.a&16&&a(b).load(function(){setTimeout(BetterAnalytics._BA.dp_bind,3E3)});this.s.s&2&&a(b).load(function(){setTimeout(function(){try{"object"==typeof FB&&a.each({"edge.create":"Like","edge.remove":"Unlike","message.send":"Send","comment.create":"Comment","comment.remove":"Uncomment"},function(a,c){FB.Event.subscribe(a,function(a){ga("send","social","Facebook",c,a)})})}catch(c){}},1E3)});this.s.s&4&&a(b).load(function(){setTimeout(function(){try{"object"==typeof twttr&&a.each({tweet:"Tweet",
8
- follow:"Follow",retweet:"Retweet",favorite:"Favorite",click:"Click"},function(a,c){twttr.events.bind(a,function(a){if(a){var b;a.target&&"IFRAME"==a.target.nodeName&&(b=BetterAnalytics._BA.extract_param(a.target.src,"url"));ga("send","social","Twitter",c,b)}})})}catch(c){}},1E3)});this.s.s&16&&a(b).load(function(){setTimeout(function(){try{a.each({'a[data-pin-log="button_follow"]':"Follow",'a[data-pin-log="embed_pin"]':"Pin",'a[data-pin-log="button_pinit_bookmarklet"]':"Pin"},function(c,b){a("body").on("click",
9
- c,function(a){a=d.href;"Follow"==b?a=jQuery(this).attr("href"):"Repin"==b&&(a=jQuery(this).parent().attr("href"));ga("send","social","Pinterest",b,a)})})}catch(c){}},1E3)});this.s.s&32&&a(b).load(function(){setTimeout(function(){a(".IN-widget").on("click",function(){ga("send","social","LinkedIn","Share",b.location.href)})},1E3)})},init_start:function(){},init_end:function(){},dp_bind:function(){a(".dp_ad_inner").parent().on("click",function(){ga("send","event","Advertising","Click","Digital Point")})},
10
- yt_init:function(c){a('iframe[src*="youtube.com/embed"]').each(function(c){c=a(this).prop("id");BetterAnalytics._BA.videos[c]=new YT.Player(c,{events:{onStateChange:BetterAnalytics._BA.yt_state_change,onError:BetterAnalytics._BA.yt_error}})})},yt_state_change:function(a){0<=a.data&&jQuery.each(YT.PlayerState,function(d,g){"number"==typeof g&&g==a.data&&ga("send","event","YouTube Video",d.charAt(0).toUpperCase()+d.substr(1).toLowerCase(),b.location.origin+b.location.pathname+" | "+a.target.getVideoData().title+
11
- " ("+a.target.getVideoUrl()+")")})},yt_error:function(a){},extract_param:function(a,b){if(a){a=a.split("#")[0];var d=a.split("?");if(1!=d.length){d=decodeURI(d[1]);paramName+="=";for(var d=d.split("&"),e=0;b=d[e];++e)if(0===b.indexOf(paramName))return decodeURIComponent(b.split("=")[1])}}}}}(jQuery,this,document);originalYouTubeIFrame=onYouTubeIframeAPIReady;
12
- function onYouTubeIframeAPIReady(a){BetterAnalytics._BA.yt_init(a);originalYouTubeIFrame!=onYouTubeIframeAPIReady&&originalYouTubeIFrame(a)};
1
  var BetterAnalytics={};
2
+ !function(a,b,c,l){BetterAnalytics.BA=function(){this.__construct()};BetterAnalytics.BA.prototype={__construct:function(){this.s=a("#ba_s").data("o");this.s.g&1073741824?this.init():a(c).ready(function(){BetterAnalytics._BA.init()})},s:null,videos:{},t:0,init:function(){this.init_start();var d="";this.s.g&2147483648&&(b.ga_debug={trace:!0},d="_debug");(function(a,b,h,k,c,d,e){a.GoogleAnalyticsObject=c;a[c]=a[c]||function(){(a[c].q=a[c].q||[]).push(arguments)};a[c].l=1*new Date;d=b.createElement(h);
3
+ e=b.getElementsByTagName(h)[0];d.async=1;d.src=k;e.parentNode.insertBefore(d,e)})(b,c,"script","//www.google-analytics.com/analytics"+d+".js","ga");ga("create",this.s.tid,this.s.co);this.s.g&32&&ga("require","displayfeatures");this.s.g&4&&ga("require","linkid","linkid.js");this.s.g&64&&ga("set","forceSSL",!0);this.s.g&16&&ga("set","anonymizeIp",!0);"object"==typeof this.s.d&&a.each(this.s.d,function(a,b){ga("set","dimension"+b[0],b[1])});"object"==typeof this.s.e&&(ga("set","expId",this.s.e.i),ga("set",
4
+ "expVar",this.s.e.v));if("string"==typeof this.s.js)try{eval(this.s.js)}catch(e){console.error(e.stack)}this.init_end();ga("send","pageview");this.s.g&128&&setTimeout("ga('send','event','User','Engagement','Time on page more than 15 seconds')",15E3);this.s.g&2048&&a(c).ajaxComplete(function(a,b,d){a=c.createElement("a");a.href=d.url;ga("send","event","AJAX Request","Trigger",a.pathname)});this.s.g&512&&a(c).ready(function(){a("a").each(function(){if(this.href.slice(0,b.location.origin.length)!=b.location.origin)a(this).on("click",
5
+ function(){ga("send","event","Link","Click",jQuery(this).prop("href"))})})});"string"==typeof this.s.dl&&a(c).ready(function(){var b=new RegExp("("+BetterAnalytics._BA.s.dl+")$");a("a").each(function(){if(this.href.match(b))a(this).on("click",function(){ga("send","event","Link","Download",jQuery(this).prop("href"))})})});this.s.g&65536&&a(c).ready(function(){a(".error404").length&&ga("send","event","Error","Page Not Found",b.location.origin+b.location.pathname+" (Referrer: "+c.referrer+")")});if(this.s.g&
6
+ 131072)a(b).on("beforeunload",function(){ga("send","event","User","Engagement","Scroll",parseInt((jQuery(c).scrollTop()+jQuery(b).height())/jQuery(c).height()*100),{nonInteraction:1})});this.s.g&262144&&(this.t=parseInt((new Date).getTime()/1E3),a(b).on("beforeunload",function(){ga("send","event","User","Engagement","Time On Page",parseInt((new Date).getTime()/1E3)-BetterAnalytics._BA.t,{nonInteraction:1})}));this.s.g&256&&a(c).ready(function(){if(a('iframe[src*="youtube.com/embed"]').length){a('iframe[src*="youtube.com/embed"]').each(function(d){var c=
7
+ a(this).prop("src");-1===c.indexOf("origin=")&&a(this).prop("src",c+(-1===c.indexOf("?")?"?":"&")+"enablejsapi=1&origin="+b.location.origin);a(this).prop("id")?d=a(this).prop("id"):(d="ba_yt_"+d,a(this).prop("id",d))});var d=c.createElement("script");d.src="https://www.youtube.com/iframe_api";var e=c.getElementsByTagName("script")[0];e.parentNode.insertBefore(d,e)}});this.s.a&16&&a(b).load(function(){setTimeout(BetterAnalytics._BA.dp_bind,3E3)});this.s.s&2&&a(b).load(function(){setTimeout(function(){try{"object"==
8
+ typeof FB&&a.each({"edge.create":"Like","edge.remove":"Unlike","message.send":"Send","comment.create":"Comment","comment.remove":"Uncomment"},function(a,d){FB.Event.subscribe(a,function(a){ga("send","social","Facebook",d,a)})})}catch(d){}},1E3)});this.s.s&4&&a(b).load(function(){setTimeout(function(){try{"object"==typeof twttr&&a.each({tweet:"Tweet",follow:"Follow",retweet:"Retweet",favorite:"Favorite",click:"Click"},function(a,d){twttr.events.bind(a,function(a){if(a){var b;a.target&&"IFRAME"==a.target.nodeName&&
9
+ (b=BetterAnalytics._BA.extract_param(a.target.src,"url"));ga("send","social","Twitter",d,b)}})})}catch(d){}},1E3)});this.s.s&16&&a(b).load(function(){setTimeout(function(){try{a.each({'a[data-pin-log="button_follow"]':"Follow",'a[data-pin-log="embed_pin"]':"Pin",'a[data-pin-log="button_pinit_bookmarklet"]':"Pin"},function(d,b){a("body").on("click",d,function(a){a=c.href;"Follow"==b?a=jQuery(this).attr("href"):"Repin"==b&&(a=jQuery(this).parent().attr("href"));ga("send","social","Pinterest",b,a)})})}catch(d){}},
10
+ 1E3)});this.s.s&32&&a(b).load(function(){setTimeout(function(){a(".IN-widget").on("click",function(){ga("send","social","LinkedIn","Share",b.location.href)})},1E3)})},init_start:function(){},init_end:function(){},dp_bind:function(){a(".dp_ad_inner").parent().on("click",function(){ga("send","event","Advertising","Click","Digital Point")})},yt_init:function(d){a('iframe[src*="youtube.com/embed"]').each(function(d){d=a(this).prop("id");BetterAnalytics._BA.videos[d]=new YT.Player(d,{events:{onStateChange:BetterAnalytics._BA.yt_state_change,
11
+ onError:BetterAnalytics._BA.yt_error}})})},yt_state_change:function(a){0<=a.data&&jQuery.each(YT.PlayerState,function(c,f){"number"==typeof f&&f==a.data&&ga("send","event","YouTube Video",c.charAt(0).toUpperCase()+c.substr(1).toLowerCase(),b.location.origin+b.location.pathname+" | "+a.target.getVideoData().title+" ("+a.target.getVideoUrl()+")")})},yt_error:function(a){},extract_param:function(a,b){if(a){a=a.split("#")[0];var c=a.split("?");if(1!=c.length){c=decodeURI(c[1]);paramName+="=";for(var c=
12
+ c.split("&"),g=0;b=c[g];++g)if(0===b.indexOf(paramName))return decodeURIComponent(b.split("=")[1])}}}}}(jQuery,this,document);originalYouTubeIFrame=onYouTubeIframeAPIReady;function onYouTubeIframeAPIReady(a){BetterAnalytics._BA.yt_init(a);originalYouTubeIFrame!=onYouTubeIframeAPIReady&&originalYouTubeIFrame(a)};
js/universal.php CHANGED
@@ -111,7 +111,8 @@ $jsonOptions['g'] =
111
  (@$betterAnalyticsOptions['events']['error_console'] ? 16384 : 0) +
112
  (@$betterAnalyticsOptions['events']['error_youtube'] ? 32768 : 0) +
113
  (@$betterAnalyticsOptions['events']['error_404'] ? 65536 : 0) +
114
-
 
115
 
116
  (@$betterAnalyticsOptions['javascript']['run_time'] == 'immediately' ? 1073741824 : 0) +
117
  (@$betterAnalyticsOptions['debugging'] ? 2147483648 : 0)
@@ -189,15 +190,14 @@ if (!empty($betterAnalyticsOptions['dimension']['user']) && @$currentUser->ID >
189
  );
190
  }
191
 
192
- if (false)
193
  {
194
  $jsonOptions['e'] = array(
195
- 'i' => $experimentId,
196
- 'v' => $experimentVariation
197
  );
198
  }
199
 
200
-
201
  if (!array_intersect((array)$currentUser->roles, (array)@$betterAnalyticsOptions['roles_no_track']))
202
  {
203
  echo "<!-- This site uses the Better Analytics plugin. " . BETTER_ANALYTICS_PRODUCT_URL . " -->
111
  (@$betterAnalyticsOptions['events']['error_console'] ? 16384 : 0) +
112
  (@$betterAnalyticsOptions['events']['error_youtube'] ? 32768 : 0) +
113
  (@$betterAnalyticsOptions['events']['error_404'] ? 65536 : 0) +
114
+ (@$betterAnalyticsOptions['events']['page_scroll'] ? 131072 : 0) +
115
+ (@$betterAnalyticsOptions['events']['time_on_page'] ? 262144 : 0) +
116
 
117
  (@$betterAnalyticsOptions['javascript']['run_time'] == 'immediately' ? 1073741824 : 0) +
118
  (@$betterAnalyticsOptions['debugging'] ? 2147483648 : 0)
190
  );
191
  }
192
 
193
+ if (DigitalPointBetterAnalytics_Base_Public::getInstance()->experimentId !== null)
194
  {
195
  $jsonOptions['e'] = array(
196
+ 'i' => DigitalPointBetterAnalytics_Base_Public::getInstance()->experimentId,
197
+ 'v' => DigitalPointBetterAnalytics_Base_Public::getInstance()->experimentVariation
198
  );
199
  }
200
 
 
201
  if (!array_intersect((array)$currentUser->roles, (array)@$betterAnalyticsOptions['roles_no_track']))
202
  {
203
  echo "<!-- This site uses the Better Analytics plugin. " . BETTER_ANALYTICS_PRODUCT_URL . " -->
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.9\n"
6
  "Report-Msgid-Bugs-To: https://wordpress.org/support/plugin/better-analytics\n"
7
- "POT-Creation-Date: 2015-08-17 18:03:33+00:00\n"
8
  "MIME-Version: 1.0\n"
9
  "Content-Type: text/plain; charset=UTF-8\n"
10
  "Content-Transfer-Encoding: 8bit\n"
@@ -12,39 +12,43 @@ msgstr ""
12
  "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
13
  "Language-Team: LANGUAGE <LL@li.org>\n"
14
 
15
- #: library/DigitalPointBetterAnalytics/Base/Admin.php:87
16
  msgid "Test Analytics Setup"
17
  msgstr ""
18
 
19
- #: library/DigitalPointBetterAnalytics/Base/Admin.php:88
20
- #: library/DigitalPointBetterAnalytics/Base/Admin.php:112
21
  msgid "OAuth2 Endpoint"
22
  msgstr ""
23
 
24
- #: library/DigitalPointBetterAnalytics/Base/Admin.php:92
25
  msgid "Analytics"
26
  msgstr ""
27
 
28
- #: library/DigitalPointBetterAnalytics/Base/Admin.php:93
 
29
  msgid "Heat Maps"
30
  msgstr ""
31
 
32
- #: library/DigitalPointBetterAnalytics/Base/Admin.php:93
33
  msgid "Reports"
34
  msgstr ""
35
 
36
- #: library/DigitalPointBetterAnalytics/Base/Admin.php:95
 
37
  #: library/DigitalPointBetterAnalytics/ViewAdmin/reports/area_charts.php:17
38
  #: library/DigitalPointBetterAnalytics/ViewAdmin/reports/events.php:14
39
  #: library/DigitalPointBetterAnalytics/ViewAdmin/reports/heatmaps.php:14
40
  msgid "Charts"
41
  msgstr ""
42
 
43
- #: library/DigitalPointBetterAnalytics/Base/Admin.php:96
 
44
  msgid "Issue Monitor"
45
  msgstr ""
46
 
47
- #: library/DigitalPointBetterAnalytics/Base/Admin.php:97
 
48
  #: library/DigitalPointBetterAnalytics/ControllerAdmin/Analytics.php:383
49
  #: library/DigitalPointBetterAnalytics/ControllerAdmin/Analytics.php:441
50
  #: library/DigitalPointBetterAnalytics/ViewAdmin/reports/area_charts.php:18
@@ -53,100 +57,104 @@ msgstr ""
53
  msgid "Events"
54
  msgstr ""
55
 
56
- #: library/DigitalPointBetterAnalytics/Base/Admin.php:100
57
- #: library/DigitalPointBetterAnalytics/Model/Experiments.php:34
58
- #: library/DigitalPointBetterAnalytics/Model/Experiments.php:45
59
  #: library/DigitalPointBetterAnalytics/ViewAdmin/goals.php:479
60
  msgid "Goals"
61
  msgstr ""
62
 
63
  #: library/DigitalPointBetterAnalytics/Base/Admin.php:102
64
- #: library/DigitalPointBetterAnalytics/Base/Admin.php:124
65
- #: library/DigitalPointBetterAnalytics/Base/Admin.php:224
66
- msgid "Settings"
67
  msgstr ""
68
 
69
  #: library/DigitalPointBetterAnalytics/Base/Admin.php:103
 
 
 
 
 
 
70
  msgid "Test Setup"
71
  msgstr ""
72
 
73
- #. #-#-#-#-# plugin.pot (Better Analytics 1.0.9) #-#-#-#-#
74
  #. Plugin Name of the plugin/theme
75
- #: library/DigitalPointBetterAnalytics/Base/Admin.php:106
76
- #: library/DigitalPointBetterAnalytics/Base/Admin.php:199
77
- #: library/DigitalPointBetterAnalytics/Base/Admin.php:365
78
- #: library/DigitalPointBetterAnalytics/Base/Admin.php:408
79
- #: library/DigitalPointBetterAnalytics/ViewAdmin/config.php:27
80
  msgid "Better Analytics"
81
  msgstr ""
82
 
83
- #: library/DigitalPointBetterAnalytics/Base/Admin.php:135
84
  msgid "Pro version not up to date."
85
  msgstr ""
86
 
87
- #: library/DigitalPointBetterAnalytics/Base/Admin.php:136
88
  msgid "Installed:"
89
  msgstr ""
90
 
91
- #: library/DigitalPointBetterAnalytics/Base/Admin.php:138
92
  msgid "Latest:"
93
  msgstr ""
94
 
95
- #: library/DigitalPointBetterAnalytics/Base/Admin.php:143
96
  msgid "Pro version installed"
97
  msgstr ""
98
 
99
- #: library/DigitalPointBetterAnalytics/Base/Admin.php:147
100
  msgid ""
101
  "Pro version installed, but not active. Did you %1$sverify ownership of your "
102
  "domain%2$s?"
103
  msgstr ""
104
 
105
- #: library/DigitalPointBetterAnalytics/Base/Admin.php:154
106
  msgid "Pro version not installed."
107
  msgstr ""
108
 
109
- #: library/DigitalPointBetterAnalytics/Base/Admin.php:224
110
  msgid "Google Analytics Web Property ID not selected."
111
  msgstr ""
112
 
113
- #: library/DigitalPointBetterAnalytics/Base/Admin.php:231
114
  msgid "Google Analytics account not linked for API functions."
115
  msgstr ""
116
 
117
- #: library/DigitalPointBetterAnalytics/Base/Admin.php:231
118
  msgid "API Settings"
119
  msgstr ""
120
 
121
- #: library/DigitalPointBetterAnalytics/Base/Admin.php:238
122
  msgid "Google Analytics account not yet configured."
123
  msgstr ""
124
 
125
- #: library/DigitalPointBetterAnalytics/Base/Admin.php:238
126
  msgid "Test Setup / Auto-Configure"
127
  msgstr ""
128
 
129
- #: library/DigitalPointBetterAnalytics/Base/Admin.php:244
130
  msgid "Last Analytics Error:"
131
  msgstr ""
132
 
133
- #: library/DigitalPointBetterAnalytics/Base/Admin.php:279
134
  msgid "Invalid method:"
135
  msgstr ""
136
 
137
- #: library/DigitalPointBetterAnalytics/Base/Admin.php:304
138
  msgid "Invalid Google API Code:"
139
  msgstr ""
140
 
141
- #: library/DigitalPointBetterAnalytics/Base/Admin.php:310
142
  msgid "Unknown Google API Error:"
143
  msgstr ""
144
 
145
- #: library/DigitalPointBetterAnalytics/Base/Admin.php:363
146
  msgid "Overview"
147
  msgstr ""
148
 
149
- #: library/DigitalPointBetterAnalytics/Base/Admin.php:366
150
  msgid ""
151
  "At the most basic level, it will automatically add Google Analytics "
152
  "Universal code to your website. It gives you the flexibility to track "
@@ -154,90 +162,101 @@ msgid ""
154
  "engagement (and everything in between)."
155
  msgstr ""
156
 
157
- #: library/DigitalPointBetterAnalytics/Base/Admin.php:373
158
- #: library/DigitalPointBetterAnalytics/Base/Admin.php:387
159
  msgid "Pro"
160
  msgstr ""
161
 
162
- #: library/DigitalPointBetterAnalytics/Base/Admin.php:375
163
  msgid "Pro Version"
164
  msgstr ""
165
 
166
- #: library/DigitalPointBetterAnalytics/Base/Admin.php:376
167
  msgid ""
168
  "There is a Pro version of this plugin that gives you a few added features. "
169
  "More metrics/dimensions, more tracking options, etc."
170
  msgstr ""
171
 
172
- #: library/DigitalPointBetterAnalytics/Base/Admin.php:384
173
  msgid "For more information:"
174
  msgstr ""
175
 
176
- #: library/DigitalPointBetterAnalytics/Base/Admin.php:385
177
  msgid "Info"
178
  msgstr ""
179
 
180
- #: library/DigitalPointBetterAnalytics/Base/Admin.php:386
181
- #: library/DigitalPointBetterAnalytics/Base/Admin.php:427
182
  msgid "Support"
183
  msgstr ""
184
 
185
- #: library/DigitalPointBetterAnalytics/Base/Admin.php:399
186
  msgid "colossal"
187
  msgstr ""
188
 
189
- #: library/DigitalPointBetterAnalytics/Base/Admin.php:399
190
  msgid "elephantine"
191
  msgstr ""
192
 
193
- #: library/DigitalPointBetterAnalytics/Base/Admin.php:399
194
  msgid "glorious"
195
  msgstr ""
196
 
197
- #: library/DigitalPointBetterAnalytics/Base/Admin.php:399
198
  msgid "grand"
199
  msgstr ""
200
 
201
- #: library/DigitalPointBetterAnalytics/Base/Admin.php:399
202
  msgid "huge"
203
  msgstr ""
204
 
205
- #: library/DigitalPointBetterAnalytics/Base/Admin.php:399
206
  msgid "mighty"
207
  msgstr ""
208
 
209
- #: library/DigitalPointBetterAnalytics/Base/Admin.php:399
210
  msgid "WTF?"
211
  msgstr ""
212
 
213
- #: library/DigitalPointBetterAnalytics/Base/Admin.php:399
214
  msgid "sexy"
215
  msgstr ""
216
 
217
- #: library/DigitalPointBetterAnalytics/Base/Admin.php:407
218
  msgid ""
219
  "If you like %1$s, please leave us a %2$s rating. A %3$s thank you in advance!"
220
  msgstr ""
221
 
222
- #: library/DigitalPointBetterAnalytics/Base/Admin.php:427
223
  msgid "Visit Support Forum"
224
  msgstr ""
225
 
226
- #: library/DigitalPointBetterAnalytics/Base/Admin.php:432
227
  msgid "Verify Domain"
228
  msgstr ""
229
 
230
- #: library/DigitalPointBetterAnalytics/Base/Public.php:180
231
  msgid ""
232
  "%1$sBetter Analytics %4$s requires WordPress %5$s or higher.%2$s%3$sPlease "
233
  "%6$supgrade WordPress%7$s to a current version."
234
  msgstr ""
235
 
236
- #: library/DigitalPointBetterAnalytics/Base/Public.php:334
 
237
  msgid "Page Analytics"
238
  msgstr ""
239
 
240
- #: library/DigitalPointBetterAnalytics/Base/Public.php:521
 
 
 
 
 
 
 
 
 
 
241
  msgid "Every Minute"
242
  msgstr ""
243
 
@@ -254,7 +273,7 @@ msgid "Current Page"
254
  msgstr ""
255
 
256
  #: library/DigitalPointBetterAnalytics/ControllerAdmin/Analytics.php:39
257
- #: library/DigitalPointBetterAnalytics/ControllerAdmin/Analytics.php:622
258
  #: library/DigitalPointBetterAnalytics/Model/Reporting.php:184
259
  msgid "Medium"
260
  msgstr ""
@@ -324,7 +343,8 @@ msgstr ""
324
 
325
  #: library/DigitalPointBetterAnalytics/ControllerAdmin/Analytics.php:385
326
  #: library/DigitalPointBetterAnalytics/ControllerAdmin/Analytics.php:443
327
- #: library/DigitalPointBetterAnalytics/ViewAdmin/experiments.php:211
 
328
  #: library/DigitalPointBetterAnalytics/ViewAdmin/goals.php:73
329
  msgid "Type"
330
  msgstr ""
@@ -334,171 +354,232 @@ msgstr ""
334
  msgid "Detail"
335
  msgstr ""
336
 
337
- #: library/DigitalPointBetterAnalytics/ControllerAdmin/Analytics.php:567
338
  msgid "No Linked Google Analytics Account."
339
  msgstr ""
340
 
341
- #: library/DigitalPointBetterAnalytics/ControllerAdmin/Analytics.php:569
342
  msgid "You can link one in the Better Analytics API settings."
343
  msgstr ""
344
 
345
- #: library/DigitalPointBetterAnalytics/ControllerAdmin/Analytics.php:594
346
  msgid "Date"
347
  msgstr ""
348
 
349
- #: library/DigitalPointBetterAnalytics/ControllerAdmin/Analytics.php:598
350
  msgid "Categories"
351
  msgstr ""
352
 
353
- #: library/DigitalPointBetterAnalytics/ControllerAdmin/Analytics.php:602
354
  msgid "Authors"
355
  msgstr ""
356
 
357
- #: library/DigitalPointBetterAnalytics/ControllerAdmin/Analytics.php:606
358
  msgid "Tags"
359
  msgstr ""
360
 
361
- #: library/DigitalPointBetterAnalytics/ControllerAdmin/Analytics.php:610
362
  msgid "Publication Year"
363
  msgstr ""
364
 
365
- #: library/DigitalPointBetterAnalytics/ControllerAdmin/Analytics.php:614
366
  msgid "User Role"
367
  msgstr ""
368
 
369
- #: library/DigitalPointBetterAnalytics/ControllerAdmin/Analytics.php:616
370
  #: library/DigitalPointBetterAnalytics/Model/Reporting.php:191
371
  msgid "Browser"
372
  msgstr ""
373
 
374
- #: library/DigitalPointBetterAnalytics/ControllerAdmin/Analytics.php:617
375
  #: library/DigitalPointBetterAnalytics/Model/Reporting.php:192
376
  msgid "Operating System"
377
  msgstr ""
378
 
379
- #: library/DigitalPointBetterAnalytics/ControllerAdmin/Analytics.php:618
380
  #: library/DigitalPointBetterAnalytics/Model/Reporting.php:199
381
  msgid "Device Category"
382
  msgstr ""
383
 
384
- #: library/DigitalPointBetterAnalytics/ControllerAdmin/Analytics.php:619
385
  #: library/DigitalPointBetterAnalytics/Model/Reporting.php:183
386
  msgid "Source"
387
  msgstr ""
388
 
389
- #: library/DigitalPointBetterAnalytics/ControllerAdmin/Analytics.php:620
390
  msgid "Referrer"
391
  msgstr ""
392
 
393
- #: library/DigitalPointBetterAnalytics/ControllerAdmin/Analytics.php:623
394
  #: library/DigitalPointBetterAnalytics/Model/Reporting.php:204
395
  msgid "Country"
396
  msgstr ""
397
 
398
- #: library/DigitalPointBetterAnalytics/ControllerAdmin/Analytics.php:640
399
- #: library/DigitalPointBetterAnalytics/Model/Experiments.php:21
400
  #: library/DigitalPointBetterAnalytics/Model/Reporting.php:44
401
  msgid "Page Views"
402
  msgstr ""
403
 
404
- #: library/DigitalPointBetterAnalytics/ControllerAdmin/Analytics.php:641
405
  #: library/DigitalPointBetterAnalytics/Model/Reporting.php:14
406
  msgid "Sessions"
407
  msgstr ""
408
 
409
- #: library/DigitalPointBetterAnalytics/ControllerAdmin/Analytics.php:642
410
  #: library/DigitalPointBetterAnalytics/Model/Reporting.php:9
411
  msgid "Users"
412
  msgstr ""
413
 
414
- #: library/DigitalPointBetterAnalytics/ControllerAdmin/Analytics.php:643
415
  msgid "Session Length"
416
  msgstr ""
417
 
418
- #: library/DigitalPointBetterAnalytics/ControllerAdmin/Analytics.php:644
419
  #: library/DigitalPointBetterAnalytics/Model/Reporting.php:20
420
  msgid "Organic Search"
421
  msgstr ""
422
 
423
- #: library/DigitalPointBetterAnalytics/Formatting/ExperimentTable.php:106
424
  #: library/DigitalPointBetterAnalytics/Formatting/GoalTable.php:102
425
- #: library/DigitalPointBetterAnalytics/ViewAdmin/experiments.php:110
426
  #: library/DigitalPointBetterAnalytics/ViewAdmin/goals.php:66
427
  #: library/DigitalPointBetterAnalytics/ViewAdmin/goals.php:153
428
  msgid "Name"
429
  msgstr ""
430
 
431
- #: library/DigitalPointBetterAnalytics/Formatting/ExperimentTable.php:107
432
- #: library/DigitalPointBetterAnalytics/ViewAdmin/experiments.php:96
433
  msgid "Status"
434
  msgstr ""
435
 
436
- #: library/DigitalPointBetterAnalytics/Formatting/ExperimentTable.php:108
437
- msgid "Winner"
438
  msgstr ""
439
 
440
- #: library/DigitalPointBetterAnalytics/Formatting/ExperimentTable.php:109
441
- #: library/DigitalPointBetterAnalytics/Formatting/GoalTable.php:105
442
- msgid "Created"
443
  msgstr ""
444
 
445
- #: library/DigitalPointBetterAnalytics/Formatting/ExperimentTable.php:110
446
- #: library/DigitalPointBetterAnalytics/Formatting/GoalTable.php:106
447
- msgid "Updated"
448
  msgstr ""
449
 
450
  #. translators: %1$s = label, %2$s = <span>, %3$s = </span>, %4$u = number
451
- #: library/DigitalPointBetterAnalytics/Formatting/ExperimentTable.php:140
452
- #: library/DigitalPointBetterAnalytics/Formatting/ExperimentTable.php:150
453
- #: library/DigitalPointBetterAnalytics/Formatting/ExperimentTable.php:160
 
 
454
  #: library/DigitalPointBetterAnalytics/Formatting/GoalTable.php:136
455
  #: library/DigitalPointBetterAnalytics/Formatting/GoalTable.php:146
456
  #: library/DigitalPointBetterAnalytics/Formatting/GoalTable.php:156
457
  msgid "%1$s %2$s(%4$u)%3$s"
458
  msgstr ""
459
 
460
- #: library/DigitalPointBetterAnalytics/Formatting/ExperimentTable.php:141
461
  #: library/DigitalPointBetterAnalytics/Formatting/GoalTable.php:137
462
  msgid "All"
463
  msgid_plural "All"
464
  msgstr[0] ""
465
  msgstr[1] ""
466
 
467
- #: library/DigitalPointBetterAnalytics/Formatting/ExperimentTable.php:151
468
- #: library/DigitalPointBetterAnalytics/Formatting/GoalTable.php:147
469
- #: library/DigitalPointBetterAnalytics/ViewAdmin/goals.php:97
470
- msgid "Active"
471
- msgid_plural "Active"
472
  msgstr[0] ""
473
  msgstr[1] ""
474
 
475
- #: library/DigitalPointBetterAnalytics/Formatting/ExperimentTable.php:161
476
- #: library/DigitalPointBetterAnalytics/Formatting/GoalTable.php:157
477
- msgid "Inactive"
478
- msgid_plural "Inactive"
479
  msgstr[0] ""
480
  msgstr[1] ""
481
 
482
- #: library/DigitalPointBetterAnalytics/Formatting/ExperimentTable.php:189
483
- #: library/DigitalPointBetterAnalytics/Formatting/GoalTable.php:185
484
- #: library/DigitalPointBetterAnalytics/Formatting/GoalTable.php:236
485
- msgid "Activate"
 
 
 
 
 
 
 
 
 
 
 
 
486
  msgstr ""
487
 
488
- #: library/DigitalPointBetterAnalytics/Formatting/ExperimentTable.php:193
489
- #: library/DigitalPointBetterAnalytics/Formatting/GoalTable.php:189
490
- #: library/DigitalPointBetterAnalytics/Formatting/GoalTable.php:232
491
- msgid "Deactivate"
492
  msgstr ""
493
 
494
  #: library/DigitalPointBetterAnalytics/Formatting/ExperimentTable.php:239
 
 
 
 
 
 
 
 
 
 
 
495
  #: library/DigitalPointBetterAnalytics/Formatting/GoalTable.php:260
496
  msgid "Select %s"
497
  msgstr ""
498
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
499
  #. translators: PHP date format - see: http:php.net/manual/function.date.php
500
- #: library/DigitalPointBetterAnalytics/Formatting/ExperimentTable.php:262
501
- #: library/DigitalPointBetterAnalytics/Formatting/ExperimentTable.php:268
502
  #: library/DigitalPointBetterAnalytics/Formatting/GoalTable.php:285
503
  #: library/DigitalPointBetterAnalytics/Formatting/GoalTable.php:291
504
  msgid "Y/m/d g:i a"
@@ -515,6 +596,37 @@ msgstr ""
515
  msgid "Value"
516
  msgstr ""
517
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
518
  #. translators: %1$s = hours, %2$s = minutes, %3$s = seconds
519
  #: library/DigitalPointBetterAnalytics/Formatting/GoalTable.php:212
520
  msgid "%1$u hours, %2$u minutes, %3$u seconds"
@@ -540,69 +652,77 @@ msgid ""
540
  "%2$s. \"Create an account\" is on the upper right of that page."
541
  msgstr ""
542
 
543
- #: library/DigitalPointBetterAnalytics/Model/Experiments.php:8
544
- msgid "Draft"
545
- msgstr ""
546
-
547
  #: library/DigitalPointBetterAnalytics/Model/Experiments.php:9
548
  msgid "Ready to run"
549
  msgstr ""
550
 
551
- #: library/DigitalPointBetterAnalytics/Model/Experiments.php:10
552
- msgid "Running"
 
553
  msgstr ""
554
 
555
- #: library/DigitalPointBetterAnalytics/Model/Experiments.php:11
556
- msgid "Ended"
 
557
  msgstr ""
558
 
559
- #: library/DigitalPointBetterAnalytics/Model/Experiments.php:20
 
 
 
 
 
 
 
 
 
 
560
  msgid "Site Usage"
561
  msgstr ""
562
 
563
- #: library/DigitalPointBetterAnalytics/Model/Experiments.php:22
564
  #: library/DigitalPointBetterAnalytics/Model/Reporting.php:15
565
  msgid "Bounces"
566
  msgstr ""
567
 
568
- #: library/DigitalPointBetterAnalytics/Model/Experiments.php:23
569
  #: library/DigitalPointBetterAnalytics/Model/Reporting.php:179
570
  #: library/DigitalPointBetterAnalytics/ViewAdmin/goals.php:177
571
  msgid "Session Duration"
572
  msgstr ""
573
 
574
- #: library/DigitalPointBetterAnalytics/Model/Experiments.php:25
575
  #: library/DigitalPointBetterAnalytics/Model/Reporting.php:97
576
- #: library/DigitalPointBetterAnalytics/ViewAdmin/config.php:637
577
  msgid "AdSense"
578
  msgstr ""
579
 
580
- #: library/DigitalPointBetterAnalytics/Model/Experiments.php:26
581
  msgid "AdSense Ads Clicked"
582
  msgstr ""
583
 
584
- #: library/DigitalPointBetterAnalytics/Model/Experiments.php:27
585
  msgid "AdSense Impressions"
586
  msgstr ""
587
 
588
- #: library/DigitalPointBetterAnalytics/Model/Experiments.php:28
589
  msgid "AdSense Revenue"
590
  msgstr ""
591
 
592
- #: library/DigitalPointBetterAnalytics/Model/Experiments.php:30
593
  #: library/DigitalPointBetterAnalytics/Model/Reporting.php:80
594
  msgid "Ecommerce"
595
  msgstr ""
596
 
597
- #: library/DigitalPointBetterAnalytics/Model/Experiments.php:31
598
  msgid "Ecommerce Revenue"
599
  msgstr ""
600
 
601
- #: library/DigitalPointBetterAnalytics/Model/Experiments.php:32
602
  msgid "Ecommerce Transactions"
603
  msgstr ""
604
 
605
- #: library/DigitalPointBetterAnalytics/Model/Experiments.php:50
606
  msgid "Goal %1$u Completions (%2$s)"
607
  msgstr ""
608
 
@@ -858,42 +978,42 @@ msgid "External Links Clicked"
858
  msgstr ""
859
 
860
  #: library/DigitalPointBetterAnalytics/Model/Reporting.php:69
861
- #: library/DigitalPointBetterAnalytics/ViewAdmin/config.php:275
862
  msgid "File Downloads"
863
  msgstr ""
864
 
865
  #: library/DigitalPointBetterAnalytics/Model/Reporting.php:70
866
- #: library/DigitalPointBetterAnalytics/ViewAdmin/config.php:679
867
  msgid "Images Not Loading"
868
  msgstr ""
869
 
870
  #: library/DigitalPointBetterAnalytics/Model/Reporting.php:71
871
- #: library/DigitalPointBetterAnalytics/ViewAdmin/config.php:674
872
  msgid "Page Not Found (404)"
873
  msgstr ""
874
 
875
  #: library/DigitalPointBetterAnalytics/Model/Reporting.php:72
876
- #: library/DigitalPointBetterAnalytics/ViewAdmin/config.php:715
877
  msgid "AJAX Requests"
878
  msgstr ""
879
 
880
  #: library/DigitalPointBetterAnalytics/Model/Reporting.php:73
881
- #: library/DigitalPointBetterAnalytics/ViewAdmin/config.php:686
882
  msgid "JavaScript Errors"
883
  msgstr ""
884
 
885
  #: library/DigitalPointBetterAnalytics/Model/Reporting.php:74
886
- #: library/DigitalPointBetterAnalytics/ViewAdmin/config.php:691
887
  msgid "AJAX Errors"
888
  msgstr ""
889
 
890
  #: library/DigitalPointBetterAnalytics/Model/Reporting.php:75
891
- #: library/DigitalPointBetterAnalytics/ViewAdmin/config.php:695
892
  msgid "Browser Console Errors"
893
  msgstr ""
894
 
895
  #: library/DigitalPointBetterAnalytics/Model/Reporting.php:76
896
- #: library/DigitalPointBetterAnalytics/ViewAdmin/config.php:699
897
  msgid "YouTube Errors"
898
  msgstr ""
899
 
@@ -960,7 +1080,7 @@ msgid "Default Segments"
960
  msgstr ""
961
 
962
  #: library/DigitalPointBetterAnalytics/Model/Reporting.php:134
963
- #: library/DigitalPointBetterAnalytics/ViewAdmin/config.php:977
964
  msgid "Everything"
965
  msgstr ""
966
 
@@ -1277,133 +1397,137 @@ msgstr ""
1277
  msgid "(scope set to %s, should be HIT)"
1278
  msgstr ""
1279
 
1280
- #: library/DigitalPointBetterAnalytics/ViewAdmin/config.php:30
1281
- #: library/DigitalPointBetterAnalytics/ViewAdmin/config.php:200
1282
  msgid "General"
1283
  msgstr ""
1284
 
1285
- #: library/DigitalPointBetterAnalytics/ViewAdmin/config.php:31
1286
  msgid "Custom Dimensions"
1287
  msgstr ""
1288
 
1289
- #: library/DigitalPointBetterAnalytics/ViewAdmin/config.php:32
1290
  msgid "Social"
1291
  msgstr ""
1292
 
1293
- #: library/DigitalPointBetterAnalytics/ViewAdmin/config.php:33
1294
  msgid "Advertising"
1295
  msgstr ""
1296
 
1297
- #: library/DigitalPointBetterAnalytics/ViewAdmin/config.php:34
1298
  msgid "Monitoring"
1299
  msgstr ""
1300
 
1301
- #: library/DigitalPointBetterAnalytics/ViewAdmin/config.php:35
1302
  msgid "eCommerce"
1303
  msgstr ""
1304
 
1305
- #: library/DigitalPointBetterAnalytics/ViewAdmin/config.php:36
1306
  msgid "API"
1307
  msgstr ""
1308
 
1309
- #: library/DigitalPointBetterAnalytics/ViewAdmin/config.php:37
1310
  msgid "Advanced"
1311
  msgstr ""
1312
 
1313
- #: library/DigitalPointBetterAnalytics/ViewAdmin/config.php:53
1314
  msgid "Support / Feature Requests"
1315
  msgstr ""
1316
 
1317
- #: library/DigitalPointBetterAnalytics/ViewAdmin/config.php:55
1318
  msgid ""
1319
  "Better Analytics is user request driven, so if there's something you want it "
1320
  "to do that it doesn't already do, or just have a question, simply ask!"
1321
  msgstr ""
1322
 
1323
- #: library/DigitalPointBetterAnalytics/ViewAdmin/config.php:55
1324
  msgid "Setup Test Tool"
1325
  msgstr ""
1326
 
1327
- #: library/DigitalPointBetterAnalytics/ViewAdmin/config.php:57
1328
  msgid "Support / Request Venues"
1329
  msgstr ""
1330
 
1331
- #: library/DigitalPointBetterAnalytics/ViewAdmin/config.php:61
1332
  msgid "Forum"
1333
  msgstr ""
1334
 
1335
- #: library/DigitalPointBetterAnalytics/ViewAdmin/config.php:63
1336
- #: library/DigitalPointBetterAnalytics/ViewAdmin/config.php:608
1337
  msgid "Twitter"
1338
  msgstr ""
1339
 
1340
- #: library/DigitalPointBetterAnalytics/ViewAdmin/config.php:115
1341
  msgid "Extra Features In Pro Version"
1342
  msgstr ""
1343
 
1344
- #: library/DigitalPointBetterAnalytics/ViewAdmin/config.php:119
1345
  msgid "More Advertising tracking options"
1346
  msgstr ""
1347
 
1348
- #: library/DigitalPointBetterAnalytics/ViewAdmin/config.php:122
1349
  msgid "More options for monitoring issues with site"
1350
  msgstr ""
1351
 
1352
- #: library/DigitalPointBetterAnalytics/ViewAdmin/config.php:125
1353
  msgid "More heat map metrics"
1354
  msgstr ""
1355
 
1356
- #: library/DigitalPointBetterAnalytics/ViewAdmin/config.php:128
1357
  msgid "More charting dimensions"
1358
  msgstr ""
1359
 
1360
- #: library/DigitalPointBetterAnalytics/ViewAdmin/config.php:131
 
 
 
 
1361
  msgid "eCommerce tracking"
1362
  msgstr ""
1363
 
1364
- #: library/DigitalPointBetterAnalytics/ViewAdmin/config.php:134
1365
  msgid ""
1366
  "Option for server-side tracking of users (or bots) with Analytics/privacy "
1367
  "blockers"
1368
  msgstr ""
1369
 
1370
- #: library/DigitalPointBetterAnalytics/ViewAdmin/config.php:137
1371
  msgid "API calls are faster (uses a custom system for parallel requests)"
1372
  msgstr ""
1373
 
1374
- #: library/DigitalPointBetterAnalytics/ViewAdmin/config.php:140
1375
  msgid "Priority Support"
1376
  msgstr ""
1377
 
1378
- #: library/DigitalPointBetterAnalytics/ViewAdmin/config.php:145
1379
  msgid ""
1380
  "You can %1$sget a license here%2$s.%3$sIf you already have a license, make "
1381
  "sure your domain is listed under %4$syour verified domains%2$s."
1382
  msgstr ""
1383
 
1384
- #: library/DigitalPointBetterAnalytics/ViewAdmin/config.php:162
1385
  msgid "Google Analytics Web Property ID"
1386
  msgstr ""
1387
 
1388
- #: library/DigitalPointBetterAnalytics/ViewAdmin/config.php:178
1389
- #: library/DigitalPointBetterAnalytics/ViewAdmin/config.php:766
1390
  msgid "Pick profile"
1391
  msgstr ""
1392
 
1393
- #: library/DigitalPointBetterAnalytics/ViewAdmin/config.php:180
1394
- #: library/DigitalPointBetterAnalytics/ViewAdmin/config.php:768
1395
  msgid "please pick a profile"
1396
  msgstr ""
1397
 
1398
- #: library/DigitalPointBetterAnalytics/ViewAdmin/config.php:192
1399
  msgid "Link Your Google Analytics Account"
1400
  msgstr ""
1401
 
1402
- #: library/DigitalPointBetterAnalytics/ViewAdmin/config.php:205
1403
  msgid "Enhanced Link Attribution"
1404
  msgstr ""
1405
 
1406
- #: library/DigitalPointBetterAnalytics/ViewAdmin/config.php:207
1407
  msgid ""
1408
  "See separate information for multiple links on a page that all have the same "
1409
  "destination. For example, if there are two links on the same page that both "
@@ -1413,74 +1537,94 @@ msgid ""
1413
  "destinations.%1$sTrack buttons, menus, and actions driven by JavaScript."
1414
  msgstr ""
1415
 
1416
- #: library/DigitalPointBetterAnalytics/ViewAdmin/config.php:214
1417
  msgid "Track Registered Users By User ID"
1418
  msgstr ""
1419
 
1420
- #: library/DigitalPointBetterAnalytics/ViewAdmin/config.php:215
1421
  msgid ""
1422
  "This feature allows you to utilize %1$ssession unification%2$s within Google "
1423
  "Analytics."
1424
  msgstr ""
1425
 
1426
- #: library/DigitalPointBetterAnalytics/ViewAdmin/config.php:227
1427
  msgid "Events To Track"
1428
  msgstr ""
1429
 
1430
- #: library/DigitalPointBetterAnalytics/ViewAdmin/config.php:233
1431
  msgid "User Engagement"
1432
  msgstr ""
1433
 
1434
- #: library/DigitalPointBetterAnalytics/ViewAdmin/config.php:236
1435
  msgid "This will give you an %1$sadjusted bounce rate%2$s."
1436
  msgstr ""
1437
 
1438
- #: library/DigitalPointBetterAnalytics/ViewAdmin/config.php:245
1439
  msgid "User Registration"
1440
  msgstr ""
1441
 
1442
- #: library/DigitalPointBetterAnalytics/ViewAdmin/config.php:250
1443
  msgid "Comments Being Created"
1444
  msgstr ""
1445
 
1446
- #: library/DigitalPointBetterAnalytics/ViewAdmin/config.php:255
1447
  msgid "YouTube Video Engagement"
1448
  msgstr ""
1449
 
1450
- #: library/DigitalPointBetterAnalytics/ViewAdmin/config.php:256
1451
  msgid ""
1452
  "This works with the modern IFRAME YouTube embeds. It does not work with the "
1453
  "old OBJECT embeds.%1$sTracks things like video plays, pauses, plays to end, "
1454
  "etc."
1455
  msgstr ""
1456
 
1457
- #: library/DigitalPointBetterAnalytics/ViewAdmin/config.php:265
1458
  msgid "Emails Sent/Opened"
1459
  msgstr ""
1460
 
1461
- #: library/DigitalPointBetterAnalytics/ViewAdmin/config.php:270
1462
  msgid "Clicks On External Links"
1463
  msgstr ""
1464
 
1465
- #: library/DigitalPointBetterAnalytics/ViewAdmin/config.php:283
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1466
  msgid "Privacy"
1467
  msgstr ""
1468
 
1469
- #: library/DigitalPointBetterAnalytics/ViewAdmin/config.php:288
1470
  msgid "Anonymize IPs"
1471
  msgstr ""
1472
 
1473
- #: library/DigitalPointBetterAnalytics/ViewAdmin/config.php:289
1474
  msgid ""
1475
  "Detailed information about IP Anonymization in Google Analytics can be found "
1476
  "%1$sover here%2$s."
1477
  msgstr ""
1478
 
1479
- #: library/DigitalPointBetterAnalytics/ViewAdmin/config.php:297
1480
  msgid "Demographic & Interest Tracking"
1481
  msgstr ""
1482
 
1483
- #: library/DigitalPointBetterAnalytics/ViewAdmin/config.php:298
1484
  msgid ""
1485
  "This allows you to view extra dimensions about users (Age, Gender, Affinity "
1486
  "Categories, In-Market Segments and Other Categories.%1$sThis requires "
@@ -1488,11 +1632,11 @@ msgid ""
1488
  "%4$sProperty Settings%5$s."
1489
  msgstr ""
1490
 
1491
- #: library/DigitalPointBetterAnalytics/ViewAdmin/config.php:309
1492
  msgid "Force Analytics Traffic Over SSL"
1493
  msgstr ""
1494
 
1495
- #: library/DigitalPointBetterAnalytics/ViewAdmin/config.php:310
1496
  msgid ""
1497
  "If your site is HTTPS based, Analytics traffic will always go over SSL. If "
1498
  "you have an insecure site, but wish Analytics traffic to still be secure, "
@@ -1500,30 +1644,30 @@ msgid ""
1500
  "because it's able to utilize the %1$sSPDY protocol%2$s."
1501
  msgstr ""
1502
 
1503
- #: library/DigitalPointBetterAnalytics/ViewAdmin/config.php:320
1504
  msgid "Link Source Tracking"
1505
  msgstr ""
1506
 
1507
- #: library/DigitalPointBetterAnalytics/ViewAdmin/config.php:325
1508
  msgid "RSS"
1509
  msgstr ""
1510
 
1511
- #: library/DigitalPointBetterAnalytics/ViewAdmin/config.php:326
1512
  msgid ""
1513
  "Links within RSS feed will be tagged to track the source/medium as being RSS."
1514
  msgstr ""
1515
 
1516
- #: library/DigitalPointBetterAnalytics/ViewAdmin/config.php:331
1517
  msgid "Email"
1518
  msgstr ""
1519
 
1520
- #: library/DigitalPointBetterAnalytics/ViewAdmin/config.php:332
1521
  msgid ""
1522
  "Links within RSS feed will be tagged to track the source/medium as being "
1523
  "Email."
1524
  msgstr ""
1525
 
1526
- #: library/DigitalPointBetterAnalytics/ViewAdmin/config.php:342
1527
  msgid ""
1528
  "If you want to track custom dimensions, you need to create the custom "
1529
  "dimensions in your %1$sGoogle Analytics account settings%2$s (under "
@@ -1531,110 +1675,110 @@ msgid ""
1531
  "\"%3$sHit%4$s\"."
1532
  msgstr ""
1533
 
1534
- #: library/DigitalPointBetterAnalytics/ViewAdmin/config.php:366
1535
  msgid "Dimension Indexes"
1536
  msgstr ""
1537
 
1538
- #: library/DigitalPointBetterAnalytics/ViewAdmin/config.php:372
1539
  msgid "Set to 0 to disable."
1540
  msgstr ""
1541
 
1542
  #. translators: %1$s = <br />
1543
- #: library/DigitalPointBetterAnalytics/ViewAdmin/config.php:377
1544
  msgid ""
1545
  "Drop-down boxes are coming from%1$scustom dimensions defined within%1$syour "
1546
  "Google Analytics account."
1547
  msgstr ""
1548
 
1549
- #: library/DigitalPointBetterAnalytics/ViewAdmin/config.php:389
1550
  msgid "Categories: "
1551
  msgstr ""
1552
 
1553
- #: library/DigitalPointBetterAnalytics/ViewAdmin/config.php:396
1554
- #: library/DigitalPointBetterAnalytics/ViewAdmin/config.php:429
1555
- #: library/DigitalPointBetterAnalytics/ViewAdmin/config.php:463
1556
- #: library/DigitalPointBetterAnalytics/ViewAdmin/config.php:497
1557
- #: library/DigitalPointBetterAnalytics/ViewAdmin/config.php:531
1558
- #: library/DigitalPointBetterAnalytics/ViewAdmin/config.php:565
1559
  msgid "Pick dimension"
1560
  msgstr ""
1561
 
1562
- #: library/DigitalPointBetterAnalytics/ViewAdmin/config.php:398
1563
- #: library/DigitalPointBetterAnalytics/ViewAdmin/config.php:431
1564
- #: library/DigitalPointBetterAnalytics/ViewAdmin/config.php:465
1565
- #: library/DigitalPointBetterAnalytics/ViewAdmin/config.php:499
1566
- #: library/DigitalPointBetterAnalytics/ViewAdmin/config.php:533
1567
- #: library/DigitalPointBetterAnalytics/ViewAdmin/config.php:567
1568
  msgid "[none]"
1569
  msgstr ""
1570
 
1571
- #: library/DigitalPointBetterAnalytics/ViewAdmin/config.php:421
1572
  msgid "Author: "
1573
  msgstr ""
1574
 
1575
- #: library/DigitalPointBetterAnalytics/ViewAdmin/config.php:455
1576
  msgid "Tags: "
1577
  msgstr ""
1578
 
1579
- #: library/DigitalPointBetterAnalytics/ViewAdmin/config.php:489
1580
  msgid "Publication Year: "
1581
  msgstr ""
1582
 
1583
- #: library/DigitalPointBetterAnalytics/ViewAdmin/config.php:523
1584
  msgid "User Role: "
1585
  msgstr ""
1586
 
1587
- #: library/DigitalPointBetterAnalytics/ViewAdmin/config.php:557
1588
  msgid "Registered User: "
1589
  msgstr ""
1590
 
1591
- #: library/DigitalPointBetterAnalytics/ViewAdmin/config.php:597
1592
  msgid "Button Engagement To Track"
1593
  msgstr ""
1594
 
1595
- #: library/DigitalPointBetterAnalytics/ViewAdmin/config.php:603
1596
  msgid "Facebook Like"
1597
  msgstr ""
1598
 
1599
- #: library/DigitalPointBetterAnalytics/ViewAdmin/config.php:613
1600
  msgid "Google+ (Google Analytics always tracks)"
1601
  msgstr ""
1602
 
1603
- #: library/DigitalPointBetterAnalytics/ViewAdmin/config.php:618
1604
  msgid "Pinterest"
1605
  msgstr ""
1606
 
1607
- #: library/DigitalPointBetterAnalytics/ViewAdmin/config.php:623
1608
  msgid "LinkedIn"
1609
  msgstr ""
1610
 
1611
- #: library/DigitalPointBetterAnalytics/ViewAdmin/config.php:631
1612
  msgid "Advertisement Clicks To Track"
1613
  msgstr ""
1614
 
1615
- #: library/DigitalPointBetterAnalytics/ViewAdmin/config.php:642
1616
  msgid "Outbrain"
1617
  msgstr ""
1618
 
1619
- #: library/DigitalPointBetterAnalytics/ViewAdmin/config.php:647
1620
  msgid "RevContent"
1621
  msgstr ""
1622
 
1623
- #: library/DigitalPointBetterAnalytics/ViewAdmin/config.php:652
1624
  msgid "Taboola"
1625
  msgstr ""
1626
 
1627
- #. #-#-#-#-# plugin.pot (Better Analytics 1.0.9) #-#-#-#-#
1628
  #. Author of the plugin/theme
1629
- #: library/DigitalPointBetterAnalytics/ViewAdmin/config.php:657
1630
  msgid "Digital Point"
1631
  msgstr ""
1632
 
1633
- #: library/DigitalPointBetterAnalytics/ViewAdmin/config.php:668
1634
  msgid "Site Issues To Track"
1635
  msgstr ""
1636
 
1637
- #: library/DigitalPointBetterAnalytics/ViewAdmin/config.php:680
1638
  msgid ""
1639
  "This relies on the ability of the user's browser to load images which will "
1640
  "vary between browsers and Internet connections. This event can be a useful "
@@ -1642,70 +1786,70 @@ msgid ""
1642
  "that the end user's browser did not load (for any reason)."
1643
  msgstr ""
1644
 
1645
- #: library/DigitalPointBetterAnalytics/ViewAdmin/config.php:700
1646
  msgid ""
1647
  "This allows you to quickly find old videos that the author has removed or "
1648
  "disabled embeding for."
1649
  msgstr ""
1650
 
1651
- #: library/DigitalPointBetterAnalytics/ViewAdmin/config.php:709
1652
  msgid "Debugging Events"
1653
  msgstr ""
1654
 
1655
- #: library/DigitalPointBetterAnalytics/ViewAdmin/config.php:728
1656
  msgid "WooCommerce"
1657
  msgstr ""
1658
 
1659
- #: library/DigitalPointBetterAnalytics/ViewAdmin/config.php:736
1660
  msgid "WooCommerce not enabled/active."
1661
  msgstr ""
1662
 
1663
- #: library/DigitalPointBetterAnalytics/ViewAdmin/config.php:739
1664
  msgid "More information about %s"
1665
  msgstr ""
1666
 
1667
- #: library/DigitalPointBetterAnalytics/ViewAdmin/config.php:741
1668
  msgid "View details"
1669
  msgstr ""
1670
 
1671
- #: library/DigitalPointBetterAnalytics/ViewAdmin/config.php:763
1672
  msgid "Profile Used For Reporting"
1673
  msgstr ""
1674
 
1675
- #: library/DigitalPointBetterAnalytics/ViewAdmin/config.php:798
1676
  msgid "Multisite Mode: Analytics account linked at network level"
1677
  msgstr ""
1678
 
1679
- #: library/DigitalPointBetterAnalytics/ViewAdmin/config.php:812
1680
  #: library/DigitalPointBetterAnalytics/ViewAdmin/config_network.php:20
1681
  #: library/DigitalPointBetterAnalytics/ViewAdmin/test.php:122
1682
  msgid "Link/Authenticate A Different Google Analytics Account"
1683
  msgstr ""
1684
 
1685
- #: library/DigitalPointBetterAnalytics/ViewAdmin/config.php:812
1686
  #: library/DigitalPointBetterAnalytics/ViewAdmin/config_network.php:20
1687
  msgid "Link/Authenticate Your Google Analytics Account"
1688
  msgstr ""
1689
 
1690
- #: library/DigitalPointBetterAnalytics/ViewAdmin/config.php:831
1691
  #: library/DigitalPointBetterAnalytics/ViewAdmin/config_network.php:39
1692
  msgid "Use Your Own Project Credentials"
1693
  msgstr ""
1694
 
1695
- #: library/DigitalPointBetterAnalytics/ViewAdmin/config.php:833
1696
  #: library/DigitalPointBetterAnalytics/ViewAdmin/config_network.php:40
1697
  msgid ""
1698
  "If you have your own Google API Project that you wish to use, you can use "
1699
  "your credentials for that web application."
1700
  msgstr ""
1701
 
1702
- #: library/DigitalPointBetterAnalytics/ViewAdmin/config.php:844
1703
  #: library/DigitalPointBetterAnalytics/ViewAdmin/config_network.php:50
1704
  msgid "Configuration"
1705
  msgstr ""
1706
 
1707
  #. translators: %1$s = <strong>, %2$s = </strong>
1708
- #: library/DigitalPointBetterAnalytics/ViewAdmin/config.php:846
1709
  #: library/DigitalPointBetterAnalytics/ViewAdmin/config_network.php:52
1710
  msgid ""
1711
  "Project needs to have the %1$sAnalytics API%2$s enabled under %1$sAPIs & "
@@ -1713,7 +1857,7 @@ msgid ""
1713
  msgstr ""
1714
 
1715
  #. translators: %1$s = <strong>, %2$s = </strong>
1716
- #: library/DigitalPointBetterAnalytics/ViewAdmin/config.php:848
1717
  #: library/DigitalPointBetterAnalytics/ViewAdmin/config_network.php:54
1718
  msgid ""
1719
  "Under %1$sAPIs & auth -> Credentials%2$s, you need to %1$sCreate new Client "
@@ -1721,109 +1865,109 @@ msgid ""
1721
  "%1$s%3$s%2$s"
1722
  msgstr ""
1723
 
1724
- #: library/DigitalPointBetterAnalytics/ViewAdmin/config.php:856
1725
  #: library/DigitalPointBetterAnalytics/ViewAdmin/config_network.php:61
1726
  msgid "Client ID"
1727
  msgstr ""
1728
 
1729
- #: library/DigitalPointBetterAnalytics/ViewAdmin/config.php:866
1730
  #: library/DigitalPointBetterAnalytics/ViewAdmin/config_network.php:68
1731
  msgid "Client Secret"
1732
  msgstr ""
1733
 
1734
- #: library/DigitalPointBetterAnalytics/ViewAdmin/config.php:877
1735
  msgid "Roles To Not Track"
1736
  msgstr ""
1737
 
1738
- #: library/DigitalPointBetterAnalytics/ViewAdmin/config.php:877
1739
- #: library/DigitalPointBetterAnalytics/ViewAdmin/config.php:920
1740
  msgid ""
1741
  "If a logged in user is part of one of these groups, Analytics will not track "
1742
  "them."
1743
  msgstr ""
1744
 
1745
- #: library/DigitalPointBetterAnalytics/ViewAdmin/config.php:880
1746
  msgid "Pick roles to not track"
1747
  msgstr ""
1748
 
1749
- #: library/DigitalPointBetterAnalytics/ViewAdmin/config.php:895
1750
  msgid "Roles Able To View Reports/Dashboard"
1751
  msgstr ""
1752
 
1753
- #: library/DigitalPointBetterAnalytics/ViewAdmin/config.php:898
1754
  msgid "Pick roles that are able to view reports"
1755
  msgstr ""
1756
 
1757
- #: library/DigitalPointBetterAnalytics/ViewAdmin/config.php:912
1758
  msgid "Author Can View Page Analytics"
1759
  msgstr ""
1760
 
1761
- #: library/DigitalPointBetterAnalytics/ViewAdmin/config.php:920
1762
  msgid "File Extensions To Track As Downloads"
1763
  msgstr ""
1764
 
1765
- #: library/DigitalPointBetterAnalytics/ViewAdmin/config.php:922
1766
  msgid "Pick file extensions"
1767
  msgstr ""
1768
 
1769
- #: library/DigitalPointBetterAnalytics/ViewAdmin/config.php:927
1770
  msgid "Audio Video Interleave (.avi)"
1771
  msgstr ""
1772
 
1773
- #: library/DigitalPointBetterAnalytics/ViewAdmin/config.php:928
1774
  msgid "Word (.doc)"
1775
  msgstr ""
1776
 
1777
- #: library/DigitalPointBetterAnalytics/ViewAdmin/config.php:929
1778
  msgid "Executable (.exe)"
1779
  msgstr ""
1780
 
1781
- #: library/DigitalPointBetterAnalytics/ViewAdmin/config.php:930
1782
  msgid "gzip (.gz)"
1783
  msgstr ""
1784
 
1785
- #: library/DigitalPointBetterAnalytics/ViewAdmin/config.php:931
1786
  msgid "MPEG-1 Video (.mpg)"
1787
  msgstr ""
1788
 
1789
- #: library/DigitalPointBetterAnalytics/ViewAdmin/config.php:932
1790
  msgid "MP3 (.mp3)"
1791
  msgstr ""
1792
 
1793
- #: library/DigitalPointBetterAnalytics/ViewAdmin/config.php:933
1794
  msgid "Acrobat (.pdf)"
1795
  msgstr ""
1796
 
1797
- #: library/DigitalPointBetterAnalytics/ViewAdmin/config.php:934
1798
  msgid "PowerPoint (.ppt)"
1799
  msgstr ""
1800
 
1801
- #: library/DigitalPointBetterAnalytics/ViewAdmin/config.php:935
1802
  msgid "Photoshop (.psd)"
1803
  msgstr ""
1804
 
1805
- #: library/DigitalPointBetterAnalytics/ViewAdmin/config.php:936
1806
  msgid "RAR (.rar)"
1807
  msgstr ""
1808
 
1809
- #: library/DigitalPointBetterAnalytics/ViewAdmin/config.php:937
1810
  msgid "Windows Media Video (.wmv)"
1811
  msgstr ""
1812
 
1813
- #: library/DigitalPointBetterAnalytics/ViewAdmin/config.php:938
1814
  msgid "Excel (.xls)"
1815
  msgstr ""
1816
 
1817
- #: library/DigitalPointBetterAnalytics/ViewAdmin/config.php:939
1818
  msgid "Zip Archive (.zip)"
1819
  msgstr ""
1820
 
1821
- #: library/DigitalPointBetterAnalytics/ViewAdmin/config.php:953
1822
  msgid "Track Users With Analytics Blockers"
1823
  msgstr ""
1824
 
1825
  #. translators: %1$s = <strong>, %2$s = </strong>, %3$s = <p />
1826
- #: library/DigitalPointBetterAnalytics/ViewAdmin/config.php:956
1827
  msgid ""
1828
  "If a user has a mechanism that is blocking them from being tracked with "
1829
  "Google Analytics, you can use this option to do server-side page view "
@@ -1834,92 +1978,88 @@ msgid ""
1834
  "tracked (ones not popular enough to be widely known as a spider)."
1835
  msgstr ""
1836
 
1837
- #: library/DigitalPointBetterAnalytics/ViewAdmin/config.php:962
1838
  msgid "Never"
1839
  msgstr ""
1840
 
1841
- #: library/DigitalPointBetterAnalytics/ViewAdmin/config.php:967
1842
  msgid "Registered Users"
1843
  msgstr ""
1844
 
1845
- #: library/DigitalPointBetterAnalytics/ViewAdmin/config.php:972
1846
  msgid "Humans"
1847
  msgstr ""
1848
 
1849
- #: library/DigitalPointBetterAnalytics/ViewAdmin/config.php:985
1850
  msgid "Location For Analytics Code"
1851
  msgstr ""
1852
 
1853
- #: library/DigitalPointBetterAnalytics/ViewAdmin/config.php:990
1854
- msgid "Header"
1855
- msgstr ""
1856
-
1857
- #: library/DigitalPointBetterAnalytics/ViewAdmin/config.php:995
1858
  msgid "Footer"
1859
  msgstr ""
1860
 
1861
- #: library/DigitalPointBetterAnalytics/ViewAdmin/config.php:1000
1862
  msgid "No JavaScript (you have your own/other already)"
1863
  msgstr ""
1864
 
1865
- #: library/DigitalPointBetterAnalytics/ViewAdmin/config.php:1006
1866
  msgid "Use In Staff Area (wp-admin)"
1867
  msgstr ""
1868
 
1869
- #: library/DigitalPointBetterAnalytics/ViewAdmin/config.php:1012
1870
  msgid "When To Run Analytics Code"
1871
  msgstr ""
1872
 
1873
- #: library/DigitalPointBetterAnalytics/ViewAdmin/config.php:1017
1874
  msgid "Immediately"
1875
  msgstr ""
1876
 
1877
- #: library/DigitalPointBetterAnalytics/ViewAdmin/config.php:1022
1878
  msgid "After Page Loads"
1879
  msgstr ""
1880
 
1881
- #: library/DigitalPointBetterAnalytics/ViewAdmin/config.php:1029
1882
  msgid "Campaign Tracking Within URLs"
1883
  msgstr ""
1884
 
1885
- #: library/DigitalPointBetterAnalytics/ViewAdmin/config.php:1034
1886
  msgid "In Anchor"
1887
  msgstr ""
1888
 
1889
- #: library/DigitalPointBetterAnalytics/ViewAdmin/config.php:1039
1890
  msgid "In Parameters"
1891
  msgstr ""
1892
 
1893
- #: library/DigitalPointBetterAnalytics/ViewAdmin/config.php:1046
1894
  msgid "Sample Rate"
1895
  msgstr ""
1896
 
1897
- #: library/DigitalPointBetterAnalytics/ViewAdmin/config.php:1046
1898
  msgid ""
1899
  "Specifies what percentage of users should be tracked. Very large sites may "
1900
  "need to use a lower sample rate to stay within Google Analytics processing "
1901
  "limits."
1902
  msgstr ""
1903
 
1904
- #: library/DigitalPointBetterAnalytics/ViewAdmin/config.php:1067
1905
  msgid "Extra JavaScript"
1906
  msgstr ""
1907
 
1908
- #: library/DigitalPointBetterAnalytics/ViewAdmin/config.php:1067
1909
  msgid ""
1910
  "This allows you to add your own JavaScript code to the Analytics tracking "
1911
  "code. This JavaScript is inserted right before the %1$s function."
1912
  msgstr ""
1913
 
1914
- #: library/DigitalPointBetterAnalytics/ViewAdmin/config.php:1074
1915
  msgid "Debugging"
1916
  msgstr ""
1917
 
1918
- #: library/DigitalPointBetterAnalytics/ViewAdmin/config.php:1079
1919
  msgid "Enable Google Analytics Debugging"
1920
  msgstr ""
1921
 
1922
- #: library/DigitalPointBetterAnalytics/ViewAdmin/config.php:1080
1923
  msgid "This will display Google Analytics debug data in the browser console."
1924
  msgstr ""
1925
 
@@ -1983,72 +2123,96 @@ msgstr ""
1983
  msgid "active users"
1984
  msgstr ""
1985
 
1986
- #: library/DigitalPointBetterAnalytics/ViewAdmin/experiments.php:69
1987
  msgid "View Experiment"
1988
  msgstr ""
1989
 
1990
- #: library/DigitalPointBetterAnalytics/ViewAdmin/experiments.php:69
1991
  msgid "Edit Experiment"
1992
  msgstr ""
1993
 
1994
- #: library/DigitalPointBetterAnalytics/ViewAdmin/experiments.php:69
1995
  msgid "Create Experiment"
1996
  msgstr ""
1997
 
1998
- #: library/DigitalPointBetterAnalytics/ViewAdmin/experiments.php:74
 
 
 
 
 
 
 
 
 
 
 
 
1999
  msgid ""
2000
  "This experiment was not created by Better Analytics. You can view it for "
2001
  "informational purposes, but you cannot make changes to it."
2002
  msgstr ""
2003
 
2004
- #: library/DigitalPointBetterAnalytics/ViewAdmin/experiments.php:117
 
 
 
 
 
 
 
 
2005
  msgid "Description"
2006
  msgstr ""
2007
 
2008
- #: library/DigitalPointBetterAnalytics/ViewAdmin/experiments.php:117
2009
  #: library/DigitalPointBetterAnalytics/ViewAdmin/goals.php:103
2010
  #: library/DigitalPointBetterAnalytics/ViewAdmin/goals.php:135
2011
  msgid "Optional"
2012
  msgstr ""
2013
 
2014
- #: library/DigitalPointBetterAnalytics/ViewAdmin/experiments.php:125
2015
  msgid "Objective Metric"
2016
  msgstr ""
2017
 
2018
- #: library/DigitalPointBetterAnalytics/ViewAdmin/experiments.php:128
2019
  msgid "Pick optimization type"
2020
  msgstr ""
2021
 
2022
- #: library/DigitalPointBetterAnalytics/ViewAdmin/experiments.php:129
2023
  msgid "Most"
2024
  msgstr ""
2025
 
2026
- #: library/DigitalPointBetterAnalytics/ViewAdmin/experiments.php:130
2027
  msgid "Least"
2028
  msgstr ""
2029
 
2030
- #: library/DigitalPointBetterAnalytics/ViewAdmin/experiments.php:133
2031
  msgid "Pick objective metric"
2032
  msgstr ""
2033
 
2034
- #: library/DigitalPointBetterAnalytics/ViewAdmin/experiments.php:156
 
 
 
 
2035
  msgid "Minimum Days To Run"
2036
  msgstr ""
2037
 
2038
- #: library/DigitalPointBetterAnalytics/ViewAdmin/experiments.php:163
2039
  msgid "Traffic To Experiment On"
2040
  msgstr ""
2041
 
2042
- #: library/DigitalPointBetterAnalytics/ViewAdmin/experiments.php:165
2043
- #: library/DigitalPointBetterAnalytics/ViewAdmin/experiments.php:199
2044
  msgid "%"
2045
  msgstr ""
2046
 
2047
- #: library/DigitalPointBetterAnalytics/ViewAdmin/experiments.php:170
2048
  msgid "Traffic Distribution Type"
2049
  msgstr ""
2050
 
2051
- #: library/DigitalPointBetterAnalytics/ViewAdmin/experiments.php:171
2052
  msgid ""
2053
  "Use this option to assign how traffic is divided between the original and "
2054
  "variations for life of the experiment. By default, Content Experiments "
@@ -2056,19 +2220,19 @@ msgid ""
2056
  "performance%2$s."
2057
  msgstr ""
2058
 
2059
- #: library/DigitalPointBetterAnalytics/ViewAdmin/experiments.php:181
2060
  msgid "Automatically adjust traffic dynamically "
2061
  msgstr ""
2062
 
2063
- #: library/DigitalPointBetterAnalytics/ViewAdmin/experiments.php:186
2064
  msgid "Distribute traffic evenly across all variations"
2065
  msgstr ""
2066
 
2067
- #: library/DigitalPointBetterAnalytics/ViewAdmin/experiments.php:195
2068
  msgid "Confidence Threshold"
2069
  msgstr ""
2070
 
2071
- #: library/DigitalPointBetterAnalytics/ViewAdmin/experiments.php:196
2072
  msgid ""
2073
  "Set the minimum confidence threshold that must be achieved before Analytics "
2074
  "can declare a winner. The higher the threshold, the more confident you can "
@@ -2076,127 +2240,126 @@ msgid ""
2076
  "to declare a winner."
2077
  msgstr ""
2078
 
2079
- #: library/DigitalPointBetterAnalytics/ViewAdmin/experiments.php:222
2080
  #: library/DigitalPointBetterAnalytics/ViewAdmin/goals.php:77
2081
  #: library/DigitalPointBetterAnalytics/ViewAdmin/goals.php:114
2082
  msgid "Pick type"
2083
  msgstr ""
2084
 
2085
- #: library/DigitalPointBetterAnalytics/ViewAdmin/experiments.php:226
2086
- msgid "Post Title"
2087
- msgstr ""
2088
-
2089
- #: library/DigitalPointBetterAnalytics/ViewAdmin/experiments.php:230
2090
- msgid "Page Title"
2091
- msgstr ""
2092
-
2093
- #: library/DigitalPointBetterAnalytics/ViewAdmin/experiments.php:234
2094
- msgid "CSS"
2095
- msgstr ""
2096
-
2097
- #: library/DigitalPointBetterAnalytics/ViewAdmin/experiments.php:238
2098
- msgid "Theme"
2099
- msgstr ""
2100
-
2101
- #: library/DigitalPointBetterAnalytics/ViewAdmin/experiments.php:256
2102
  msgid "Post"
2103
  msgstr ""
2104
 
2105
- #: library/DigitalPointBetterAnalytics/ViewAdmin/experiments.php:261
2106
  msgid "Pick post"
2107
  msgstr ""
2108
 
2109
- #: library/DigitalPointBetterAnalytics/ViewAdmin/experiments.php:276
2110
- #: library/DigitalPointBetterAnalytics/ViewAdmin/experiments.php:329
2111
  msgid "Title Variations"
2112
  msgstr ""
2113
 
2114
- #: library/DigitalPointBetterAnalytics/ViewAdmin/experiments.php:284
2115
- #: library/DigitalPointBetterAnalytics/ViewAdmin/experiments.php:293
2116
  msgid "Enter a post title variation here"
2117
  msgstr ""
2118
 
2119
- #: library/DigitalPointBetterAnalytics/ViewAdmin/experiments.php:301
2120
- #: library/DigitalPointBetterAnalytics/ViewAdmin/experiments.php:354
2121
  msgid "Add another title variation"
2122
  msgstr ""
2123
 
2124
- #: library/DigitalPointBetterAnalytics/ViewAdmin/experiments.php:309
2125
  msgid "Page"
2126
  msgstr ""
2127
 
2128
- #: library/DigitalPointBetterAnalytics/ViewAdmin/experiments.php:314
2129
  msgid "Pick page"
2130
  msgstr ""
2131
 
2132
- #: library/DigitalPointBetterAnalytics/ViewAdmin/experiments.php:337
2133
- #: library/DigitalPointBetterAnalytics/ViewAdmin/experiments.php:346
2134
  msgid "Enter a page title variation here"
2135
  msgstr ""
2136
 
2137
- #: library/DigitalPointBetterAnalytics/ViewAdmin/experiments.php:361
2138
  msgid "Custom CSS"
2139
  msgstr ""
2140
 
2141
- #: library/DigitalPointBetterAnalytics/ViewAdmin/experiments.php:400
2142
  msgid "Add another CSS variation"
2143
  msgstr ""
2144
 
2145
- #: library/DigitalPointBetterAnalytics/ViewAdmin/experiments.php:407
2146
  msgid "Theme Variations"
2147
  msgstr ""
2148
 
2149
- #: library/DigitalPointBetterAnalytics/ViewAdmin/experiments.php:425
2150
- #: library/DigitalPointBetterAnalytics/ViewAdmin/experiments.php:427
2151
- #: library/DigitalPointBetterAnalytics/ViewAdmin/experiments.php:444
2152
- #: library/DigitalPointBetterAnalytics/ViewAdmin/experiments.php:446
2153
  msgid "Pick theme"
2154
  msgstr ""
2155
 
2156
- #: library/DigitalPointBetterAnalytics/ViewAdmin/experiments.php:463
2157
  msgid "Add another theme variation"
2158
  msgstr ""
2159
 
2160
- #: library/DigitalPointBetterAnalytics/ViewAdmin/experiments.php:621
2161
  msgid "Experiment name is required."
2162
  msgstr ""
2163
 
2164
  #. translators: %1$s = <strong>, %2$s = </strong>
2165
- #: library/DigitalPointBetterAnalytics/ViewAdmin/experiments.php:664
2166
  msgid "Experiment %1$supdated%2$s."
2167
  msgstr ""
2168
 
2169
  #. translators: %1$s = <strong>, %2$s = </strong>
2170
- #: library/DigitalPointBetterAnalytics/ViewAdmin/experiments.php:669
2171
  msgid "Experiment %1$screated%2$s."
2172
  msgstr ""
2173
 
2174
- #: library/DigitalPointBetterAnalytics/ViewAdmin/experiments.php:691
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
2175
  msgid "Experiments"
2176
  msgstr ""
2177
 
2178
- #: library/DigitalPointBetterAnalytics/ViewAdmin/experiments.php:692
2179
  #: library/DigitalPointBetterAnalytics/ViewAdmin/goals.php:480
2180
  msgid "Add New"
2181
  msgstr ""
2182
 
2183
  #. translators: %1$s = <strong>, %2$s = </strong>
2184
- #: library/DigitalPointBetterAnalytics/ViewAdmin/experiments.php:703
2185
  msgid "Experiment %1$sactivated%2$s."
2186
  msgstr ""
2187
 
2188
  #. translators: %1$s = <strong>, %2$s = </strong>
2189
- #: library/DigitalPointBetterAnalytics/ViewAdmin/experiments.php:708
2190
  msgid "Selected experiments %1$sactivated%2$s."
2191
  msgstr ""
2192
 
2193
  #. translators: %1$s = <strong>, %2$s = </strong>
2194
- #: library/DigitalPointBetterAnalytics/ViewAdmin/experiments.php:713
2195
  msgid "Experiment %1$sdeactivated%2$s."
2196
  msgstr ""
2197
 
2198
  #. translators: %1$s = <strong>, %2$s = </strong>
2199
- #: library/DigitalPointBetterAnalytics/ViewAdmin/experiments.php:718
2200
  msgid "Selected experiments %1$sdeactivated%2$s."
2201
  msgstr ""
2202
 
@@ -2695,44 +2858,48 @@ msgid "More %1$sissue monitoring options%2$s"
2695
  msgstr ""
2696
 
2697
  #: library/DigitalPointBetterAnalytics/ViewAdmin/test.php:582
2698
- msgid "%1$seCommerce tracking%2$s"
2699
  msgstr ""
2700
 
2701
  #: library/DigitalPointBetterAnalytics/ViewAdmin/test.php:587
2702
- msgid "Ability to do %1$sserver-side tracking of users%2$s"
2703
  msgstr ""
2704
 
2705
  #: library/DigitalPointBetterAnalytics/ViewAdmin/test.php:592
2706
- msgid "Faster API calls (utilizes a multi-threaded mechanism)"
2707
  msgstr ""
2708
 
2709
  #: library/DigitalPointBetterAnalytics/ViewAdmin/test.php:597
2710
- msgid "%1$sPriority support%2$s"
2711
  msgstr ""
2712
 
2713
  #: library/DigitalPointBetterAnalytics/ViewAdmin/test.php:602
 
 
 
 
2714
  msgid ""
2715
  "A Warm & Fuzzy Feeling knowing you are helping to continue future development"
2716
  msgstr ""
2717
 
2718
- #: library/DigitalPointBetterAnalytics/ViewAdmin/test.php:614
2719
  msgid "Things That Need To Be Checked Manually"
2720
  msgstr ""
2721
 
2722
- #: library/DigitalPointBetterAnalytics/ViewAdmin/test.php:618
2723
  msgid "User-ID Tracking"
2724
  msgstr ""
2725
 
2726
- #: library/DigitalPointBetterAnalytics/ViewAdmin/test.php:621
2727
  msgid ""
2728
  "Found in Google Analytics account under %1$sTracking Info -> User-ID%2$s."
2729
  msgstr ""
2730
 
2731
- #: library/DigitalPointBetterAnalytics/ViewAdmin/test.php:626
2732
  msgid "Demographic and Interest Reports"
2733
  msgstr ""
2734
 
2735
- #: library/DigitalPointBetterAnalytics/ViewAdmin/test.php:629
2736
  msgid "Found in Google Analytics account under %1$sProperty Settings%1$s."
2737
  msgstr ""
2738
 
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.10\n"
6
  "Report-Msgid-Bugs-To: https://wordpress.org/support/plugin/better-analytics\n"
7
+ "POT-Creation-Date: 2015-08-22 00:45:19+00:00\n"
8
  "MIME-Version: 1.0\n"
9
  "Content-Type: text/plain; charset=UTF-8\n"
10
  "Content-Transfer-Encoding: 8bit\n"
12
  "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
13
  "Language-Team: LANGUAGE <LL@li.org>\n"
14
 
15
+ #: library/DigitalPointBetterAnalytics/Base/Admin.php:88
16
  msgid "Test Analytics Setup"
17
  msgstr ""
18
 
19
+ #: library/DigitalPointBetterAnalytics/Base/Admin.php:89
20
+ #: library/DigitalPointBetterAnalytics/Base/Admin.php:113
21
  msgid "OAuth2 Endpoint"
22
  msgstr ""
23
 
24
+ #: library/DigitalPointBetterAnalytics/Base/Admin.php:93
25
  msgid "Analytics"
26
  msgstr ""
27
 
28
+ #: library/DigitalPointBetterAnalytics/Base/Admin.php:94
29
+ #: library/DigitalPointBetterAnalytics/Base/Public.php:311
30
  msgid "Heat Maps"
31
  msgstr ""
32
 
33
+ #: library/DigitalPointBetterAnalytics/Base/Admin.php:94
34
  msgid "Reports"
35
  msgstr ""
36
 
37
+ #: library/DigitalPointBetterAnalytics/Base/Admin.php:96
38
+ #: library/DigitalPointBetterAnalytics/Base/Public.php:312
39
  #: library/DigitalPointBetterAnalytics/ViewAdmin/reports/area_charts.php:17
40
  #: library/DigitalPointBetterAnalytics/ViewAdmin/reports/events.php:14
41
  #: library/DigitalPointBetterAnalytics/ViewAdmin/reports/heatmaps.php:14
42
  msgid "Charts"
43
  msgstr ""
44
 
45
+ #: library/DigitalPointBetterAnalytics/Base/Admin.php:97
46
+ #: library/DigitalPointBetterAnalytics/Base/Public.php:314
47
  msgid "Issue Monitor"
48
  msgstr ""
49
 
50
+ #: library/DigitalPointBetterAnalytics/Base/Admin.php:98
51
+ #: library/DigitalPointBetterAnalytics/Base/Public.php:313
52
  #: library/DigitalPointBetterAnalytics/ControllerAdmin/Analytics.php:383
53
  #: library/DigitalPointBetterAnalytics/ControllerAdmin/Analytics.php:441
54
  #: library/DigitalPointBetterAnalytics/ViewAdmin/reports/area_charts.php:18
57
  msgid "Events"
58
  msgstr ""
59
 
60
+ #: library/DigitalPointBetterAnalytics/Base/Admin.php:101
61
+ #: library/DigitalPointBetterAnalytics/Model/Experiments.php:49
62
+ #: library/DigitalPointBetterAnalytics/Model/Experiments.php:60
63
  #: library/DigitalPointBetterAnalytics/ViewAdmin/goals.php:479
64
  msgid "Goals"
65
  msgstr ""
66
 
67
  #: library/DigitalPointBetterAnalytics/Base/Admin.php:102
68
+ msgid "A/B Testing"
 
 
69
  msgstr ""
70
 
71
  #: library/DigitalPointBetterAnalytics/Base/Admin.php:103
72
+ #: library/DigitalPointBetterAnalytics/Base/Admin.php:125
73
+ #: library/DigitalPointBetterAnalytics/Base/Admin.php:225
74
+ msgid "Settings"
75
+ msgstr ""
76
+
77
+ #: library/DigitalPointBetterAnalytics/Base/Admin.php:104
78
  msgid "Test Setup"
79
  msgstr ""
80
 
81
+ #. #-#-#-#-# plugin.pot (Better Analytics 1.0.10) #-#-#-#-#
82
  #. Plugin Name of the plugin/theme
83
+ #: library/DigitalPointBetterAnalytics/Base/Admin.php:107
84
+ #: library/DigitalPointBetterAnalytics/Base/Admin.php:200
85
+ #: library/DigitalPointBetterAnalytics/Base/Admin.php:376
86
+ #: library/DigitalPointBetterAnalytics/Base/Admin.php:419
87
+ #: library/DigitalPointBetterAnalytics/ViewAdmin/config.php:34
88
  msgid "Better Analytics"
89
  msgstr ""
90
 
91
+ #: library/DigitalPointBetterAnalytics/Base/Admin.php:136
92
  msgid "Pro version not up to date."
93
  msgstr ""
94
 
95
+ #: library/DigitalPointBetterAnalytics/Base/Admin.php:137
96
  msgid "Installed:"
97
  msgstr ""
98
 
99
+ #: library/DigitalPointBetterAnalytics/Base/Admin.php:139
100
  msgid "Latest:"
101
  msgstr ""
102
 
103
+ #: library/DigitalPointBetterAnalytics/Base/Admin.php:144
104
  msgid "Pro version installed"
105
  msgstr ""
106
 
107
+ #: library/DigitalPointBetterAnalytics/Base/Admin.php:148
108
  msgid ""
109
  "Pro version installed, but not active. Did you %1$sverify ownership of your "
110
  "domain%2$s?"
111
  msgstr ""
112
 
113
+ #: library/DigitalPointBetterAnalytics/Base/Admin.php:155
114
  msgid "Pro version not installed."
115
  msgstr ""
116
 
117
+ #: library/DigitalPointBetterAnalytics/Base/Admin.php:225
118
  msgid "Google Analytics Web Property ID not selected."
119
  msgstr ""
120
 
121
+ #: library/DigitalPointBetterAnalytics/Base/Admin.php:232
122
  msgid "Google Analytics account not linked for API functions."
123
  msgstr ""
124
 
125
+ #: library/DigitalPointBetterAnalytics/Base/Admin.php:232
126
  msgid "API Settings"
127
  msgstr ""
128
 
129
+ #: library/DigitalPointBetterAnalytics/Base/Admin.php:239
130
  msgid "Google Analytics account not yet configured."
131
  msgstr ""
132
 
133
+ #: library/DigitalPointBetterAnalytics/Base/Admin.php:239
134
  msgid "Test Setup / Auto-Configure"
135
  msgstr ""
136
 
137
+ #: library/DigitalPointBetterAnalytics/Base/Admin.php:245
138
  msgid "Last Analytics Error:"
139
  msgstr ""
140
 
141
+ #: library/DigitalPointBetterAnalytics/Base/Admin.php:280
142
  msgid "Invalid method:"
143
  msgstr ""
144
 
145
+ #: library/DigitalPointBetterAnalytics/Base/Admin.php:315
146
  msgid "Invalid Google API Code:"
147
  msgstr ""
148
 
149
+ #: library/DigitalPointBetterAnalytics/Base/Admin.php:321
150
  msgid "Unknown Google API Error:"
151
  msgstr ""
152
 
153
+ #: library/DigitalPointBetterAnalytics/Base/Admin.php:374
154
  msgid "Overview"
155
  msgstr ""
156
 
157
+ #: library/DigitalPointBetterAnalytics/Base/Admin.php:377
158
  msgid ""
159
  "At the most basic level, it will automatically add Google Analytics "
160
  "Universal code to your website. It gives you the flexibility to track "
162
  "engagement (and everything in between)."
163
  msgstr ""
164
 
165
+ #: library/DigitalPointBetterAnalytics/Base/Admin.php:384
166
+ #: library/DigitalPointBetterAnalytics/Base/Admin.php:398
167
  msgid "Pro"
168
  msgstr ""
169
 
170
+ #: library/DigitalPointBetterAnalytics/Base/Admin.php:386
171
  msgid "Pro Version"
172
  msgstr ""
173
 
174
+ #: library/DigitalPointBetterAnalytics/Base/Admin.php:387
175
  msgid ""
176
  "There is a Pro version of this plugin that gives you a few added features. "
177
  "More metrics/dimensions, more tracking options, etc."
178
  msgstr ""
179
 
180
+ #: library/DigitalPointBetterAnalytics/Base/Admin.php:395
181
  msgid "For more information:"
182
  msgstr ""
183
 
184
+ #: library/DigitalPointBetterAnalytics/Base/Admin.php:396
185
  msgid "Info"
186
  msgstr ""
187
 
188
+ #: library/DigitalPointBetterAnalytics/Base/Admin.php:397
189
+ #: library/DigitalPointBetterAnalytics/Base/Admin.php:438
190
  msgid "Support"
191
  msgstr ""
192
 
193
+ #: library/DigitalPointBetterAnalytics/Base/Admin.php:410
194
  msgid "colossal"
195
  msgstr ""
196
 
197
+ #: library/DigitalPointBetterAnalytics/Base/Admin.php:410
198
  msgid "elephantine"
199
  msgstr ""
200
 
201
+ #: library/DigitalPointBetterAnalytics/Base/Admin.php:410
202
  msgid "glorious"
203
  msgstr ""
204
 
205
+ #: library/DigitalPointBetterAnalytics/Base/Admin.php:410
206
  msgid "grand"
207
  msgstr ""
208
 
209
+ #: library/DigitalPointBetterAnalytics/Base/Admin.php:410
210
  msgid "huge"
211
  msgstr ""
212
 
213
+ #: library/DigitalPointBetterAnalytics/Base/Admin.php:410
214
  msgid "mighty"
215
  msgstr ""
216
 
217
+ #: library/DigitalPointBetterAnalytics/Base/Admin.php:410
218
  msgid "WTF?"
219
  msgstr ""
220
 
221
+ #: library/DigitalPointBetterAnalytics/Base/Admin.php:410
222
  msgid "sexy"
223
  msgstr ""
224
 
225
+ #: library/DigitalPointBetterAnalytics/Base/Admin.php:418
226
  msgid ""
227
  "If you like %1$s, please leave us a %2$s rating. A %3$s thank you in advance!"
228
  msgstr ""
229
 
230
+ #: library/DigitalPointBetterAnalytics/Base/Admin.php:438
231
  msgid "Visit Support Forum"
232
  msgstr ""
233
 
234
+ #: library/DigitalPointBetterAnalytics/Base/Admin.php:443
235
  msgid "Verify Domain"
236
  msgstr ""
237
 
238
+ #: library/DigitalPointBetterAnalytics/Base/Public.php:163
239
  msgid ""
240
  "%1$sBetter Analytics %4$s requires WordPress %5$s or higher.%2$s%3$sPlease "
241
  "%6$supgrade WordPress%7$s to a current version."
242
  msgstr ""
243
 
244
+ #: library/DigitalPointBetterAnalytics/Base/Public.php:305
245
+ #: library/DigitalPointBetterAnalytics/Base/Public.php:307
246
  msgid "Page Analytics"
247
  msgstr ""
248
 
249
+ #: library/DigitalPointBetterAnalytics/Base/Public.php:347
250
+ msgid "%u A/B Test Running"
251
+ msgid_plural "%u A/B Tests Running"
252
+ msgstr[0] ""
253
+ msgstr[1] ""
254
+
255
+ #: library/DigitalPointBetterAnalytics/Base/Public.php:349
256
+ msgid "A/B Tests"
257
+ msgstr ""
258
+
259
+ #: library/DigitalPointBetterAnalytics/Base/Public.php:631
260
  msgid "Every Minute"
261
  msgstr ""
262
 
273
  msgstr ""
274
 
275
  #: library/DigitalPointBetterAnalytics/ControllerAdmin/Analytics.php:39
276
+ #: library/DigitalPointBetterAnalytics/ControllerAdmin/Analytics.php:666
277
  #: library/DigitalPointBetterAnalytics/Model/Reporting.php:184
278
  msgid "Medium"
279
  msgstr ""
343
 
344
  #: library/DigitalPointBetterAnalytics/ControllerAdmin/Analytics.php:385
345
  #: library/DigitalPointBetterAnalytics/ControllerAdmin/Analytics.php:443
346
+ #: library/DigitalPointBetterAnalytics/Formatting/ExperimentTable.php:127
347
+ #: library/DigitalPointBetterAnalytics/ViewAdmin/experiments.php:276
348
  #: library/DigitalPointBetterAnalytics/ViewAdmin/goals.php:73
349
  msgid "Type"
350
  msgstr ""
354
  msgid "Detail"
355
  msgstr ""
356
 
357
+ #: library/DigitalPointBetterAnalytics/ControllerAdmin/Analytics.php:611
358
  msgid "No Linked Google Analytics Account."
359
  msgstr ""
360
 
361
+ #: library/DigitalPointBetterAnalytics/ControllerAdmin/Analytics.php:613
362
  msgid "You can link one in the Better Analytics API settings."
363
  msgstr ""
364
 
365
+ #: library/DigitalPointBetterAnalytics/ControllerAdmin/Analytics.php:638
366
  msgid "Date"
367
  msgstr ""
368
 
369
+ #: library/DigitalPointBetterAnalytics/ControllerAdmin/Analytics.php:642
370
  msgid "Categories"
371
  msgstr ""
372
 
373
+ #: library/DigitalPointBetterAnalytics/ControllerAdmin/Analytics.php:646
374
  msgid "Authors"
375
  msgstr ""
376
 
377
+ #: library/DigitalPointBetterAnalytics/ControllerAdmin/Analytics.php:650
378
  msgid "Tags"
379
  msgstr ""
380
 
381
+ #: library/DigitalPointBetterAnalytics/ControllerAdmin/Analytics.php:654
382
  msgid "Publication Year"
383
  msgstr ""
384
 
385
+ #: library/DigitalPointBetterAnalytics/ControllerAdmin/Analytics.php:658
386
  msgid "User Role"
387
  msgstr ""
388
 
389
+ #: library/DigitalPointBetterAnalytics/ControllerAdmin/Analytics.php:660
390
  #: library/DigitalPointBetterAnalytics/Model/Reporting.php:191
391
  msgid "Browser"
392
  msgstr ""
393
 
394
+ #: library/DigitalPointBetterAnalytics/ControllerAdmin/Analytics.php:661
395
  #: library/DigitalPointBetterAnalytics/Model/Reporting.php:192
396
  msgid "Operating System"
397
  msgstr ""
398
 
399
+ #: library/DigitalPointBetterAnalytics/ControllerAdmin/Analytics.php:662
400
  #: library/DigitalPointBetterAnalytics/Model/Reporting.php:199
401
  msgid "Device Category"
402
  msgstr ""
403
 
404
+ #: library/DigitalPointBetterAnalytics/ControllerAdmin/Analytics.php:663
405
  #: library/DigitalPointBetterAnalytics/Model/Reporting.php:183
406
  msgid "Source"
407
  msgstr ""
408
 
409
+ #: library/DigitalPointBetterAnalytics/ControllerAdmin/Analytics.php:664
410
  msgid "Referrer"
411
  msgstr ""
412
 
413
+ #: library/DigitalPointBetterAnalytics/ControllerAdmin/Analytics.php:667
414
  #: library/DigitalPointBetterAnalytics/Model/Reporting.php:204
415
  msgid "Country"
416
  msgstr ""
417
 
418
+ #: library/DigitalPointBetterAnalytics/ControllerAdmin/Analytics.php:684
419
+ #: library/DigitalPointBetterAnalytics/Model/Experiments.php:36
420
  #: library/DigitalPointBetterAnalytics/Model/Reporting.php:44
421
  msgid "Page Views"
422
  msgstr ""
423
 
424
+ #: library/DigitalPointBetterAnalytics/ControllerAdmin/Analytics.php:685
425
  #: library/DigitalPointBetterAnalytics/Model/Reporting.php:14
426
  msgid "Sessions"
427
  msgstr ""
428
 
429
+ #: library/DigitalPointBetterAnalytics/ControllerAdmin/Analytics.php:686
430
  #: library/DigitalPointBetterAnalytics/Model/Reporting.php:9
431
  msgid "Users"
432
  msgstr ""
433
 
434
+ #: library/DigitalPointBetterAnalytics/ControllerAdmin/Analytics.php:687
435
  msgid "Session Length"
436
  msgstr ""
437
 
438
+ #: library/DigitalPointBetterAnalytics/ControllerAdmin/Analytics.php:688
439
  #: library/DigitalPointBetterAnalytics/Model/Reporting.php:20
440
  msgid "Organic Search"
441
  msgstr ""
442
 
443
+ #: library/DigitalPointBetterAnalytics/Formatting/ExperimentTable.php:126
444
  #: library/DigitalPointBetterAnalytics/Formatting/GoalTable.php:102
445
+ #: library/DigitalPointBetterAnalytics/ViewAdmin/experiments.php:171
446
  #: library/DigitalPointBetterAnalytics/ViewAdmin/goals.php:66
447
  #: library/DigitalPointBetterAnalytics/ViewAdmin/goals.php:153
448
  msgid "Name"
449
  msgstr ""
450
 
451
+ #: library/DigitalPointBetterAnalytics/Formatting/ExperimentTable.php:128
452
+ #: library/DigitalPointBetterAnalytics/ViewAdmin/experiments.php:109
453
  msgid "Status"
454
  msgstr ""
455
 
456
+ #: library/DigitalPointBetterAnalytics/Formatting/ExperimentTable.php:129
457
+ msgid "Variant Status"
458
  msgstr ""
459
 
460
+ #: library/DigitalPointBetterAnalytics/Formatting/ExperimentTable.php:130
461
+ msgid "Start Date"
 
462
  msgstr ""
463
 
464
+ #: library/DigitalPointBetterAnalytics/Formatting/ExperimentTable.php:131
465
+ msgid "End Date"
 
466
  msgstr ""
467
 
468
  #. translators: %1$s = label, %2$s = <span>, %3$s = </span>, %4$u = number
469
+ #: library/DigitalPointBetterAnalytics/Formatting/ExperimentTable.php:162
470
+ #: library/DigitalPointBetterAnalytics/Formatting/ExperimentTable.php:172
471
+ #: library/DigitalPointBetterAnalytics/Formatting/ExperimentTable.php:182
472
+ #: library/DigitalPointBetterAnalytics/Formatting/ExperimentTable.php:192
473
+ #: library/DigitalPointBetterAnalytics/Formatting/ExperimentTable.php:202
474
  #: library/DigitalPointBetterAnalytics/Formatting/GoalTable.php:136
475
  #: library/DigitalPointBetterAnalytics/Formatting/GoalTable.php:146
476
  #: library/DigitalPointBetterAnalytics/Formatting/GoalTable.php:156
477
  msgid "%1$s %2$s(%4$u)%3$s"
478
  msgstr ""
479
 
480
+ #: library/DigitalPointBetterAnalytics/Formatting/ExperimentTable.php:163
481
  #: library/DigitalPointBetterAnalytics/Formatting/GoalTable.php:137
482
  msgid "All"
483
  msgid_plural "All"
484
  msgstr[0] ""
485
  msgstr[1] ""
486
 
487
+ #: library/DigitalPointBetterAnalytics/Formatting/ExperimentTable.php:173
488
+ #: library/DigitalPointBetterAnalytics/Model/Experiments.php:8
489
+ msgid "Draft"
490
+ msgid_plural "Draft"
 
491
  msgstr[0] ""
492
  msgstr[1] ""
493
 
494
+ #: library/DigitalPointBetterAnalytics/Formatting/ExperimentTable.php:183
495
+ #: library/DigitalPointBetterAnalytics/Model/Experiments.php:10
496
+ msgid "Running"
497
+ msgid_plural "Running"
498
  msgstr[0] ""
499
  msgstr[1] ""
500
 
501
+ #: library/DigitalPointBetterAnalytics/Formatting/ExperimentTable.php:193
502
+ #: library/DigitalPointBetterAnalytics/Model/Experiments.php:11
503
+ msgid "Ended"
504
+ msgid_plural "Ended"
505
+ msgstr[0] ""
506
+ msgstr[1] ""
507
+
508
+ #: library/DigitalPointBetterAnalytics/Formatting/ExperimentTable.php:203
509
+ msgid "Ready To Run"
510
+ msgid_plural "Ready To Run"
511
+ msgstr[0] ""
512
+ msgstr[1] ""
513
+
514
+ #: library/DigitalPointBetterAnalytics/Formatting/ExperimentTable.php:232
515
+ #: library/DigitalPointBetterAnalytics/Formatting/ExperimentTable.php:288
516
+ msgid "Start"
517
  msgstr ""
518
 
519
+ #: library/DigitalPointBetterAnalytics/Formatting/ExperimentTable.php:236
520
+ #: library/DigitalPointBetterAnalytics/Formatting/ExperimentTable.php:288
521
+ msgid "End"
 
522
  msgstr ""
523
 
524
  #: library/DigitalPointBetterAnalytics/Formatting/ExperimentTable.php:239
525
+ #: library/DigitalPointBetterAnalytics/Formatting/ExperimentTable.php:257
526
+ msgid "Delete"
527
+ msgstr ""
528
+
529
+ #: library/DigitalPointBetterAnalytics/Formatting/ExperimentTable.php:257
530
+ msgid ""
531
+ "Are you sure you want to permanently delete this experiment? There is no "
532
+ "undo."
533
+ msgstr ""
534
+
535
+ #: library/DigitalPointBetterAnalytics/Formatting/ExperimentTable.php:264
536
  #: library/DigitalPointBetterAnalytics/Formatting/GoalTable.php:260
537
  msgid "Select %s"
538
  msgstr ""
539
 
540
+ #: library/DigitalPointBetterAnalytics/Formatting/ExperimentTable.php:279
541
+ msgid "Unknown"
542
+ msgstr ""
543
+
544
+ #: library/DigitalPointBetterAnalytics/Formatting/ExperimentTable.php:288
545
+ msgid "Are you sure you want to start this experiment?"
546
+ msgstr ""
547
+
548
+ #: library/DigitalPointBetterAnalytics/Formatting/ExperimentTable.php:288
549
+ msgid ""
550
+ "Are you sure you want to permanently end this experiment? There is no undo/"
551
+ "restart."
552
+ msgstr ""
553
+
554
+ #: library/DigitalPointBetterAnalytics/Formatting/ExperimentTable.php:297
555
+ #: library/DigitalPointBetterAnalytics/ViewAdmin/experiments.php:154
556
+ msgid "Variation %u won"
557
+ msgstr ""
558
+
559
+ #: library/DigitalPointBetterAnalytics/Formatting/ExperimentTable.php:301
560
+ #: library/DigitalPointBetterAnalytics/ViewAdmin/experiments.php:158
561
+ msgid "Original won"
562
+ msgstr ""
563
+
564
+ #: library/DigitalPointBetterAnalytics/Formatting/ExperimentTable.php:308
565
+ #: library/DigitalPointBetterAnalytics/ViewAdmin/experiments.php:133
566
+ msgid "Variation %u is winning"
567
+ msgstr ""
568
+
569
+ #: library/DigitalPointBetterAnalytics/Formatting/ExperimentTable.php:312
570
+ #: library/DigitalPointBetterAnalytics/ViewAdmin/experiments.php:137
571
+ msgid "Original is winning"
572
+ msgstr ""
573
+
574
+ #: library/DigitalPointBetterAnalytics/Formatting/ExperimentTable.php:317
575
+ #: library/DigitalPointBetterAnalytics/Formatting/ExperimentTable.php:331
576
+ #: library/DigitalPointBetterAnalytics/Formatting/ExperimentTable.php:344
577
+ msgid "None"
578
+ msgstr ""
579
+
580
  #. translators: PHP date format - see: http:php.net/manual/function.date.php
581
+ #: library/DigitalPointBetterAnalytics/Formatting/ExperimentTable.php:336
582
+ #: library/DigitalPointBetterAnalytics/Formatting/ExperimentTable.php:349
583
  #: library/DigitalPointBetterAnalytics/Formatting/GoalTable.php:285
584
  #: library/DigitalPointBetterAnalytics/Formatting/GoalTable.php:291
585
  msgid "Y/m/d g:i a"
596
  msgid "Value"
597
  msgstr ""
598
 
599
+ #: library/DigitalPointBetterAnalytics/Formatting/GoalTable.php:105
600
+ msgid "Created"
601
+ msgstr ""
602
+
603
+ #: library/DigitalPointBetterAnalytics/Formatting/GoalTable.php:106
604
+ msgid "Updated"
605
+ msgstr ""
606
+
607
+ #: library/DigitalPointBetterAnalytics/Formatting/GoalTable.php:147
608
+ #: library/DigitalPointBetterAnalytics/ViewAdmin/goals.php:97
609
+ msgid "Active"
610
+ msgid_plural "Active"
611
+ msgstr[0] ""
612
+ msgstr[1] ""
613
+
614
+ #: library/DigitalPointBetterAnalytics/Formatting/GoalTable.php:157
615
+ msgid "Inactive"
616
+ msgid_plural "Inactive"
617
+ msgstr[0] ""
618
+ msgstr[1] ""
619
+
620
+ #: library/DigitalPointBetterAnalytics/Formatting/GoalTable.php:185
621
+ #: library/DigitalPointBetterAnalytics/Formatting/GoalTable.php:236
622
+ msgid "Activate"
623
+ msgstr ""
624
+
625
+ #: library/DigitalPointBetterAnalytics/Formatting/GoalTable.php:189
626
+ #: library/DigitalPointBetterAnalytics/Formatting/GoalTable.php:232
627
+ msgid "Deactivate"
628
+ msgstr ""
629
+
630
  #. translators: %1$s = hours, %2$s = minutes, %3$s = seconds
631
  #: library/DigitalPointBetterAnalytics/Formatting/GoalTable.php:212
632
  msgid "%1$u hours, %2$u minutes, %3$u seconds"
652
  "%2$s. \"Create an account\" is on the upper right of that page."
653
  msgstr ""
654
 
 
 
 
 
655
  #: library/DigitalPointBetterAnalytics/Model/Experiments.php:9
656
  msgid "Ready to run"
657
  msgstr ""
658
 
659
+ #: library/DigitalPointBetterAnalytics/Model/Experiments.php:20
660
+ #: library/DigitalPointBetterAnalytics/ViewAdmin/experiments.php:295
661
+ msgid "Page Title"
662
  msgstr ""
663
 
664
+ #: library/DigitalPointBetterAnalytics/Model/Experiments.php:21
665
+ #: library/DigitalPointBetterAnalytics/ViewAdmin/experiments.php:291
666
+ msgid "Post Title"
667
  msgstr ""
668
 
669
+ #: library/DigitalPointBetterAnalytics/Model/Experiments.php:22
670
+ #: library/DigitalPointBetterAnalytics/ViewAdmin/experiments.php:299
671
+ msgid "CSS"
672
+ msgstr ""
673
+
674
+ #: library/DigitalPointBetterAnalytics/Model/Experiments.php:23
675
+ #: library/DigitalPointBetterAnalytics/ViewAdmin/experiments.php:303
676
+ msgid "Theme"
677
+ msgstr ""
678
+
679
+ #: library/DigitalPointBetterAnalytics/Model/Experiments.php:35
680
  msgid "Site Usage"
681
  msgstr ""
682
 
683
+ #: library/DigitalPointBetterAnalytics/Model/Experiments.php:37
684
  #: library/DigitalPointBetterAnalytics/Model/Reporting.php:15
685
  msgid "Bounces"
686
  msgstr ""
687
 
688
+ #: library/DigitalPointBetterAnalytics/Model/Experiments.php:38
689
  #: library/DigitalPointBetterAnalytics/Model/Reporting.php:179
690
  #: library/DigitalPointBetterAnalytics/ViewAdmin/goals.php:177
691
  msgid "Session Duration"
692
  msgstr ""
693
 
694
+ #: library/DigitalPointBetterAnalytics/Model/Experiments.php:40
695
  #: library/DigitalPointBetterAnalytics/Model/Reporting.php:97
696
+ #: library/DigitalPointBetterAnalytics/ViewAdmin/config.php:659
697
  msgid "AdSense"
698
  msgstr ""
699
 
700
+ #: library/DigitalPointBetterAnalytics/Model/Experiments.php:41
701
  msgid "AdSense Ads Clicked"
702
  msgstr ""
703
 
704
+ #: library/DigitalPointBetterAnalytics/Model/Experiments.php:42
705
  msgid "AdSense Impressions"
706
  msgstr ""
707
 
708
+ #: library/DigitalPointBetterAnalytics/Model/Experiments.php:43
709
  msgid "AdSense Revenue"
710
  msgstr ""
711
 
712
+ #: library/DigitalPointBetterAnalytics/Model/Experiments.php:45
713
  #: library/DigitalPointBetterAnalytics/Model/Reporting.php:80
714
  msgid "Ecommerce"
715
  msgstr ""
716
 
717
+ #: library/DigitalPointBetterAnalytics/Model/Experiments.php:46
718
  msgid "Ecommerce Revenue"
719
  msgstr ""
720
 
721
+ #: library/DigitalPointBetterAnalytics/Model/Experiments.php:47
722
  msgid "Ecommerce Transactions"
723
  msgstr ""
724
 
725
+ #: library/DigitalPointBetterAnalytics/Model/Experiments.php:65
726
  msgid "Goal %1$u Completions (%2$s)"
727
  msgstr ""
728
 
978
  msgstr ""
979
 
980
  #: library/DigitalPointBetterAnalytics/Model/Reporting.php:69
981
+ #: library/DigitalPointBetterAnalytics/ViewAdmin/config.php:284
982
  msgid "File Downloads"
983
  msgstr ""
984
 
985
  #: library/DigitalPointBetterAnalytics/Model/Reporting.php:70
986
+ #: library/DigitalPointBetterAnalytics/ViewAdmin/config.php:701
987
  msgid "Images Not Loading"
988
  msgstr ""
989
 
990
  #: library/DigitalPointBetterAnalytics/Model/Reporting.php:71
991
+ #: library/DigitalPointBetterAnalytics/ViewAdmin/config.php:696
992
  msgid "Page Not Found (404)"
993
  msgstr ""
994
 
995
  #: library/DigitalPointBetterAnalytics/Model/Reporting.php:72
996
+ #: library/DigitalPointBetterAnalytics/ViewAdmin/config.php:737
997
  msgid "AJAX Requests"
998
  msgstr ""
999
 
1000
  #: library/DigitalPointBetterAnalytics/Model/Reporting.php:73
1001
+ #: library/DigitalPointBetterAnalytics/ViewAdmin/config.php:708
1002
  msgid "JavaScript Errors"
1003
  msgstr ""
1004
 
1005
  #: library/DigitalPointBetterAnalytics/Model/Reporting.php:74
1006
+ #: library/DigitalPointBetterAnalytics/ViewAdmin/config.php:713
1007
  msgid "AJAX Errors"
1008
  msgstr ""
1009
 
1010
  #: library/DigitalPointBetterAnalytics/Model/Reporting.php:75
1011
+ #: library/DigitalPointBetterAnalytics/ViewAdmin/config.php:717
1012
  msgid "Browser Console Errors"
1013
  msgstr ""
1014
 
1015
  #: library/DigitalPointBetterAnalytics/Model/Reporting.php:76
1016
+ #: library/DigitalPointBetterAnalytics/ViewAdmin/config.php:721
1017
  msgid "YouTube Errors"
1018
  msgstr ""
1019
 
1080
  msgstr ""
1081
 
1082
  #: library/DigitalPointBetterAnalytics/Model/Reporting.php:134
1083
+ #: library/DigitalPointBetterAnalytics/ViewAdmin/config.php:999
1084
  msgid "Everything"
1085
  msgstr ""
1086
 
1397
  msgid "(scope set to %s, should be HIT)"
1398
  msgstr ""
1399
 
1400
+ #: library/DigitalPointBetterAnalytics/ViewAdmin/config.php:37
1401
+ #: library/DigitalPointBetterAnalytics/ViewAdmin/config.php:210
1402
  msgid "General"
1403
  msgstr ""
1404
 
1405
+ #: library/DigitalPointBetterAnalytics/ViewAdmin/config.php:38
1406
  msgid "Custom Dimensions"
1407
  msgstr ""
1408
 
1409
+ #: library/DigitalPointBetterAnalytics/ViewAdmin/config.php:39
1410
  msgid "Social"
1411
  msgstr ""
1412
 
1413
+ #: library/DigitalPointBetterAnalytics/ViewAdmin/config.php:40
1414
  msgid "Advertising"
1415
  msgstr ""
1416
 
1417
+ #: library/DigitalPointBetterAnalytics/ViewAdmin/config.php:41
1418
  msgid "Monitoring"
1419
  msgstr ""
1420
 
1421
+ #: library/DigitalPointBetterAnalytics/ViewAdmin/config.php:42
1422
  msgid "eCommerce"
1423
  msgstr ""
1424
 
1425
+ #: library/DigitalPointBetterAnalytics/ViewAdmin/config.php:43
1426
  msgid "API"
1427
  msgstr ""
1428
 
1429
+ #: library/DigitalPointBetterAnalytics/ViewAdmin/config.php:44
1430
  msgid "Advanced"
1431
  msgstr ""
1432
 
1433
+ #: library/DigitalPointBetterAnalytics/ViewAdmin/config.php:60
1434
  msgid "Support / Feature Requests"
1435
  msgstr ""
1436
 
1437
+ #: library/DigitalPointBetterAnalytics/ViewAdmin/config.php:62
1438
  msgid ""
1439
  "Better Analytics is user request driven, so if there's something you want it "
1440
  "to do that it doesn't already do, or just have a question, simply ask!"
1441
  msgstr ""
1442
 
1443
+ #: library/DigitalPointBetterAnalytics/ViewAdmin/config.php:62
1444
  msgid "Setup Test Tool"
1445
  msgstr ""
1446
 
1447
+ #: library/DigitalPointBetterAnalytics/ViewAdmin/config.php:64
1448
  msgid "Support / Request Venues"
1449
  msgstr ""
1450
 
1451
+ #: library/DigitalPointBetterAnalytics/ViewAdmin/config.php:68
1452
  msgid "Forum"
1453
  msgstr ""
1454
 
1455
+ #: library/DigitalPointBetterAnalytics/ViewAdmin/config.php:70
1456
+ #: library/DigitalPointBetterAnalytics/ViewAdmin/config.php:630
1457
  msgid "Twitter"
1458
  msgstr ""
1459
 
1460
+ #: library/DigitalPointBetterAnalytics/ViewAdmin/config.php:122
1461
  msgid "Extra Features In Pro Version"
1462
  msgstr ""
1463
 
1464
+ #: library/DigitalPointBetterAnalytics/ViewAdmin/config.php:126
1465
  msgid "More Advertising tracking options"
1466
  msgstr ""
1467
 
1468
+ #: library/DigitalPointBetterAnalytics/ViewAdmin/config.php:129
1469
  msgid "More options for monitoring issues with site"
1470
  msgstr ""
1471
 
1472
+ #: library/DigitalPointBetterAnalytics/ViewAdmin/config.php:132
1473
  msgid "More heat map metrics"
1474
  msgstr ""
1475
 
1476
+ #: library/DigitalPointBetterAnalytics/ViewAdmin/config.php:135
1477
  msgid "More charting dimensions"
1478
  msgstr ""
1479
 
1480
+ #: library/DigitalPointBetterAnalytics/ViewAdmin/config.php:138
1481
+ msgid "More A/B testing objective metrics"
1482
+ msgstr ""
1483
+
1484
+ #: library/DigitalPointBetterAnalytics/ViewAdmin/config.php:141
1485
  msgid "eCommerce tracking"
1486
  msgstr ""
1487
 
1488
+ #: library/DigitalPointBetterAnalytics/ViewAdmin/config.php:144
1489
  msgid ""
1490
  "Option for server-side tracking of users (or bots) with Analytics/privacy "
1491
  "blockers"
1492
  msgstr ""
1493
 
1494
+ #: library/DigitalPointBetterAnalytics/ViewAdmin/config.php:147
1495
  msgid "API calls are faster (uses a custom system for parallel requests)"
1496
  msgstr ""
1497
 
1498
+ #: library/DigitalPointBetterAnalytics/ViewAdmin/config.php:150
1499
  msgid "Priority Support"
1500
  msgstr ""
1501
 
1502
+ #: library/DigitalPointBetterAnalytics/ViewAdmin/config.php:155
1503
  msgid ""
1504
  "You can %1$sget a license here%2$s.%3$sIf you already have a license, make "
1505
  "sure your domain is listed under %4$syour verified domains%2$s."
1506
  msgstr ""
1507
 
1508
+ #: library/DigitalPointBetterAnalytics/ViewAdmin/config.php:172
1509
  msgid "Google Analytics Web Property ID"
1510
  msgstr ""
1511
 
1512
+ #: library/DigitalPointBetterAnalytics/ViewAdmin/config.php:188
1513
+ #: library/DigitalPointBetterAnalytics/ViewAdmin/config.php:788
1514
  msgid "Pick profile"
1515
  msgstr ""
1516
 
1517
+ #: library/DigitalPointBetterAnalytics/ViewAdmin/config.php:190
1518
+ #: library/DigitalPointBetterAnalytics/ViewAdmin/config.php:790
1519
  msgid "please pick a profile"
1520
  msgstr ""
1521
 
1522
+ #: library/DigitalPointBetterAnalytics/ViewAdmin/config.php:202
1523
  msgid "Link Your Google Analytics Account"
1524
  msgstr ""
1525
 
1526
+ #: library/DigitalPointBetterAnalytics/ViewAdmin/config.php:215
1527
  msgid "Enhanced Link Attribution"
1528
  msgstr ""
1529
 
1530
+ #: library/DigitalPointBetterAnalytics/ViewAdmin/config.php:217
1531
  msgid ""
1532
  "See separate information for multiple links on a page that all have the same "
1533
  "destination. For example, if there are two links on the same page that both "
1537
  "destinations.%1$sTrack buttons, menus, and actions driven by JavaScript."
1538
  msgstr ""
1539
 
1540
+ #: library/DigitalPointBetterAnalytics/ViewAdmin/config.php:224
1541
  msgid "Track Registered Users By User ID"
1542
  msgstr ""
1543
 
1544
+ #: library/DigitalPointBetterAnalytics/ViewAdmin/config.php:225
1545
  msgid ""
1546
  "This feature allows you to utilize %1$ssession unification%2$s within Google "
1547
  "Analytics."
1548
  msgstr ""
1549
 
1550
+ #: library/DigitalPointBetterAnalytics/ViewAdmin/config.php:237
1551
  msgid "Events To Track"
1552
  msgstr ""
1553
 
1554
+ #: library/DigitalPointBetterAnalytics/ViewAdmin/config.php:243
1555
  msgid "User Engagement"
1556
  msgstr ""
1557
 
1558
+ #: library/DigitalPointBetterAnalytics/ViewAdmin/config.php:246
1559
  msgid "This will give you an %1$sadjusted bounce rate%2$s."
1560
  msgstr ""
1561
 
1562
+ #: library/DigitalPointBetterAnalytics/ViewAdmin/config.php:255
1563
  msgid "User Registration"
1564
  msgstr ""
1565
 
1566
+ #: library/DigitalPointBetterAnalytics/ViewAdmin/config.php:260
1567
  msgid "Comments Being Created"
1568
  msgstr ""
1569
 
1570
+ #: library/DigitalPointBetterAnalytics/ViewAdmin/config.php:265
1571
  msgid "YouTube Video Engagement"
1572
  msgstr ""
1573
 
1574
+ #: library/DigitalPointBetterAnalytics/ViewAdmin/config.php:266
1575
  msgid ""
1576
  "This works with the modern IFRAME YouTube embeds. It does not work with the "
1577
  "old OBJECT embeds.%1$sTracks things like video plays, pauses, plays to end, "
1578
  "etc."
1579
  msgstr ""
1580
 
1581
+ #: library/DigitalPointBetterAnalytics/ViewAdmin/config.php:274
1582
  msgid "Emails Sent/Opened"
1583
  msgstr ""
1584
 
1585
+ #: library/DigitalPointBetterAnalytics/ViewAdmin/config.php:279
1586
  msgid "Clicks On External Links"
1587
  msgstr ""
1588
 
1589
+ #: library/DigitalPointBetterAnalytics/ViewAdmin/config.php:289
1590
+ msgid "Page Scroll Percent"
1591
+ msgstr ""
1592
+
1593
+ #: library/DigitalPointBetterAnalytics/ViewAdmin/config.php:290
1594
+ msgid ""
1595
+ "This is the percent of the page the user scrolled down to view before "
1596
+ "leaving the page."
1597
+ msgstr ""
1598
+
1599
+ #: library/DigitalPointBetterAnalytics/ViewAdmin/config.php:295
1600
+ msgid "Time On Page"
1601
+ msgstr ""
1602
+
1603
+ #: library/DigitalPointBetterAnalytics/ViewAdmin/config.php:296
1604
+ msgid ""
1605
+ "This is the amount of time (recorded in seconds) that the user spent on the "
1606
+ "individual page."
1607
+ msgstr ""
1608
+
1609
+ #: library/DigitalPointBetterAnalytics/ViewAdmin/config.php:305
1610
  msgid "Privacy"
1611
  msgstr ""
1612
 
1613
+ #: library/DigitalPointBetterAnalytics/ViewAdmin/config.php:310
1614
  msgid "Anonymize IPs"
1615
  msgstr ""
1616
 
1617
+ #: library/DigitalPointBetterAnalytics/ViewAdmin/config.php:311
1618
  msgid ""
1619
  "Detailed information about IP Anonymization in Google Analytics can be found "
1620
  "%1$sover here%2$s."
1621
  msgstr ""
1622
 
1623
+ #: library/DigitalPointBetterAnalytics/ViewAdmin/config.php:319
1624
  msgid "Demographic & Interest Tracking"
1625
  msgstr ""
1626
 
1627
+ #: library/DigitalPointBetterAnalytics/ViewAdmin/config.php:320
1628
  msgid ""
1629
  "This allows you to view extra dimensions about users (Age, Gender, Affinity "
1630
  "Categories, In-Market Segments and Other Categories.%1$sThis requires "
1632
  "%4$sProperty Settings%5$s."
1633
  msgstr ""
1634
 
1635
+ #: library/DigitalPointBetterAnalytics/ViewAdmin/config.php:331
1636
  msgid "Force Analytics Traffic Over SSL"
1637
  msgstr ""
1638
 
1639
+ #: library/DigitalPointBetterAnalytics/ViewAdmin/config.php:332
1640
  msgid ""
1641
  "If your site is HTTPS based, Analytics traffic will always go over SSL. If "
1642
  "you have an insecure site, but wish Analytics traffic to still be secure, "
1644
  "because it's able to utilize the %1$sSPDY protocol%2$s."
1645
  msgstr ""
1646
 
1647
+ #: library/DigitalPointBetterAnalytics/ViewAdmin/config.php:342
1648
  msgid "Link Source Tracking"
1649
  msgstr ""
1650
 
1651
+ #: library/DigitalPointBetterAnalytics/ViewAdmin/config.php:347
1652
  msgid "RSS"
1653
  msgstr ""
1654
 
1655
+ #: library/DigitalPointBetterAnalytics/ViewAdmin/config.php:348
1656
  msgid ""
1657
  "Links within RSS feed will be tagged to track the source/medium as being RSS."
1658
  msgstr ""
1659
 
1660
+ #: library/DigitalPointBetterAnalytics/ViewAdmin/config.php:353
1661
  msgid "Email"
1662
  msgstr ""
1663
 
1664
+ #: library/DigitalPointBetterAnalytics/ViewAdmin/config.php:354
1665
  msgid ""
1666
  "Links within RSS feed will be tagged to track the source/medium as being "
1667
  "Email."
1668
  msgstr ""
1669
 
1670
+ #: library/DigitalPointBetterAnalytics/ViewAdmin/config.php:364
1671
  msgid ""
1672
  "If you want to track custom dimensions, you need to create the custom "
1673
  "dimensions in your %1$sGoogle Analytics account settings%2$s (under "
1675
  "\"%3$sHit%4$s\"."
1676
  msgstr ""
1677
 
1678
+ #: library/DigitalPointBetterAnalytics/ViewAdmin/config.php:388
1679
  msgid "Dimension Indexes"
1680
  msgstr ""
1681
 
1682
+ #: library/DigitalPointBetterAnalytics/ViewAdmin/config.php:394
1683
  msgid "Set to 0 to disable."
1684
  msgstr ""
1685
 
1686
  #. translators: %1$s = <br />
1687
+ #: library/DigitalPointBetterAnalytics/ViewAdmin/config.php:399
1688
  msgid ""
1689
  "Drop-down boxes are coming from%1$scustom dimensions defined within%1$syour "
1690
  "Google Analytics account."
1691
  msgstr ""
1692
 
1693
+ #: library/DigitalPointBetterAnalytics/ViewAdmin/config.php:411
1694
  msgid "Categories: "
1695
  msgstr ""
1696
 
1697
+ #: library/DigitalPointBetterAnalytics/ViewAdmin/config.php:418
1698
+ #: library/DigitalPointBetterAnalytics/ViewAdmin/config.php:451
1699
+ #: library/DigitalPointBetterAnalytics/ViewAdmin/config.php:485
1700
+ #: library/DigitalPointBetterAnalytics/ViewAdmin/config.php:519
1701
+ #: library/DigitalPointBetterAnalytics/ViewAdmin/config.php:553
1702
+ #: library/DigitalPointBetterAnalytics/ViewAdmin/config.php:587
1703
  msgid "Pick dimension"
1704
  msgstr ""
1705
 
1706
+ #: library/DigitalPointBetterAnalytics/ViewAdmin/config.php:420
1707
+ #: library/DigitalPointBetterAnalytics/ViewAdmin/config.php:453
1708
+ #: library/DigitalPointBetterAnalytics/ViewAdmin/config.php:487
1709
+ #: library/DigitalPointBetterAnalytics/ViewAdmin/config.php:521
1710
+ #: library/DigitalPointBetterAnalytics/ViewAdmin/config.php:555
1711
+ #: library/DigitalPointBetterAnalytics/ViewAdmin/config.php:589
1712
  msgid "[none]"
1713
  msgstr ""
1714
 
1715
+ #: library/DigitalPointBetterAnalytics/ViewAdmin/config.php:443
1716
  msgid "Author: "
1717
  msgstr ""
1718
 
1719
+ #: library/DigitalPointBetterAnalytics/ViewAdmin/config.php:477
1720
  msgid "Tags: "
1721
  msgstr ""
1722
 
1723
+ #: library/DigitalPointBetterAnalytics/ViewAdmin/config.php:511
1724
  msgid "Publication Year: "
1725
  msgstr ""
1726
 
1727
+ #: library/DigitalPointBetterAnalytics/ViewAdmin/config.php:545
1728
  msgid "User Role: "
1729
  msgstr ""
1730
 
1731
+ #: library/DigitalPointBetterAnalytics/ViewAdmin/config.php:579
1732
  msgid "Registered User: "
1733
  msgstr ""
1734
 
1735
+ #: library/DigitalPointBetterAnalytics/ViewAdmin/config.php:619
1736
  msgid "Button Engagement To Track"
1737
  msgstr ""
1738
 
1739
+ #: library/DigitalPointBetterAnalytics/ViewAdmin/config.php:625
1740
  msgid "Facebook Like"
1741
  msgstr ""
1742
 
1743
+ #: library/DigitalPointBetterAnalytics/ViewAdmin/config.php:635
1744
  msgid "Google+ (Google Analytics always tracks)"
1745
  msgstr ""
1746
 
1747
+ #: library/DigitalPointBetterAnalytics/ViewAdmin/config.php:640
1748
  msgid "Pinterest"
1749
  msgstr ""
1750
 
1751
+ #: library/DigitalPointBetterAnalytics/ViewAdmin/config.php:645
1752
  msgid "LinkedIn"
1753
  msgstr ""
1754
 
1755
+ #: library/DigitalPointBetterAnalytics/ViewAdmin/config.php:653
1756
  msgid "Advertisement Clicks To Track"
1757
  msgstr ""
1758
 
1759
+ #: library/DigitalPointBetterAnalytics/ViewAdmin/config.php:664
1760
  msgid "Outbrain"
1761
  msgstr ""
1762
 
1763
+ #: library/DigitalPointBetterAnalytics/ViewAdmin/config.php:669
1764
  msgid "RevContent"
1765
  msgstr ""
1766
 
1767
+ #: library/DigitalPointBetterAnalytics/ViewAdmin/config.php:674
1768
  msgid "Taboola"
1769
  msgstr ""
1770
 
1771
+ #. #-#-#-#-# plugin.pot (Better Analytics 1.0.10) #-#-#-#-#
1772
  #. Author of the plugin/theme
1773
+ #: library/DigitalPointBetterAnalytics/ViewAdmin/config.php:679
1774
  msgid "Digital Point"
1775
  msgstr ""
1776
 
1777
+ #: library/DigitalPointBetterAnalytics/ViewAdmin/config.php:690
1778
  msgid "Site Issues To Track"
1779
  msgstr ""
1780
 
1781
+ #: library/DigitalPointBetterAnalytics/ViewAdmin/config.php:702
1782
  msgid ""
1783
  "This relies on the ability of the user's browser to load images which will "
1784
  "vary between browsers and Internet connections. This event can be a useful "
1786
  "that the end user's browser did not load (for any reason)."
1787
  msgstr ""
1788
 
1789
+ #: library/DigitalPointBetterAnalytics/ViewAdmin/config.php:722
1790
  msgid ""
1791
  "This allows you to quickly find old videos that the author has removed or "
1792
  "disabled embeding for."
1793
  msgstr ""
1794
 
1795
+ #: library/DigitalPointBetterAnalytics/ViewAdmin/config.php:731
1796
  msgid "Debugging Events"
1797
  msgstr ""
1798
 
1799
+ #: library/DigitalPointBetterAnalytics/ViewAdmin/config.php:750
1800
  msgid "WooCommerce"
1801
  msgstr ""
1802
 
1803
+ #: library/DigitalPointBetterAnalytics/ViewAdmin/config.php:758
1804
  msgid "WooCommerce not enabled/active."
1805
  msgstr ""
1806
 
1807
+ #: library/DigitalPointBetterAnalytics/ViewAdmin/config.php:761
1808
  msgid "More information about %s"
1809
  msgstr ""
1810
 
1811
+ #: library/DigitalPointBetterAnalytics/ViewAdmin/config.php:763
1812
  msgid "View details"
1813
  msgstr ""
1814
 
1815
+ #: library/DigitalPointBetterAnalytics/ViewAdmin/config.php:785
1816
  msgid "Profile Used For Reporting"
1817
  msgstr ""
1818
 
1819
+ #: library/DigitalPointBetterAnalytics/ViewAdmin/config.php:820
1820
  msgid "Multisite Mode: Analytics account linked at network level"
1821
  msgstr ""
1822
 
1823
+ #: library/DigitalPointBetterAnalytics/ViewAdmin/config.php:834
1824
  #: library/DigitalPointBetterAnalytics/ViewAdmin/config_network.php:20
1825
  #: library/DigitalPointBetterAnalytics/ViewAdmin/test.php:122
1826
  msgid "Link/Authenticate A Different Google Analytics Account"
1827
  msgstr ""
1828
 
1829
+ #: library/DigitalPointBetterAnalytics/ViewAdmin/config.php:834
1830
  #: library/DigitalPointBetterAnalytics/ViewAdmin/config_network.php:20
1831
  msgid "Link/Authenticate Your Google Analytics Account"
1832
  msgstr ""
1833
 
1834
+ #: library/DigitalPointBetterAnalytics/ViewAdmin/config.php:853
1835
  #: library/DigitalPointBetterAnalytics/ViewAdmin/config_network.php:39
1836
  msgid "Use Your Own Project Credentials"
1837
  msgstr ""
1838
 
1839
+ #: library/DigitalPointBetterAnalytics/ViewAdmin/config.php:855
1840
  #: library/DigitalPointBetterAnalytics/ViewAdmin/config_network.php:40
1841
  msgid ""
1842
  "If you have your own Google API Project that you wish to use, you can use "
1843
  "your credentials for that web application."
1844
  msgstr ""
1845
 
1846
+ #: library/DigitalPointBetterAnalytics/ViewAdmin/config.php:866
1847
  #: library/DigitalPointBetterAnalytics/ViewAdmin/config_network.php:50
1848
  msgid "Configuration"
1849
  msgstr ""
1850
 
1851
  #. translators: %1$s = <strong>, %2$s = </strong>
1852
+ #: library/DigitalPointBetterAnalytics/ViewAdmin/config.php:868
1853
  #: library/DigitalPointBetterAnalytics/ViewAdmin/config_network.php:52
1854
  msgid ""
1855
  "Project needs to have the %1$sAnalytics API%2$s enabled under %1$sAPIs & "
1857
  msgstr ""
1858
 
1859
  #. translators: %1$s = <strong>, %2$s = </strong>
1860
+ #: library/DigitalPointBetterAnalytics/ViewAdmin/config.php:870
1861
  #: library/DigitalPointBetterAnalytics/ViewAdmin/config_network.php:54
1862
  msgid ""
1863
  "Under %1$sAPIs & auth -> Credentials%2$s, you need to %1$sCreate new Client "
1865
  "%1$s%3$s%2$s"
1866
  msgstr ""
1867
 
1868
+ #: library/DigitalPointBetterAnalytics/ViewAdmin/config.php:878
1869
  #: library/DigitalPointBetterAnalytics/ViewAdmin/config_network.php:61
1870
  msgid "Client ID"
1871
  msgstr ""
1872
 
1873
+ #: library/DigitalPointBetterAnalytics/ViewAdmin/config.php:888
1874
  #: library/DigitalPointBetterAnalytics/ViewAdmin/config_network.php:68
1875
  msgid "Client Secret"
1876
  msgstr ""
1877
 
1878
+ #: library/DigitalPointBetterAnalytics/ViewAdmin/config.php:899
1879
  msgid "Roles To Not Track"
1880
  msgstr ""
1881
 
1882
+ #: library/DigitalPointBetterAnalytics/ViewAdmin/config.php:899
1883
+ #: library/DigitalPointBetterAnalytics/ViewAdmin/config.php:942
1884
  msgid ""
1885
  "If a logged in user is part of one of these groups, Analytics will not track "
1886
  "them."
1887
  msgstr ""
1888
 
1889
+ #: library/DigitalPointBetterAnalytics/ViewAdmin/config.php:902
1890
  msgid "Pick roles to not track"
1891
  msgstr ""
1892
 
1893
+ #: library/DigitalPointBetterAnalytics/ViewAdmin/config.php:917
1894
  msgid "Roles Able To View Reports/Dashboard"
1895
  msgstr ""
1896
 
1897
+ #: library/DigitalPointBetterAnalytics/ViewAdmin/config.php:920
1898
  msgid "Pick roles that are able to view reports"
1899
  msgstr ""
1900
 
1901
+ #: library/DigitalPointBetterAnalytics/ViewAdmin/config.php:934
1902
  msgid "Author Can View Page Analytics"
1903
  msgstr ""
1904
 
1905
+ #: library/DigitalPointBetterAnalytics/ViewAdmin/config.php:942
1906
  msgid "File Extensions To Track As Downloads"
1907
  msgstr ""
1908
 
1909
+ #: library/DigitalPointBetterAnalytics/ViewAdmin/config.php:944
1910
  msgid "Pick file extensions"
1911
  msgstr ""
1912
 
1913
+ #: library/DigitalPointBetterAnalytics/ViewAdmin/config.php:949
1914
  msgid "Audio Video Interleave (.avi)"
1915
  msgstr ""
1916
 
1917
+ #: library/DigitalPointBetterAnalytics/ViewAdmin/config.php:950
1918
  msgid "Word (.doc)"
1919
  msgstr ""
1920
 
1921
+ #: library/DigitalPointBetterAnalytics/ViewAdmin/config.php:951
1922
  msgid "Executable (.exe)"
1923
  msgstr ""
1924
 
1925
+ #: library/DigitalPointBetterAnalytics/ViewAdmin/config.php:952
1926
  msgid "gzip (.gz)"
1927
  msgstr ""
1928
 
1929
+ #: library/DigitalPointBetterAnalytics/ViewAdmin/config.php:953
1930
  msgid "MPEG-1 Video (.mpg)"
1931
  msgstr ""
1932
 
1933
+ #: library/DigitalPointBetterAnalytics/ViewAdmin/config.php:954
1934
  msgid "MP3 (.mp3)"
1935
  msgstr ""
1936
 
1937
+ #: library/DigitalPointBetterAnalytics/ViewAdmin/config.php:955
1938
  msgid "Acrobat (.pdf)"
1939
  msgstr ""
1940
 
1941
+ #: library/DigitalPointBetterAnalytics/ViewAdmin/config.php:956
1942
  msgid "PowerPoint (.ppt)"
1943
  msgstr ""
1944
 
1945
+ #: library/DigitalPointBetterAnalytics/ViewAdmin/config.php:957
1946
  msgid "Photoshop (.psd)"
1947
  msgstr ""
1948
 
1949
+ #: library/DigitalPointBetterAnalytics/ViewAdmin/config.php:958
1950
  msgid "RAR (.rar)"
1951
  msgstr ""
1952
 
1953
+ #: library/DigitalPointBetterAnalytics/ViewAdmin/config.php:959
1954
  msgid "Windows Media Video (.wmv)"
1955
  msgstr ""
1956
 
1957
+ #: library/DigitalPointBetterAnalytics/ViewAdmin/config.php:960
1958
  msgid "Excel (.xls)"
1959
  msgstr ""
1960
 
1961
+ #: library/DigitalPointBetterAnalytics/ViewAdmin/config.php:961
1962
  msgid "Zip Archive (.zip)"
1963
  msgstr ""
1964
 
1965
+ #: library/DigitalPointBetterAnalytics/ViewAdmin/config.php:975
1966
  msgid "Track Users With Analytics Blockers"
1967
  msgstr ""
1968
 
1969
  #. translators: %1$s = <strong>, %2$s = </strong>, %3$s = <p />
1970
+ #: library/DigitalPointBetterAnalytics/ViewAdmin/config.php:978
1971
  msgid ""
1972
  "If a user has a mechanism that is blocking them from being tracked with "
1973
  "Google Analytics, you can use this option to do server-side page view "
1978
  "tracked (ones not popular enough to be widely known as a spider)."
1979
  msgstr ""
1980
 
1981
+ #: library/DigitalPointBetterAnalytics/ViewAdmin/config.php:984
1982
  msgid "Never"
1983
  msgstr ""
1984
 
1985
+ #: library/DigitalPointBetterAnalytics/ViewAdmin/config.php:989
1986
  msgid "Registered Users"
1987
  msgstr ""
1988
 
1989
+ #: library/DigitalPointBetterAnalytics/ViewAdmin/config.php:994
1990
  msgid "Humans"
1991
  msgstr ""
1992
 
1993
+ #: library/DigitalPointBetterAnalytics/ViewAdmin/config.php:1007
1994
  msgid "Location For Analytics Code"
1995
  msgstr ""
1996
 
1997
+ #: library/DigitalPointBetterAnalytics/ViewAdmin/config.php:1012
 
 
 
 
1998
  msgid "Footer"
1999
  msgstr ""
2000
 
2001
+ #: library/DigitalPointBetterAnalytics/ViewAdmin/config.php:1017
2002
  msgid "No JavaScript (you have your own/other already)"
2003
  msgstr ""
2004
 
2005
+ #: library/DigitalPointBetterAnalytics/ViewAdmin/config.php:1023
2006
  msgid "Use In Staff Area (wp-admin)"
2007
  msgstr ""
2008
 
2009
+ #: library/DigitalPointBetterAnalytics/ViewAdmin/config.php:1029
2010
  msgid "When To Run Analytics Code"
2011
  msgstr ""
2012
 
2013
+ #: library/DigitalPointBetterAnalytics/ViewAdmin/config.php:1034
2014
  msgid "Immediately"
2015
  msgstr ""
2016
 
2017
+ #: library/DigitalPointBetterAnalytics/ViewAdmin/config.php:1039
2018
  msgid "After Page Loads"
2019
  msgstr ""
2020
 
2021
+ #: library/DigitalPointBetterAnalytics/ViewAdmin/config.php:1046
2022
  msgid "Campaign Tracking Within URLs"
2023
  msgstr ""
2024
 
2025
+ #: library/DigitalPointBetterAnalytics/ViewAdmin/config.php:1051
2026
  msgid "In Anchor"
2027
  msgstr ""
2028
 
2029
+ #: library/DigitalPointBetterAnalytics/ViewAdmin/config.php:1056
2030
  msgid "In Parameters"
2031
  msgstr ""
2032
 
2033
+ #: library/DigitalPointBetterAnalytics/ViewAdmin/config.php:1063
2034
  msgid "Sample Rate"
2035
  msgstr ""
2036
 
2037
+ #: library/DigitalPointBetterAnalytics/ViewAdmin/config.php:1063
2038
  msgid ""
2039
  "Specifies what percentage of users should be tracked. Very large sites may "
2040
  "need to use a lower sample rate to stay within Google Analytics processing "
2041
  "limits."
2042
  msgstr ""
2043
 
2044
+ #: library/DigitalPointBetterAnalytics/ViewAdmin/config.php:1084
2045
  msgid "Extra JavaScript"
2046
  msgstr ""
2047
 
2048
+ #: library/DigitalPointBetterAnalytics/ViewAdmin/config.php:1084
2049
  msgid ""
2050
  "This allows you to add your own JavaScript code to the Analytics tracking "
2051
  "code. This JavaScript is inserted right before the %1$s function."
2052
  msgstr ""
2053
 
2054
+ #: library/DigitalPointBetterAnalytics/ViewAdmin/config.php:1091
2055
  msgid "Debugging"
2056
  msgstr ""
2057
 
2058
+ #: library/DigitalPointBetterAnalytics/ViewAdmin/config.php:1096
2059
  msgid "Enable Google Analytics Debugging"
2060
  msgstr ""
2061
 
2062
+ #: library/DigitalPointBetterAnalytics/ViewAdmin/config.php:1097
2063
  msgid "This will display Google Analytics debug data in the browser console."
2064
  msgstr ""
2065
 
2123
  msgid "active users"
2124
  msgstr ""
2125
 
2126
+ #: library/DigitalPointBetterAnalytics/ViewAdmin/experiments.php:68
2127
  msgid "View Experiment"
2128
  msgstr ""
2129
 
2130
+ #: library/DigitalPointBetterAnalytics/ViewAdmin/experiments.php:68
2131
  msgid "Edit Experiment"
2132
  msgstr ""
2133
 
2134
+ #: library/DigitalPointBetterAnalytics/ViewAdmin/experiments.php:68
2135
  msgid "Create Experiment"
2136
  msgstr ""
2137
 
2138
+ #: library/DigitalPointBetterAnalytics/ViewAdmin/experiments.php:75
2139
+ msgid ""
2140
+ "This experiment has ended. You can view it for informational purposes, but "
2141
+ "you cannot make changes to it."
2142
+ msgstr ""
2143
+
2144
+ #: library/DigitalPointBetterAnalytics/ViewAdmin/experiments.php:81
2145
+ msgid ""
2146
+ "This experiment is currently running. You can view it for informational "
2147
+ "purposes, but you cannot make changes to it."
2148
+ msgstr ""
2149
+
2150
+ #: library/DigitalPointBetterAnalytics/ViewAdmin/experiments.php:87
2151
  msgid ""
2152
  "This experiment was not created by Better Analytics. You can view it for "
2153
  "informational purposes, but you cannot make changes to it."
2154
  msgstr ""
2155
 
2156
+ #: library/DigitalPointBetterAnalytics/ViewAdmin/experiments.php:128
2157
+ msgid "Variation Status"
2158
+ msgstr ""
2159
+
2160
+ #: library/DigitalPointBetterAnalytics/ViewAdmin/experiments.php:149
2161
+ msgid "Variation Winner"
2162
+ msgstr ""
2163
+
2164
+ #: library/DigitalPointBetterAnalytics/ViewAdmin/experiments.php:178
2165
  msgid "Description"
2166
  msgstr ""
2167
 
2168
+ #: library/DigitalPointBetterAnalytics/ViewAdmin/experiments.php:178
2169
  #: library/DigitalPointBetterAnalytics/ViewAdmin/goals.php:103
2170
  #: library/DigitalPointBetterAnalytics/ViewAdmin/goals.php:135
2171
  msgid "Optional"
2172
  msgstr ""
2173
 
2174
+ #: library/DigitalPointBetterAnalytics/ViewAdmin/experiments.php:186
2175
  msgid "Objective Metric"
2176
  msgstr ""
2177
 
2178
+ #: library/DigitalPointBetterAnalytics/ViewAdmin/experiments.php:189
2179
  msgid "Pick optimization type"
2180
  msgstr ""
2181
 
2182
+ #: library/DigitalPointBetterAnalytics/ViewAdmin/experiments.php:190
2183
  msgid "Most"
2184
  msgstr ""
2185
 
2186
+ #: library/DigitalPointBetterAnalytics/ViewAdmin/experiments.php:191
2187
  msgid "Least"
2188
  msgstr ""
2189
 
2190
+ #: library/DigitalPointBetterAnalytics/ViewAdmin/experiments.php:194
2191
  msgid "Pick objective metric"
2192
  msgstr ""
2193
 
2194
+ #: library/DigitalPointBetterAnalytics/ViewAdmin/experiments.php:208
2195
+ msgid "(Pro option)"
2196
+ msgstr ""
2197
+
2198
+ #: library/DigitalPointBetterAnalytics/ViewAdmin/experiments.php:221
2199
  msgid "Minimum Days To Run"
2200
  msgstr ""
2201
 
2202
+ #: library/DigitalPointBetterAnalytics/ViewAdmin/experiments.php:228
2203
  msgid "Traffic To Experiment On"
2204
  msgstr ""
2205
 
2206
+ #: library/DigitalPointBetterAnalytics/ViewAdmin/experiments.php:230
2207
+ #: library/DigitalPointBetterAnalytics/ViewAdmin/experiments.php:264
2208
  msgid "%"
2209
  msgstr ""
2210
 
2211
+ #: library/DigitalPointBetterAnalytics/ViewAdmin/experiments.php:235
2212
  msgid "Traffic Distribution Type"
2213
  msgstr ""
2214
 
2215
+ #: library/DigitalPointBetterAnalytics/ViewAdmin/experiments.php:236
2216
  msgid ""
2217
  "Use this option to assign how traffic is divided between the original and "
2218
  "variations for life of the experiment. By default, Content Experiments "
2220
  "performance%2$s."
2221
  msgstr ""
2222
 
2223
+ #: library/DigitalPointBetterAnalytics/ViewAdmin/experiments.php:246
2224
  msgid "Automatically adjust traffic dynamically "
2225
  msgstr ""
2226
 
2227
+ #: library/DigitalPointBetterAnalytics/ViewAdmin/experiments.php:251
2228
  msgid "Distribute traffic evenly across all variations"
2229
  msgstr ""
2230
 
2231
+ #: library/DigitalPointBetterAnalytics/ViewAdmin/experiments.php:260
2232
  msgid "Confidence Threshold"
2233
  msgstr ""
2234
 
2235
+ #: library/DigitalPointBetterAnalytics/ViewAdmin/experiments.php:261
2236
  msgid ""
2237
  "Set the minimum confidence threshold that must be achieved before Analytics "
2238
  "can declare a winner. The higher the threshold, the more confident you can "
2240
  "to declare a winner."
2241
  msgstr ""
2242
 
2243
+ #: library/DigitalPointBetterAnalytics/ViewAdmin/experiments.php:287
2244
  #: library/DigitalPointBetterAnalytics/ViewAdmin/goals.php:77
2245
  #: library/DigitalPointBetterAnalytics/ViewAdmin/goals.php:114
2246
  msgid "Pick type"
2247
  msgstr ""
2248
 
2249
+ #: library/DigitalPointBetterAnalytics/ViewAdmin/experiments.php:321
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
2250
  msgid "Post"
2251
  msgstr ""
2252
 
2253
+ #: library/DigitalPointBetterAnalytics/ViewAdmin/experiments.php:326
2254
  msgid "Pick post"
2255
  msgstr ""
2256
 
2257
+ #: library/DigitalPointBetterAnalytics/ViewAdmin/experiments.php:341
2258
+ #: library/DigitalPointBetterAnalytics/ViewAdmin/experiments.php:405
2259
  msgid "Title Variations"
2260
  msgstr ""
2261
 
2262
+ #: library/DigitalPointBetterAnalytics/ViewAdmin/experiments.php:349
2263
+ #: library/DigitalPointBetterAnalytics/ViewAdmin/experiments.php:361
2264
  msgid "Enter a post title variation here"
2265
  msgstr ""
2266
 
2267
+ #: library/DigitalPointBetterAnalytics/ViewAdmin/experiments.php:375
2268
+ #: library/DigitalPointBetterAnalytics/ViewAdmin/experiments.php:440
2269
  msgid "Add another title variation"
2270
  msgstr ""
2271
 
2272
+ #: library/DigitalPointBetterAnalytics/ViewAdmin/experiments.php:385
2273
  msgid "Page"
2274
  msgstr ""
2275
 
2276
+ #: library/DigitalPointBetterAnalytics/ViewAdmin/experiments.php:390
2277
  msgid "Pick page"
2278
  msgstr ""
2279
 
2280
+ #: library/DigitalPointBetterAnalytics/ViewAdmin/experiments.php:413
2281
+ #: library/DigitalPointBetterAnalytics/ViewAdmin/experiments.php:425
2282
  msgid "Enter a page title variation here"
2283
  msgstr ""
2284
 
2285
+ #: library/DigitalPointBetterAnalytics/ViewAdmin/experiments.php:449
2286
  msgid "Custom CSS"
2287
  msgstr ""
2288
 
2289
+ #: library/DigitalPointBetterAnalytics/ViewAdmin/experiments.php:490
2290
  msgid "Add another CSS variation"
2291
  msgstr ""
2292
 
2293
+ #: library/DigitalPointBetterAnalytics/ViewAdmin/experiments.php:498
2294
  msgid "Theme Variations"
2295
  msgstr ""
2296
 
2297
+ #: library/DigitalPointBetterAnalytics/ViewAdmin/experiments.php:516
2298
+ #: library/DigitalPointBetterAnalytics/ViewAdmin/experiments.php:518
2299
+ #: library/DigitalPointBetterAnalytics/ViewAdmin/experiments.php:535
2300
+ #: library/DigitalPointBetterAnalytics/ViewAdmin/experiments.php:537
2301
  msgid "Pick theme"
2302
  msgstr ""
2303
 
2304
+ #: library/DigitalPointBetterAnalytics/ViewAdmin/experiments.php:554
2305
  msgid "Add another theme variation"
2306
  msgstr ""
2307
 
2308
+ #: library/DigitalPointBetterAnalytics/ViewAdmin/experiments.php:713
2309
  msgid "Experiment name is required."
2310
  msgstr ""
2311
 
2312
  #. translators: %1$s = <strong>, %2$s = </strong>
2313
+ #: library/DigitalPointBetterAnalytics/ViewAdmin/experiments.php:736
2314
  msgid "Experiment %1$supdated%2$s."
2315
  msgstr ""
2316
 
2317
  #. translators: %1$s = <strong>, %2$s = </strong>
2318
+ #: library/DigitalPointBetterAnalytics/ViewAdmin/experiments.php:741
2319
  msgid "Experiment %1$screated%2$s."
2320
  msgstr ""
2321
 
2322
+ #. translators: %1$s = <strong>, %2$s = </strong>
2323
+ #: library/DigitalPointBetterAnalytics/ViewAdmin/experiments.php:756
2324
+ msgid "Experiment %1$sstarted%2$s."
2325
+ msgstr ""
2326
+
2327
+ #. translators: %1$s = <strong>, %2$s = </strong>
2328
+ #: library/DigitalPointBetterAnalytics/ViewAdmin/experiments.php:763
2329
+ msgid "Experiment %1$sended%2$s."
2330
+ msgstr ""
2331
+
2332
+ #. translators: %1$s = <strong>, %2$s = </strong>
2333
+ #: library/DigitalPointBetterAnalytics/ViewAdmin/experiments.php:770
2334
+ msgid "Experiment %1$sdeleted%2$s."
2335
+ msgstr ""
2336
+
2337
+ #: library/DigitalPointBetterAnalytics/ViewAdmin/experiments.php:789
2338
  msgid "Experiments"
2339
  msgstr ""
2340
 
2341
+ #: library/DigitalPointBetterAnalytics/ViewAdmin/experiments.php:790
2342
  #: library/DigitalPointBetterAnalytics/ViewAdmin/goals.php:480
2343
  msgid "Add New"
2344
  msgstr ""
2345
 
2346
  #. translators: %1$s = <strong>, %2$s = </strong>
2347
+ #: library/DigitalPointBetterAnalytics/ViewAdmin/experiments.php:801
2348
  msgid "Experiment %1$sactivated%2$s."
2349
  msgstr ""
2350
 
2351
  #. translators: %1$s = <strong>, %2$s = </strong>
2352
+ #: library/DigitalPointBetterAnalytics/ViewAdmin/experiments.php:806
2353
  msgid "Selected experiments %1$sactivated%2$s."
2354
  msgstr ""
2355
 
2356
  #. translators: %1$s = <strong>, %2$s = </strong>
2357
+ #: library/DigitalPointBetterAnalytics/ViewAdmin/experiments.php:811
2358
  msgid "Experiment %1$sdeactivated%2$s."
2359
  msgstr ""
2360
 
2361
  #. translators: %1$s = <strong>, %2$s = </strong>
2362
+ #: library/DigitalPointBetterAnalytics/ViewAdmin/experiments.php:816
2363
  msgid "Selected experiments %1$sdeactivated%2$s."
2364
  msgstr ""
2365
 
2858
  msgstr ""
2859
 
2860
  #: library/DigitalPointBetterAnalytics/ViewAdmin/test.php:582
2861
+ msgid "More %1$sContent Experiment (A/B Testing) options%2$s"
2862
  msgstr ""
2863
 
2864
  #: library/DigitalPointBetterAnalytics/ViewAdmin/test.php:587
2865
+ msgid "%1$seCommerce tracking%2$s"
2866
  msgstr ""
2867
 
2868
  #: library/DigitalPointBetterAnalytics/ViewAdmin/test.php:592
2869
+ msgid "Ability to do %1$sserver-side tracking of users%2$s"
2870
  msgstr ""
2871
 
2872
  #: library/DigitalPointBetterAnalytics/ViewAdmin/test.php:597
2873
+ msgid "Faster API calls (utilizes a multi-threaded mechanism)"
2874
  msgstr ""
2875
 
2876
  #: library/DigitalPointBetterAnalytics/ViewAdmin/test.php:602
2877
+ msgid "%1$sPriority support%2$s"
2878
+ msgstr ""
2879
+
2880
+ #: library/DigitalPointBetterAnalytics/ViewAdmin/test.php:607
2881
  msgid ""
2882
  "A Warm & Fuzzy Feeling knowing you are helping to continue future development"
2883
  msgstr ""
2884
 
2885
+ #: library/DigitalPointBetterAnalytics/ViewAdmin/test.php:619
2886
  msgid "Things That Need To Be Checked Manually"
2887
  msgstr ""
2888
 
2889
+ #: library/DigitalPointBetterAnalytics/ViewAdmin/test.php:623
2890
  msgid "User-ID Tracking"
2891
  msgstr ""
2892
 
2893
+ #: library/DigitalPointBetterAnalytics/ViewAdmin/test.php:626
2894
  msgid ""
2895
  "Found in Google Analytics account under %1$sTracking Info -> User-ID%2$s."
2896
  msgstr ""
2897
 
2898
+ #: library/DigitalPointBetterAnalytics/ViewAdmin/test.php:631
2899
  msgid "Demographic and Interest Reports"
2900
  msgstr ""
2901
 
2902
+ #: library/DigitalPointBetterAnalytics/ViewAdmin/test.php:634
2903
  msgid "Found in Google Analytics account under %1$sProperty Settings%1$s."
2904
  msgstr ""
2905
 
library/DigitalPointBetterAnalytics/Base/Admin.php CHANGED
@@ -51,6 +51,8 @@ class DigitalPointBetterAnalytics_Base_Admin
51
  add_filter('wpmu_options', array($this, 'show_network_settings'));
52
  add_action('update_wpmu_options', array($this, 'save_network_settings'));
53
 
 
 
54
  $betterAnalyticsOptions = get_option('better_analytics');
55
  if (!$betterAnalyticsOptions['property_id'])
56
  {
@@ -64,7 +66,6 @@ class DigitalPointBetterAnalytics_Base_Admin
64
  elseif (!$betterAnalyticsOptions['api']['profile'])
65
  {
66
  add_action('admin_notices', array($this, 'can_auto_configure' ) );
67
-
68
  }
69
 
70
  if (get_transient('ba_last_error'))
@@ -98,7 +99,7 @@ class DigitalPointBetterAnalytics_Base_Admin
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
 
@@ -290,6 +291,16 @@ class DigitalPointBetterAnalytics_Base_Admin
290
  }
291
  }
292
 
 
 
 
 
 
 
 
 
 
 
293
 
294
  public function api_authentication()
295
  {
51
  add_filter('wpmu_options', array($this, 'show_network_settings'));
52
  add_action('update_wpmu_options', array($this, 'save_network_settings'));
53
 
54
+ add_filter('removable_query_args', array($this, 'removable_query_args'));
55
+
56
  $betterAnalyticsOptions = get_option('better_analytics');
57
  if (!$betterAnalyticsOptions['property_id'])
58
  {
66
  elseif (!$betterAnalyticsOptions['api']['profile'])
67
  {
68
  add_action('admin_notices', array($this, 'can_auto_configure' ) );
 
69
  }
70
 
71
  if (get_transient('ba_last_error'))
99
  }
100
 
101
  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') );
102
+ 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') );
103
  add_submenu_page( 'better-analytics_heatmaps', esc_html__('Settings', 'better-analytics'), esc_html__('Settings', 'better-analytics'), 'manage_options', 'options-general.php' . '?page=better-analytics' );
104
  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' );
105
 
291
  }
292
  }
293
 
294
+ public function removable_query_args($args)
295
+ {
296
+ if (strpos(@$_SERVER['REQUEST_URI'], 'page=better-analytics') !== false && (@$_REQUEST['action'] == 'start' || @$_REQUEST['action'] == 'stop' || @$_REQUEST['action'] == 'delete' || @$_REQUEST['action'] == 'activate' || @$_REQUEST['action'] == 'deactivate'))
297
+ {
298
+ $args[] = 'id';
299
+ $args[] = 'action';
300
+ }
301
+ $args[] = '_wpnonce';
302
+ return $args;
303
+ }
304
 
305
  public function api_authentication()
306
  {
library/DigitalPointBetterAnalytics/Base/Public.php CHANGED
@@ -4,6 +4,10 @@ class DigitalPointBetterAnalytics_Base_Public
4
  {
5
  protected static $_instance;
6
 
 
 
 
 
7
  /**
8
  * Protected constructor. Use {@link getInstance()} instead.
9
  */
@@ -84,7 +88,6 @@ class DigitalPointBetterAnalytics_Base_Public
84
  {
85
  add_action('wp_loaded', array($this, 'track_blocked' ));
86
 
87
- add_action('wp_head', array($this, 'insert_code_head' ));
88
  add_action('wp_footer', array($this, 'insert_code_footer' ));
89
 
90
  add_action('admin_bar_menu', array($this, 'admin_bar_menu'), 100);
@@ -100,40 +103,20 @@ class DigitalPointBetterAnalytics_Base_Public
100
  add_action('better_analytics_cron_minutely', array('DigitalPointBetterAnalytics_CronEntry_Jobs', 'minute' ));
101
  add_action('better_analytics_cron_hourly', array('DigitalPointBetterAnalytics_CronEntry_Jobs', 'hour' ));
102
 
103
-
104
- /*
105
- if ($_SERVER['REMOTE_ADDR'] == 'xxxxx')
106
  {
 
 
 
107
 
108
- add_filter('pre_option_template', array($this, 'override_template'));
109
-
110
- //add_filter('template', array($this, 'override_template'));
111
-
112
- //add_filter('template_directory', array($this, 'override_template'), 10, 3);
113
-
114
-
115
- //add_filter ('theme_root', array($this, 'override_theme'));
116
-
117
  }
118
- */
119
-
120
  }
121
 
122
- /*
123
- public function override_theme($theme)
124
- {
125
- echo $theme;
126
- return $theme;
127
- }
128
 
129
- public function override_template()
130
- {
131
- echo 'XXX! ';
132
 
133
- return 'twentyfifteen';
134
- }
135
 
136
- */
137
  public function canViewReports()
138
  {
139
  $currentUser = wp_get_current_user();
@@ -225,7 +208,7 @@ class DigitalPointBetterAnalytics_Base_Public
225
  ),
226
  'track_blocked' => 'never',
227
  'javascript' => array(
228
- 'location' => 'header',
229
  'run_time' => 'ready'
230
  ),
231
  'campaign_tracking' => 'anchor',
@@ -297,8 +280,6 @@ class DigitalPointBetterAnalytics_Base_Public
297
  exit;
298
  }
299
 
300
-
301
-
302
  public function track_blocked()
303
  {
304
  wp_enqueue_script('jquery');
@@ -306,20 +287,10 @@ class DigitalPointBetterAnalytics_Base_Public
306
  DigitalPointBetterAnalytics_Base_Pro::track_blocked();
307
  }
308
 
309
-
310
- public function insert_code_head()
311
- {
312
- $betterAnalyticsOptions = get_option('better_analytics');
313
- if ($betterAnalyticsOptions['javascript']['location'] == 'header')
314
- {
315
- include(BETTER_ANALYTICS_PLUGIN_DIR . 'js/universal.php');
316
- }
317
- }
318
-
319
  public function insert_code_footer()
320
  {
321
  $betterAnalyticsOptions = get_option('better_analytics');
322
- if ($betterAnalyticsOptions['javascript']['location'] == 'footer')
323
  {
324
  include(BETTER_ANALYTICS_PLUGIN_DIR . 'js/universal.php');
325
  }
@@ -333,23 +304,24 @@ class DigitalPointBetterAnalytics_Base_Public
333
  'id' => 'analytics',
334
  'title' => '<span class="ab-icon"></span><span id="ab-analytics" class="ab-label analytics">' . esc_html__('Page Analytics', 'better-analytics') . '</span>',
335
  'href' => get_admin_url(null, 'admin.php?page=better-analytics_heatmaps&page_path=' . urlencode($_SERVER['REQUEST_URI'])),
336
- 'meta' => array('target' => '_blank')
337
  ));
338
 
339
  $_menu = array(
340
- 'heatmaps' => 'Heat Maps',
341
- 'areacharts' => 'Charts',
342
- 'events' => 'Events',
343
- 'monitor' => 'Issue Monitor'
344
  );
345
  foreach ($_menu as $id => $title)
346
  {
347
  $wp_admin_bar->add_node(array(
348
  'parent' => 'analytics',
349
  'id' => $id,
350
- 'title' => esc_html__($title, 'better-analytics'),
351
  'href' => get_admin_url(null, 'admin.php?page=better-analytics_' . $id . '&page_path=' . urlencode($_SERVER['REQUEST_URI'])),
352
  'meta' => array('target' => '_blank')
 
353
  ));
354
  }
355
 
@@ -364,13 +336,34 @@ class DigitalPointBetterAnalytics_Base_Public
364
  }
365
  }
366
  </style>';
367
-
368
  }
369
 
370
- }
371
-
 
 
 
 
 
 
 
372
 
 
373
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
374
 
375
  public function user_register($userId)
376
  {
@@ -513,6 +506,123 @@ class DigitalPointBetterAnalytics_Base_Public
513
  return $atts;
514
  }
515
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
516
 
517
  public static function filter_cron_schedules($schedules)
518
  {
4
  {
5
  protected static $_instance;
6
 
7
+ public $experimentId = null;
8
+ public $experimentVariation = null;
9
+ public $experimentTheme = null;
10
+
11
  /**
12
  * Protected constructor. Use {@link getInstance()} instead.
13
  */
88
  {
89
  add_action('wp_loaded', array($this, 'track_blocked' ));
90
 
 
91
  add_action('wp_footer', array($this, 'insert_code_footer' ));
92
 
93
  add_action('admin_bar_menu', array($this, 'admin_bar_menu'), 100);
103
  add_action('better_analytics_cron_minutely', array('DigitalPointBetterAnalytics_CronEntry_Jobs', 'minute' ));
104
  add_action('better_analytics_cron_hourly', array('DigitalPointBetterAnalytics_CronEntry_Jobs', 'hour' ));
105
 
106
+ if (!is_admin())
 
 
107
  {
108
+ ob_start();
109
+ add_action('wp_head', array($this, 'experiment_override_css' ));
110
+ add_action('the_post', array($this, 'experiment_override_post_title'));
111
 
112
+ add_filter('option_stylesheet', array($this, 'experiment_override_theme'));
113
+ add_filter('option_template', array($this, 'experiment_override_theme'));
 
 
 
 
 
 
 
114
  }
 
 
115
  }
116
 
 
 
 
 
 
 
117
 
 
 
 
118
 
 
 
119
 
 
120
  public function canViewReports()
121
  {
122
  $currentUser = wp_get_current_user();
208
  ),
209
  'track_blocked' => 'never',
210
  'javascript' => array(
211
+ 'location' => 'footer',
212
  'run_time' => 'ready'
213
  ),
214
  'campaign_tracking' => 'anchor',
280
  exit;
281
  }
282
 
 
 
283
  public function track_blocked()
284
  {
285
  wp_enqueue_script('jquery');
287
  DigitalPointBetterAnalytics_Base_Pro::track_blocked();
288
  }
289
 
 
 
 
 
 
 
 
 
 
 
290
  public function insert_code_footer()
291
  {
292
  $betterAnalyticsOptions = get_option('better_analytics');
293
+ if ($betterAnalyticsOptions['javascript']['location'] != 'none')
294
  {
295
  include(BETTER_ANALYTICS_PLUGIN_DIR . 'js/universal.php');
296
  }
304
  'id' => 'analytics',
305
  'title' => '<span class="ab-icon"></span><span id="ab-analytics" class="ab-label analytics">' . esc_html__('Page Analytics', 'better-analytics') . '</span>',
306
  'href' => get_admin_url(null, 'admin.php?page=better-analytics_heatmaps&page_path=' . urlencode($_SERVER['REQUEST_URI'])),
307
+ 'meta' => array('target' => '_blank', 'title' => __('Page Analytics', 'better-analytics'))
308
  ));
309
 
310
  $_menu = array(
311
+ 'heatmaps' => esc_html__('Heat Maps', 'better-analytics'),
312
+ 'areacharts' => esc_html__('Charts', 'better-analytics'),
313
+ 'events' => esc_html__('Events', 'better-analytics'),
314
+ 'monitor' => esc_html__('Issue Monitor', 'better-analytics'),
315
  );
316
  foreach ($_menu as $id => $title)
317
  {
318
  $wp_admin_bar->add_node(array(
319
  'parent' => 'analytics',
320
  'id' => $id,
321
+ 'title' => $title,
322
  'href' => get_admin_url(null, 'admin.php?page=better-analytics_' . $id . '&page_path=' . urlencode($_SERVER['REQUEST_URI'])),
323
  'meta' => array('target' => '_blank')
324
+
325
  ));
326
  }
327
 
336
  }
337
  }
338
  </style>';
 
339
  }
340
 
341
+ if (($experimentsLive = get_transient('ba_exp_live')) && current_user_can('manage_options'))
342
+ {
343
+ if ($count = (count(@$experimentsLive['post_title']) + count(@$experimentsLive['page_title']) + (!empty($experimentsLive['css']) ? 1 : 0) + (!empty($experimentsLive['theme']) ? 1 : 0)))
344
+ {
345
+ $wp_admin_bar->add_node(array(
346
+ 'id' => 'experiments',
347
+ 'title' => '<span class="ab-icon"></span><span id="ab-networking" class="ab-label networking">' . sprintf(_n( '%u A/B Test Running', '%u A/B Tests Running', $count, 'better-analytics' ), $count) . '</span>',
348
+ 'href' => get_admin_url(null, 'admin.php?page=better-analytics_experiments'),
349
+ 'meta' => array('title' => __('A/B Tests', 'better-analytics'))
350
 
351
+ ));
352
 
353
+ echo '<style>
354
+ #wpadminbar #wp-admin-bar-experiments .ab-icon:before {
355
+ content: "\\f325";
356
+ top: 4px;
357
+ }
358
+ @media screen and (max-width: 782px) {
359
+ #wpadminbar li#wp-admin-bar-experiments {
360
+ display: block;
361
+ }
362
+ }
363
+ </style>';
364
+ }
365
+ }
366
+ }
367
 
368
  public function user_register($userId)
369
  {
506
  return $atts;
507
  }
508
 
509
+ public function experiment_override_css()
510
+ {
511
+ if ($this->experimentId === null)
512
+ {
513
+ if ($experimentsLive = get_transient('ba_exp_live'))
514
+ {
515
+ if (!empty($experimentsLive['css']))
516
+ {
517
+ if (isset($_COOKIE[$experimentsLive['css']['id']]))
518
+ {
519
+ $this->experimentId = $experimentsLive['css']['id'];
520
+ $this->experimentVariation = absint($_COOKIE[$this->experimentId]);
521
+ }
522
+ elseif (DigitalPointBetterAnalytics_Model_Experiments::runExperiment($experimentsLive['css']['coverage']))
523
+ {
524
+ $this->experimentId = $experimentsLive['css']['id'];
525
+ $this->experimentVariation = DigitalPointBetterAnalytics_Model_Experiments::pickVariation($experimentsLive['css']['variations']);
526
+ setcookie($this->experimentId, $this->experimentVariation, time() + (DAY_IN_SECONDS * 180), '/');
527
+ }
528
+
529
+ if ($this->experimentVariation > 0)
530
+ {
531
+ echo '<style>' . $experimentsLive['css']['variations'][$this->experimentVariation]['code'] . '</style>';
532
+ }
533
+ }
534
+ }
535
+ }
536
+ }
537
+
538
+ public function experiment_override_post_title($post)
539
+ {
540
+ if ($this->experimentId === null)
541
+ {
542
+ if ($experimentsLive = get_transient('ba_exp_live'))
543
+ {
544
+ if (!empty($experimentsLive['page_title']) && !empty($experimentsLive['page_title'][$post->ID]))
545
+ {
546
+ if (isset($_COOKIE[$experimentsLive['page_title'][$post->ID]['id']]))
547
+ {
548
+ $this->experimentId = $experimentsLive['page_title'][$post->ID]['id'];
549
+ $this->experimentVariation = absint($_COOKIE[$this->experimentId]);
550
+ }
551
+ elseif (DigitalPointBetterAnalytics_Model_Experiments::runExperiment($experimentsLive['page_title'][$post->ID]['coverage']))
552
+ {
553
+ $this->experimentId = $experimentsLive['page_title'][$post->ID]['id'];
554
+ $this->experimentVariation = DigitalPointBetterAnalytics_Model_Experiments::pickVariation($experimentsLive['page_title'][$post->ID]['variations']);
555
+ setcookie($this->experimentId, $this->experimentVariation, time() + (DAY_IN_SECONDS * 180), '/');
556
+ }
557
+
558
+ if ($this->experimentVariation > 0)
559
+ {
560
+ $post->post_title = $experimentsLive['page_title'][$post->ID]['variations'][$this->experimentVariation]['title'];
561
+ }
562
+ }
563
+ elseif (!empty($experimentsLive['post_title']) && !empty($experimentsLive['post_title'][$post->ID]))
564
+ {
565
+ if (isset($_COOKIE[$experimentsLive['post_title'][$post->ID]['id']]))
566
+ {
567
+ $this->experimentId = $experimentsLive['post_title'][$post->ID]['id'];
568
+ $this->experimentVariation = absint($_COOKIE[$this->experimentId]);
569
+ }
570
+ elseif (DigitalPointBetterAnalytics_Model_Experiments::runExperiment($experimentsLive['post_title'][$post->ID]['coverage']))
571
+ {
572
+ $this->experimentId = $experimentsLive['post_title'][$post->ID]['id'];
573
+ $this->experimentVariation = DigitalPointBetterAnalytics_Model_Experiments::pickVariation($experimentsLive['post_title'][$post->ID]['variations']);
574
+ setcookie($this->experimentId, $this->experimentVariation, time() + (DAY_IN_SECONDS * 180), '/');
575
+ }
576
+
577
+ if ($this->experimentVariation > 0)
578
+ {
579
+ $post->post_title = $experimentsLive['post_title'][$post->ID]['variations'][$this->experimentVariation]['title'];
580
+ }
581
+
582
+ }
583
+ }
584
+ }
585
+ return $post;
586
+ }
587
+
588
+ public function experiment_override_theme($option)
589
+ {
590
+ if ($this->experimentId === null)
591
+ {
592
+ if ($experimentsLive = get_transient('ba_exp_live'))
593
+ {
594
+ if (!empty($experimentsLive['theme']))
595
+ {
596
+ if (isset($_COOKIE[$experimentsLive['theme']['id']]))
597
+ {
598
+ $this->experimentId = $experimentsLive['theme']['id'];
599
+ $this->experimentVariation = absint($_COOKIE[$this->experimentId]);
600
+ }
601
+ elseif (DigitalPointBetterAnalytics_Model_Experiments::runExperiment($experimentsLive['theme']['coverage']))
602
+ {
603
+ $this->experimentId = $experimentsLive['theme']['id'];
604
+ $this->experimentVariation = DigitalPointBetterAnalytics_Model_Experiments::pickVariation($experimentsLive['theme']['variations']);
605
+ setcookie($this->experimentId, $this->experimentVariation, time() + (DAY_IN_SECONDS * 180), '/');
606
+ }
607
+
608
+ if ($this->experimentVariation > 0)
609
+ {
610
+ $this->experimentTheme = $experimentsLive['theme']['variations'][$this->experimentVariation]['theme'];
611
+
612
+ return $this->experimentTheme;
613
+ }
614
+ }
615
+ }
616
+ }
617
+ elseif ($this->experimentTheme !== null)
618
+ {
619
+ return $this->experimentTheme;
620
+ }
621
+
622
+ return $option;
623
+ }
624
+
625
+
626
 
627
  public static function filter_cron_schedules($schedules)
628
  {
library/DigitalPointBetterAnalytics/ControllerAdmin/Analytics.php CHANGED
@@ -471,6 +471,11 @@ class DigitalPointBetterAnalytics_ControllerAdmin_Analytics
471
  return;
472
  }
473
 
 
 
 
 
 
474
  $betterAnalyticsOptions = get_option('better_analytics');
475
  $reportingClass = DigitalPointBetterAnalytics_Helper_Reporting::getInstance();
476
 
@@ -499,7 +504,7 @@ class DigitalPointBetterAnalytics_ControllerAdmin_Analytics
499
  {
500
  if ($id = absint($check))
501
  {
502
- $checkIds[] = absint($check);
503
  }
504
  }
505
 
@@ -541,17 +546,56 @@ class DigitalPointBetterAnalytics_ControllerAdmin_Analytics
541
  return;
542
  }
543
 
 
 
 
 
 
544
  $betterAnalyticsOptions = get_option('better_analytics');
545
  $reportingClass = DigitalPointBetterAnalytics_Helper_Reporting::getInstance();
546
 
547
- $experiments = array();
548
-
549
- if ($profile = $reportingClass->getProfileByProfileId($betterAnalyticsOptions['api']['profile']))
550
  {
551
- $experiments = DigitalPointBetterAnalytics_Model_Experiments::getAllExperiments($profile['accountId'], $profile['webPropertyId'], $profile['id']);
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
552
  }
553
 
554
- $this->_view('experiments', array('experiments' => $experiments));
555
  }
556
 
557
 
471
  return;
472
  }
473
 
474
+ if (isset($_REQUEST['action2']) && $_REQUEST['action2'] != -1)
475
+ {
476
+ $_REQUEST['action'] = $_REQUEST['action2'];
477
+ }
478
+
479
  $betterAnalyticsOptions = get_option('better_analytics');
480
  $reportingClass = DigitalPointBetterAnalytics_Helper_Reporting::getInstance();
481
 
504
  {
505
  if ($id = absint($check))
506
  {
507
+ $checkIds[] = $id;
508
  }
509
  }
510
 
546
  return;
547
  }
548
 
549
+ if (isset($_REQUEST['action2']) && $_REQUEST['action2'] != -1)
550
+ {
551
+ $_REQUEST['action'] = $_REQUEST['action2'];
552
+ }
553
+
554
  $betterAnalyticsOptions = get_option('better_analytics');
555
  $reportingClass = DigitalPointBetterAnalytics_Helper_Reporting::getInstance();
556
 
557
+ if (@$_REQUEST['action'] == 'start-selected' || @$_REQUEST['action'] == 'end-selected' || @$_REQUEST['action'] == 'delete-selected')
 
 
558
  {
559
+ if (!empty($_REQUEST['checked']) && is_array($_REQUEST['checked']))
560
+ {
561
+ $checkIds = array();
562
+ foreach ($_REQUEST['checked'] as $check)
563
+ {
564
+ if ($id = sanitize_text_field($check))
565
+ {
566
+ $checkIds[] = $id;
567
+ }
568
+ }
569
+
570
+ if ($checkIds)
571
+ {
572
+ check_admin_referer('bulk-experiments');
573
+
574
+ if ($profile = $reportingClass->getProfileByProfileId($betterAnalyticsOptions['api']['profile']))
575
+ {
576
+ foreach ($checkIds as $id)
577
+ {
578
+ if ($_REQUEST['action'] == 'delete-selected')
579
+ {
580
+ $reportingClass->deleteExperiment($profile['accountId'], $profile['webPropertyId'], $profile['id'], $id);
581
+
582
+ }
583
+ else
584
+ {
585
+ $experiment = $reportingClass->patchExperiment($profile['accountId'], $profile['webPropertyId'], $profile['id'], $id, array(
586
+ 'status' => ($_REQUEST['action'] == 'start-selected' ? 'RUNNING' : 'ENDED'),
587
+ ));
588
+ }
589
+ $reportingClass->deleteExperimentCache($profile['accountId'], $profile['webPropertyId'], $profile['id'], $id);
590
+ }
591
+
592
+ $reportingClass->deleteExperimentCache($profile['accountId'], $profile['webPropertyId'], $profile['id']);
593
+ }
594
+ }
595
+ }
596
  }
597
 
598
+ $this->_view('experiments');
599
  }
600
 
601
 
library/DigitalPointBetterAnalytics/CronEntry/Jobs.php CHANGED
@@ -14,8 +14,17 @@ class DigitalPointBetterAnalytics_CronEntry_Jobs
14
  {
15
  DigitalPointBetterAnalytics_Model_Widget::getStatsWidgetData();
16
 
17
- // This really should be a core WordPress function (deleting expired transients), but w/e...
 
 
18
 
 
 
 
 
 
 
 
19
  global $wpdb;
20
 
21
  if (!$all)
14
  {
15
  DigitalPointBetterAnalytics_Model_Widget::getStatsWidgetData();
16
 
17
+ if (get_transient('ba_exp_live') || date('G', current_time('timestamp')) == 0)
18
+ {
19
+ $betterAnalyticsOptions = get_option('better_analytics');
20
 
21
+ if ($profile = DigitalPointBetterAnalytics_Helper_Reporting::getInstance()->getProfileByProfileId($betterAnalyticsOptions['api']['profile']))
22
+ {
23
+ DigitalPointBetterAnalytics_Model_Experiments::getAllExperiments($profile['accountId'], $profile['webPropertyId'], $profile['id']);
24
+ }
25
+ }
26
+
27
+ // This really should be a core WordPress function (deleting expired transients), but w/e...
28
  global $wpdb;
29
 
30
  if (!$all)
library/DigitalPointBetterAnalytics/Formatting/ExperimentTable.php CHANGED
@@ -2,7 +2,7 @@
2
 
3
  class DigitalPointBetterAnalytics_Formatting_ExperimentTable extends WP_List_Table
4
  {
5
- public function __construct( $args = array())
6
  {
7
  global $status;
8
 
@@ -11,32 +11,51 @@ class DigitalPointBetterAnalytics_Formatting_ExperimentTable extends WP_List_Tab
11
  $validStatuses = array_map('strtolower', $validStatuses);
12
 
13
  $status = 'all';
 
 
 
 
 
 
 
 
 
 
 
14
  if (isset( $_REQUEST['experiment_status'] ) && in_array( $_REQUEST['experiment_status'], $validStatuses))
15
  {
16
  $status = $_REQUEST['experiment_status'];
17
 
18
  $experiments = array();
19
 
20
- if (!empty($args['experiments']) && is_array($args['experiments']))
21
  {
22
- foreach ($args['experiments'] as $key => $experiment)
23
  {
24
- if ($_REQUEST['experiment_status'] == 'active' && $experiment['active'])
25
  {
26
  $experiments[$key] = $experiment;
27
  }
28
- elseif ($_REQUEST['experiment_status'] == 'inactive' && !$experiment['active'])
 
 
 
 
 
 
 
 
29
  {
30
  $experiments[$key] = $experiment;
31
  }
32
  }
33
 
34
- $args['experiments'] = $experiments;
35
  }
36
  }
37
 
38
  // because this isn't hacky, right? lol
39
- if (in_array(@$_GET['action'], $validStatuses) !== false)
40
  {
41
  $_SERVER['REQUEST_URI'] = remove_query_arg(array('id', 'action', '_wpnonce'), $_SERVER['REQUEST_URI']);
42
  }
@@ -70,9 +89,10 @@ class DigitalPointBetterAnalytics_Formatting_ExperimentTable extends WP_List_Tab
70
  $sortOrders = array(
71
  'name' => array('key' => 'name', 'type' => SORT_STRING),
72
  'status' => array('key' => 'status', 'type' => SORT_STRING),
73
- 'winner' => array('key' => 'winnerFound', 'type' => SORT_STRING),
74
- 'created' => array('key' => 'created', 'type' => SORT_STRING),
75
- 'updated' => array('key' => 'updated', 'type' => SORT_STRING),
 
76
  );
77
 
78
  if (!empty($sortOrders[$_REQUEST['orderby']]))
@@ -81,7 +101,7 @@ class DigitalPointBetterAnalytics_Formatting_ExperimentTable extends WP_List_Tab
81
 
82
  foreach($this->items as $item)
83
  {
84
- $sortOrder[] = strtolower($item[$sortOrders[$_REQUEST['orderby']]['key']]);
85
  }
86
 
87
  array_multisort($sortOrder, (@$_REQUEST['order'] == 'desc' ? SORT_DESC : SORT_ASC), $sortOrders[$_REQUEST['orderby']]['type'], $this->items);
@@ -89,7 +109,7 @@ class DigitalPointBetterAnalytics_Formatting_ExperimentTable extends WP_List_Tab
89
  }
90
 
91
  $this->set_pagination_args( array(
92
- 'total_items' => $totals[$status],
93
  'per_page' => 1000,
94
  ));
95
  }
@@ -104,10 +124,11 @@ class DigitalPointBetterAnalytics_Formatting_ExperimentTable extends WP_List_Tab
104
  return array(
105
  'cb' => '<input type="checkbox" />',
106
  'name' => esc_html__('Name', 'better-analytics'),
107
- 'status' => esc_html__('Status', 'better-analytics'),
108
- 'winner' => esc_html__('Winner', 'better-analytics'),
109
- 'created' => esc_html__('Created', 'better-analytics'),
110
- 'updated' => esc_html__('Updated', 'better-analytics'),
 
111
  );
112
  }
113
 
@@ -116,9 +137,10 @@ class DigitalPointBetterAnalytics_Formatting_ExperimentTable extends WP_List_Tab
116
  return array(
117
  'name' => array('name', false),
118
  'status' => array('status', false),
119
- 'winner' => array('winner', true),
120
- 'created' => array('created', true),
121
- 'updated' => array('updated', true),
 
122
  );
123
  }
124
 
@@ -145,30 +167,51 @@ class DigitalPointBetterAnalytics_Formatting_ExperimentTable extends WP_List_Tab
145
  );
146
  break;
147
 
148
- case 'active':
149
  /* translators: %1$s = label, %2$s = <span>, %3$s = </span>, %4$u = number */
150
  $text = sprintf(esc_html__('%1$s %2$s(%4$u)%3$s', 'better-analytics'),
151
- _n('Active', 'Active', $count),
152
  '<span class="count">',
153
  '</span>',
154
  $count
155
  );
156
  break;
157
 
158
- case 'inactive':
159
  /* translators: %1$s = label, %2$s = <span>, %3$s = </span>, %4$u = number */
160
  $text = sprintf(esc_html__('%1$s %2$s(%4$u)%3$s', 'better-analytics'),
161
- _n('Inactive', 'Inactive', $count),
162
  '<span class="count">',
163
  '</span>',
164
  $count
165
  );
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
166
  }
167
 
168
  if ( 'search' != $type )
169
  {
170
  $status_links[$type] = sprintf( "<a href='%s' %s>%s</a>",
171
- add_query_arg('goal_status', $type, menu_page_url('better-analytics_experiments', false)),
172
  ( $type == $status ) ? ' class="current"' : '',
173
  sprintf( $text, number_format_i18n( $count ) )
174
  );
@@ -186,52 +229,34 @@ class DigitalPointBetterAnalytics_Formatting_ExperimentTable extends WP_List_Tab
186
 
187
  if ($status != 'active')
188
  {
189
- $actions['activate-selected'] = esc_html__('Activate', 'better-analytics');
190
  }
191
  if ( $status != 'inactive')
192
  {
193
- $actions['deactivate-selected'] = esc_html__('Deactivate', 'better-analytics');
194
  }
195
 
 
 
196
  return $actions;
197
  }
198
 
199
  public function single_row($item)
200
  {
201
- echo '<tr' . ($item['active'] ? ' class="active"' : '') . '>';
202
  $this->single_row_columns($item);
203
  echo '</tr>';
204
  }
205
 
206
- protected function single_row_columns($item)
207
- {
208
- list( $columns, $hidden ) = $this->get_column_info();
209
-
210
- foreach ( $columns as $column_name => $column_display_name ) {
211
- $class = "class='$column_name column-$column_name'";
212
-
213
- $style = '';
214
- if ( in_array( $column_name, $hidden ) )
215
- $style = ' style="display:none;"';
216
 
217
- $attributes = "$class$style";
 
218
 
219
- if ( 'cb' == $column_name ) {
220
- echo '<th scope="row" class="check-column">';
221
- echo $this->column_cb( $item );
222
- echo '</th>';
223
- }
224
- elseif ( method_exists( $this, 'column_' . $column_name ) ) {
225
- echo "<td $attributes>";
226
- echo call_user_func( array( $this, 'column_' . $column_name ), $item );
227
- echo "</td>";
228
- }
229
- else {
230
- echo "<td $attributes>";
231
- echo $this->column_default( $item, $column_name );
232
- echo "</td>";
233
- }
234
- }
235
  }
236
 
237
  protected function column_cb($item)
@@ -240,32 +265,89 @@ class DigitalPointBetterAnalytics_Formatting_ExperimentTable extends WP_List_Tab
240
  . "<input type='checkbox' name='checked[]' value='" . esc_attr( $item['id'] ) . "' id='checkbox_" . $item['id'] . "' />";
241
  }
242
 
243
-
244
  protected function column_name($item)
245
  {
246
  echo '<strong><a class="row-title" href="' . add_query_arg(array('action' => 'create_edit', 'id' => $item['id']), menu_page_url('better-analytics_experiments', false)) . '">' . sanitize_text_field($item['name']) . '</a></strong>';
247
  }
248
 
 
 
 
 
 
 
 
 
 
 
 
 
 
249
  protected function column_status($item)
250
  {
251
- echo DigitalPointBetterAnalytics_Model_Experiments::getStatusNameByCode($item['status']);
252
  }
253
 
254
- protected function column_value($item)
255
  {
256
- echo number_format_i18n($item['value'], 2);
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
257
  }
258
 
259
- protected function column_created($item)
260
  {
261
- /* translators: PHP date format - see: http://php.net/manual/function.date.php */
262
- echo get_date_from_gmt($item['created'], esc_html__('Y/m/d g:i a', 'better-analytics'));
 
 
 
 
 
 
 
263
  }
264
 
265
- protected function column_updated($item)
266
  {
267
- /* translators: PHP date format - see: http://php.net/manual/function.date.php */
268
- echo get_date_from_gmt($item['updated'], esc_html__('Y/m/d g:i a', 'better-analytics'));
 
 
 
 
 
 
 
269
  }
270
 
271
  }
2
 
3
  class DigitalPointBetterAnalytics_Formatting_ExperimentTable extends WP_List_Table
4
  {
5
+ public function __construct($args = array())
6
  {
7
  global $status;
8
 
11
  $validStatuses = array_map('strtolower', $validStatuses);
12
 
13
  $status = 'all';
14
+
15
+ if (!empty($args['experiments']['items']) && is_array($args['experiments']['items']))
16
+ {
17
+ foreach ($args['experiments']['items'] as $key => $experiment)
18
+ {
19
+ DigitalPointBetterAnalytics_Model_Experiments::decodeExperimentData($experiment);
20
+ $experiment['sort_type'] = @$experiment['extraData']['type'];
21
+ $args['experiments']['items'][$key] = $experiment;
22
+ }
23
+ }
24
+
25
  if (isset( $_REQUEST['experiment_status'] ) && in_array( $_REQUEST['experiment_status'], $validStatuses))
26
  {
27
  $status = $_REQUEST['experiment_status'];
28
 
29
  $experiments = array();
30
 
31
+ if (!empty($args['experiments']['items']) && is_array($args['experiments']['items']))
32
  {
33
+ foreach ($args['experiments']['items'] as $key => $experiment)
34
  {
35
+ if ($_REQUEST['experiment_status'] == 'draft' && $experiment['status'] == 'DRAFT')
36
  {
37
  $experiments[$key] = $experiment;
38
  }
39
+ elseif ($_REQUEST['experiment_status'] == 'running' && $experiment['status'] == 'RUNNING')
40
+ {
41
+ $experiments[$key] = $experiment;
42
+ }
43
+ elseif ($_REQUEST['experiment_status'] == 'ended' && $experiment['status'] == 'ENDED')
44
+ {
45
+ $experiments[$key] = $experiment;
46
+ }
47
+ elseif ($_REQUEST['experiment_status'] == 'ready' && $experiment['status'] == 'READY_TO_RUN')
48
  {
49
  $experiments[$key] = $experiment;
50
  }
51
  }
52
 
53
+ $args['experiments']['items'] = $experiments;
54
  }
55
  }
56
 
57
  // because this isn't hacky, right? lol
58
+ if (in_array(@$_GET['action'], array('start', 'end', 'delete')) !== false)
59
  {
60
  $_SERVER['REQUEST_URI'] = remove_query_arg(array('id', 'action', '_wpnonce'), $_SERVER['REQUEST_URI']);
61
  }
89
  $sortOrders = array(
90
  'name' => array('key' => 'name', 'type' => SORT_STRING),
91
  'status' => array('key' => 'status', 'type' => SORT_STRING),
92
+ 'type' => array('key' => 'sort_type', 'type' => SORT_STRING),
93
+ // 'winner' => array('key' => 'winnerFound', 'type' => SORT_STRING),
94
+ 'start' => array('key' => 'startTime', 'type' => SORT_STRING),
95
+ 'end' => array('key' => 'endTime', 'type' => SORT_STRING),
96
  );
97
 
98
  if (!empty($sortOrders[$_REQUEST['orderby']]))
101
 
102
  foreach($this->items as $item)
103
  {
104
+ $sortOrder[] = strtolower(@$item[$sortOrders[$_REQUEST['orderby']]['key']]);
105
  }
106
 
107
  array_multisort($sortOrder, (@$_REQUEST['order'] == 'desc' ? SORT_DESC : SORT_ASC), $sortOrders[$_REQUEST['orderby']]['type'], $this->items);
109
  }
110
 
111
  $this->set_pagination_args( array(
112
+ 'total_items' => (@$totals[$status] + 0),
113
  'per_page' => 1000,
114
  ));
115
  }
124
  return array(
125
  'cb' => '<input type="checkbox" />',
126
  'name' => esc_html__('Name', 'better-analytics'),
127
+ 'type' => esc_html__('Type', 'better-analytics'),
128
+ 'status' => esc_html__('Status', 'better-analytics'),
129
+ 'winning' => esc_html__('Variant Status', 'better-analytics'),
130
+ 'start' => esc_html__('Start Date', 'better-analytics'),
131
+ 'end' => esc_html__('End Date', 'better-analytics'),
132
  );
133
  }
134
 
137
  return array(
138
  'name' => array('name', false),
139
  'status' => array('status', false),
140
+ 'type' => array('type', false),
141
+ //'winner' => array('winner', true),
142
+ 'start' => array('start', true),
143
+ 'end' => array('end', true),
144
  );
145
  }
146
 
167
  );
168
  break;
169
 
170
+ case 'draft':
171
  /* translators: %1$s = label, %2$s = <span>, %3$s = </span>, %4$u = number */
172
  $text = sprintf(esc_html__('%1$s %2$s(%4$u)%3$s', 'better-analytics'),
173
+ _n('Draft', 'Draft', $count),
174
  '<span class="count">',
175
  '</span>',
176
  $count
177
  );
178
  break;
179
 
180
+ case 'running':
181
  /* translators: %1$s = label, %2$s = <span>, %3$s = </span>, %4$u = number */
182
  $text = sprintf(esc_html__('%1$s %2$s(%4$u)%3$s', 'better-analytics'),
183
+ _n('Running', 'Running', $count),
184
  '<span class="count">',
185
  '</span>',
186
  $count
187
  );
188
+ break;
189
+
190
+ case 'ended':
191
+ /* translators: %1$s = label, %2$s = <span>, %3$s = </span>, %4$u = number */
192
+ $text = sprintf(esc_html__('%1$s %2$s(%4$u)%3$s', 'better-analytics'),
193
+ _n('Ended', 'Ended', $count),
194
+ '<span class="count">',
195
+ '</span>',
196
+ $count
197
+ );
198
+ break;
199
+
200
+ case 'ready':
201
+ /* translators: %1$s = label, %2$s = <span>, %3$s = </span>, %4$u = number */
202
+ $text = sprintf(esc_html__('%1$s %2$s(%4$u)%3$s', 'better-analytics'),
203
+ _n('Ready To Run', 'Ready To Run', $count),
204
+ '<span class="count">',
205
+ '</span>',
206
+ $count
207
+ );
208
+ break;
209
  }
210
 
211
  if ( 'search' != $type )
212
  {
213
  $status_links[$type] = sprintf( "<a href='%s' %s>%s</a>",
214
+ add_query_arg('experiment_status', $type, menu_page_url('better-analytics_experiments', false)),
215
  ( $type == $status ) ? ' class="current"' : '',
216
  sprintf( $text, number_format_i18n( $count ) )
217
  );
229
 
230
  if ($status != 'active')
231
  {
232
+ $actions['start-selected'] = esc_html__('Start', 'better-analytics');
233
  }
234
  if ( $status != 'inactive')
235
  {
236
+ $actions['end-selected'] = esc_html__('End', 'better-analytics');
237
  }
238
 
239
+ $actions['delete-selected'] = esc_html__('Delete', 'better-analytics');
240
+
241
  return $actions;
242
  }
243
 
244
  public function single_row($item)
245
  {
246
+ echo '<tr' . ($item['status'] == 'DRAFT' ? ' class="draft"' : ($item['status'] == 'RUNNING' ? ' class="running"' : ($item['status'] == 'ENDED' ? ' class="ended"' : ''))) . '>';
247
  $this->single_row_columns($item);
248
  echo '</tr>';
249
  }
250
 
251
+ protected function handle_row_actions( $item, $column_name, $primary ) {
252
+ if ( $primary !== $column_name ) {
253
+ return '';
254
+ }
 
 
 
 
 
 
255
 
256
+ $actions = array();
257
+ $actions['delete'] = '<a href="' . wp_nonce_url(add_query_arg(array('id' => $item['id'], 'action' => 'delete'), $this->_getCurrentUrl()), 'delete-experiment') . '" class="confirm-prompt" data-confirm="' . esc_attr__('Are you sure you want to permanently delete this experiment? There is no undo.', 'better-analytics') . '">' . esc_html__('Delete', 'better-analytics') . '</a>';
258
 
259
+ return $this->row_actions($actions);
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
260
  }
261
 
262
  protected function column_cb($item)
265
  . "<input type='checkbox' name='checked[]' value='" . esc_attr( $item['id'] ) . "' id='checkbox_" . $item['id'] . "' />";
266
  }
267
 
 
268
  protected function column_name($item)
269
  {
270
  echo '<strong><a class="row-title" href="' . add_query_arg(array('action' => 'create_edit', 'id' => $item['id']), menu_page_url('better-analytics_experiments', false)) . '">' . sanitize_text_field($item['name']) . '</a></strong>';
271
  }
272
 
273
+ protected function column_type($item)
274
+ {
275
+ $types = DigitalPointBetterAnalytics_Model_Experiments::getTypes();
276
+
277
+ if (!$type = @$types[@$item['extraData']['type']])
278
+ {
279
+ $type = esc_html__('Unknown', 'better-analytics');
280
+ }
281
+
282
+ echo $type;
283
+ }
284
+
285
+
286
  protected function column_status($item)
287
  {
288
+ echo DigitalPointBetterAnalytics_Model_Experiments::getStatusNameByCode($item['status']) . ($item['status'] == 'DRAFT' ? '<a href="' . wp_nonce_url(add_query_arg(array('id' => $item['id'], 'action' => 'start'), $this->_getCurrentUrl()), 'start-experiment') . '" class="button button-primary confirm-prompt" data-confirm="' . esc_attr__('Are you sure you want to start this experiment?', 'better-analytics') . '">' . esc_html__('Start', 'better-analytics') . '</a>' : ($item['status'] == 'RUNNING' ? '<a href="' . wp_nonce_url(add_query_arg(array('id' => $item['id'], 'action' => 'end'), $this->_getCurrentUrl()), 'end-experiment') . '" class="button button-primary confirm-prompt" data-confirm="' . esc_attr__('Are you sure you want to permanently end this experiment? There is no undo/restart.', 'better-analytics') . '">' . esc_html__('End', 'better-analytics') . '</a>' : ''));
289
  }
290
 
291
+ protected function column_winning($item)
292
  {
293
+ if (isset($item['variationWinner']))
294
+ {
295
+ if ($item['variationWinner'] > 0)
296
+ {
297
+ printf(esc_html__('Variation %u won', 'better-analytics'), $item['variationWinner']);
298
+ }
299
+ else
300
+ {
301
+ esc_html_e('Original won', 'better-analytics');
302
+ }
303
+ }
304
+ elseif(isset($item['variationWinning']))
305
+ {
306
+ if ($item['variationWinning'] > 0)
307
+ {
308
+ printf(esc_html__('Variation %u is winning', 'better-analytics'), $item['variationWinning']);
309
+ }
310
+ else
311
+ {
312
+ esc_html_e('Original is winning', 'better-analytics');
313
+ }
314
+ }
315
+ else
316
+ {
317
+ esc_html_e('None', 'better-analytics');
318
+ }
319
+
320
+ if ($item['status'] == 'RUNNING' || $item['status'] == 'ENDED')
321
+ {
322
+ echo ' <a href="' . esc_url('https://www.google.com/analytics/web/?#siteopt-experiment/siteopt-detail/a' . absint($item['accountId']) . 'w' . absint($item['internalWebPropertyId']) . 'p' . absint($item['profileId']) . '/%3F_r.drilldown%3Danalytics.gwoExperimentId%3A' . urlencode($item['id']) . '/') . '" target="_blank" ><span class="dashicons dashicons-awards"></span></a>';
323
+ }
324
+
325
  }
326
 
327
+ protected function column_start($item)
328
  {
329
+ if (empty($item['startTime']))
330
+ {
331
+ esc_html_e('None', 'better-analytics');
332
+ }
333
+ else
334
+ {
335
+ /* translators: PHP date format - see: http://php.net/manual/function.date.php */
336
+ echo get_date_from_gmt($item['startTime'], esc_html__('Y/m/d g:i a', 'better-analytics'));
337
+ }
338
  }
339
 
340
+ protected function column_end($item)
341
  {
342
+ if (empty($item['endTime']))
343
+ {
344
+ esc_html_e('None', 'better-analytics');
345
+ }
346
+ else
347
+ {
348
+ /* translators: PHP date format - see: http://php.net/manual/function.date.php */
349
+ echo get_date_from_gmt($item['endTime'], esc_html__('Y/m/d g:i a', 'better-analytics'));
350
+ }
351
  }
352
 
353
  }
library/DigitalPointBetterAnalytics/Formatting/GoalTable.php CHANGED
@@ -85,7 +85,7 @@ class DigitalPointBetterAnalytics_Formatting_GoalTable extends WP_List_Table
85
  }
86
 
87
  $this->set_pagination_args( array(
88
- 'total_items' => $totals[$status],
89
  'per_page' => 1000,
90
  ));
91
  }
@@ -241,7 +241,7 @@ class DigitalPointBetterAnalytics_Formatting_GoalTable extends WP_List_Table
241
 
242
  }
243
 
244
- protected function handle_row_actions( $link, $column_name, $primary ) {
245
  if ( $primary !== $column_name ) {
246
  return '';
247
  }
85
  }
86
 
87
  $this->set_pagination_args( array(
88
+ 'total_items' => (@$totals[$status] + 0),
89
  'per_page' => 1000,
90
  ));
91
  }
241
 
242
  }
243
 
244
+ protected function handle_row_actions( $item, $column_name, $primary ) {
245
  if ( $primary !== $column_name ) {
246
  return '';
247
  }
library/DigitalPointBetterAnalytics/Helper/Reporting.php CHANGED
@@ -168,6 +168,12 @@ class DigitalPointBetterAnalytics_Helper_Reporting extends DigitalPointBetterAna
168
  $response = wp_remote_get($this->_urlInfo['url'] . '?' . http_build_query($this->_urlInfo['params']));
169
  }
170
 
 
 
 
 
 
 
171
  return $response['body'];
172
  }
173
 
168
  $response = wp_remote_get($this->_urlInfo['url'] . '?' . http_build_query($this->_urlInfo['params']));
169
  }
170
 
171
+ if (is_wp_error($response))
172
+ {
173
+ $this->_showException($response->get_error_message());
174
+ return false;
175
+ }
176
+
177
  return $response['body'];
178
  }
179
 
library/DigitalPointBetterAnalytics/Helper/Reporting/Abstract.php CHANGED
@@ -576,7 +576,7 @@ abstract class DigitalPointBetterAnalytics_Helper_Reporting_Abstract
576
  public function deleteExperiment($accountId, $webPropertyId, $profileId, $experimentId)
577
  {
578
  return $this->_makeApiCall(
579
- sprintf(self::$_accountsEndpoint . self::$_webPropertiesEndpoindeleteExperimentCachet . self::$_profilesEndpoint . self::$_experimentsEndpoint . ($experimentId ? '/%s' : ''), $accountId, $webPropertyId, $profileId, $experimentId),
580
  null,
581
  'DELETE',
582
  0
576
  public function deleteExperiment($accountId, $webPropertyId, $profileId, $experimentId)
577
  {
578
  return $this->_makeApiCall(
579
+ sprintf(self::$_accountsEndpoint . self::$_webPropertiesEndpoint . self::$_profilesEndpoint . self::$_experimentsEndpoint . '/%s', $accountId, $webPropertyId, $profileId, $experimentId),
580
  null,
581
  'DELETE',
582
  0
library/DigitalPointBetterAnalytics/Model/Experiments.php CHANGED
@@ -14,6 +14,21 @@ class DigitalPointBetterAnalytics_Model_Experiments
14
  return $output;
15
  }
16
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
17
  public static function getObjectiveMetrics()
18
  {
19
  $output = array(
@@ -73,6 +88,26 @@ class DigitalPointBetterAnalytics_Model_Experiments
73
  {
74
  $experiment['extraData'] = @json_decode(@$experiment['description'], true);
75
  $experiment['fromBetterAnalytics'] = is_array($experiment['extraData']) && !empty($experiment['extraData']['type']);
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
76
  }
77
 
78
  public static function getAllExperiments($accountId, $webPropertyId, $profileId)
@@ -87,7 +122,6 @@ class DigitalPointBetterAnalytics_Model_Experiments
87
 
88
  public static function compileActiveExperiments($experiments)
89
  {
90
-
91
  $experimentsCompiled = array();
92
 
93
  if (!empty($experiments['totalResults']) && is_array($experiments['items']))
@@ -96,16 +130,16 @@ class DigitalPointBetterAnalytics_Model_Experiments
96
  {
97
  self::decodeExperimentData($experiment);
98
 
99
- if (!empty($experiment['fromBetterAnalytics']) && $experiment['status'] == 'DRAFT')
100
  {
101
  switch ($experiment['extraData']['type'])
102
  {
103
  case 'POST_TITLE':
104
  $postId = $experiment['extraData']['post_title']['post_id'];
105
 
106
- $experimentsCompiled['post_title'][$postId] = array('id' => $experiment['id']);
107
 
108
- if ($experiment['variations'][0]['status'] == 'ACTIVE' || true)
109
  {
110
  $experimentsCompiled['post_title'][$postId]['variations'][0] = array(
111
  'weight' => $experiment['variations'][0]['weight']
@@ -114,7 +148,7 @@ class DigitalPointBetterAnalytics_Model_Experiments
114
 
115
  foreach ($experiment['variations'] as $key => $variation)
116
  {
117
- if ($key > 0 && ($variation['status'] == 'ACTIVE' || true))
118
  {
119
  $experimentsCompiled['post_title'][$postId]['variations'][$key] = array(
120
  'weight' => $variation['weight'],
@@ -125,13 +159,72 @@ class DigitalPointBetterAnalytics_Model_Experiments
125
  break;
126
 
127
  case 'PAGE_TITLE':
128
- echo "i equals 1";
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
129
  break;
 
130
  case 'CSS':
131
- echo "i equals 2";
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
132
  break;
 
133
  case 'THEME':
134
- echo "i equals 2";
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
135
  break;
136
 
137
  }
@@ -139,10 +232,28 @@ class DigitalPointBetterAnalytics_Model_Experiments
139
  }
140
  }
141
 
142
- print_r ($experimentsCompiled);
 
143
 
144
- print_r ($experiments);
 
 
 
 
 
 
 
 
145
 
 
 
 
 
 
 
 
 
 
146
  }
147
 
148
  }
14
  return $output;
15
  }
16
 
17
+ public static function getTypes()
18
+ {
19
+ $types = array(
20
+ 'PAGE_TITLE' => esc_html__('Page Title', 'better-analytics'),
21
+ 'POST_TITLE' => esc_html__('Post Title', 'better-analytics'),
22
+ 'CSS' => esc_html__('CSS', 'better-analytics'),
23
+ 'THEME' => esc_html__('Theme', 'better-analytics'),
24
+ );
25
+
26
+ $types = apply_filters('better_analytics_experiment_types_label', $types);
27
+
28
+ return $types;
29
+ }
30
+
31
+
32
  public static function getObjectiveMetrics()
33
  {
34
  $output = array(
88
  {
89
  $experiment['extraData'] = @json_decode(@$experiment['description'], true);
90
  $experiment['fromBetterAnalytics'] = is_array($experiment['extraData']) && !empty($experiment['extraData']['type']);
91
+
92
+ if (is_array($experiment['variations']))
93
+ {
94
+ $highestWeight = 0;
95
+
96
+ foreach ($experiment['variations'] as $key => $variation)
97
+ {
98
+ if (!empty($variation['weight']) && $variation['weight'] > $highestWeight)
99
+ {
100
+ $highestWeight = $variation['weight'];
101
+ $experiment['variationWinning'] = $key;
102
+ }
103
+
104
+ if (!empty($variation['won']))
105
+ {
106
+ $experiment['variationWinner'] = $key;
107
+ break;
108
+ }
109
+ }
110
+ }
111
  }
112
 
113
  public static function getAllExperiments($accountId, $webPropertyId, $profileId)
122
 
123
  public static function compileActiveExperiments($experiments)
124
  {
 
125
  $experimentsCompiled = array();
126
 
127
  if (!empty($experiments['totalResults']) && is_array($experiments['items']))
130
  {
131
  self::decodeExperimentData($experiment);
132
 
133
+ if (!empty($experiment['fromBetterAnalytics']) && $experiment['status'] == 'RUNNING')
134
  {
135
  switch ($experiment['extraData']['type'])
136
  {
137
  case 'POST_TITLE':
138
  $postId = $experiment['extraData']['post_title']['post_id'];
139
 
140
+ $experimentsCompiled['post_title'][$postId] = array('id' => $experiment['id'], 'coverage' => $experiment['trafficCoverage']);
141
 
142
+ if ($experiment['variations'][0]['status'] == 'ACTIVE')
143
  {
144
  $experimentsCompiled['post_title'][$postId]['variations'][0] = array(
145
  'weight' => $experiment['variations'][0]['weight']
148
 
149
  foreach ($experiment['variations'] as $key => $variation)
150
  {
151
+ if ($key > 0 && ($variation['status'] == 'ACTIVE'))
152
  {
153
  $experimentsCompiled['post_title'][$postId]['variations'][$key] = array(
154
  'weight' => $variation['weight'],
159
  break;
160
 
161
  case 'PAGE_TITLE':
162
+ $postId = $experiment['extraData']['page_title']['post_id'];
163
+
164
+ $experimentsCompiled['page_title'][$postId] = array('id' => $experiment['id'], 'coverage' => $experiment['trafficCoverage']);
165
+
166
+ if ($experiment['variations'][0]['status'] == 'ACTIVE')
167
+ {
168
+ $experimentsCompiled['page_title'][$postId]['variations'][0] = array(
169
+ 'weight' => $experiment['variations'][0]['weight']
170
+ );
171
+ }
172
+
173
+ foreach ($experiment['variations'] as $key => $variation)
174
+ {
175
+ if ($key > 0 && ($variation['status'] == 'ACTIVE'))
176
+ {
177
+ $experimentsCompiled['page_title'][$postId]['variations'][$key] = array(
178
+ 'weight' => $variation['weight'],
179
+ 'title' => $experiment['extraData']['page_title']['titles'][$key - 1]
180
+ );
181
+ }
182
+ }
183
  break;
184
+
185
  case 'CSS':
186
+ $experimentsCompiled['css'] = array('id' => $experiment['id'], 'coverage' => $experiment['trafficCoverage']);
187
+
188
+ if ($experiment['variations'][0]['status'] == 'ACTIVE')
189
+ {
190
+ $experimentsCompiled['css']['variations'][0] = array(
191
+ 'weight' => $experiment['variations'][0]['weight']
192
+ );
193
+ }
194
+
195
+ foreach ($experiment['variations'] as $key => $variation)
196
+ {
197
+ if ($key > 0 && ($variation['status'] == 'ACTIVE'))
198
+ {
199
+ $experimentsCompiled['css']['variations'][$key] = array(
200
+ 'weight' => $variation['weight'],
201
+ 'code' => $experiment['extraData']['css']['code'][$key - 1]
202
+ );
203
+ }
204
+ }
205
  break;
206
+
207
  case 'THEME':
208
+ $experimentsCompiled['theme'] = array('id' => $experiment['id'], 'coverage' => $experiment['trafficCoverage']);
209
+
210
+ if ($experiment['variations'][0]['status'] == 'ACTIVE')
211
+ {
212
+ $experimentsCompiled['theme']['variations'][0] = array(
213
+ 'weight' => $experiment['variations'][0]['weight']
214
+ );
215
+ }
216
+
217
+ foreach ($experiment['variations'] as $key => $variation)
218
+ {
219
+ if ($key > 0 && ($variation['status'] == 'ACTIVE'))
220
+ {
221
+ $experimentsCompiled['theme']['variations'][$key] = array(
222
+ 'weight' => $variation['weight'],
223
+ 'theme' => $experiment['extraData']['theme']['themes'][$key - 1]
224
+ );
225
+ }
226
+ }
227
+
228
  break;
229
 
230
  }
232
  }
233
  }
234
 
235
+ set_transient('ba_exp_live', $experimentsCompiled, WEEK_IN_SECONDS);
236
+ }
237
 
238
+ public static function runExperiment($coverage)
239
+ {
240
+ return $coverage >= (mt_rand() / mt_getrandmax());
241
+ }
242
+
243
+ public static function pickVariation($variations)
244
+ {
245
+ $randomPick = mt_rand() / mt_getrandmax();
246
+ $weightSum = 0;
247
 
248
+ foreach ($variations as $variationId => $variation)
249
+ {
250
+ $weightSum += $variation['weight'];
251
+ if ($randomPick <= $weightSum)
252
+ {
253
+ break;
254
+ }
255
+ }
256
+ return $variationId;
257
  }
258
 
259
  }
library/DigitalPointBetterAnalytics/Model/Reporting.php CHANGED
@@ -343,4 +343,37 @@ class DigitalPointBetterAnalytics_Model_Reporting
343
  return $goal;
344
  }
345
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
346
  }
343
  return $goal;
344
  }
345
 
346
+
347
+ public static function getExperimentTotals($experiments)
348
+ {
349
+ $totals = array();
350
+ if (@$experiments['items'])
351
+ {
352
+ foreach($experiments['items'] as $experiment)
353
+ {
354
+ @$totals['all']++;
355
+
356
+ if ($experiment['status'] == 'DRAFT')
357
+ {
358
+ @$totals['draft']++;
359
+ }
360
+ elseif ($experiment['status'] == 'RUNNING')
361
+ {
362
+ @$totals['running']++;
363
+ }
364
+ elseif ($experiment['status'] == 'ENDED')
365
+ {
366
+ @$totals['ended']++;
367
+ }
368
+ elseif ($experiment['status'] == 'READY_TO_RUN')
369
+ {
370
+ @$totals['ready']++;
371
+ }
372
+ }
373
+ }
374
+ return $totals;
375
+ }
376
+
377
+
378
+
379
  }
library/DigitalPointBetterAnalytics/ViewAdmin/config.php CHANGED
@@ -9,7 +9,14 @@
9
  wp_enqueue_style('better-analytics_admin_css', BETTER_ANALYTICS_PLUGIN_URL . 'assets/digitalpoint/css/admin.css', array(), BETTER_ANALYTICS_VERSION);
10
 
11
  $betterAnalyticsOptions = get_option('better_analytics');
12
- $betterAnalyticsInternal = get_transient('ba_int');
 
 
 
 
 
 
 
13
 
14
  if (DigitalPointBetterAnalytics_Helper_Reporting::getInstance()->checkAccessToken(false))
15
  {
@@ -127,6 +134,9 @@
127
  <li>
128
  <?php esc_html_e('More charting dimensions', 'better-analytics'); ?>
129
  </li>
 
 
 
130
  <li>
131
  <?php esc_html_e('eCommerce tracking', 'better-analytics'); ?>
132
  </li>
@@ -259,7 +269,6 @@
259
 
260
  <br />
261
 
262
-
263
  <label for="ba_events_email">
264
  <input name="better_analytics[events][email]" type="checkbox" id="ba_events_email" value="1" <?php checked('1', @$betterAnalyticsOptions['events']['email'] ); ?>>
265
  <?php esc_html_e('Emails Sent/Opened', 'better-analytics');?></label>
@@ -273,6 +282,19 @@
273
  <label for="ba_events_downloads">
274
  <input name="better_analytics[events][downloads]" type="checkbox" id="ba_events_downloads" value="1" <?php checked('1', @$betterAnalyticsOptions['events']['downloads'] ); ?>>
275
  <?php esc_html_e('File Downloads', 'better-analytics');?></label>
 
 
 
 
 
 
 
 
 
 
 
 
 
276
 
277
  </fieldset>
278
 
@@ -632,23 +654,23 @@
632
  <td>
633
 
634
  <fieldset>
635
- <label for="ba_ads_adsense"<?php echo (!intval(@$betterAnalyticsInternal['v']) ? ' class="pro"' : ''); ?>>
636
- <input name="better_analytics[ads][adsense]" type="checkbox" id="ba_ads_adsense" value="1" <?php checked('1', @$betterAnalyticsOptions['ads']['adsense']); disabled(0, intval(@$betterAnalyticsInternal['v'])); ?>>
637
  <?php esc_html_e('AdSense', 'better-analytics');?></label>
638
  <br />
639
 
640
- <label for="ba_ads_outbrain"<?php echo (!intval(@$betterAnalyticsInternal['v']) ? ' class="pro"' : ''); ?>>
641
- <input name="better_analytics[ads][outbrain]" type="checkbox" id="ba_ads_outbrain" value="1" <?php checked('1', @$betterAnalyticsOptions['ads']['outbrain'] ); disabled(0, intval(@$betterAnalyticsInternal['v'])); ?>>
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>
653
  <br />
654
 
@@ -674,28 +696,28 @@
674
  <?php esc_html_e('Page Not Found (404)', 'better-analytics');?></label>
675
  <br />
676
 
677
- <label for="ba_events_missing_images"<?php echo (!intval(@$betterAnalyticsInternal['v']) ? ' class="pro"' : ''); ?>>
678
- <input name="better_analytics[events][missing_images]" type="checkbox" id="ba_events_missing_images" value="1" <?php checked('1', @$betterAnalyticsOptions['events']['missing_images'] ); disabled(0, intval(@$betterAnalyticsInternal['v'])); ?>>
679
  <?php esc_html_e('Images Not Loading', 'better-analytics');?>
680
  <span class="dashicons-before dashicons-info tooltip" title="<?php esc_html_e('This relies on the ability of the user\'s browser to load images which will vary between browsers and Internet connections. This event can be a useful tool for finding missing images, but it keep in mind it will log any image that the end user\'s browser did not load (for any reason).', 'better-analytics');?>"></span>
681
  </label>
682
  <br />
683
 
684
- <label for="ba_events_errors_javascript"<?php echo (!intval(@$betterAnalyticsInternal['v']) ? ' class="pro"' : ''); ?>>
685
- <input name="better_analytics[events][error_js]" type="checkbox" id="ba_events_errors_javascript" value="1" <?php checked('1', @$betterAnalyticsOptions['events']['error_js'] ); disabled(0, intval(@$betterAnalyticsInternal['v'])); ?>>
686
  <?php esc_html_e('JavaScript Errors', 'better-analytics');?></label>
687
  <br />
688
 
689
- <label for="ba_events_errors_ajax"<?php echo (!intval(@$betterAnalyticsInternal['v']) ? ' class="pro"' : ''); ?>>
690
- <input name="better_analytics[events][error_ajax]" type="checkbox" id="ba_events_errors_ajax" value="1" <?php checked('1', @$betterAnalyticsOptions['events']['error_ajax'] ); disabled(0, intval(@$betterAnalyticsInternal['v'])); ?>>
691
  <?php esc_html_e('AJAX Errors', 'better-analytics');?></label>
692
  <br />
693
- <label for="ba_events_errors_console"<?php echo (!intval(@$betterAnalyticsInternal['v']) ? ' class="pro"' : ''); ?>>
694
- <input name="better_analytics[events][error_console]" type="checkbox" id="ba_events_errors_console" value="1" <?php checked('1', @$betterAnalyticsOptions['events']['error_console'] ); disabled(0, intval(@$betterAnalyticsInternal['v'])); ?>>
695
  <?php esc_html_e('Browser Console Errors', 'better-analytics');?></label>
696
  <br />
697
- <label for="ba_events_errors_youtube"<?php echo (!intval(@$betterAnalyticsInternal['v']) ? ' class="pro"' : ''); ?>>
698
- <input name="better_analytics[events][error_youtube]" type="checkbox" id="ba_events_errors_youtube" value="1" <?php checked('1', @$betterAnalyticsOptions['events']['error_youtube'] ); disabled(0, intval(@$betterAnalyticsInternal['v'])); ?>>
699
  <?php esc_html_e('YouTube Errors', 'better-analytics');?>
700
  <span class="dashicons-before dashicons-info tooltip" title="<?php esc_html_e('This allows you to quickly find old videos that the author has removed or disabled embeding for.', 'better-analytics');?>"></span>
701
  </label>
@@ -722,8 +744,8 @@
722
  <th scope="row">Platforms</th>
723
  <td>
724
  <fieldset>
725
- <label for="ba_ecommerce_woo"<?php echo (!intval(@$betterAnalyticsInternal['v']) ? ' class="pro"' : ''); ?>>
726
- <input name="better_analytics[ecommerce][woo]" type="checkbox" id="ba_ecommerce_woo" value="1" <?php checked('1', @$betterAnalyticsOptions['ecommerce']['woo'] ); disabled(0, intval(@$betterAnalyticsInternal['v'])); ?>>
727
  <?php
728
  esc_html_e('WooCommerce', 'better-analytics');
729
  if (!in_array( 'woocommerce/woocommerce.php', apply_filters( 'active_plugins', get_option( 'active_plugins' ) ) ) )
@@ -956,24 +978,24 @@
956
  echo htmlspecialchars(sprintf(__('If a user has a mechanism that is blocking them from being tracked with Google Analytics, you can use this option to do server-side page view tracking of that user.%3$s For the most accuracy, %1$sit\'s not recommended to use this option for anything beyond "Registered Users"%2$s (having an account allows the system to track them uniquely on the backend).%3$s Logging page views for "Humans" will lead to a lot of niche bots being tracked (ones not popular enough to be widely known as a spider).', 'better-analytics'), '<strong>', '</strong>', '<p />'));
957
  ?>"></span></th>
958
  <td>
959
- <fieldset id="ba_track_blocked"<?php echo (!intval(@$betterAnalyticsInternal['v']) ? ' class="pro"' : ''); ?>>
960
  <label>
961
  <input name="better_analytics[track_blocked]" type="radio" value="never" <?php checked( 'never', @$betterAnalyticsOptions['track_blocked'] ); ?>>
962
  <?php esc_html_e('Never', 'better-analytics');?></label>
963
  <br />
964
 
965
  <label>
966
- <input name="better_analytics[track_blocked]" type="radio" value="logged_in" <?php checked( 'logged_in', @$betterAnalyticsOptions['track_blocked'] ); disabled(0, intval(@$betterAnalyticsInternal['v'])); ?>>
967
  <?php esc_html_e('Registered Users', 'better-analytics');?></label>
968
  <br />
969
 
970
  <label>
971
- <input name="better_analytics[track_blocked]" type="radio" value="humans" <?php checked( 'humans', @$betterAnalyticsOptions['track_blocked'] ); disabled(0, intval(@$betterAnalyticsInternal['v'])); ?>>
972
  <?php esc_html_e('Humans', 'better-analytics');?></label>
973
  <br />
974
 
975
  <label>
976
- <input name="better_analytics[track_blocked]" type="radio" value="everything" <?php checked( 'everything', @$betterAnalyticsOptions['track_blocked'] ); disabled(0, intval(@$betterAnalyticsInternal['v'])); ?>>
977
  <?php esc_html_e('Everything', 'better-analytics');?></label>
978
 
979
  </fieldset>
@@ -985,11 +1007,6 @@
985
  <th scope="row"><?php esc_html_e('Location For Analytics Code', 'better-analytics');?></th>
986
  <td>
987
  <fieldset id="ba_javascript_location">
988
- <label>
989
- <input name="better_analytics[javascript][location]" type="radio" value="header" <?php checked( 'header', @$betterAnalyticsOptions['javascript']['location'] ); ?>>
990
- <?php esc_html_e('Header', 'better-analytics');?></label>
991
- <br />
992
-
993
  <label>
994
  <input name="better_analytics[javascript][location]" type="radio" value="footer" <?php checked( 'footer', @$betterAnalyticsOptions['javascript']['location'] ); ?>>
995
  <?php esc_html_e('Footer', 'better-analytics');?></label>
9
  wp_enqueue_style('better-analytics_admin_css', BETTER_ANALYTICS_PLUGIN_URL . 'assets/digitalpoint/css/admin.css', array(), BETTER_ANALYTICS_VERSION);
10
 
11
  $betterAnalyticsOptions = get_option('better_analytics');
12
+
13
+ // 1.1.0 removed header option
14
+ if (@$betterAnalyticsOptions['javascript']['location'] == 'header')
15
+ {
16
+ @$betterAnalyticsOptions['javascript']['location'] = 'footer';
17
+ }
18
+
19
+ $betterAnalyticsInternal = DigitalPointBetterAnalytics_Helper_Api::check();
20
 
21
  if (DigitalPointBetterAnalytics_Helper_Reporting::getInstance()->checkAccessToken(false))
22
  {
134
  <li>
135
  <?php esc_html_e('More charting dimensions', 'better-analytics'); ?>
136
  </li>
137
+ <li>
138
+ <?php esc_html_e('More A/B testing objective metrics', 'better-analytics'); ?>
139
+ </li>
140
  <li>
141
  <?php esc_html_e('eCommerce tracking', 'better-analytics'); ?>
142
  </li>
269
 
270
  <br />
271
 
 
272
  <label for="ba_events_email">
273
  <input name="better_analytics[events][email]" type="checkbox" id="ba_events_email" value="1" <?php checked('1', @$betterAnalyticsOptions['events']['email'] ); ?>>
274
  <?php esc_html_e('Emails Sent/Opened', 'better-analytics');?></label>
282
  <label for="ba_events_downloads">
283
  <input name="better_analytics[events][downloads]" type="checkbox" id="ba_events_downloads" value="1" <?php checked('1', @$betterAnalyticsOptions['events']['downloads'] ); ?>>
284
  <?php esc_html_e('File Downloads', 'better-analytics');?></label>
285
+ <br />
286
+
287
+ <label for="ba_events_page_scroll">
288
+ <input name="better_analytics[events][page_scroll]" type="checkbox" id="ba_events_page_scroll" value="1" <?php checked('1', @$betterAnalyticsOptions['events']['page_scroll'] ); ?>>
289
+ <?php esc_html_e('Page Scroll Percent', 'better-analytics');?></label>
290
+ <span class="dashicons-before dashicons-info tooltip" title="<?php esc_attr_e('This is the percent of the page the user scrolled down to view before leaving the page.', 'better-analytics'); ?>"></span>
291
+ <br />
292
+
293
+ <label for="ba_events_time_on_page">
294
+ <input name="better_analytics[events][time_on_page]" type="checkbox" id="ba_events_time_on_page" value="1" <?php checked('1', @$betterAnalyticsOptions['events']['time_on_page'] ); ?>>
295
+ <?php esc_html_e('Time On Page', 'better-analytics');?></label>
296
+ <span class="dashicons-before dashicons-info tooltip" title="<?php esc_attr_e('This is the amount of time (recorded in seconds) that the user spent on the individual page.', 'better-analytics'); ?>"></span>
297
+
298
 
299
  </fieldset>
300
 
654
  <td>
655
 
656
  <fieldset>
657
+ <label for="ba_ads_adsense"<?php echo (!intval(@$betterAnalyticsInternal) ? ' class="pro"' : ''); ?>>
658
+ <input name="better_analytics[ads][adsense]" type="checkbox" id="ba_ads_adsense" value="1" <?php checked('1', @$betterAnalyticsOptions['ads']['adsense']); disabled(0, intval(@$betterAnalyticsInternal)); ?>>
659
  <?php esc_html_e('AdSense', 'better-analytics');?></label>
660
  <br />
661
 
662
+ <label for="ba_ads_outbrain"<?php echo (!intval(@$betterAnalyticsInternal) ? ' class="pro"' : ''); ?>>
663
+ <input name="better_analytics[ads][outbrain]" type="checkbox" id="ba_ads_outbrain" value="1" <?php checked('1', @$betterAnalyticsOptions['ads']['outbrain'] ); disabled(0, intval(@$betterAnalyticsInternal)); ?>>
664
  <?php esc_html_e('Outbrain', 'better-analytics');?></label>
665
  <br />
666
 
667
+ <label for="ba_ads_revcontent"<?php echo (!intval(@$betterAnalyticsInternal) ? ' class="pro"' : ''); ?>>
668
+ <input name="better_analytics[ads][revcontent]" type="checkbox" id="ba_ads_revcontent" value="1" <?php checked('1', @$betterAnalyticsOptions['ads']['revcontent'] ); disabled(0, intval(@$betterAnalyticsInternal)); ?>>
669
  <?php esc_html_e('RevContent', 'better-analytics');?></label>
670
  <br />
671
 
672
+ <label for="ba_ads_taboola"<?php echo (!intval(@$betterAnalyticsInternal) ? ' class="pro"' : ''); ?>>
673
+ <input name="better_analytics[ads][taboola]" type="checkbox" id="ba_ads_taboola" value="1" <?php checked('1', @$betterAnalyticsOptions['ads']['taboola'] ); disabled(0, intval(@$betterAnalyticsInternal)); ?>>
674
  <?php esc_html_e('Taboola', 'better-analytics');?></label>
675
  <br />
676
 
696
  <?php esc_html_e('Page Not Found (404)', 'better-analytics');?></label>
697
  <br />
698
 
699
+ <label for="ba_events_missing_images"<?php echo (!intval(@$betterAnalyticsInternal) ? ' class="pro"' : ''); ?>>
700
+ <input name="better_analytics[events][missing_images]" type="checkbox" id="ba_events_missing_images" value="1" <?php checked('1', @$betterAnalyticsOptions['events']['missing_images'] ); disabled(0, intval(@$betterAnalyticsInternal)); ?>>
701
  <?php esc_html_e('Images Not Loading', 'better-analytics');?>
702
  <span class="dashicons-before dashicons-info tooltip" title="<?php esc_html_e('This relies on the ability of the user\'s browser to load images which will vary between browsers and Internet connections. This event can be a useful tool for finding missing images, but it keep in mind it will log any image that the end user\'s browser did not load (for any reason).', 'better-analytics');?>"></span>
703
  </label>
704
  <br />
705
 
706
+ <label for="ba_events_errors_javascript"<?php echo (!intval(@$betterAnalyticsInternal) ? ' class="pro"' : ''); ?>>
707
+ <input name="better_analytics[events][error_js]" type="checkbox" id="ba_events_errors_javascript" value="1" <?php checked('1', @$betterAnalyticsOptions['events']['error_js'] ); disabled(0, intval(@$betterAnalyticsInternal)); ?>>
708
  <?php esc_html_e('JavaScript Errors', 'better-analytics');?></label>
709
  <br />
710
 
711
+ <label for="ba_events_errors_ajax"<?php echo (!intval(@$betterAnalyticsInternal) ? ' class="pro"' : ''); ?>>
712
+ <input name="better_analytics[events][error_ajax]" type="checkbox" id="ba_events_errors_ajax" value="1" <?php checked('1', @$betterAnalyticsOptions['events']['error_ajax'] ); disabled(0, intval(@$betterAnalyticsInternal)); ?>>
713
  <?php esc_html_e('AJAX Errors', 'better-analytics');?></label>
714
  <br />
715
+ <label for="ba_events_errors_console"<?php echo (!intval(@$betterAnalyticsInternal) ? ' class="pro"' : ''); ?>>
716
+ <input name="better_analytics[events][error_console]" type="checkbox" id="ba_events_errors_console" value="1" <?php checked('1', @$betterAnalyticsOptions['events']['error_console'] ); disabled(0, intval(@$betterAnalyticsInternal)); ?>>
717
  <?php esc_html_e('Browser Console Errors', 'better-analytics');?></label>
718
  <br />
719
+ <label for="ba_events_errors_youtube"<?php echo (!intval(@$betterAnalyticsInternal) ? ' class="pro"' : ''); ?>>
720
+ <input name="better_analytics[events][error_youtube]" type="checkbox" id="ba_events_errors_youtube" value="1" <?php checked('1', @$betterAnalyticsOptions['events']['error_youtube'] ); disabled(0, intval(@$betterAnalyticsInternal)); ?>>
721
  <?php esc_html_e('YouTube Errors', 'better-analytics');?>
722
  <span class="dashicons-before dashicons-info tooltip" title="<?php esc_html_e('This allows you to quickly find old videos that the author has removed or disabled embeding for.', 'better-analytics');?>"></span>
723
  </label>
744
  <th scope="row">Platforms</th>
745
  <td>
746
  <fieldset>
747
+ <label for="ba_ecommerce_woo"<?php echo (!intval(@$betterAnalyticsInternal) ? ' class="pro"' : ''); ?>>
748
+ <input name="better_analytics[ecommerce][woo]" type="checkbox" id="ba_ecommerce_woo" value="1" <?php checked('1', @$betterAnalyticsOptions['ecommerce']['woo'] ); disabled(0, intval(@$betterAnalyticsInternal)); ?>>
749
  <?php
750
  esc_html_e('WooCommerce', 'better-analytics');
751
  if (!in_array( 'woocommerce/woocommerce.php', apply_filters( 'active_plugins', get_option( 'active_plugins' ) ) ) )
978
  echo htmlspecialchars(sprintf(__('If a user has a mechanism that is blocking them from being tracked with Google Analytics, you can use this option to do server-side page view tracking of that user.%3$s For the most accuracy, %1$sit\'s not recommended to use this option for anything beyond "Registered Users"%2$s (having an account allows the system to track them uniquely on the backend).%3$s Logging page views for "Humans" will lead to a lot of niche bots being tracked (ones not popular enough to be widely known as a spider).', 'better-analytics'), '<strong>', '</strong>', '<p />'));
979
  ?>"></span></th>
980
  <td>
981
+ <fieldset id="ba_track_blocked"<?php echo (!intval(@$betterAnalyticsInternal) ? ' class="pro"' : ''); ?>>
982
  <label>
983
  <input name="better_analytics[track_blocked]" type="radio" value="never" <?php checked( 'never', @$betterAnalyticsOptions['track_blocked'] ); ?>>
984
  <?php esc_html_e('Never', 'better-analytics');?></label>
985
  <br />
986
 
987
  <label>
988
+ <input name="better_analytics[track_blocked]" type="radio" value="logged_in" <?php checked( 'logged_in', @$betterAnalyticsOptions['track_blocked'] ); disabled(0, intval(@$betterAnalyticsInternal)); ?>>
989
  <?php esc_html_e('Registered Users', 'better-analytics');?></label>
990
  <br />
991
 
992
  <label>
993
+ <input name="better_analytics[track_blocked]" type="radio" value="humans" <?php checked( 'humans', @$betterAnalyticsOptions['track_blocked'] ); disabled(0, intval(@$betterAnalyticsInternal)); ?>>
994
  <?php esc_html_e('Humans', 'better-analytics');?></label>
995
  <br />
996
 
997
  <label>
998
+ <input name="better_analytics[track_blocked]" type="radio" value="everything" <?php checked( 'everything', @$betterAnalyticsOptions['track_blocked'] ); disabled(0, intval(@$betterAnalyticsInternal)); ?>>
999
  <?php esc_html_e('Everything', 'better-analytics');?></label>
1000
 
1001
  </fieldset>
1007
  <th scope="row"><?php esc_html_e('Location For Analytics Code', 'better-analytics');?></th>
1008
  <td>
1009
  <fieldset id="ba_javascript_location">
 
 
 
 
 
1010
  <label>
1011
  <input name="better_analytics[javascript][location]" type="radio" value="footer" <?php checked( 'footer', @$betterAnalyticsOptions['javascript']['location'] ); ?>>
1012
  <?php esc_html_e('Footer', 'better-analytics');?></label>
library/DigitalPointBetterAnalytics/ViewAdmin/experiments.php CHANGED
@@ -10,32 +10,34 @@ wp_enqueue_style('chosen_css', BETTER_ANALYTICS_PLUGIN_URL . 'assets/chosen/chos
10
 
11
  $betterAnalyticsOptions = get_option('better_analytics');
12
 
 
 
13
  $nOnceSalt = @$betterAnalyticsOptions['property_id'] . '-' . @$betterAnalyticsOptions['api']['profile'];
14
 
15
  $noticeAtTop = '';
16
 
17
- if (@$_REQUEST['action'] == 'create_edit')
18
- {
19
- $experimentId = sanitize_text_field(@$_REQUEST['id']);
20
 
21
- $goalsAll = DigitalPointBetterAnalytics_Helper_Reporting::getInstance()->getGoals();
 
22
 
23
- $experiment = array();
24
- $accountId = null;
25
- $readOnly = '';
26
 
27
- if ($experimentId && $accountId = DigitalPointBetterAnalytics_Model_Reporting::getSiteAccountId())
 
 
 
28
  {
29
- $experiment = DigitalPointBetterAnalytics_Model_Experiments::getExperimentByExperimentId($accountId, @$betterAnalyticsOptions['property_id'], @$betterAnalyticsOptions['api']['profile'], $experimentId);
30
- if ($experiment && !$experiment['fromBetterAnalytics'])
31
- {
32
- $readOnly = ' readonly="readonly" disabled="disabled"';
33
- }
34
  }
 
35
 
 
 
36
  if (empty($experiment['status']))
37
  {
38
  $experiment['status'] = 'DRAFT';
 
39
  }
40
  if (empty($experiment['optimizationType']))
41
  {
@@ -59,9 +61,6 @@ if (@$_REQUEST['action'] == 'create_edit')
59
  }
60
  $winnerConfidenceLevel = $experiment['winnerConfidenceLevel'] * 100;
61
 
62
-
63
- print_r ($experiment);
64
-
65
  if ($_SERVER['REQUEST_METHOD'] != 'POST')
66
  {
67
 
@@ -70,10 +69,24 @@ if (@$_REQUEST['action'] == 'create_edit')
70
 
71
  if ($readOnly)
72
  {
73
- echo '<div class="wrap">
74
- <div class="error"><p>' . esc_html__('This experiment was not created by Better Analytics. You can view it for informational purposes, but you cannot make changes to it.', 'better-analytics') . '</p></div>
75
- </div>';
76
-
 
 
 
 
 
 
 
 
 
 
 
 
 
 
77
  }
78
 
79
 
@@ -98,12 +111,60 @@ if (@$_REQUEST['action'] == 'create_edit')
98
 
99
  <?php
100
  $statues = DigitalPointBetterAnalytics_Model_Experiments::getStatuses();
101
- echo $statues[$experiment['status']]
 
102
  ?>
103
 
104
  </td>
105
  </tr>
106
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
107
 
108
 
109
  <tr valign="top">
@@ -132,18 +193,22 @@ if (@$_REQUEST['action'] == 'create_edit')
132
 
133
  echo '<select name="objective_metric" data-placeholder="' . esc_html__('Pick objective metric', 'better-analytics') . '" id="ba_objective_metric" style="width:79%"' . $readOnly . '>';
134
 
135
- $objectiveMetrics = DigitalPointBetterAnalytics_Model_Experiments::getObjectiveMetrics();
136
 
137
- foreach ($objectiveMetrics as $category => $metrics)
138
- {
139
- echo '<optgroup label="' . htmlentities($category) . '">';
140
 
141
- foreach ($metrics as $metric => $name)
142
- {
143
- echo '<option value="' . $metric . '"' . ($metric == @$experiment['objectiveMetric'] ? ' selected="selected"' : '') . '>' . htmlentities($name) . '</option>';
144
- }
145
- echo '</optgroup>';
 
 
 
146
  }
 
 
147
 
148
  echo '</select>';
149
 
@@ -202,7 +267,7 @@ if (@$_REQUEST['action'] == 'create_edit')
202
 
203
 
204
  <?php
205
- if (!$readOnly)
206
  {
207
  ?>
208
 
@@ -219,24 +284,24 @@ if (@$_REQUEST['action'] == 'create_edit')
219
 
220
  $allPages = get_pages();
221
 
222
- echo '<select name="type" data-placeholder="' . esc_html__('Pick type', 'better-analytics') . '" id="ba_type">';
223
 
224
  $types = array(
225
  'POST_TITLE' => array(
226
  'title' => esc_html__('Post Title', 'better-analytics'),
227
- 'disabled' => count($allPosts) == 0
228
  ),
229
  'PAGE_TITLE' => array(
230
  'title' => esc_html__('Page Title', 'better-analytics'),
231
- 'disabled' => count($allPages) == 0
232
  ),
233
  'CSS' => array(
234
  'title' => esc_html__('CSS', 'better-analytics'),
235
- 'disabled' => false
236
  ),
237
  'THEME' => array(
238
  'title' => esc_html__('Theme', 'better-analytics'),
239
- 'disabled' => false
240
  ),
241
  );
242
 
@@ -258,7 +323,7 @@ if (@$_REQUEST['action'] == 'create_edit')
258
 
259
  <?php
260
 
261
- echo '<select name="extra_data[post_title][post_id]" data-placeholder="' . esc_html__('Pick post', 'better-analytics') . '" id="ba_post_id" class="chosen-select">';
262
 
263
  foreach ($allPosts as $post)
264
  {
@@ -281,9 +346,12 @@ if (@$_REQUEST['action'] == 'create_edit')
281
  {
282
  foreach ($experiment['extraData']['post_title']['titles'] as $key => $variation)
283
  {
284
- echo '<li><input type="text" name="extra_data[post_title][titles][]" class="regular-text" value="' . esc_attr($variation) .'" placeholder="' . esc_attr( esc_html__('Enter a post title variation here', 'better-analytics') ) . '" />';
285
 
286
- echo '<a class="delete"><span class="dashicons dashicons-dismiss"></span></a>';
 
 
 
287
 
288
  echo '</li>';
289
  }
@@ -292,13 +360,21 @@ if (@$_REQUEST['action'] == 'create_edit')
292
  {
293
  echo '<li><input type="text" name="extra_data[post_title][titles][]" class="regular-text" value="" placeholder="' . esc_attr( esc_html__('Enter a post title variation here', 'better-analytics') ) . '" />';
294
 
295
- echo '<a class="delete"><span class="dashicons dashicons-dismiss"></span></a>';
 
 
 
296
 
297
  echo '</li>';
298
  }
299
  ?>
300
  </ol>
301
- <a id="new_post_title_variation" class="button variation_button"><?php esc_html_e('Add another title variation', 'better-analytics') ?></a>
 
 
 
 
 
302
 
303
  </td>
304
  </tr>
@@ -311,7 +387,7 @@ if (@$_REQUEST['action'] == 'create_edit')
311
 
312
  <?php
313
 
314
- echo '<select name="extra_data[page_title][post_id]" data-placeholder="' . esc_html__('Pick page', 'better-analytics') . '" id="ba_page_id" class="chosen-select">';
315
 
316
  foreach ($allPages as $page)
317
  {
@@ -334,9 +410,12 @@ if (@$_REQUEST['action'] == 'create_edit')
334
  {
335
  foreach ($experiment['extraData']['page_title']['titles'] as $key => $variation)
336
  {
337
- echo '<li><input type="text" name="extra_data[page_title][titles][]" class="regular-text" value="' . esc_attr($variation) .'" placeholder="' . esc_attr( esc_html__('Enter a page title variation here', 'better-analytics') ) . '" />';
338
 
339
- echo '<a class="delete"><span class="dashicons dashicons-dismiss"></span></a>';
 
 
 
340
 
341
  echo '</li>';
342
  }
@@ -345,13 +424,22 @@ if (@$_REQUEST['action'] == 'create_edit')
345
  {
346
  echo '<li><input type="text" name="extra_data[page_title][titles][]" class="regular-text" value="" placeholder="' . esc_attr( esc_html__('Enter a page title variation here', 'better-analytics') ) . '" />';
347
 
348
- echo '<a class="delete"><span class="dashicons dashicons-dismiss"></span></a>';
 
 
 
349
 
350
  echo '</li>';
351
  }
352
  ?>
353
  </ol>
354
- <a id="new_page_title_variation" class="button variation_button"><?php esc_html_e('Add another title variation', 'better-analytics') ?></a>
 
 
 
 
 
 
355
 
356
  </td>
357
  </tr>
@@ -374,9 +462,8 @@ if (@$_REQUEST['action'] == 'create_edit')
374
  .something_else {
375
  padding: 5px 20px;
376
  color: green;
377
- }">' . esc_textarea(@$variation) . '</textarea>
378
- <a class="delete"><span class="dashicons dashicons-dismiss"></span></a>
379
-
380
  </li>';
381
  }
382
  }
@@ -390,15 +477,19 @@ if (@$_REQUEST['action'] == 'create_edit')
390
  .something_else {
391
  padding: 5px 20px;
392
  color: green;
393
- }"></textarea>
394
- <a class="delete"><span class="dashicons dashicons-dismiss"></span></a>
395
-
396
  </li>';
397
  }
398
  ?>
399
  </ol>
400
- <a id="new_css_variation" class="button variation_button"><?php esc_html_e('Add another CSS variation', 'better-analytics') ?></a>
401
 
 
 
 
 
 
 
402
  </td>
403
  </tr>
404
 
@@ -416,9 +507,9 @@ if (@$_REQUEST['action'] == 'create_edit')
416
  $currentTheme = wp_get_theme();
417
  $currentThemeTextDomain = $currentTheme->get('TextDomain');
418
 
419
- if (is_array(@$experiment['extraData']['themes']['themes']))
420
  {
421
- foreach ($experiment['extraData']['themes']['themes'] as $key => $variation)
422
  {
423
  echo '<li>';
424
 
@@ -487,6 +578,7 @@ if (@$_REQUEST['action'] == 'create_edit')
487
  $errorMessage = array();
488
 
489
  $experimentObject = array(
 
490
  'servingFramework' => 'API',
491
  'editableInGaUi' => false,
492
  );
@@ -621,32 +713,14 @@ if (@$_REQUEST['action'] == 'create_edit')
621
  $errorMessage[] = esc_html__('Experiment name is required.', 'better-analytics');
622
  }
623
 
624
-
625
- echo $experimentId;
626
-
627
-
628
- print_r ($extraData);
629
-
630
- print_r ($experimentObject);
631
-
632
-
633
-
634
-
635
- $reportingClass = DigitalPointBetterAnalytics_Helper_Reporting::getInstance();
636
-
637
  if (!$errorMessage && $profile = $reportingClass->getProfileByProfileId(@$betterAnalyticsOptions['api']['profile']))
638
  {
639
  if ($experimentId)
640
  {
641
- echo 'patching!';
642
-
643
  $experiment = $reportingClass->patchExperiment($profile['accountId'], $profile['webPropertyId'], $profile['id'], $experimentId, $experimentObject);
644
  }
645
  else
646
  {
647
- echo 'inserting!';
648
-
649
-
650
  $experiment = $reportingClass->insertExperiment($profile['accountId'], $profile['webPropertyId'], $profile['id'], $experimentObject);
651
  }
652
 
@@ -656,8 +730,6 @@ if (@$_REQUEST['action'] == 'create_edit')
656
  $reportingClass->deleteExperimentCache($profile['accountId'], $profile['webPropertyId'], $profile['id'], $experiment['id']);
657
  }
658
 
659
- $experiments = DigitalPointBetterAnalytics_Model_Experiments::getAllExperiments($profile['accountId'], $profile['webPropertyId'], $profile['id']);
660
-
661
  if ($experimentId)
662
  {
663
  /* translators: %1$s = <strong>, %2$s = </strong> */
@@ -670,7 +742,33 @@ if (@$_REQUEST['action'] == 'create_edit')
670
  }
671
  }
672
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
673
 
 
 
 
 
 
 
 
 
 
 
674
  }
675
 
676
  if (@$_REQUEST['action'] != 'create_edit' || @$_SERVER['REQUEST_METHOD'] == 'POST')
@@ -718,6 +816,16 @@ if (@$_REQUEST['action'] != 'create_edit' || @$_SERVER['REQUEST_METHOD'] == 'POS
718
  echo '<div id="message" class="updated notice is-dismissible"><p>' . sprintf(esc_html__('Selected experiments %1$sdeactivated%2$s.'), '<strong>', '</strong>') . '</p></div>';
719
  }
720
 
 
 
 
 
 
 
 
 
 
 
721
  $goalTable = new DigitalPointBetterAnalytics_Formatting_ExperimentTable(array('plural' => 'experiments', 'experiments' => $experiments));
722
 
723
  $goalTable->prepare_items();
10
 
11
  $betterAnalyticsOptions = get_option('better_analytics');
12
 
13
+ $reportingClass = DigitalPointBetterAnalytics_Helper_Reporting::getInstance();
14
+
15
  $nOnceSalt = @$betterAnalyticsOptions['property_id'] . '-' . @$betterAnalyticsOptions['api']['profile'];
16
 
17
  $noticeAtTop = '';
18
 
19
+ $accountId = null;
 
 
20
 
21
+ $experiment = array();
22
+ $readOnly = '';
23
 
24
+ $experimentId = sanitize_text_field(@$_REQUEST['id']);
 
 
25
 
26
+ if ($experimentId && $accountId = DigitalPointBetterAnalytics_Model_Reporting::getSiteAccountId())
27
+ {
28
+ $experiment = DigitalPointBetterAnalytics_Model_Experiments::getExperimentByExperimentId($accountId, @$betterAnalyticsOptions['property_id'], @$betterAnalyticsOptions['api']['profile'], $experimentId);
29
+ if ($experiment && (!$experiment['fromBetterAnalytics'] || $experiment['status'] == 'ENDED' || $experiment['status'] == 'RUNNING'))
30
  {
31
+ $readOnly = ' readonly="readonly" disabled="disabled"';
 
 
 
 
32
  }
33
+ }
34
 
35
+ if (@$_REQUEST['action'] == 'create_edit')
36
+ {
37
  if (empty($experiment['status']))
38
  {
39
  $experiment['status'] = 'DRAFT';
40
+ $experiment['fromBetterAnalytics'] = true;
41
  }
42
  if (empty($experiment['optimizationType']))
43
  {
61
  }
62
  $winnerConfidenceLevel = $experiment['winnerConfidenceLevel'] * 100;
63
 
 
 
 
64
  if ($_SERVER['REQUEST_METHOD'] != 'POST')
65
  {
66
 
69
 
70
  if ($readOnly)
71
  {
72
+ if ($experiment['status'] == 'ENDED')
73
+ {
74
+ echo '<div class="wrap">
75
+ <div class="error"><p>' . esc_html__('This experiment has ended. You can view it for informational purposes, but you cannot make changes to it.', 'better-analytics') . '</p></div>
76
+ </div>';
77
+ }
78
+ elseif ($experiment['status'] == 'RUNNING')
79
+ {
80
+ echo '<div class="wrap">
81
+ <div class="error"><p>' . esc_html__('This experiment is currently running. You can view it for informational purposes, but you cannot make changes to it.', 'better-analytics') . '</p></div>
82
+ </div>';
83
+ }
84
+ else
85
+ {
86
+ echo '<div class="wrap">
87
+ <div class="error"><p>' . esc_html__('This experiment was not created by Better Analytics. You can view it for informational purposes, but you cannot make changes to it.', 'better-analytics') . '</p></div>
88
+ </div>';
89
+ }
90
  }
91
 
92
 
111
 
112
  <?php
113
  $statues = DigitalPointBetterAnalytics_Model_Experiments::getStatuses();
114
+ echo $statues[$experiment['status']];
115
+ echo '<input type="hidden" name="status" value="' . $experiment['status'] . '" />';
116
  ?>
117
 
118
  </td>
119
  </tr>
120
 
121
+ <?php
122
+
123
+ if ($experiment['status'] == 'RUNNING')
124
+ {
125
+ if(isset($experiment['variationWinning']))
126
+ {
127
+ echo '<tr valign="top">
128
+ <th scope="row">' . esc_html__('Variation Status', 'better-analytics') . '</th>
129
+ <td>';
130
+
131
+ if ($experiment['variationWinning'] > 0)
132
+ {
133
+ printf(esc_html__('Variation %u is winning', 'better-analytics'), $experiment['variationWinning']);
134
+ }
135
+ else
136
+ {
137
+ esc_html_e('Original is winning', 'better-analytics');
138
+ }
139
+
140
+ echo '</td>
141
+ </tr>';
142
+ }
143
+ }
144
+ elseif($experiment['status'] == 'ENDED')
145
+ {
146
+ if(isset($experiment['variationWinner']))
147
+ {
148
+ echo '<tr valign="top">
149
+ <th scope="row">' . esc_html__('Variation Winner', 'better-analytics') . '</th>
150
+ <td>';
151
+
152
+ if ($experiment['variationWinner'] > 0)
153
+ {
154
+ printf(esc_html__('Variation %u won', 'better-analytics'), $experiment['variationWinner']);
155
+ }
156
+ else
157
+ {
158
+ esc_html_e('Original won', 'better-analytics');
159
+ }
160
+
161
+ echo '</td>
162
+ </tr>';
163
+ }
164
+ }
165
+
166
+ ?>
167
+
168
 
169
 
170
  <tr valign="top">
193
 
194
  echo '<select name="objective_metric" data-placeholder="' . esc_html__('Pick objective metric', 'better-analytics') . '" id="ba_objective_metric" style="width:79%"' . $readOnly . '>';
195
 
196
+ $objectiveMetrics = DigitalPointBetterAnalytics_Model_Experiments::getObjectiveMetrics();
197
 
198
+ $total = 0;
199
+ $check = DigitalPointBetterAnalytics_Helper_Api::check();
 
200
 
201
+ foreach ($objectiveMetrics as $category => $metrics)
202
+ {
203
+ echo '<optgroup label="' . htmlentities($category) . '">';
204
+
205
+ foreach ($metrics as $metric => $name)
206
+ {
207
+ $total++;
208
+ echo '<option value="' . $metric . '"' . ($metric == @$experiment['objectiveMetric'] ? ' selected="selected"' : '') . ($total > 3 && !$check ? ' disabled="disabled"' : '') . '>' . htmlentities($name) . ($total > 3 && !$check ? ' ' . htmlentities(esc_html__('(Pro option)', 'better-analytics')) : '') . '</option>';
209
  }
210
+ echo '</optgroup>';
211
+ }
212
 
213
  echo '</select>';
214
 
267
 
268
 
269
  <?php
270
+ if (@$experiment['fromBetterAnalytics'])
271
  {
272
  ?>
273
 
284
 
285
  $allPages = get_pages();
286
 
287
+ echo '<select name="type" data-placeholder="' . esc_html__('Pick type', 'better-analytics') . '" id="ba_type"' . $readOnly . ' >';
288
 
289
  $types = array(
290
  'POST_TITLE' => array(
291
  'title' => esc_html__('Post Title', 'better-analytics'),
292
+ 'disabled' => (count($allPosts) == 0 || !current_user_can('edit_posts'))
293
  ),
294
  'PAGE_TITLE' => array(
295
  'title' => esc_html__('Page Title', 'better-analytics'),
296
+ 'disabled' => (count($allPages) == 0 || !current_user_can('edit_pages'))
297
  ),
298
  'CSS' => array(
299
  'title' => esc_html__('CSS', 'better-analytics'),
300
+ 'disabled' => !current_user_can('edit_themes')
301
  ),
302
  'THEME' => array(
303
  'title' => esc_html__('Theme', 'better-analytics'),
304
+ 'disabled' => !current_user_can('switch_themes')
305
  ),
306
  );
307
 
323
 
324
  <?php
325
 
326
+ echo '<select name="extra_data[post_title][post_id]" data-placeholder="' . esc_html__('Pick post', 'better-analytics') . '" id="ba_post_id"' . ($readOnly ? $readOnly : ' class="chosen-select"') . ' >';
327
 
328
  foreach ($allPosts as $post)
329
  {
346
  {
347
  foreach ($experiment['extraData']['post_title']['titles'] as $key => $variation)
348
  {
349
+ echo '<li><input type="text" name="extra_data[post_title][titles][]" class="regular-text" value="' . esc_attr($variation) .'" placeholder="' . esc_attr( esc_html__('Enter a post title variation here', 'better-analytics') ) . '"' . $readOnly . ' />';
350
 
351
+ if (!$readOnly)
352
+ {
353
+ echo '<a class="delete"><span class="dashicons dashicons-dismiss"></span></a>';
354
+ }
355
 
356
  echo '</li>';
357
  }
360
  {
361
  echo '<li><input type="text" name="extra_data[post_title][titles][]" class="regular-text" value="" placeholder="' . esc_attr( esc_html__('Enter a post title variation here', 'better-analytics') ) . '" />';
362
 
363
+ if (!$readOnly)
364
+ {
365
+ echo '<a class="delete"><span class="dashicons dashicons-dismiss"></span></a>';
366
+ }
367
 
368
  echo '</li>';
369
  }
370
  ?>
371
  </ol>
372
+ <?php
373
+ if (!$readOnly)
374
+ {
375
+ echo '<a id="new_post_title_variation" class="button variation_button">' . esc_html__('Add another title variation', 'better-analytics') . '</a>';
376
+ }
377
+ ?>
378
 
379
  </td>
380
  </tr>
387
 
388
  <?php
389
 
390
+ echo '<select name="extra_data[page_title][post_id]" data-placeholder="' . esc_html__('Pick page', 'better-analytics') . '" id="ba_page_id"' . ($readOnly ? $readOnly : ' class="chosen-select"') . ' >';
391
 
392
  foreach ($allPages as $page)
393
  {
410
  {
411
  foreach ($experiment['extraData']['page_title']['titles'] as $key => $variation)
412
  {
413
+ echo '<li><input type="text" name="extra_data[page_title][titles][]" class="regular-text" value="' . esc_attr($variation) .'" placeholder="' . esc_attr( esc_html__('Enter a page title variation here', 'better-analytics') ) . '"' . $readOnly . ' />';
414
 
415
+ if (!$readOnly)
416
+ {
417
+ echo '<a class="delete"><span class="dashicons dashicons-dismiss"></span></a>';
418
+ }
419
 
420
  echo '</li>';
421
  }
424
  {
425
  echo '<li><input type="text" name="extra_data[page_title][titles][]" class="regular-text" value="" placeholder="' . esc_attr( esc_html__('Enter a page title variation here', 'better-analytics') ) . '" />';
426
 
427
+ if (!$readOnly)
428
+ {
429
+ echo '<a class="delete"><span class="dashicons dashicons-dismiss"></span></a>';
430
+ }
431
 
432
  echo '</li>';
433
  }
434
  ?>
435
  </ol>
436
+
437
+ <?php
438
+ if (!$readOnly)
439
+ {
440
+ echo '<a id="new_page_title_variation" class="button variation_button">' . esc_html__('Add another title variation', 'better-analytics') . '</a>';
441
+ }
442
+ ?>
443
 
444
  </td>
445
  </tr>
462
  .something_else {
463
  padding: 5px 20px;
464
  color: green;
465
+ }"' . $readOnly . ' >' . esc_textarea(@$variation) . '</textarea>
466
+ ' . (!$readOnly ? '<a class="delete"><span class="dashicons dashicons-dismiss"></span></a>' : '') . '
 
467
  </li>';
468
  }
469
  }
477
  .something_else {
478
  padding: 5px 20px;
479
  color: green;
480
+ }"' . $readOnly . ' ></textarea>
481
+ ' . (!$readOnly ? '<a class="delete"><span class="dashicons dashicons-dismiss"></span></a>' : '') . '
 
482
  </li>';
483
  }
484
  ?>
485
  </ol>
 
486
 
487
+ <?php
488
+ if (!$readOnly)
489
+ {
490
+ echo '<a id="new_css_variation" class="button variation_button">' . esc_html__('Add another CSS variation', 'better-analytics') . '</a>';
491
+ }
492
+ ?>
493
  </td>
494
  </tr>
495
 
507
  $currentTheme = wp_get_theme();
508
  $currentThemeTextDomain = $currentTheme->get('TextDomain');
509
 
510
+ if (is_array(@$experiment['extraData']['theme']['themes']))
511
  {
512
+ foreach ($experiment['extraData']['theme']['themes'] as $key => $variation)
513
  {
514
  echo '<li>';
515
 
578
  $errorMessage = array();
579
 
580
  $experimentObject = array(
581
+ 'status' => sanitize_text_field(@$_POST['status']),
582
  'servingFramework' => 'API',
583
  'editableInGaUi' => false,
584
  );
713
  $errorMessage[] = esc_html__('Experiment name is required.', 'better-analytics');
714
  }
715
 
 
 
 
 
 
 
 
 
 
 
 
 
 
716
  if (!$errorMessage && $profile = $reportingClass->getProfileByProfileId(@$betterAnalyticsOptions['api']['profile']))
717
  {
718
  if ($experimentId)
719
  {
 
 
720
  $experiment = $reportingClass->patchExperiment($profile['accountId'], $profile['webPropertyId'], $profile['id'], $experimentId, $experimentObject);
721
  }
722
  else
723
  {
 
 
 
724
  $experiment = $reportingClass->insertExperiment($profile['accountId'], $profile['webPropertyId'], $profile['id'], $experimentObject);
725
  }
726
 
730
  $reportingClass->deleteExperimentCache($profile['accountId'], $profile['webPropertyId'], $profile['id'], $experiment['id']);
731
  }
732
 
 
 
733
  if ($experimentId)
734
  {
735
  /* translators: %1$s = <strong>, %2$s = </strong> */
742
  }
743
  }
744
  }
745
+ }
746
+ elseif ($experiment && (@$_REQUEST['action'] == 'start' || @$_REQUEST['action'] == 'end' || @$_REQUEST['action'] == 'delete'))
747
+ {
748
+ $reportingClass->deleteExperimentCache($experiment['accountId'], $experiment['webPropertyId'], $experiment['profileId']);
749
+ $reportingClass->deleteExperimentCache($experiment['accountId'], $experiment['webPropertyId'], $experiment['profileId'], $experimentId);
750
+
751
+ if (@$_REQUEST['action'] == 'start')
752
+ {
753
+ $experiment = $reportingClass->patchExperiment($experiment['accountId'], $experiment['webPropertyId'], $experiment['profileId'], $experimentId, array('status' => 'RUNNING'));
754
+
755
+ /* translators: %1$s = <strong>, %2$s = </strong> */
756
+ $noticeAtTop = '<div id="message" class="updated notice is-dismissible"><p>' . sprintf(esc_html__('Experiment %1$sstarted%2$s.'), '<strong>', '</strong>') . '</p></div>';
757
+ }
758
+ elseif (@$_REQUEST['action'] == 'end')
759
+ {
760
+ $experiment = $reportingClass->patchExperiment($experiment['accountId'], $experiment['webPropertyId'], $experiment['profileId'], $experimentId, array('status' => 'ENDED'));
761
 
762
+ /* translators: %1$s = <strong>, %2$s = </strong> */
763
+ $noticeAtTop = '<div id="message" class="updated notice is-dismissible"><p>' . sprintf(esc_html__('Experiment %1$sended%2$s.'), '<strong>', '</strong>') . '</p></div>';
764
+ }
765
+ elseif (@$_REQUEST['action'] == 'delete')
766
+ {
767
+ $reportingClass->deleteExperiment($experiment['accountId'], $experiment['webPropertyId'], $experiment['profileId'], $experimentId);
768
+
769
+ /* translators: %1$s = <strong>, %2$s = </strong> */
770
+ $noticeAtTop = '<div id="message" class="updated notice is-dismissible"><p>' . sprintf(esc_html__('Experiment %1$sdeleted%2$s.'), '<strong>', '</strong>') . '</p></div>';
771
+ }
772
  }
773
 
774
  if (@$_REQUEST['action'] != 'create_edit' || @$_SERVER['REQUEST_METHOD'] == 'POST')
816
  echo '<div id="message" class="updated notice is-dismissible"><p>' . sprintf(esc_html__('Selected experiments %1$sdeactivated%2$s.'), '<strong>', '</strong>') . '</p></div>';
817
  }
818
 
819
+ global $totals;
820
+
821
+ $experiments = $totals = array();
822
+
823
+ if ($profile = $reportingClass->getProfileByProfileId($betterAnalyticsOptions['api']['profile']))
824
+ {
825
+ $experiments = DigitalPointBetterAnalytics_Model_Experiments::getAllExperiments($profile['accountId'], $profile['webPropertyId'], $profile['id']);
826
+
827
+ $totals = DigitalPointBetterAnalytics_Model_Reporting::getExperimentTotals($experiments);
828
+ }
829
  $goalTable = new DigitalPointBetterAnalytics_Formatting_ExperimentTable(array('plural' => 'experiments', 'experiments' => $experiments));
830
 
831
  $goalTable->prepare_items();
library/DigitalPointBetterAnalytics/ViewAdmin/test.php CHANGED
@@ -577,6 +577,11 @@
577
  printf(esc_html__('More %1$sissue monitoring options%2$s', 'better_analytics'), '<a href="' . esc_url(menu_page_url('better-analytics', false) . '#top#monitor') . '" target="_blank">', '</a>');
578
  ?>
579
  </li>
 
 
 
 
 
580
  <li>
581
  <?php
582
  printf(esc_html__('%1$seCommerce tracking%2$s', 'better_analytics'), '<a href="' . esc_url(menu_page_url('better-analytics', false) . '#top#ecommerce') . '" target="_blank">', '</a>');
577
  printf(esc_html__('More %1$sissue monitoring options%2$s', 'better_analytics'), '<a href="' . esc_url(menu_page_url('better-analytics', false) . '#top#monitor') . '" target="_blank">', '</a>');
578
  ?>
579
  </li>
580
+ <li>
581
+ <?php
582
+ printf(esc_html__('More %1$sContent Experiment (A/B Testing) options%2$s', 'better_analytics'), '<a href="' . esc_url(menu_page_url('better-analytics_experiments', false)) . '" target="_blank">', '</a>');
583
+ ?>
584
+ </li>
585
  <li>
586
  <?php
587
  printf(esc_html__('%1$seCommerce tracking%2$s', 'better_analytics'), '<a href="' . esc_url(menu_page_url('better-analytics', false) . '#top#ecommerce') . '" target="_blank">', '</a>');
readme.txt CHANGED
@@ -1,10 +1,10 @@
1
  === Better Google Analytics ===
2
  Contributors: digitalpoint
3
- Tags: analytics, google analytics, universal analytics, statistics, tracking, code, dashboard, analytics dashboard, google analytics dashboard, google analytics plugin, google analytics widget, reports, charts, multisite, api, stats, web stats, visits, javascript, pageviews, marketing, widget, realtime, real time, youtube, outbrain, taboola, adsense, twitter, pinterest, linkedin, facebook, google, digitalpoint
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.3.0
7
- Stable tag: 1.0.10
8
  License: GPLv2
9
  License URI: https://www.gnu.org/licenses/gpl-2.0.html
10
 
@@ -25,6 +25,7 @@ Better Google Analytics utilizes all the latest and greatest features of Google
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
 
@@ -41,6 +42,8 @@ Better Google Analytics uses lightweight (and client-side cacheable) JavaScript
41
  * Emails Sent/Opened
42
  * External Link Clicks
43
  * File Downloads
 
 
44
  * Anonymize IPs
45
  * Demographic & Interest
46
  * Force Google Analytics Traffic Over SSL
@@ -97,6 +100,7 @@ Better Google Analytics uses lightweight (and client-side cacheable) JavaScript
97
  > * More options for site issue monitoring
98
  > * More heat map metrics
99
  > * More charting dimensions
 
100
  > * eCommerce tracking (coming soon)
101
  > * Option for server-side tracking of users (or bots)
102
  > * Faster Google Analytics API calls (uses a custom system for parallel requests)
@@ -128,9 +132,15 @@ You need a WordPress site (of course), running WordPress 3.8 or higher and a Goo
128
  = Can Better Google Analytics be used with legacy Google Analytics code? =
129
  No, the Better Google Analytics plugin is for Google Universal Analytics. You can upgrade any old non-Universal Google Analytics property to support both legacy and Universal under your [Google Analytics Property Settings](https://www.google.com/analytics/web/?#management/Settings/).
130
 
 
 
 
131
  = Can you add [insert feature here] to Better Google Analytics? =
132
  If it's possible and it makes sense, then yes. The best way to put in a feature request for Better Google Analytics would be to create a thread in the [support forum over here](https://forums.digitalpoint.com/forums/better-analytics.31/#utm_source=readme&utm_medium=wordpress&utm_campaign=plugin).
133
 
 
 
 
134
  = I speak a language that isn't supported by Better Google Analytics, can I help translate it? =
135
  Yes. Unfortunately we don't speak every language in the world, so if you would like to help with translating the Better Google Analytics plugin, please contact us in the [support forum over here](https://forums.digitalpoint.com/forums/better-analytics.31/#utm_source=readme&utm_medium=wordpress&utm_campaign=plugin).
136
 
@@ -175,14 +185,33 @@ Thank you to all the individuals who have contributed translations for Better Go
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.10 =
187
  * Change: Removed async attribute from script tag for better compatibility with certain themes
188
  * Enhancement: Set Google Analytics sample rate to 100 if something internal to WordPress removes that setting somehow
1
  === Better Google Analytics ===
2
  Contributors: digitalpoint
3
+ Tags: analytics, google analytics, universal analytics, statistics, tracking, code, dashboard, analytics dashboard, google analytics dashboard, google analytics plugin, google analytics widget, reports, charts, multisite, api, stats, web stats, visits, javascript, pageviews, marketing, widget, realtime, real time, youtube, outbrain, taboola, adsense, twitter, pinterest, linkedin, facebook, google, digitalpoint, ab testing, ab tests, split testing, google analytics content experiments, content experiments
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.3.0
7
+ Stable tag: 1.1.0
8
  License: GPLv2
9
  License URI: https://www.gnu.org/licenses/gpl-2.0.html
10
 
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
+ > * Google Analytics Experiment Management allows you to run A/B (split) testing variations easily
29
 
30
  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.
31
 
42
  * Emails Sent/Opened
43
  * External Link Clicks
44
  * File Downloads
45
+ * Page Scroll Percent
46
+ * Time On Page
47
  * Anonymize IPs
48
  * Demographic & Interest
49
  * Force Google Analytics Traffic Over SSL
100
  > * More options for site issue monitoring
101
  > * More heat map metrics
102
  > * More charting dimensions
103
+ > * More objective metrics for A/B tests (Google Analytics Content Experiments)
104
  > * eCommerce tracking (coming soon)
105
  > * Option for server-side tracking of users (or bots)
106
  > * Faster Google Analytics API calls (uses a custom system for parallel requests)
132
  = Can Better Google Analytics be used with legacy Google Analytics code? =
133
  No, the Better Google Analytics plugin is for Google Universal Analytics. You can upgrade any old non-Universal Google Analytics property to support both legacy and Universal under your [Google Analytics Property Settings](https://www.google.com/analytics/web/?#management/Settings/).
134
 
135
+ = What do I do with the JavaScript code that Google gives me from within my Google Analytics account? =
136
+ Nothing. Better Google Analytics handles all the JavaScript code generation internally. If you want to add your own custom JavaScript, there is an option for that under the Advanced settings.
137
+
138
  = Can you add [insert feature here] to Better Google Analytics? =
139
  If it's possible and it makes sense, then yes. The best way to put in a feature request for Better Google Analytics would be to create a thread in the [support forum over here](https://forums.digitalpoint.com/forums/better-analytics.31/#utm_source=readme&utm_medium=wordpress&utm_campaign=plugin).
140
 
141
+ = How does the A/B testing system work with Google Analytics Content Experiments? =
142
+ The Google Analytics Content Experiments are run automatically on the server-side, so there is no special configuration or JavaScript you need to be injecting. You also don't need to make duplicate pages with your variations. We've simplified it so anyone can easily run A/B testing on their site with Google Analytics Content Experiments.
143
+
144
  = I speak a language that isn't supported by Better Google Analytics, can I help translate it? =
145
  Yes. Unfortunately we don't speak every language in the world, so if you would like to help with translating the Better Google Analytics plugin, please contact us in the [support forum over here](https://forums.digitalpoint.com/forums/better-analytics.31/#utm_source=readme&utm_medium=wordpress&utm_campaign=plugin).
146
 
185
  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.
186
  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.
187
  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.
188
+ 17. Better Google Analytics includes a fully integrated system for managing Google Analytics Content Experiments (split or A/B testing).
189
+ 18. A Google Analytics Content Experiment showing CSS variations where the site owner is looking for the variation that yields the most page views.
190
+ 19. A Google Analytics Content Experiment setup to utilize different WordPress themes to determine which variation results in the most AdSense ads being clicked.
191
+ 20. Google Analytics Content Experiments can be used to run variations of the title of any individual post/page.
192
+ 21. Better Google Analytics General settings allows you to enable/disable all sorts of tracking features in your Google Analytics account.
193
+ 22. Google Google Analytics custom dimension tracking allows you to track categories, authors, tags, publication year, user roles and registered users.
194
+ 23. Social button engagement allows you to track things like Likes/Unlikes/Tweets/Shares right within your Google Analytics account.
195
+ 24. Track clicks on the ads on your site within your Google Analytics account.
196
+ 25. Issue monitoring settings allow you to utilize your Google Analytics account to keep on top of client-side issues with your site.
197
+ 26. Advanced settings allow you to fine tune how the system works with Google Analytics.
198
 
199
  == Changelog ==
200
+ = 1.1.0 =
201
+ * Feature: Google Analytics Content Experiments (A/B Testing) for post titles, page titles, CSS and themes
202
+ * Feature: Google Analytics Event tracking for Page Scroll Percent (percentage of the page a user scrolled down before they left the page)
203
+ * Feature: Google Analytics Event tracking for Time On Page (the number of seconds the user stayed on the page)
204
+ * Security: Added user role checking for each type of Google Analytics Content Experiments
205
+ * Change: Removed option to put Google Analytics code in the page header (needs to be in the footer for the new Google Analytics Content Experiments to work)
206
+ * Change: Individual Google Analytics Goals that are being activated/deactivated, rely on WordPress's internal function to hide _wpnonce URL variable
207
+ * Enhancement: Compiled version of live Google Analytics Content Experiments are automatically rebuilt hourly via cron (for multi-armed bandit experiments with variable weighting)
208
+ * Enhancement: Check if the object returned from making an HTTP request is a WP_Error object and display the error message if so
209
+ * Enhancement: Admin top menu bar shows the number of running Google Analytics Content Experiments when there are any
210
+ * Usability: Added title attribute on admin menu for screen readers
211
+ * Bug: Issue where secondary bulk actions drop-down at bottom of Google Analytics Goal management table wouldn't work
212
+ * Bug: Issue where the "Add Variation" button would sometimes not do anything when creating new Google Analytics Content Experiments
213
+ * Bug: Cosmetic issue with green border for enabled Google Analytics Goals on the display table
214
+
215
  = 1.0.10 =
216
  * Change: Removed async attribute from script tag for better compatibility with certain themes
217
  * Enhancement: Set Google Analytics sample rate to 100 if something internal to WordPress removes that setting somehow