diff options
121 files changed, 1783 insertions, 1301 deletions
diff --git a/composer.lock b/composer.lock index ecb39c7532..aa1d177503 100644 --- a/composer.lock +++ b/composer.lock @@ -1236,16 +1236,16 @@ }, { "name": "piwik/device-detector", - "version": "3.12.4", + "version": "3.12.5", "source": { "type": "git", "url": "https://github.com/matomo-org/device-detector.git", - "reference": "6a92e45a55eb507f53581e9add7dc82835ad6424" + "reference": "8b0143211dd4496d86d3b1a6c8857a4d2014bbca" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/matomo-org/device-detector/zipball/6a92e45a55eb507f53581e9add7dc82835ad6424", - "reference": "6a92e45a55eb507f53581e9add7dc82835ad6424", + "url": "https://api.github.com/repos/matomo-org/device-detector/zipball/8b0143211dd4496d86d3b1a6c8857a4d2014bbca", + "reference": "8b0143211dd4496d86d3b1a6c8857a4d2014bbca", "shasum": "" }, "require": { @@ -1287,7 +1287,7 @@ "parser", "useragent" ], - "time": "2020-03-31T08:53:12+00:00" + "time": "2020-04-29T12:12:31+00:00" }, { "name": "psr/container", diff --git a/core/Concurrency/Lock.php b/core/Concurrency/Lock.php index 360c771828..2019c2955f 100644 --- a/core/Concurrency/Lock.php +++ b/core/Concurrency/Lock.php @@ -8,11 +8,14 @@ */ namespace Piwik\Concurrency; +use Piwik\ArchiveProcessor\ArchivingStatus; use Piwik\Common; +use Piwik\Date; class Lock { const MAX_KEY_LEN = 70; + const DEFAULT_TTL = 60; /** * @var LockBackend @@ -24,18 +27,28 @@ class Lock private $lockKey = null; private $lockValue = null; private $defaultTtl = null; + private $lastExpireTime = null; public function __construct(LockBackend $backend, $lockKeyStart, $defaultTtl = null) { $this->backend = $backend; $this->lockKeyStart = $lockKeyStart; $this->lockKey = $this->lockKeyStart; - $this->defaultTtl = $defaultTtl; + $this->defaultTtl = $defaultTtl ?: self::DEFAULT_TTL; } public function reexpireLock() { - $this->expireLock($this->defaultTtl); + $timeBetweenReexpires = $this->defaultTtl - ($this->defaultTtl / 4); + + $now = Date::getNowTimestamp(); + if (!empty($this->lastExpireTime) && + $now <= $this->lastExpireTime + $timeBetweenReexpires + ) { + return false; + } + + return $this->expireLock($this->defaultTtl); } public function getNumberOfAcquiredLocks() @@ -81,6 +94,8 @@ class Lock if ($locked) { $this->lockValue = $lockValue; + $this->ttlUsed = $ttlInSeconds; + $this->lastExpireTime = Date::getNowTimestamp(); } return $locked; @@ -125,6 +140,8 @@ class Lock return false; } + $this->lastExpireTime = Date::getNowTimestamp(); + return true; } else { Common::printDebug('Lock is not acquired, cannot update expiration.'); diff --git a/core/DataAccess/ArchivingDbAdapter.php b/core/DataAccess/ArchivingDbAdapter.php index 9e1602d1db..b6d6c14a43 100644 --- a/core/DataAccess/ArchivingDbAdapter.php +++ b/core/DataAccess/ArchivingDbAdapter.php @@ -31,11 +31,6 @@ class ArchivingDbAdapter */ private $logger; - /** - * @var int - */ - private $lastReexpireTime = null; - public function __construct($wrapped, Lock $archivingLock = null, LoggerInterface $logger = null) { $this->wrapped = $wrapped; @@ -107,11 +102,7 @@ class ArchivingDbAdapter private function reexpireLock() { if ($this->archivingLock) { - $timeBetweenReexpires = ArchivingStatus::DEFAULT_ARCHIVING_TTL / 4; - if ($this->lastReexpireTime + $timeBetweenReexpires < time()) { - $this->archivingLock->reexpireLock(); - $this->lastReexpireTime = time(); - } + $this->archivingLock->reexpireLock(); } } }
\ No newline at end of file diff --git a/core/DataAccess/Model.php b/core/DataAccess/Model.php index 9dbe315531..20bf53a129 100644 --- a/core/DataAccess/Model.php +++ b/core/DataAccess/Model.php @@ -68,7 +68,7 @@ class Model WHERE name LIKE 'done%' AND ts_archived IS NOT NULL AND `value` NOT IN (" . ArchiveWriter::DONE_ERROR . ") - GROUP BY idsite, date1, date2, period, name"; + GROUP BY idsite, date1, date2, period, name HAVING count(*) > 1"; $archiveIds = array(); diff --git a/core/Profiler.php b/core/Profiler.php index 58007a3a29..121c2c09b4 100644 --- a/core/Profiler.php +++ b/core/Profiler.php @@ -270,6 +270,17 @@ class Profiler $outputDir . DIRECTORY_SEPARATOR . $runId . '.' . $profilerNamespace . '.xhprof', serialize($xhprofData) ); + $meta = array('time' => time(), 'instance' => SettingsPiwik::getPiwikInstanceId()); + if (!empty($_GET)) { + $meta['get'] = $_GET; + } + if (!empty($_POST)) { + $meta['post'] = $_POST; + } + file_put_contents( + $outputDir . DIRECTORY_SEPARATOR . $runId . '.' . $profilerNamespace . '.meta', + serialize($meta) + ); } if (empty($runId)) { diff --git a/core/Tracker/GoalManager.php b/core/Tracker/GoalManager.php index a92593a648..86c01baae1 100644 --- a/core/Tracker/GoalManager.php +++ b/core/Tracker/GoalManager.php @@ -879,12 +879,20 @@ class GoalManager { $lastVisitTime = $visitProperties->getProperty('visit_last_action_time'); if (!$lastVisitTime) { - $lastVisitTime = $request->getCurrentTimestamp(); + $lastVisitTime = $request->getCurrentTimestamp(); // fallback in case visit_last_action_time is not set } + + if (!empty($lastVisitTime) && is_numeric($lastVisitTime)) { + // visit last action time might be 2020-05-05 00:00:00 + // we want it to prevent this being converted to a timestamp of 2020 + // resulting in some day in 1970 + $lastVisitTime = Date::getDatetimeFromTimestamp($lastVisitTime); + } + $goal = array( 'idvisit' => $visitProperties->getProperty('idvisit'), 'idvisitor' => $visitProperties->getProperty('idvisitor'), - 'server_time' => Date::getDatetimeFromTimestamp($lastVisitTime), + 'server_time' => $lastVisitTime, ); $visitDimensions = VisitDimension::getAllDimensions(); diff --git a/core/Tracker/PageUrl.php b/core/Tracker/PageUrl.php index a4f04d1179..7bf7b9bb92 100644 --- a/core/Tracker/PageUrl.php +++ b/core/Tracker/PageUrl.php @@ -32,17 +32,18 @@ class PageUrl * Given the Input URL, will exclude all query parameters set for this site * * @static - * @param $originalUrl + * @param string $originalUrl * @param $idSite + * @param array $additionalParametersToExclude * @return bool|string Returned URL is HTML entities decoded */ - public static function excludeQueryParametersFromUrl($originalUrl, $idSite) + public static function excludeQueryParametersFromUrl($originalUrl, $idSite, $additionalParametersToExclude = []) { $originalUrl = self::cleanupUrl($originalUrl); $parsedUrl = @parse_url($originalUrl); $parsedUrl = self::cleanupHostAndHashTag($parsedUrl, $idSite); - $parametersToExclude = self::getQueryParametersToExclude($idSite); + $parametersToExclude = array_merge(self::getQueryParametersToExclude($idSite), $additionalParametersToExclude); if (empty($parsedUrl['query'])) { if (empty($parsedUrl['fragment'])) { diff --git a/core/Tracker/Visit.php b/core/Tracker/Visit.php index 9370600d99..f9c845737d 100644 --- a/core/Tracker/Visit.php +++ b/core/Tracker/Visit.php @@ -244,6 +244,15 @@ class Visit implements VisitInterface $processor->onExistingVisit($valuesToUpdate, $this->visitProperties, $this->request); } + // we we remove values that haven't actually changed and are still the same when comparing to the initially + // selected visit row. In best case this avoids the update completely. Eg when there is a bulk tracking request + // of many content impressions. Then it will update the visit in the first request of the bulk request, and + // all other visits that have same visit_last_action_time etc will be ignored and won't issue an update SQL + // statement at all avoiding potential lock wait time when too many requests try to update the same visit at + // same time + $visitorRecognizer = StaticContainer::get(VisitorRecognizer::class); + $valuesToUpdate = $visitorRecognizer->removeUnchangedValues($this->visitProperties, $valuesToUpdate); + $this->updateExistingVisit($valuesToUpdate); $this->visitProperties->setProperty('visit_last_action_time', $this->request->getCurrentTimestamp()); @@ -549,8 +558,7 @@ class Visit implements VisitInterface { // Might update the idvisitor when it was forced or overwritten for this visit if (strlen($this->visitProperties->getProperty('idvisitor')) == Tracker::LENGTH_BINARY_ID) { - $binIdVisitor = $this->visitProperties->getProperty('idvisitor'); - $valuesToUpdate['idvisitor'] = $binIdVisitor; + $valuesToUpdate['idvisitor'] = $this->visitProperties->getProperty('idvisitor'); } return $valuesToUpdate; diff --git a/core/Tracker/VisitorRecognizer.php b/core/Tracker/VisitorRecognizer.php index dc1655bb63..e241384419 100644 --- a/core/Tracker/VisitorRecognizer.php +++ b/core/Tracker/VisitorRecognizer.php @@ -20,6 +20,12 @@ use Piwik\Tracker\Visit\VisitProperties; class VisitorRecognizer { /** + * Set when a visit was found. Stores the original values of the row that is currently stored in the DB when + * the visit was selected. + */ + const KEY_ORIGINAL_VISIT_ROW = 'originalVisit'; + + /** * Local variable cache for the getVisitFieldsPersist() method. * * @var array @@ -105,6 +111,7 @@ class VisitorRecognizer if ($visitRow && count($visitRow) > 0 ) { + $visitProperties->setProperty(self::KEY_ORIGINAL_VISIT_ROW, $visitRow); $visitProperties->setProperty('idvisitor', $visitRow['idvisitor']); $visitProperties->setProperty('user_id', $visitRow['user_id']); @@ -121,6 +128,35 @@ class VisitorRecognizer } } + public function removeUnchangedValues(VisitProperties $visitProperties, $visit) + { + $originalRow = $visitProperties->getProperty(self::KEY_ORIGINAL_VISIT_ROW); + + if (empty($originalRow)) { + return $visit; + } + + if (!empty($originalRow['idvisitor']) + && !empty($visit['idvisitor']) + && bin2hex($originalRow['idvisitor']) === bin2hex($visit['idvisitor'])) { + unset($visit['idvisitor']); + } + + $fieldsToCompareValue = array('user_id', 'visit_last_action_time', 'visit_total_time'); + foreach ($fieldsToCompareValue as $field) { + if (!empty($originalRow[$field]) + && !empty($visit[$field]) + && $visit[$field] == $originalRow[$field]) { + // we can't use === eg for visit_total_time which may be partially an integer and sometimes a string + // because we check for !empty things should still work as expected though + // (eg we wouldn't compare false with 0) + unset($visit[$field]); + } + } + + return $visit; + } + public function updateVisitPropertiesFromLastVisitRow(VisitProperties $visitProperties) { // These values will be used throughout the request diff --git a/js/piwik.js b/js/piwik.js index dfadf4de72..baaa79a34f 100644 --- a/js/piwik.js +++ b/js/piwik.js @@ -76,7 +76,7 @@ addListener, enableLinkTracking, enableJSErrorTracking, setLinkTrackingTimer, getLinkTrackingTimer, enableHeartBeatTimer, disableHeartBeatTimer, killFrame, redirectFile, setCountPreRendered, setVisitStandardLength, trackGoal, trackLink, trackPageView, getNumTrackedPageViews, trackRequest, ping, queueRequest, trackSiteSearch, trackEvent, - requests, timeout, enabled, sendRequests, queueRequest, disableQueueRequest,setRequestQueueInterval,interval,getRequestQueue, unsetPageIsUnloading, + requests, timeout, enabled, sendRequests, queueRequest, canQueue, pushMultiple, disableQueueRequest,setRequestQueueInterval,interval,getRequestQueue, unsetPageIsUnloading, setEcommerceView, getEcommerceItems, addEcommerceItem, removeEcommerceItem, clearEcommerceCart, trackEcommerceOrder, trackEcommerceCartUpdate, deleteCookie, deleteCookies, offsetTop, offsetLeft, offsetHeight, offsetWidth, nodeType, defaultView, innerHTML, scrollLeft, scrollTop, currentStyle, getComputedStyle, querySelectorAll, splice, @@ -4745,11 +4745,25 @@ if (typeof window.Piwik !== 'object') { sendBulkRequest(requestsToTrack, configTrackerPause); } }, + canQueue: function () { + return !isPageUnloading && this.enabled; + }, + pushMultiple: function (requests) { + if (!this.canQueue()) { + sendBulkRequest(requests, configTrackerPause); + return; + } + + var i; + for (i = 0; i < requests.length; i++) { + this.push(requests[i]); + } + }, push: function (requestUrl) { if (!requestUrl) { return; } - if (isPageUnloading || !this.enabled) { + if (!this.canQueue()) { // we don't queue as we need to ensure the request will be sent when the page is unloading... sendRequest(requestUrl, configTrackerPause); return; @@ -5844,6 +5858,9 @@ if (typeof window.Piwik !== 'object') { trackCallbackOnReady(function () { addClickListeners(enable, self); }); + trackCallbackOnLoad(function () { + addClickListeners(enable, self); + }); }); }; @@ -6052,7 +6069,7 @@ if (typeof window.Piwik !== 'object') { var contentNodes = content.findContentNodes(); var requests = getContentImpressionsRequestsFromNodes(contentNodes); - sendBulkRequest(requests, configTrackerPause); + requestQueue.pushMultiple(requests); }); }); }; @@ -6112,7 +6129,7 @@ if (typeof window.Piwik !== 'object') { var contentNodes = content.findContentNodes(); var requests = getCurrentlyVisibleContentImpressionsRequestsIfNotTrackedYet(contentNodes); - sendBulkRequest(requests, configTrackerPause); + requestQueue.pushMultiple(requests); }); }); }; @@ -6142,7 +6159,7 @@ if (typeof window.Piwik !== 'object') { trackCallback(function () { var request = buildContentImpressionRequest(contentName, contentPiece, contentTarget); - sendRequest(request, configTrackerPause); + requestQueue.push(request); }); }; @@ -6166,7 +6183,7 @@ if (typeof window.Piwik !== 'object') { var contentNodes = content.findContentNodesWithinNode(domNode); var requests = getCurrentlyVisibleContentImpressionsRequestsIfNotTrackedYet(contentNodes); - sendBulkRequest(requests, configTrackerPause); + requestQueue.pushMultiple(requests); }); } else { trackCallbackOnReady(function () { @@ -6174,7 +6191,7 @@ if (typeof window.Piwik !== 'object') { var contentNodes = content.findContentNodesWithinNode(domNode); var requests = getContentImpressionsRequestsFromNodes(contentNodes); - sendBulkRequest(requests, configTrackerPause); + requestQueue.pushMultiple(requests); }); } }); @@ -6209,7 +6226,7 @@ if (typeof window.Piwik !== 'object') { trackCallback(function () { var request = buildContentInteractionRequest(contentInteraction, contentName, contentPiece, contentTarget); if (request) { - sendRequest(request, configTrackerPause); + requestQueue.push(request); } }); }; @@ -6238,7 +6255,7 @@ if (typeof window.Piwik !== 'object') { trackCallback(function () { theRequest = buildContentInteractionRequestNode(domNode, contentInteraction); if (theRequest) { - sendRequest(theRequest, configTrackerPause); + requestQueue.push(theRequest); } }); //note: return value is only for tests... will only work if dom is already ready... diff --git a/js/piwik.min.js b/js/piwik.min.js index 07987b806b..f8c695a390 100644 --- a/js/piwik.min.js +++ b/js/piwik.min.js @@ -49,22 +49,22 @@ di--}}if(!dj||!dj.length){return[]}return cz(dj)}function aG(dk,di,dj){var dl=v. if(dj){dn+="&"+dj}var dm=cs(dn,dq,"link");bF(dm,bJ,dp)}function bU(dj,di){if(dj!==""){return dj+di.charAt(0).toUpperCase()+di.slice(1)}return di}function ch(dn){var dm,di,dl=["","webkit","ms","moz"],dk;if(!be){for(di=0;di<dl.length;di++){dk=dl[di];if(Object.prototype.hasOwnProperty.call(G,bU(dk,"hidden"))){if(G[bU(dk,"visibilityState")]==="prerender"){dm=true}break}}}if(dm){an(G,dk+"visibilitychange",function dj(){G.removeEventListener(dk+"visibilitychange",dj,false);dn()});return}dn()}function br(){var dj=aY().uuid;var di=aJ();return dj+di}function cj(di){if(!di){return}if(!ae.hasNodeAttribute(di,"href")){return}var dj=ae.getAttributeValueFromNode(di,"href");if(!dj||aU(dj)){return}dj=k(dj,av);var dk=br();dj=F(dj,av,dk);ae.setAnyAttribute(di,"href",dj)}function aB(dl){var dm=ae.getAttributeValueFromNode(dl,"href");if(!dm){return false}dm=String(dm);var dj=dm.indexOf("//")===0||dm.indexOf("http://")===0||dm.indexOf("https://")===0;if(!dj){return false}var di=dl.pathname||cl(dl.href);var dk=(dl.hostname||d(dl.href)).toLowerCase(); if(ar(dk,di)){if(!cG(cT,L(dk))){return true}return false}return false}function cF(di){var dj=db(di);if(dj&&dj.type){dj.href=p(dj.href);c0(dj.href,dj.type,undefined,null,di);return}if(cM){di=au(di);if(aB(di)){cj(di)}}}function cv(){return G.all&&!G.addEventListener}function cU(di){var dk=di.which;var dj=(typeof di.button);if(!dk&&dj!=="undefined"){if(cv()){if(di.button&1){dk=1}else{if(di.button&2){dk=3}else{if(di.button&4){dk=2}}}}else{if(di.button===0||di.button==="0"){dk=1}else{if(di.button&1){dk=2}else{if(di.button&2){dk=3}}}}}return dk}function bT(di){switch(cU(di)){case 1:return"left";case 2:return"middle";case 3:return"right"}}function a1(di){return di.target||di.srcElement}function aC(di){return function(dl){dl=dl||T.event;var dk=bT(dl);var dm=a1(dl);if(dl.type==="click"){var dj=false;if(di&&dk==="middle"){dj=true}if(dm&&!dj){cF(dm)}}else{if(dl.type==="mousedown"){if(dk==="middle"&&dm){aR=dk;bA=dm}else{aR=bA=null}}else{if(dl.type==="mouseup"){if(dk===aR&&dm===bA){cF(dm)}aR=bA=null }else{if(dl.type==="contextmenu"){cF(dm)}}}}}}function aq(dk,dj){var di=typeof dj;if(di==="undefined"){dj=true}an(dk,"click",aC(dj),false);if(dj){an(dk,"mouseup",aC(dj),false);an(dk,"mousedown",aC(dj),false);an(dk,"contextmenu",aC(dj),false)}}function bD(dk,dm){ap=true;var dl,dj=a0(bz,"ignore"),dn=G.links,di=null,dp=null;if(dn){for(dl=0;dl<dn.length;dl++){di=dn[dl];if(!dj.test(di.className)){dp=typeof di.piwikTrackers;if("undefined"===dp){di.piwikTrackers=[]}if(-1===M(di.piwikTrackers,dm)){di.piwikTrackers.push(dm);aq(di,dk)}}}}}function aS(dj,dm,dn){if(cf){return true}cf=true;var dp=false;var dl,dk;function di(){dp=true}n(function(){function dq(ds){setTimeout(function(){if(!cf){return}dp=false;dn.trackVisibleContentImpressions();dq(ds)},ds)}function dr(ds){setTimeout(function(){if(!cf){return}if(dp){dp=false;dn.trackVisibleContentImpressions()}dr(ds)},ds)}if(dj){dl=["scroll","resize"];for(dk=0;dk<dl.length;dk++){if(G.addEventListener){G.addEventListener(dl[dk],di,false)}else{T.attachEvent("on"+dl[dk],di) -}}dr(100)}if(dm&&dm>0){dm=parseInt(dm,10);dq(dm)}})}var bC={enabled:true,requests:[],timeout:null,interval:2500,sendRequests:function(){var di=this.requests;this.requests=[];if(di.length===1){bF(di[0],bJ)}else{de(di,bJ)}},push:function(di){if(!di){return}if(m||!this.enabled){bF(di,bJ);return}bC.requests.push(di);if(this.timeout){clearTimeout(this.timeout);this.timeout=null}this.timeout=setTimeout(function(){bC.timeout=null;bC.sendRequests()},bC.interval);var dj="RequestQueue"+aw;if(!Object.prototype.hasOwnProperty.call(b,dj)){b[dj]={unload:function(){if(bC.timeout){clearTimeout(bC.timeout)}bC.sendRequests()}}}}};bi();aM();this.hasConsent=function(){return bB};this.getVisitorId=function(){return aY().uuid};this.getVisitorInfo=function(){return cN()};this.getAttributionInfo=function(){return bM()};this.getAttributionCampaignName=function(){return bM()[0]};this.getAttributionCampaignKeyword=function(){return bM()[1]};this.getAttributionReferrerTimestamp=function(){return bM()[2]};this.getAttributionReferrerUrl=function(){return bM()[3] -};this.setTrackerUrl=function(di){aE=di};this.getTrackerUrl=function(){return aE};this.getPiwikUrl=function(){return O(this.getTrackerUrl(),bH)};this.addTracker=function(di,dk){if(!J(di)||null===di){di=this.getTrackerUrl()}var dj=new Q(di,dk);I.push(dj);e.trigger("TrackerAdded",[this]);return dj};this.getSiteId=function(){return b6};this.setSiteId=function(di){b3(di)};this.resetUserId=function(){by=""};this.setUserId=function(di){if(Y(di)){by=di}};this.getUserId=function(){return by};this.setCustomData=function(di,dj){if(W(di)){ao=di}else{if(!ao){ao={}}ao[di]=dj}};this.getCustomData=function(){return ao};this.setCustomRequestProcessing=function(di){cb=di};this.appendToTrackingUrl=function(di){cY=di};this.getRequest=function(di){return cs(di)};this.addPlugin=function(di,dj){b[di]=dj};this.setCustomDimension=function(di,dj){di=parseInt(di,10);if(di>0){if(!J(dj)){dj=""}if(!w(dj)){dj=String(dj)}bm[di]=dj}};this.getCustomDimension=function(di){di=parseInt(di,10);if(di>0&&Object.prototype.hasOwnProperty.call(bm,di)){return bm[di] -}};this.deleteCustomDimension=function(di){di=parseInt(di,10);if(di>0){delete bm[di]}};this.setCustomVariable=function(dj,di,dm,dk){var dl;if(!J(dk)){dk="visit"}if(!J(di)){return}if(!J(dm)){dm=""}if(dj>0){di=!w(di)?String(di):di;dm=!w(dm)?String(dm):dm;dl=[di.slice(0,bt),dm.slice(0,bt)];if(dk==="visit"||dk===2){cE();aQ[dj]=dl}else{if(dk==="page"||dk===3){bW[dj]=dl}else{if(dk==="event"){cm[dj]=dl}}}}};this.getCustomVariable=function(dj,dk){var di;if(!J(dk)){dk="visit"}if(dk==="page"||dk===3){di=bW[dj]}else{if(dk==="event"){di=cm[dj]}else{if(dk==="visit"||dk===2){cE();di=aQ[dj]}}}if(!J(di)||(di&&di[0]==="")){return false}return di};this.deleteCustomVariable=function(di,dj){if(this.getCustomVariable(di,dj)){this.setCustomVariable(di,"","",dj)}};this.deleteCustomVariables=function(di){if(di==="page"||di===3){bW={}}else{if(di==="event"){cm={}}else{if(di==="visit"||di===2){aQ={}}}}};this.storeCustomVariablesInCookie=function(){bQ=true};this.setLinkTrackingTimer=function(di){bJ=di};this.getLinkTrackingTimer=function(){return bJ -};this.setDownloadExtensions=function(di){if(w(di)){di=di.split("|")}c5=di};this.addDownloadExtensions=function(dj){var di;if(w(dj)){dj=dj.split("|")}for(di=0;di<dj.length;di++){c5.push(dj[di])}};this.removeDownloadExtensions=function(dk){var dj,di=[];if(w(dk)){dk=dk.split("|")}for(dj=0;dj<c5.length;dj++){if(M(dk,c5[dj])===-1){di.push(c5[dj])}}c5=di};this.setDomains=function(di){ax=w(di)?[di]:di;var dm=false,dk=0,dj;for(dk;dk<ax.length;dk++){dj=String(ax[dk]);if(cG(cT,L(dj))){dm=true;break}var dl=cl(dj);if(dl&&dl!=="/"&&dl!=="/*"){dm=true;break}}if(!dm){ax.push(cT)}};this.enableCrossDomainLinking=function(){cM=true};this.disableCrossDomainLinking=function(){cM=false};this.isCrossDomainLinkingEnabled=function(){return cM};this.setCrossDomainLinkingTimeout=function(di){aZ=di};this.getCrossDomainLinkingUrlParameter=function(){return t(av)+"="+t(br())};this.setIgnoreClasses=function(di){bz=w(di)?[di]:di};this.setRequestMethod=function(di){c9=di||ci};this.setRequestContentType=function(di){cw=di||aI -};this.setReferrerUrl=function(di){bn=di};this.setCustomUrl=function(di){a4=bV(bN,di)};this.getCurrentUrl=function(){return a4||bN};this.setDocumentTitle=function(di){bj=di};this.setAPIUrl=function(di){bH=di};this.setDownloadClasses=function(di){bL=w(di)?[di]:di};this.setLinkClasses=function(di){a8=w(di)?[di]:di};this.setCampaignNameKey=function(di){cq=w(di)?[di]:di};this.setCampaignKeywordKey=function(di){bG=w(di)?[di]:di};this.discardHashTag=function(di){bP=di};this.setCookieNamePrefix=function(di){bk=di;if(aQ){aQ=bX()}};this.setCookieDomain=function(di){var dj=L(di);if(bw(dj)){cW=dj;bi()}};this.getCookieDomain=function(){return cW};this.hasCookies=function(){return"1"===b5()};this.setSessionCookie=function(dk,dj,di){if(!dk){throw new Error("Missing cookie name")}if(!J(di)){di=co}bu.push(dk);dd(aT(dk),dj,di,bp,cW)};this.getCookie=function(dj){var di=aD(aT(dj));if(di===0){return null}return di};this.setCookiePath=function(di){bp=di;bi()};this.getCookiePath=function(di){return bp};this.setVisitorCookieTimeout=function(di){cJ=di*1000 -};this.setSessionCookieTimeout=function(di){co=di*1000};this.getSessionCookieTimeout=function(){return co};this.setReferralCookieTimeout=function(di){c4=di*1000};this.setConversionAttributionFirstReferrer=function(di){bv=di};this.setSecureCookie=function(di){bS=di};this.disableCookies=function(){bl=true;c7.cookie="0";if(b6){aF()}};this.deleteCookies=function(){aF()};this.setDoNotTrack=function(dj){var di=h.doNotTrack||h.msDoNotTrack;cP=dj&&(di==="yes"||di==="1");if(cP){this.disableCookies()}};this.alwaysUseSendBeacon=function(){cV=true};this.disableAlwaysUseSendBeacon=function(){cV=false};this.addListener=function(dj,di){aq(dj,di)};this.enableLinkTracking=function(dj){c8=true;var di=this;ch(function(){q(function(){bD(dj,di)})})};this.enableJSErrorTracking=function(){if(cR){return}cR=true;var di=T.onerror;T.onerror=function(dn,dl,dk,dm,dj){ch(function(){var dp="JavaScript Errors";var dq=dl+":"+dk;if(dm){dq+=":"+dm}at(dp,dq,dn)});if(di){return di(dn,dl,dk,dm,dj)}return false}};this.disablePerformanceTracking=function(){a2=false -};this.setVisitStandardLength=function(di){di=Math.max(di,5);c6=di};this.enableHeartBeatTimer=function(di){di=Math.max(di,5);a5=(di||15)*1000;if(cX!==null){df()}};this.disableHeartBeatTimer=function(){bK();if(a5||aN){if(T.removeEventListener){T.removeEventListener("focus",ba);T.removeEventListener("blur",ay)}else{if(T.detachEvent){T.detachEvent("onfocus",ba);T.detachEvent("onblur",ay)}}}a5=null;aN=false};this.killFrame=function(){if(T.location!==T.top.location){T.top.location=T.location}};this.redirectFile=function(di){if(T.location.protocol==="file:"){T.location=di}};this.setCountPreRendered=function(di){be=di};this.trackGoal=function(di,dl,dk,dj){ch(function(){cS(di,dl,dk,dj)})};this.trackLink=function(dj,di,dl,dk){ch(function(){c0(dj,di,dl,dk)})};this.getNumTrackedPageViews=function(){return cr};this.trackPageView=function(di,dk,dj){ca=[];cK=[];if(N(b6)){ch(function(){Z(aE,bH,b6)})}else{ch(function(){cr++;b0(di,dk,dj)})}};this.trackAllContentImpressions=function(){if(N(b6)){return}ch(function(){q(function(){var di=v.findContentNodes(); -var dj=cz(di);de(dj,bJ)})})};this.trackVisibleContentImpressions=function(di,dj){if(N(b6)){return}if(!J(di)){di=true}if(!J(dj)){dj=750}aS(di,dj,this);ch(function(){n(function(){var dk=v.findContentNodes();var dl=a9(dk);de(dl,bJ)})})};this.trackContentImpression=function(dk,di,dj){if(N(b6)){return}dk=a(dk);di=a(di);dj=a(dj);if(!dk){return}di=di||"Unknown";ch(function(){var dl=aG(dk,di,dj);bF(dl,bJ)})};this.trackContentImpressionsWithinNode=function(di){if(N(b6)||!di){return}ch(function(){if(cf){n(function(){var dj=v.findContentNodesWithinNode(di);var dk=a9(dj);de(dk,bJ)})}else{q(function(){var dj=v.findContentNodesWithinNode(di);var dk=cz(dj);de(dk,bJ)})}})};this.trackContentInteraction=function(dk,dl,di,dj){if(N(b6)){return}dk=a(dk);dl=a(dl);di=a(di);dj=a(dj);if(!dk||!dl){return}di=di||"Unknown";ch(function(){var dm=aP(dk,dl,di,dj);if(dm){bF(dm,bJ)}})};this.trackContentInteractionNode=function(dk,dj){if(N(b6)||!dk){return}var di=null;ch(function(){di=da(dk,dj);if(di){bF(di,bJ)}});return di -};this.logAllContentBlocksOnPage=function(){var dk=v.findContentNodes();var di=v.collectContent(dk);var dj=typeof console;if(dj!=="undefined"&&console&&console.log){console.log(di)}};this.trackEvent=function(dj,dl,di,dk,dn,dm){ch(function(){at(dj,dl,di,dk,dn,dm)})};this.trackSiteSearch=function(di,dk,dj,dl){ca=[];ch(function(){b8(di,dk,dj,dl)})};this.setEcommerceView=function(dl,di,dk,dj){if(Y(dk)){dk=String(dk)}if(!J(dk)||dk===null||dk===false||!dk.length){dk=""}else{if(dk instanceof Array){dk=T.JSON.stringify(dk)}}bW[5]=["_pkc",dk];if(J(dj)&&dj!==null&&dj!==false&&String(dj).length){bW[2]=["_pkp",dj]}if(!Y(dl)&&!Y(di)){return}if(Y(dl)){bW[3]=["_pks",dl]}if(!Y(di)){di=""}bW[4]=["_pkn",di]};this.getEcommerceItems=function(){return JSON.parse(JSON.stringify(cZ))};this.addEcommerceItem=function(dm,di,dk,dj,dl){if(Y(dm)){cZ[dm]=[String(dm),di,dk,dj,dl]}};this.removeEcommerceItem=function(di){if(Y(di)){di=String(di);delete cZ[di]}};this.clearEcommerceCart=function(){cZ={}};this.trackEcommerceOrder=function(di,dm,dl,dk,dj,dn){bZ(di,dm,dl,dk,dj,dn) -};this.trackEcommerceCartUpdate=function(di){bs(di)};this.trackRequest=function(dj,dl,dk,di){ch(function(){var dm=cs(dj,dl,di);bF(dm,bJ,dk)})};this.ping=function(){this.trackRequest("ping=1",null,null,"ping")};this.disableQueueRequest=function(){bC.enabled=false};this.setRequestQueueInterval=function(di){if(di<1000){throw new Error("Request queue interval needs to be at least 1000ms")}bC.interval=di};this.queueRequest=function(di){ch(function(){var dj=cs(di);bC.push(dj)})};this.isConsentRequired=function(){return cA};this.getRememberedConsent=function(){var di=aD(bd);if(aD(cL)){if(di){bY(bd,bp,cW)}return null}if(!di||di===0){return null}return di};this.hasRememberedConsent=function(){return !!this.getRememberedConsent()};this.requireConsent=function(){cA=true;bB=this.hasRememberedConsent();x++;b["CoreConsent"+x]={unload:function(){if(!bB){aF()}}}};this.setConsentGiven=function(){bB=true;bY(cL,bp,cW);var dj,di;for(dj=0;dj<cK.length;dj++){di=typeof cK[dj];if(di==="string"){bF(cK[dj],bJ)}else{if(di==="object"){de(cK[dj],bJ) -}}}cK=[]};this.rememberConsentGiven=function(dj){if(dj){dj=dj*60*60*1000}else{dj=30*365*24*60*60*1000}this.setConsentGiven();var di=new Date().getTime();dd(bd,di,dj,bp,cW,bS)};this.forgetConsentGiven=function(){var di=30*365*24*60*60*1000;bY(bd,bp,cW);dd(cL,new Date().getTime(),di,bp,cW,bS);this.requireConsent()};this.isUserOptedOut=function(){return !bB};this.optUserOut=this.forgetConsentGiven;this.forgetUserOptOut=this.rememberConsentGiven;n(function(){setTimeout(function(){bE=true},0)});e.trigger("TrackerSetup",[this])}function H(){return{push:af}}function c(au,at){var av={};var aq,ar;for(aq=0;aq<at.length;aq++){var ao=at[aq];av[ao]=1;for(ar=0;ar<au.length;ar++){if(au[ar]&&au[ar][0]){var ap=au[ar][0];if(ao===ap){af(au[ar]);delete au[ar];if(av[ap]>1&&ap!=="addTracker"){ak("The method "+ap+' is registered more than once in "_paq" variable. Only the last call has an effect. Please have a look at the multiple Piwik trackers documentation: https://developer.piwik.org/guides/tracking-javascript-guide#multiple-piwik-trackers') -}av[ap]++}}}}return au}var C=["addTracker","disableCookies","setTrackerUrl","setAPIUrl","enableCrossDomainLinking","setCrossDomainLinkingTimeout","setSessionCookieTimeout","setVisitorCookieTimeout","setCookieNamePrefix","setSecureCookie","setCookiePath","setCookieDomain","setDomains","setUserId","setSiteId","alwaysUseSendBeacon","enableLinkTracking","requireConsent","setConsentGiven"];function ad(ao,aq){var ap=new Q(ao,aq);I.push(ap);_paq=c(_paq,C);for(E=0;E<_paq.length;E++){if(_paq[E]){af(_paq[E])}}_paq=new H();e.trigger("TrackerAdded",[ap]);return ap}an(T,"beforeunload",ai,false);an(T,"message",function(au){if(!au||!au.origin){return}var aw,ar,ap;var ax=d(au.origin);var at=e.getAsyncTrackers();for(ar=0;ar<at.length;ar++){ap=d(at[ar].getPiwikUrl());if(ap===ax){aw=at[ar];break}}if(!aw){return}var aq=null;try{aq=JSON.parse(au.data)}catch(av){return}if(!aq){return}function ao(aA){var aC=G.getElementsByTagName("iframe");for(ar=0;ar<aC.length;ar++){var aB=aC[ar];var ay=d(aB.src);if(aB.contentWindow&&J(aB.contentWindow.postMessage)&&ay===ax){var az=JSON.stringify(aA); -aB.contentWindow.postMessage(az,"*")}}}if(J(aq.maq_initial_value)){ao({maq_opted_in:aq.maq_initial_value&&aw.hasConsent(),maq_url:aw.getPiwikUrl(),maq_optout_by_default:aw.isConsentRequired()})}else{if(J(aq.maq_opted_in)){at=e.getAsyncTrackers();for(ar=0;ar<at.length;ar++){aw=at[ar];if(aq.maq_opted_in){aw.rememberConsentGiven()}else{aw.forgetConsentGiven()}}ao({maq_confirm_opted_in:aw.hasConsent(),maq_url:aw.getPiwikUrl(),maq_optout_by_default:aw.isConsentRequired()})}}},false);Date.prototype.getTimeAlias=Date.prototype.getTime;e={initialized:false,JSON:T.JSON,DOM:{addEventListener:function(ar,aq,ap,ao){var at=typeof ao;if(at==="undefined"){ao=false}an(ar,aq,ap,ao)},onLoad:n,onReady:q,isNodeVisible:j,isOrWasNodeVisible:v.isNodeVisible},on:function(ap,ao){if(!y[ap]){y[ap]=[]}y[ap].push(ao)},off:function(aq,ap){if(!y[aq]){return}var ao=0;for(ao;ao<y[aq].length;ao++){if(y[aq][ao]===ap){y[aq].splice(ao,1)}}},trigger:function(aq,ar,ap){if(!y[aq]){return}var ao=0;for(ao;ao<y[aq].length;ao++){y[aq][ao].apply(ap||T,ar) -}},addPlugin:function(ao,ap){b[ao]=ap},getTracker:function(ao,ap){if(!J(ap)){ap=this.getAsyncTracker().getSiteId()}if(!J(ao)){ao=this.getAsyncTracker().getTrackerUrl()}return new Q(ao,ap)},getAsyncTrackers:function(){return I},addTracker:function(ao,aq){var ap;if(!I.length){ap=ad(ao,aq)}else{ap=I[0].addTracker(ao,aq)}return ap},getAsyncTracker:function(ap,at){var ar;if(I&&I.length&&I[0]){ar=I[0]}else{return ad(ap,at)}if(!at&&!ap){return ar}if((!J(at)||null===at)&&ar){at=ar.getSiteId()}if((!J(ap)||null===ap)&&ar){ap=ar.getTrackerUrl()}var aq,ao=0;for(ao;ao<I.length;ao++){aq=I[ao];if(aq&&String(aq.getSiteId())===String(at)&&aq.getTrackerUrl()===ap){return aq}}},retryMissedPluginCalls:function(){var ap=ah;ah=[];var ao=0;for(ao;ao<ap.length;ao++){af(ap[ao])}}};if(typeof define==="function"&&define.amd){define("piwik",[],function(){return e});define("matomo",[],function(){return e})}return e}())} +}}dr(100)}if(dm&&dm>0){dm=parseInt(dm,10);dq(dm)}})}var bC={enabled:true,requests:[],timeout:null,interval:2500,sendRequests:function(){var di=this.requests;this.requests=[];if(di.length===1){bF(di[0],bJ)}else{de(di,bJ)}},canQueue:function(){return !m&&this.enabled},pushMultiple:function(dj){if(!this.canQueue()){de(dj,bJ);return}var di;for(di=0;di<dj.length;di++){this.push(dj[di])}},push:function(di){if(!di){return}if(!this.canQueue()){bF(di,bJ);return}bC.requests.push(di);if(this.timeout){clearTimeout(this.timeout);this.timeout=null}this.timeout=setTimeout(function(){bC.timeout=null;bC.sendRequests()},bC.interval);var dj="RequestQueue"+aw;if(!Object.prototype.hasOwnProperty.call(b,dj)){b[dj]={unload:function(){if(bC.timeout){clearTimeout(bC.timeout)}bC.sendRequests()}}}}};bi();aM();this.hasConsent=function(){return bB};this.getVisitorId=function(){return aY().uuid};this.getVisitorInfo=function(){return cN()};this.getAttributionInfo=function(){return bM()};this.getAttributionCampaignName=function(){return bM()[0] +};this.getAttributionCampaignKeyword=function(){return bM()[1]};this.getAttributionReferrerTimestamp=function(){return bM()[2]};this.getAttributionReferrerUrl=function(){return bM()[3]};this.setTrackerUrl=function(di){aE=di};this.getTrackerUrl=function(){return aE};this.getPiwikUrl=function(){return O(this.getTrackerUrl(),bH)};this.addTracker=function(di,dk){if(!J(di)||null===di){di=this.getTrackerUrl()}var dj=new Q(di,dk);I.push(dj);e.trigger("TrackerAdded",[this]);return dj};this.getSiteId=function(){return b6};this.setSiteId=function(di){b3(di)};this.resetUserId=function(){by=""};this.setUserId=function(di){if(Y(di)){by=di}};this.getUserId=function(){return by};this.setCustomData=function(di,dj){if(W(di)){ao=di}else{if(!ao){ao={}}ao[di]=dj}};this.getCustomData=function(){return ao};this.setCustomRequestProcessing=function(di){cb=di};this.appendToTrackingUrl=function(di){cY=di};this.getRequest=function(di){return cs(di)};this.addPlugin=function(di,dj){b[di]=dj};this.setCustomDimension=function(di,dj){di=parseInt(di,10); +if(di>0){if(!J(dj)){dj=""}if(!w(dj)){dj=String(dj)}bm[di]=dj}};this.getCustomDimension=function(di){di=parseInt(di,10);if(di>0&&Object.prototype.hasOwnProperty.call(bm,di)){return bm[di]}};this.deleteCustomDimension=function(di){di=parseInt(di,10);if(di>0){delete bm[di]}};this.setCustomVariable=function(dj,di,dm,dk){var dl;if(!J(dk)){dk="visit"}if(!J(di)){return}if(!J(dm)){dm=""}if(dj>0){di=!w(di)?String(di):di;dm=!w(dm)?String(dm):dm;dl=[di.slice(0,bt),dm.slice(0,bt)];if(dk==="visit"||dk===2){cE();aQ[dj]=dl}else{if(dk==="page"||dk===3){bW[dj]=dl}else{if(dk==="event"){cm[dj]=dl}}}}};this.getCustomVariable=function(dj,dk){var di;if(!J(dk)){dk="visit"}if(dk==="page"||dk===3){di=bW[dj]}else{if(dk==="event"){di=cm[dj]}else{if(dk==="visit"||dk===2){cE();di=aQ[dj]}}}if(!J(di)||(di&&di[0]==="")){return false}return di};this.deleteCustomVariable=function(di,dj){if(this.getCustomVariable(di,dj)){this.setCustomVariable(di,"","",dj)}};this.deleteCustomVariables=function(di){if(di==="page"||di===3){bW={} +}else{if(di==="event"){cm={}}else{if(di==="visit"||di===2){aQ={}}}}};this.storeCustomVariablesInCookie=function(){bQ=true};this.setLinkTrackingTimer=function(di){bJ=di};this.getLinkTrackingTimer=function(){return bJ};this.setDownloadExtensions=function(di){if(w(di)){di=di.split("|")}c5=di};this.addDownloadExtensions=function(dj){var di;if(w(dj)){dj=dj.split("|")}for(di=0;di<dj.length;di++){c5.push(dj[di])}};this.removeDownloadExtensions=function(dk){var dj,di=[];if(w(dk)){dk=dk.split("|")}for(dj=0;dj<c5.length;dj++){if(M(dk,c5[dj])===-1){di.push(c5[dj])}}c5=di};this.setDomains=function(di){ax=w(di)?[di]:di;var dm=false,dk=0,dj;for(dk;dk<ax.length;dk++){dj=String(ax[dk]);if(cG(cT,L(dj))){dm=true;break}var dl=cl(dj);if(dl&&dl!=="/"&&dl!=="/*"){dm=true;break}}if(!dm){ax.push(cT)}};this.enableCrossDomainLinking=function(){cM=true};this.disableCrossDomainLinking=function(){cM=false};this.isCrossDomainLinkingEnabled=function(){return cM};this.setCrossDomainLinkingTimeout=function(di){aZ=di};this.getCrossDomainLinkingUrlParameter=function(){return t(av)+"="+t(br()) +};this.setIgnoreClasses=function(di){bz=w(di)?[di]:di};this.setRequestMethod=function(di){c9=di||ci};this.setRequestContentType=function(di){cw=di||aI};this.setReferrerUrl=function(di){bn=di};this.setCustomUrl=function(di){a4=bV(bN,di)};this.getCurrentUrl=function(){return a4||bN};this.setDocumentTitle=function(di){bj=di};this.setAPIUrl=function(di){bH=di};this.setDownloadClasses=function(di){bL=w(di)?[di]:di};this.setLinkClasses=function(di){a8=w(di)?[di]:di};this.setCampaignNameKey=function(di){cq=w(di)?[di]:di};this.setCampaignKeywordKey=function(di){bG=w(di)?[di]:di};this.discardHashTag=function(di){bP=di};this.setCookieNamePrefix=function(di){bk=di;if(aQ){aQ=bX()}};this.setCookieDomain=function(di){var dj=L(di);if(bw(dj)){cW=dj;bi()}};this.getCookieDomain=function(){return cW};this.hasCookies=function(){return"1"===b5()};this.setSessionCookie=function(dk,dj,di){if(!dk){throw new Error("Missing cookie name")}if(!J(di)){di=co}bu.push(dk);dd(aT(dk),dj,di,bp,cW)};this.getCookie=function(dj){var di=aD(aT(dj)); +if(di===0){return null}return di};this.setCookiePath=function(di){bp=di;bi()};this.getCookiePath=function(di){return bp};this.setVisitorCookieTimeout=function(di){cJ=di*1000};this.setSessionCookieTimeout=function(di){co=di*1000};this.getSessionCookieTimeout=function(){return co};this.setReferralCookieTimeout=function(di){c4=di*1000};this.setConversionAttributionFirstReferrer=function(di){bv=di};this.setSecureCookie=function(di){bS=di};this.disableCookies=function(){bl=true;c7.cookie="0";if(b6){aF()}};this.deleteCookies=function(){aF()};this.setDoNotTrack=function(dj){var di=h.doNotTrack||h.msDoNotTrack;cP=dj&&(di==="yes"||di==="1");if(cP){this.disableCookies()}};this.alwaysUseSendBeacon=function(){cV=true};this.disableAlwaysUseSendBeacon=function(){cV=false};this.addListener=function(dj,di){aq(dj,di)};this.enableLinkTracking=function(dj){c8=true;var di=this;ch(function(){q(function(){bD(dj,di)});n(function(){bD(dj,di)})})};this.enableJSErrorTracking=function(){if(cR){return}cR=true;var di=T.onerror; +T.onerror=function(dn,dl,dk,dm,dj){ch(function(){var dp="JavaScript Errors";var dq=dl+":"+dk;if(dm){dq+=":"+dm}at(dp,dq,dn)});if(di){return di(dn,dl,dk,dm,dj)}return false}};this.disablePerformanceTracking=function(){a2=false};this.setVisitStandardLength=function(di){di=Math.max(di,5);c6=di};this.enableHeartBeatTimer=function(di){di=Math.max(di,5);a5=(di||15)*1000;if(cX!==null){df()}};this.disableHeartBeatTimer=function(){bK();if(a5||aN){if(T.removeEventListener){T.removeEventListener("focus",ba);T.removeEventListener("blur",ay)}else{if(T.detachEvent){T.detachEvent("onfocus",ba);T.detachEvent("onblur",ay)}}}a5=null;aN=false};this.killFrame=function(){if(T.location!==T.top.location){T.top.location=T.location}};this.redirectFile=function(di){if(T.location.protocol==="file:"){T.location=di}};this.setCountPreRendered=function(di){be=di};this.trackGoal=function(di,dl,dk,dj){ch(function(){cS(di,dl,dk,dj)})};this.trackLink=function(dj,di,dl,dk){ch(function(){c0(dj,di,dl,dk)})};this.getNumTrackedPageViews=function(){return cr +};this.trackPageView=function(di,dk,dj){ca=[];cK=[];if(N(b6)){ch(function(){Z(aE,bH,b6)})}else{ch(function(){cr++;b0(di,dk,dj)})}};this.trackAllContentImpressions=function(){if(N(b6)){return}ch(function(){q(function(){var di=v.findContentNodes();var dj=cz(di);bC.pushMultiple(dj)})})};this.trackVisibleContentImpressions=function(di,dj){if(N(b6)){return}if(!J(di)){di=true}if(!J(dj)){dj=750}aS(di,dj,this);ch(function(){n(function(){var dk=v.findContentNodes();var dl=a9(dk);bC.pushMultiple(dl)})})};this.trackContentImpression=function(dk,di,dj){if(N(b6)){return}dk=a(dk);di=a(di);dj=a(dj);if(!dk){return}di=di||"Unknown";ch(function(){var dl=aG(dk,di,dj);bC.push(dl)})};this.trackContentImpressionsWithinNode=function(di){if(N(b6)||!di){return}ch(function(){if(cf){n(function(){var dj=v.findContentNodesWithinNode(di);var dk=a9(dj);bC.pushMultiple(dk)})}else{q(function(){var dj=v.findContentNodesWithinNode(di);var dk=cz(dj);bC.pushMultiple(dk)})}})};this.trackContentInteraction=function(dk,dl,di,dj){if(N(b6)){return +}dk=a(dk);dl=a(dl);di=a(di);dj=a(dj);if(!dk||!dl){return}di=di||"Unknown";ch(function(){var dm=aP(dk,dl,di,dj);if(dm){bC.push(dm)}})};this.trackContentInteractionNode=function(dk,dj){if(N(b6)||!dk){return}var di=null;ch(function(){di=da(dk,dj);if(di){bC.push(di)}});return di};this.logAllContentBlocksOnPage=function(){var dk=v.findContentNodes();var di=v.collectContent(dk);var dj=typeof console;if(dj!=="undefined"&&console&&console.log){console.log(di)}};this.trackEvent=function(dj,dl,di,dk,dn,dm){ch(function(){at(dj,dl,di,dk,dn,dm)})};this.trackSiteSearch=function(di,dk,dj,dl){ca=[];ch(function(){b8(di,dk,dj,dl)})};this.setEcommerceView=function(dl,di,dk,dj){if(Y(dk)){dk=String(dk)}if(!J(dk)||dk===null||dk===false||!dk.length){dk=""}else{if(dk instanceof Array){dk=T.JSON.stringify(dk)}}bW[5]=["_pkc",dk];if(J(dj)&&dj!==null&&dj!==false&&String(dj).length){bW[2]=["_pkp",dj]}if(!Y(dl)&&!Y(di)){return}if(Y(dl)){bW[3]=["_pks",dl]}if(!Y(di)){di=""}bW[4]=["_pkn",di]};this.getEcommerceItems=function(){return JSON.parse(JSON.stringify(cZ)) +};this.addEcommerceItem=function(dm,di,dk,dj,dl){if(Y(dm)){cZ[dm]=[String(dm),di,dk,dj,dl]}};this.removeEcommerceItem=function(di){if(Y(di)){di=String(di);delete cZ[di]}};this.clearEcommerceCart=function(){cZ={}};this.trackEcommerceOrder=function(di,dm,dl,dk,dj,dn){bZ(di,dm,dl,dk,dj,dn)};this.trackEcommerceCartUpdate=function(di){bs(di)};this.trackRequest=function(dj,dl,dk,di){ch(function(){var dm=cs(dj,dl,di);bF(dm,bJ,dk)})};this.ping=function(){this.trackRequest("ping=1",null,null,"ping")};this.disableQueueRequest=function(){bC.enabled=false};this.setRequestQueueInterval=function(di){if(di<1000){throw new Error("Request queue interval needs to be at least 1000ms")}bC.interval=di};this.queueRequest=function(di){ch(function(){var dj=cs(di);bC.push(dj)})};this.isConsentRequired=function(){return cA};this.getRememberedConsent=function(){var di=aD(bd);if(aD(cL)){if(di){bY(bd,bp,cW)}return null}if(!di||di===0){return null}return di};this.hasRememberedConsent=function(){return !!this.getRememberedConsent() +};this.requireConsent=function(){cA=true;bB=this.hasRememberedConsent();x++;b["CoreConsent"+x]={unload:function(){if(!bB){aF()}}}};this.setConsentGiven=function(){bB=true;bY(cL,bp,cW);var dj,di;for(dj=0;dj<cK.length;dj++){di=typeof cK[dj];if(di==="string"){bF(cK[dj],bJ)}else{if(di==="object"){de(cK[dj],bJ)}}}cK=[]};this.rememberConsentGiven=function(dj){if(dj){dj=dj*60*60*1000}else{dj=30*365*24*60*60*1000}this.setConsentGiven();var di=new Date().getTime();dd(bd,di,dj,bp,cW,bS)};this.forgetConsentGiven=function(){var di=30*365*24*60*60*1000;bY(bd,bp,cW);dd(cL,new Date().getTime(),di,bp,cW,bS);this.requireConsent()};this.isUserOptedOut=function(){return !bB};this.optUserOut=this.forgetConsentGiven;this.forgetUserOptOut=this.rememberConsentGiven;n(function(){setTimeout(function(){bE=true},0)});e.trigger("TrackerSetup",[this])}function H(){return{push:af}}function c(au,at){var av={};var aq,ar;for(aq=0;aq<at.length;aq++){var ao=at[aq];av[ao]=1;for(ar=0;ar<au.length;ar++){if(au[ar]&&au[ar][0]){var ap=au[ar][0]; +if(ao===ap){af(au[ar]);delete au[ar];if(av[ap]>1&&ap!=="addTracker"){ak("The method "+ap+' is registered more than once in "_paq" variable. Only the last call has an effect. Please have a look at the multiple Piwik trackers documentation: https://developer.piwik.org/guides/tracking-javascript-guide#multiple-piwik-trackers')}av[ap]++}}}}return au}var C=["addTracker","disableCookies","setTrackerUrl","setAPIUrl","enableCrossDomainLinking","setCrossDomainLinkingTimeout","setSessionCookieTimeout","setVisitorCookieTimeout","setCookieNamePrefix","setSecureCookie","setCookiePath","setCookieDomain","setDomains","setUserId","setSiteId","alwaysUseSendBeacon","enableLinkTracking","requireConsent","setConsentGiven"];function ad(ao,aq){var ap=new Q(ao,aq);I.push(ap);_paq=c(_paq,C);for(E=0;E<_paq.length;E++){if(_paq[E]){af(_paq[E])}}_paq=new H();e.trigger("TrackerAdded",[ap]);return ap}an(T,"beforeunload",ai,false);an(T,"message",function(au){if(!au||!au.origin){return}var aw,ar,ap;var ax=d(au.origin); +var at=e.getAsyncTrackers();for(ar=0;ar<at.length;ar++){ap=d(at[ar].getPiwikUrl());if(ap===ax){aw=at[ar];break}}if(!aw){return}var aq=null;try{aq=JSON.parse(au.data)}catch(av){return}if(!aq){return}function ao(aA){var aC=G.getElementsByTagName("iframe");for(ar=0;ar<aC.length;ar++){var aB=aC[ar];var ay=d(aB.src);if(aB.contentWindow&&J(aB.contentWindow.postMessage)&&ay===ax){var az=JSON.stringify(aA);aB.contentWindow.postMessage(az,"*")}}}if(J(aq.maq_initial_value)){ao({maq_opted_in:aq.maq_initial_value&&aw.hasConsent(),maq_url:aw.getPiwikUrl(),maq_optout_by_default:aw.isConsentRequired()})}else{if(J(aq.maq_opted_in)){at=e.getAsyncTrackers();for(ar=0;ar<at.length;ar++){aw=at[ar];if(aq.maq_opted_in){aw.rememberConsentGiven()}else{aw.forgetConsentGiven()}}ao({maq_confirm_opted_in:aw.hasConsent(),maq_url:aw.getPiwikUrl(),maq_optout_by_default:aw.isConsentRequired()})}}},false);Date.prototype.getTimeAlias=Date.prototype.getTime;e={initialized:false,JSON:T.JSON,DOM:{addEventListener:function(ar,aq,ap,ao){var at=typeof ao; +if(at==="undefined"){ao=false}an(ar,aq,ap,ao)},onLoad:n,onReady:q,isNodeVisible:j,isOrWasNodeVisible:v.isNodeVisible},on:function(ap,ao){if(!y[ap]){y[ap]=[]}y[ap].push(ao)},off:function(aq,ap){if(!y[aq]){return}var ao=0;for(ao;ao<y[aq].length;ao++){if(y[aq][ao]===ap){y[aq].splice(ao,1)}}},trigger:function(aq,ar,ap){if(!y[aq]){return}var ao=0;for(ao;ao<y[aq].length;ao++){y[aq][ao].apply(ap||T,ar)}},addPlugin:function(ao,ap){b[ao]=ap},getTracker:function(ao,ap){if(!J(ap)){ap=this.getAsyncTracker().getSiteId()}if(!J(ao)){ao=this.getAsyncTracker().getTrackerUrl()}return new Q(ao,ap)},getAsyncTrackers:function(){return I},addTracker:function(ao,aq){var ap;if(!I.length){ap=ad(ao,aq)}else{ap=I[0].addTracker(ao,aq)}return ap},getAsyncTracker:function(ap,at){var ar;if(I&&I.length&&I[0]){ar=I[0]}else{return ad(ap,at)}if(!at&&!ap){return ar}if((!J(at)||null===at)&&ar){at=ar.getSiteId()}if((!J(ap)||null===ap)&&ar){ap=ar.getTrackerUrl()}var aq,ao=0;for(ao;ao<I.length;ao++){aq=I[ao];if(aq&&String(aq.getSiteId())===String(at)&&aq.getTrackerUrl()===ap){return aq +}}},retryMissedPluginCalls:function(){var ap=ah;ah=[];var ao=0;for(ao;ao<ap.length;ao++){af(ap[ao])}}};if(typeof define==="function"&&define.amd){define("piwik",[],function(){return e});define("matomo",[],function(){return e})}return e}())} /*!!! pluginTrackerHook */ -(function(){function b(){if("object"!==typeof _paq){return false}var c=typeof _paq.length; -if("undefined"===c){return false}return !!_paq.length}if(window&&"object"===typeof window.piwikPluginAsyncInit&&window.piwikPluginAsyncInit.length){var a=0;for(a;a<window.piwikPluginAsyncInit.length;a++){if(typeof window.piwikPluginAsyncInit[a]==="function"){window.piwikPluginAsyncInit[a]()}}}if(window&&window.piwikAsyncInit){window.piwikAsyncInit()}if(!window.Piwik.getAsyncTrackers().length){if(b()){window.Piwik.addTracker()}else{_paq={push:function(c){var d=typeof console;if(d!=="undefined"&&console&&console.error){console.error("_paq.push() was used but Matomo tracker was not initialized before the matomo.js file was loaded. Make sure to configure the tracker via _paq.push before loading matomo.js. Alternatively, you can create a tracker via Matomo.addTracker() manually and then use _paq.push but it may not fully work as tracker methods may not be executed in the correct order.",c)}}}}}window.Piwik.trigger("PiwikInitialized",[]);window.Piwik.initialized=true}());(function(){var a=(typeof AnalyticsTracker); -if(a==="undefined"){AnalyticsTracker=window.Piwik}}());if(typeof piwik_log!=="function"){piwik_log=function(b,f,d,g){function a(h){try{if(window["piwik_"+h]){return window["piwik_"+h]}}catch(i){}return}var c,e=window.Piwik.getTracker(d,f);e.setDocumentTitle(b);e.setCustomData(g);c=a("tracker_pause");if(c){e.setLinkTrackingTimer(c)}c=a("download_extensions");if(c){e.setDownloadExtensions(c)}c=a("hosts_alias");if(c){e.setDomains(c)}c=a("ignore_classes");if(c){e.setIgnoreClasses(c)}e.trackPageView();if(a("install_tracker")){piwik_track=function(i,k,j,h){e.setSiteId(k);e.setTrackerUrl(j);e.trackLink(i,h)};e.enableLinkTracking()}}} +(function(){function b(){if("object"!==typeof _paq){return false}var c=typeof _paq.length;if("undefined"===c){return false}return !!_paq.length}if(window&&"object"===typeof window.piwikPluginAsyncInit&&window.piwikPluginAsyncInit.length){var a=0;for(a;a<window.piwikPluginAsyncInit.length;a++){if(typeof window.piwikPluginAsyncInit[a]==="function"){window.piwikPluginAsyncInit[a]()}}}if(window&&window.piwikAsyncInit){window.piwikAsyncInit()}if(!window.Piwik.getAsyncTrackers().length){if(b()){window.Piwik.addTracker()}else{_paq={push:function(c){var d=typeof console;if(d!=="undefined"&&console&&console.error){console.error("_paq.push() was used but Matomo tracker was not initialized before the matomo.js file was loaded. Make sure to configure the tracker via _paq.push before loading matomo.js. Alternatively, you can create a tracker via Matomo.addTracker() manually and then use _paq.push but it may not fully work as tracker methods may not be executed in the correct order.",c) +}}}}}window.Piwik.trigger("PiwikInitialized",[]);window.Piwik.initialized=true}());(function(){var a=(typeof AnalyticsTracker);if(a==="undefined"){AnalyticsTracker=window.Piwik}}());if(typeof piwik_log!=="function"){piwik_log=function(b,f,d,g){function a(h){try{if(window["piwik_"+h]){return window["piwik_"+h]}}catch(i){}return}var c,e=window.Piwik.getTracker(d,f);e.setDocumentTitle(b);e.setCustomData(g);c=a("tracker_pause");if(c){e.setLinkTrackingTimer(c)}c=a("download_extensions");if(c){e.setDownloadExtensions(c)}c=a("hosts_alias");if(c){e.setDomains(c)}c=a("ignore_classes");if(c){e.setIgnoreClasses(c)}e.trackPageView();if(a("install_tracker")){piwik_track=function(i,k,j,h){e.setSiteId(k);e.setTrackerUrl(j);e.trackLink(i,h)};e.enableLinkTracking()}}} /*!! @license-end */;
\ No newline at end of file @@ -49,22 +49,22 @@ di--}}if(!dj||!dj.length){return[]}return cz(dj)}function aG(dk,di,dj){var dl=v. if(dj){dn+="&"+dj}var dm=cs(dn,dq,"link");bF(dm,bJ,dp)}function bU(dj,di){if(dj!==""){return dj+di.charAt(0).toUpperCase()+di.slice(1)}return di}function ch(dn){var dm,di,dl=["","webkit","ms","moz"],dk;if(!be){for(di=0;di<dl.length;di++){dk=dl[di];if(Object.prototype.hasOwnProperty.call(G,bU(dk,"hidden"))){if(G[bU(dk,"visibilityState")]==="prerender"){dm=true}break}}}if(dm){an(G,dk+"visibilitychange",function dj(){G.removeEventListener(dk+"visibilitychange",dj,false);dn()});return}dn()}function br(){var dj=aY().uuid;var di=aJ();return dj+di}function cj(di){if(!di){return}if(!ae.hasNodeAttribute(di,"href")){return}var dj=ae.getAttributeValueFromNode(di,"href");if(!dj||aU(dj)){return}dj=k(dj,av);var dk=br();dj=F(dj,av,dk);ae.setAnyAttribute(di,"href",dj)}function aB(dl){var dm=ae.getAttributeValueFromNode(dl,"href");if(!dm){return false}dm=String(dm);var dj=dm.indexOf("//")===0||dm.indexOf("http://")===0||dm.indexOf("https://")===0;if(!dj){return false}var di=dl.pathname||cl(dl.href);var dk=(dl.hostname||d(dl.href)).toLowerCase(); if(ar(dk,di)){if(!cG(cT,L(dk))){return true}return false}return false}function cF(di){var dj=db(di);if(dj&&dj.type){dj.href=p(dj.href);c0(dj.href,dj.type,undefined,null,di);return}if(cM){di=au(di);if(aB(di)){cj(di)}}}function cv(){return G.all&&!G.addEventListener}function cU(di){var dk=di.which;var dj=(typeof di.button);if(!dk&&dj!=="undefined"){if(cv()){if(di.button&1){dk=1}else{if(di.button&2){dk=3}else{if(di.button&4){dk=2}}}}else{if(di.button===0||di.button==="0"){dk=1}else{if(di.button&1){dk=2}else{if(di.button&2){dk=3}}}}}return dk}function bT(di){switch(cU(di)){case 1:return"left";case 2:return"middle";case 3:return"right"}}function a1(di){return di.target||di.srcElement}function aC(di){return function(dl){dl=dl||T.event;var dk=bT(dl);var dm=a1(dl);if(dl.type==="click"){var dj=false;if(di&&dk==="middle"){dj=true}if(dm&&!dj){cF(dm)}}else{if(dl.type==="mousedown"){if(dk==="middle"&&dm){aR=dk;bA=dm}else{aR=bA=null}}else{if(dl.type==="mouseup"){if(dk===aR&&dm===bA){cF(dm)}aR=bA=null }else{if(dl.type==="contextmenu"){cF(dm)}}}}}}function aq(dk,dj){var di=typeof dj;if(di==="undefined"){dj=true}an(dk,"click",aC(dj),false);if(dj){an(dk,"mouseup",aC(dj),false);an(dk,"mousedown",aC(dj),false);an(dk,"contextmenu",aC(dj),false)}}function bD(dk,dm){ap=true;var dl,dj=a0(bz,"ignore"),dn=G.links,di=null,dp=null;if(dn){for(dl=0;dl<dn.length;dl++){di=dn[dl];if(!dj.test(di.className)){dp=typeof di.piwikTrackers;if("undefined"===dp){di.piwikTrackers=[]}if(-1===M(di.piwikTrackers,dm)){di.piwikTrackers.push(dm);aq(di,dk)}}}}}function aS(dj,dm,dn){if(cf){return true}cf=true;var dp=false;var dl,dk;function di(){dp=true}n(function(){function dq(ds){setTimeout(function(){if(!cf){return}dp=false;dn.trackVisibleContentImpressions();dq(ds)},ds)}function dr(ds){setTimeout(function(){if(!cf){return}if(dp){dp=false;dn.trackVisibleContentImpressions()}dr(ds)},ds)}if(dj){dl=["scroll","resize"];for(dk=0;dk<dl.length;dk++){if(G.addEventListener){G.addEventListener(dl[dk],di,false)}else{T.attachEvent("on"+dl[dk],di) -}}dr(100)}if(dm&&dm>0){dm=parseInt(dm,10);dq(dm)}})}var bC={enabled:true,requests:[],timeout:null,interval:2500,sendRequests:function(){var di=this.requests;this.requests=[];if(di.length===1){bF(di[0],bJ)}else{de(di,bJ)}},push:function(di){if(!di){return}if(m||!this.enabled){bF(di,bJ);return}bC.requests.push(di);if(this.timeout){clearTimeout(this.timeout);this.timeout=null}this.timeout=setTimeout(function(){bC.timeout=null;bC.sendRequests()},bC.interval);var dj="RequestQueue"+aw;if(!Object.prototype.hasOwnProperty.call(b,dj)){b[dj]={unload:function(){if(bC.timeout){clearTimeout(bC.timeout)}bC.sendRequests()}}}}};bi();aM();this.hasConsent=function(){return bB};this.getVisitorId=function(){return aY().uuid};this.getVisitorInfo=function(){return cN()};this.getAttributionInfo=function(){return bM()};this.getAttributionCampaignName=function(){return bM()[0]};this.getAttributionCampaignKeyword=function(){return bM()[1]};this.getAttributionReferrerTimestamp=function(){return bM()[2]};this.getAttributionReferrerUrl=function(){return bM()[3] -};this.setTrackerUrl=function(di){aE=di};this.getTrackerUrl=function(){return aE};this.getPiwikUrl=function(){return O(this.getTrackerUrl(),bH)};this.addTracker=function(di,dk){if(!J(di)||null===di){di=this.getTrackerUrl()}var dj=new Q(di,dk);I.push(dj);e.trigger("TrackerAdded",[this]);return dj};this.getSiteId=function(){return b6};this.setSiteId=function(di){b3(di)};this.resetUserId=function(){by=""};this.setUserId=function(di){if(Y(di)){by=di}};this.getUserId=function(){return by};this.setCustomData=function(di,dj){if(W(di)){ao=di}else{if(!ao){ao={}}ao[di]=dj}};this.getCustomData=function(){return ao};this.setCustomRequestProcessing=function(di){cb=di};this.appendToTrackingUrl=function(di){cY=di};this.getRequest=function(di){return cs(di)};this.addPlugin=function(di,dj){b[di]=dj};this.setCustomDimension=function(di,dj){di=parseInt(di,10);if(di>0){if(!J(dj)){dj=""}if(!w(dj)){dj=String(dj)}bm[di]=dj}};this.getCustomDimension=function(di){di=parseInt(di,10);if(di>0&&Object.prototype.hasOwnProperty.call(bm,di)){return bm[di] -}};this.deleteCustomDimension=function(di){di=parseInt(di,10);if(di>0){delete bm[di]}};this.setCustomVariable=function(dj,di,dm,dk){var dl;if(!J(dk)){dk="visit"}if(!J(di)){return}if(!J(dm)){dm=""}if(dj>0){di=!w(di)?String(di):di;dm=!w(dm)?String(dm):dm;dl=[di.slice(0,bt),dm.slice(0,bt)];if(dk==="visit"||dk===2){cE();aQ[dj]=dl}else{if(dk==="page"||dk===3){bW[dj]=dl}else{if(dk==="event"){cm[dj]=dl}}}}};this.getCustomVariable=function(dj,dk){var di;if(!J(dk)){dk="visit"}if(dk==="page"||dk===3){di=bW[dj]}else{if(dk==="event"){di=cm[dj]}else{if(dk==="visit"||dk===2){cE();di=aQ[dj]}}}if(!J(di)||(di&&di[0]==="")){return false}return di};this.deleteCustomVariable=function(di,dj){if(this.getCustomVariable(di,dj)){this.setCustomVariable(di,"","",dj)}};this.deleteCustomVariables=function(di){if(di==="page"||di===3){bW={}}else{if(di==="event"){cm={}}else{if(di==="visit"||di===2){aQ={}}}}};this.storeCustomVariablesInCookie=function(){bQ=true};this.setLinkTrackingTimer=function(di){bJ=di};this.getLinkTrackingTimer=function(){return bJ -};this.setDownloadExtensions=function(di){if(w(di)){di=di.split("|")}c5=di};this.addDownloadExtensions=function(dj){var di;if(w(dj)){dj=dj.split("|")}for(di=0;di<dj.length;di++){c5.push(dj[di])}};this.removeDownloadExtensions=function(dk){var dj,di=[];if(w(dk)){dk=dk.split("|")}for(dj=0;dj<c5.length;dj++){if(M(dk,c5[dj])===-1){di.push(c5[dj])}}c5=di};this.setDomains=function(di){ax=w(di)?[di]:di;var dm=false,dk=0,dj;for(dk;dk<ax.length;dk++){dj=String(ax[dk]);if(cG(cT,L(dj))){dm=true;break}var dl=cl(dj);if(dl&&dl!=="/"&&dl!=="/*"){dm=true;break}}if(!dm){ax.push(cT)}};this.enableCrossDomainLinking=function(){cM=true};this.disableCrossDomainLinking=function(){cM=false};this.isCrossDomainLinkingEnabled=function(){return cM};this.setCrossDomainLinkingTimeout=function(di){aZ=di};this.getCrossDomainLinkingUrlParameter=function(){return t(av)+"="+t(br())};this.setIgnoreClasses=function(di){bz=w(di)?[di]:di};this.setRequestMethod=function(di){c9=di||ci};this.setRequestContentType=function(di){cw=di||aI -};this.setReferrerUrl=function(di){bn=di};this.setCustomUrl=function(di){a4=bV(bN,di)};this.getCurrentUrl=function(){return a4||bN};this.setDocumentTitle=function(di){bj=di};this.setAPIUrl=function(di){bH=di};this.setDownloadClasses=function(di){bL=w(di)?[di]:di};this.setLinkClasses=function(di){a8=w(di)?[di]:di};this.setCampaignNameKey=function(di){cq=w(di)?[di]:di};this.setCampaignKeywordKey=function(di){bG=w(di)?[di]:di};this.discardHashTag=function(di){bP=di};this.setCookieNamePrefix=function(di){bk=di;if(aQ){aQ=bX()}};this.setCookieDomain=function(di){var dj=L(di);if(bw(dj)){cW=dj;bi()}};this.getCookieDomain=function(){return cW};this.hasCookies=function(){return"1"===b5()};this.setSessionCookie=function(dk,dj,di){if(!dk){throw new Error("Missing cookie name")}if(!J(di)){di=co}bu.push(dk);dd(aT(dk),dj,di,bp,cW)};this.getCookie=function(dj){var di=aD(aT(dj));if(di===0){return null}return di};this.setCookiePath=function(di){bp=di;bi()};this.getCookiePath=function(di){return bp};this.setVisitorCookieTimeout=function(di){cJ=di*1000 -};this.setSessionCookieTimeout=function(di){co=di*1000};this.getSessionCookieTimeout=function(){return co};this.setReferralCookieTimeout=function(di){c4=di*1000};this.setConversionAttributionFirstReferrer=function(di){bv=di};this.setSecureCookie=function(di){bS=di};this.disableCookies=function(){bl=true;c7.cookie="0";if(b6){aF()}};this.deleteCookies=function(){aF()};this.setDoNotTrack=function(dj){var di=h.doNotTrack||h.msDoNotTrack;cP=dj&&(di==="yes"||di==="1");if(cP){this.disableCookies()}};this.alwaysUseSendBeacon=function(){cV=true};this.disableAlwaysUseSendBeacon=function(){cV=false};this.addListener=function(dj,di){aq(dj,di)};this.enableLinkTracking=function(dj){c8=true;var di=this;ch(function(){q(function(){bD(dj,di)})})};this.enableJSErrorTracking=function(){if(cR){return}cR=true;var di=T.onerror;T.onerror=function(dn,dl,dk,dm,dj){ch(function(){var dp="JavaScript Errors";var dq=dl+":"+dk;if(dm){dq+=":"+dm}at(dp,dq,dn)});if(di){return di(dn,dl,dk,dm,dj)}return false}};this.disablePerformanceTracking=function(){a2=false -};this.setVisitStandardLength=function(di){di=Math.max(di,5);c6=di};this.enableHeartBeatTimer=function(di){di=Math.max(di,5);a5=(di||15)*1000;if(cX!==null){df()}};this.disableHeartBeatTimer=function(){bK();if(a5||aN){if(T.removeEventListener){T.removeEventListener("focus",ba);T.removeEventListener("blur",ay)}else{if(T.detachEvent){T.detachEvent("onfocus",ba);T.detachEvent("onblur",ay)}}}a5=null;aN=false};this.killFrame=function(){if(T.location!==T.top.location){T.top.location=T.location}};this.redirectFile=function(di){if(T.location.protocol==="file:"){T.location=di}};this.setCountPreRendered=function(di){be=di};this.trackGoal=function(di,dl,dk,dj){ch(function(){cS(di,dl,dk,dj)})};this.trackLink=function(dj,di,dl,dk){ch(function(){c0(dj,di,dl,dk)})};this.getNumTrackedPageViews=function(){return cr};this.trackPageView=function(di,dk,dj){ca=[];cK=[];if(N(b6)){ch(function(){Z(aE,bH,b6)})}else{ch(function(){cr++;b0(di,dk,dj)})}};this.trackAllContentImpressions=function(){if(N(b6)){return}ch(function(){q(function(){var di=v.findContentNodes(); -var dj=cz(di);de(dj,bJ)})})};this.trackVisibleContentImpressions=function(di,dj){if(N(b6)){return}if(!J(di)){di=true}if(!J(dj)){dj=750}aS(di,dj,this);ch(function(){n(function(){var dk=v.findContentNodes();var dl=a9(dk);de(dl,bJ)})})};this.trackContentImpression=function(dk,di,dj){if(N(b6)){return}dk=a(dk);di=a(di);dj=a(dj);if(!dk){return}di=di||"Unknown";ch(function(){var dl=aG(dk,di,dj);bF(dl,bJ)})};this.trackContentImpressionsWithinNode=function(di){if(N(b6)||!di){return}ch(function(){if(cf){n(function(){var dj=v.findContentNodesWithinNode(di);var dk=a9(dj);de(dk,bJ)})}else{q(function(){var dj=v.findContentNodesWithinNode(di);var dk=cz(dj);de(dk,bJ)})}})};this.trackContentInteraction=function(dk,dl,di,dj){if(N(b6)){return}dk=a(dk);dl=a(dl);di=a(di);dj=a(dj);if(!dk||!dl){return}di=di||"Unknown";ch(function(){var dm=aP(dk,dl,di,dj);if(dm){bF(dm,bJ)}})};this.trackContentInteractionNode=function(dk,dj){if(N(b6)||!dk){return}var di=null;ch(function(){di=da(dk,dj);if(di){bF(di,bJ)}});return di -};this.logAllContentBlocksOnPage=function(){var dk=v.findContentNodes();var di=v.collectContent(dk);var dj=typeof console;if(dj!=="undefined"&&console&&console.log){console.log(di)}};this.trackEvent=function(dj,dl,di,dk,dn,dm){ch(function(){at(dj,dl,di,dk,dn,dm)})};this.trackSiteSearch=function(di,dk,dj,dl){ca=[];ch(function(){b8(di,dk,dj,dl)})};this.setEcommerceView=function(dl,di,dk,dj){if(Y(dk)){dk=String(dk)}if(!J(dk)||dk===null||dk===false||!dk.length){dk=""}else{if(dk instanceof Array){dk=T.JSON.stringify(dk)}}bW[5]=["_pkc",dk];if(J(dj)&&dj!==null&&dj!==false&&String(dj).length){bW[2]=["_pkp",dj]}if(!Y(dl)&&!Y(di)){return}if(Y(dl)){bW[3]=["_pks",dl]}if(!Y(di)){di=""}bW[4]=["_pkn",di]};this.getEcommerceItems=function(){return JSON.parse(JSON.stringify(cZ))};this.addEcommerceItem=function(dm,di,dk,dj,dl){if(Y(dm)){cZ[dm]=[String(dm),di,dk,dj,dl]}};this.removeEcommerceItem=function(di){if(Y(di)){di=String(di);delete cZ[di]}};this.clearEcommerceCart=function(){cZ={}};this.trackEcommerceOrder=function(di,dm,dl,dk,dj,dn){bZ(di,dm,dl,dk,dj,dn) -};this.trackEcommerceCartUpdate=function(di){bs(di)};this.trackRequest=function(dj,dl,dk,di){ch(function(){var dm=cs(dj,dl,di);bF(dm,bJ,dk)})};this.ping=function(){this.trackRequest("ping=1",null,null,"ping")};this.disableQueueRequest=function(){bC.enabled=false};this.setRequestQueueInterval=function(di){if(di<1000){throw new Error("Request queue interval needs to be at least 1000ms")}bC.interval=di};this.queueRequest=function(di){ch(function(){var dj=cs(di);bC.push(dj)})};this.isConsentRequired=function(){return cA};this.getRememberedConsent=function(){var di=aD(bd);if(aD(cL)){if(di){bY(bd,bp,cW)}return null}if(!di||di===0){return null}return di};this.hasRememberedConsent=function(){return !!this.getRememberedConsent()};this.requireConsent=function(){cA=true;bB=this.hasRememberedConsent();x++;b["CoreConsent"+x]={unload:function(){if(!bB){aF()}}}};this.setConsentGiven=function(){bB=true;bY(cL,bp,cW);var dj,di;for(dj=0;dj<cK.length;dj++){di=typeof cK[dj];if(di==="string"){bF(cK[dj],bJ)}else{if(di==="object"){de(cK[dj],bJ) -}}}cK=[]};this.rememberConsentGiven=function(dj){if(dj){dj=dj*60*60*1000}else{dj=30*365*24*60*60*1000}this.setConsentGiven();var di=new Date().getTime();dd(bd,di,dj,bp,cW,bS)};this.forgetConsentGiven=function(){var di=30*365*24*60*60*1000;bY(bd,bp,cW);dd(cL,new Date().getTime(),di,bp,cW,bS);this.requireConsent()};this.isUserOptedOut=function(){return !bB};this.optUserOut=this.forgetConsentGiven;this.forgetUserOptOut=this.rememberConsentGiven;n(function(){setTimeout(function(){bE=true},0)});e.trigger("TrackerSetup",[this])}function H(){return{push:af}}function c(au,at){var av={};var aq,ar;for(aq=0;aq<at.length;aq++){var ao=at[aq];av[ao]=1;for(ar=0;ar<au.length;ar++){if(au[ar]&&au[ar][0]){var ap=au[ar][0];if(ao===ap){af(au[ar]);delete au[ar];if(av[ap]>1&&ap!=="addTracker"){ak("The method "+ap+' is registered more than once in "_paq" variable. Only the last call has an effect. Please have a look at the multiple Piwik trackers documentation: https://developer.piwik.org/guides/tracking-javascript-guide#multiple-piwik-trackers') -}av[ap]++}}}}return au}var C=["addTracker","disableCookies","setTrackerUrl","setAPIUrl","enableCrossDomainLinking","setCrossDomainLinkingTimeout","setSessionCookieTimeout","setVisitorCookieTimeout","setCookieNamePrefix","setSecureCookie","setCookiePath","setCookieDomain","setDomains","setUserId","setSiteId","alwaysUseSendBeacon","enableLinkTracking","requireConsent","setConsentGiven"];function ad(ao,aq){var ap=new Q(ao,aq);I.push(ap);_paq=c(_paq,C);for(E=0;E<_paq.length;E++){if(_paq[E]){af(_paq[E])}}_paq=new H();e.trigger("TrackerAdded",[ap]);return ap}an(T,"beforeunload",ai,false);an(T,"message",function(au){if(!au||!au.origin){return}var aw,ar,ap;var ax=d(au.origin);var at=e.getAsyncTrackers();for(ar=0;ar<at.length;ar++){ap=d(at[ar].getPiwikUrl());if(ap===ax){aw=at[ar];break}}if(!aw){return}var aq=null;try{aq=JSON.parse(au.data)}catch(av){return}if(!aq){return}function ao(aA){var aC=G.getElementsByTagName("iframe");for(ar=0;ar<aC.length;ar++){var aB=aC[ar];var ay=d(aB.src);if(aB.contentWindow&&J(aB.contentWindow.postMessage)&&ay===ax){var az=JSON.stringify(aA); -aB.contentWindow.postMessage(az,"*")}}}if(J(aq.maq_initial_value)){ao({maq_opted_in:aq.maq_initial_value&&aw.hasConsent(),maq_url:aw.getPiwikUrl(),maq_optout_by_default:aw.isConsentRequired()})}else{if(J(aq.maq_opted_in)){at=e.getAsyncTrackers();for(ar=0;ar<at.length;ar++){aw=at[ar];if(aq.maq_opted_in){aw.rememberConsentGiven()}else{aw.forgetConsentGiven()}}ao({maq_confirm_opted_in:aw.hasConsent(),maq_url:aw.getPiwikUrl(),maq_optout_by_default:aw.isConsentRequired()})}}},false);Date.prototype.getTimeAlias=Date.prototype.getTime;e={initialized:false,JSON:T.JSON,DOM:{addEventListener:function(ar,aq,ap,ao){var at=typeof ao;if(at==="undefined"){ao=false}an(ar,aq,ap,ao)},onLoad:n,onReady:q,isNodeVisible:j,isOrWasNodeVisible:v.isNodeVisible},on:function(ap,ao){if(!y[ap]){y[ap]=[]}y[ap].push(ao)},off:function(aq,ap){if(!y[aq]){return}var ao=0;for(ao;ao<y[aq].length;ao++){if(y[aq][ao]===ap){y[aq].splice(ao,1)}}},trigger:function(aq,ar,ap){if(!y[aq]){return}var ao=0;for(ao;ao<y[aq].length;ao++){y[aq][ao].apply(ap||T,ar) -}},addPlugin:function(ao,ap){b[ao]=ap},getTracker:function(ao,ap){if(!J(ap)){ap=this.getAsyncTracker().getSiteId()}if(!J(ao)){ao=this.getAsyncTracker().getTrackerUrl()}return new Q(ao,ap)},getAsyncTrackers:function(){return I},addTracker:function(ao,aq){var ap;if(!I.length){ap=ad(ao,aq)}else{ap=I[0].addTracker(ao,aq)}return ap},getAsyncTracker:function(ap,at){var ar;if(I&&I.length&&I[0]){ar=I[0]}else{return ad(ap,at)}if(!at&&!ap){return ar}if((!J(at)||null===at)&&ar){at=ar.getSiteId()}if((!J(ap)||null===ap)&&ar){ap=ar.getTrackerUrl()}var aq,ao=0;for(ao;ao<I.length;ao++){aq=I[ao];if(aq&&String(aq.getSiteId())===String(at)&&aq.getTrackerUrl()===ap){return aq}}},retryMissedPluginCalls:function(){var ap=ah;ah=[];var ao=0;for(ao;ao<ap.length;ao++){af(ap[ao])}}};if(typeof define==="function"&&define.amd){define("piwik",[],function(){return e});define("matomo",[],function(){return e})}return e}())} +}}dr(100)}if(dm&&dm>0){dm=parseInt(dm,10);dq(dm)}})}var bC={enabled:true,requests:[],timeout:null,interval:2500,sendRequests:function(){var di=this.requests;this.requests=[];if(di.length===1){bF(di[0],bJ)}else{de(di,bJ)}},canQueue:function(){return !m&&this.enabled},pushMultiple:function(dj){if(!this.canQueue()){de(dj,bJ);return}var di;for(di=0;di<dj.length;di++){this.push(dj[di])}},push:function(di){if(!di){return}if(!this.canQueue()){bF(di,bJ);return}bC.requests.push(di);if(this.timeout){clearTimeout(this.timeout);this.timeout=null}this.timeout=setTimeout(function(){bC.timeout=null;bC.sendRequests()},bC.interval);var dj="RequestQueue"+aw;if(!Object.prototype.hasOwnProperty.call(b,dj)){b[dj]={unload:function(){if(bC.timeout){clearTimeout(bC.timeout)}bC.sendRequests()}}}}};bi();aM();this.hasConsent=function(){return bB};this.getVisitorId=function(){return aY().uuid};this.getVisitorInfo=function(){return cN()};this.getAttributionInfo=function(){return bM()};this.getAttributionCampaignName=function(){return bM()[0] +};this.getAttributionCampaignKeyword=function(){return bM()[1]};this.getAttributionReferrerTimestamp=function(){return bM()[2]};this.getAttributionReferrerUrl=function(){return bM()[3]};this.setTrackerUrl=function(di){aE=di};this.getTrackerUrl=function(){return aE};this.getPiwikUrl=function(){return O(this.getTrackerUrl(),bH)};this.addTracker=function(di,dk){if(!J(di)||null===di){di=this.getTrackerUrl()}var dj=new Q(di,dk);I.push(dj);e.trigger("TrackerAdded",[this]);return dj};this.getSiteId=function(){return b6};this.setSiteId=function(di){b3(di)};this.resetUserId=function(){by=""};this.setUserId=function(di){if(Y(di)){by=di}};this.getUserId=function(){return by};this.setCustomData=function(di,dj){if(W(di)){ao=di}else{if(!ao){ao={}}ao[di]=dj}};this.getCustomData=function(){return ao};this.setCustomRequestProcessing=function(di){cb=di};this.appendToTrackingUrl=function(di){cY=di};this.getRequest=function(di){return cs(di)};this.addPlugin=function(di,dj){b[di]=dj};this.setCustomDimension=function(di,dj){di=parseInt(di,10); +if(di>0){if(!J(dj)){dj=""}if(!w(dj)){dj=String(dj)}bm[di]=dj}};this.getCustomDimension=function(di){di=parseInt(di,10);if(di>0&&Object.prototype.hasOwnProperty.call(bm,di)){return bm[di]}};this.deleteCustomDimension=function(di){di=parseInt(di,10);if(di>0){delete bm[di]}};this.setCustomVariable=function(dj,di,dm,dk){var dl;if(!J(dk)){dk="visit"}if(!J(di)){return}if(!J(dm)){dm=""}if(dj>0){di=!w(di)?String(di):di;dm=!w(dm)?String(dm):dm;dl=[di.slice(0,bt),dm.slice(0,bt)];if(dk==="visit"||dk===2){cE();aQ[dj]=dl}else{if(dk==="page"||dk===3){bW[dj]=dl}else{if(dk==="event"){cm[dj]=dl}}}}};this.getCustomVariable=function(dj,dk){var di;if(!J(dk)){dk="visit"}if(dk==="page"||dk===3){di=bW[dj]}else{if(dk==="event"){di=cm[dj]}else{if(dk==="visit"||dk===2){cE();di=aQ[dj]}}}if(!J(di)||(di&&di[0]==="")){return false}return di};this.deleteCustomVariable=function(di,dj){if(this.getCustomVariable(di,dj)){this.setCustomVariable(di,"","",dj)}};this.deleteCustomVariables=function(di){if(di==="page"||di===3){bW={} +}else{if(di==="event"){cm={}}else{if(di==="visit"||di===2){aQ={}}}}};this.storeCustomVariablesInCookie=function(){bQ=true};this.setLinkTrackingTimer=function(di){bJ=di};this.getLinkTrackingTimer=function(){return bJ};this.setDownloadExtensions=function(di){if(w(di)){di=di.split("|")}c5=di};this.addDownloadExtensions=function(dj){var di;if(w(dj)){dj=dj.split("|")}for(di=0;di<dj.length;di++){c5.push(dj[di])}};this.removeDownloadExtensions=function(dk){var dj,di=[];if(w(dk)){dk=dk.split("|")}for(dj=0;dj<c5.length;dj++){if(M(dk,c5[dj])===-1){di.push(c5[dj])}}c5=di};this.setDomains=function(di){ax=w(di)?[di]:di;var dm=false,dk=0,dj;for(dk;dk<ax.length;dk++){dj=String(ax[dk]);if(cG(cT,L(dj))){dm=true;break}var dl=cl(dj);if(dl&&dl!=="/"&&dl!=="/*"){dm=true;break}}if(!dm){ax.push(cT)}};this.enableCrossDomainLinking=function(){cM=true};this.disableCrossDomainLinking=function(){cM=false};this.isCrossDomainLinkingEnabled=function(){return cM};this.setCrossDomainLinkingTimeout=function(di){aZ=di};this.getCrossDomainLinkingUrlParameter=function(){return t(av)+"="+t(br()) +};this.setIgnoreClasses=function(di){bz=w(di)?[di]:di};this.setRequestMethod=function(di){c9=di||ci};this.setRequestContentType=function(di){cw=di||aI};this.setReferrerUrl=function(di){bn=di};this.setCustomUrl=function(di){a4=bV(bN,di)};this.getCurrentUrl=function(){return a4||bN};this.setDocumentTitle=function(di){bj=di};this.setAPIUrl=function(di){bH=di};this.setDownloadClasses=function(di){bL=w(di)?[di]:di};this.setLinkClasses=function(di){a8=w(di)?[di]:di};this.setCampaignNameKey=function(di){cq=w(di)?[di]:di};this.setCampaignKeywordKey=function(di){bG=w(di)?[di]:di};this.discardHashTag=function(di){bP=di};this.setCookieNamePrefix=function(di){bk=di;if(aQ){aQ=bX()}};this.setCookieDomain=function(di){var dj=L(di);if(bw(dj)){cW=dj;bi()}};this.getCookieDomain=function(){return cW};this.hasCookies=function(){return"1"===b5()};this.setSessionCookie=function(dk,dj,di){if(!dk){throw new Error("Missing cookie name")}if(!J(di)){di=co}bu.push(dk);dd(aT(dk),dj,di,bp,cW)};this.getCookie=function(dj){var di=aD(aT(dj)); +if(di===0){return null}return di};this.setCookiePath=function(di){bp=di;bi()};this.getCookiePath=function(di){return bp};this.setVisitorCookieTimeout=function(di){cJ=di*1000};this.setSessionCookieTimeout=function(di){co=di*1000};this.getSessionCookieTimeout=function(){return co};this.setReferralCookieTimeout=function(di){c4=di*1000};this.setConversionAttributionFirstReferrer=function(di){bv=di};this.setSecureCookie=function(di){bS=di};this.disableCookies=function(){bl=true;c7.cookie="0";if(b6){aF()}};this.deleteCookies=function(){aF()};this.setDoNotTrack=function(dj){var di=h.doNotTrack||h.msDoNotTrack;cP=dj&&(di==="yes"||di==="1");if(cP){this.disableCookies()}};this.alwaysUseSendBeacon=function(){cV=true};this.disableAlwaysUseSendBeacon=function(){cV=false};this.addListener=function(dj,di){aq(dj,di)};this.enableLinkTracking=function(dj){c8=true;var di=this;ch(function(){q(function(){bD(dj,di)});n(function(){bD(dj,di)})})};this.enableJSErrorTracking=function(){if(cR){return}cR=true;var di=T.onerror; +T.onerror=function(dn,dl,dk,dm,dj){ch(function(){var dp="JavaScript Errors";var dq=dl+":"+dk;if(dm){dq+=":"+dm}at(dp,dq,dn)});if(di){return di(dn,dl,dk,dm,dj)}return false}};this.disablePerformanceTracking=function(){a2=false};this.setVisitStandardLength=function(di){di=Math.max(di,5);c6=di};this.enableHeartBeatTimer=function(di){di=Math.max(di,5);a5=(di||15)*1000;if(cX!==null){df()}};this.disableHeartBeatTimer=function(){bK();if(a5||aN){if(T.removeEventListener){T.removeEventListener("focus",ba);T.removeEventListener("blur",ay)}else{if(T.detachEvent){T.detachEvent("onfocus",ba);T.detachEvent("onblur",ay)}}}a5=null;aN=false};this.killFrame=function(){if(T.location!==T.top.location){T.top.location=T.location}};this.redirectFile=function(di){if(T.location.protocol==="file:"){T.location=di}};this.setCountPreRendered=function(di){be=di};this.trackGoal=function(di,dl,dk,dj){ch(function(){cS(di,dl,dk,dj)})};this.trackLink=function(dj,di,dl,dk){ch(function(){c0(dj,di,dl,dk)})};this.getNumTrackedPageViews=function(){return cr +};this.trackPageView=function(di,dk,dj){ca=[];cK=[];if(N(b6)){ch(function(){Z(aE,bH,b6)})}else{ch(function(){cr++;b0(di,dk,dj)})}};this.trackAllContentImpressions=function(){if(N(b6)){return}ch(function(){q(function(){var di=v.findContentNodes();var dj=cz(di);bC.pushMultiple(dj)})})};this.trackVisibleContentImpressions=function(di,dj){if(N(b6)){return}if(!J(di)){di=true}if(!J(dj)){dj=750}aS(di,dj,this);ch(function(){n(function(){var dk=v.findContentNodes();var dl=a9(dk);bC.pushMultiple(dl)})})};this.trackContentImpression=function(dk,di,dj){if(N(b6)){return}dk=a(dk);di=a(di);dj=a(dj);if(!dk){return}di=di||"Unknown";ch(function(){var dl=aG(dk,di,dj);bC.push(dl)})};this.trackContentImpressionsWithinNode=function(di){if(N(b6)||!di){return}ch(function(){if(cf){n(function(){var dj=v.findContentNodesWithinNode(di);var dk=a9(dj);bC.pushMultiple(dk)})}else{q(function(){var dj=v.findContentNodesWithinNode(di);var dk=cz(dj);bC.pushMultiple(dk)})}})};this.trackContentInteraction=function(dk,dl,di,dj){if(N(b6)){return +}dk=a(dk);dl=a(dl);di=a(di);dj=a(dj);if(!dk||!dl){return}di=di||"Unknown";ch(function(){var dm=aP(dk,dl,di,dj);if(dm){bC.push(dm)}})};this.trackContentInteractionNode=function(dk,dj){if(N(b6)||!dk){return}var di=null;ch(function(){di=da(dk,dj);if(di){bC.push(di)}});return di};this.logAllContentBlocksOnPage=function(){var dk=v.findContentNodes();var di=v.collectContent(dk);var dj=typeof console;if(dj!=="undefined"&&console&&console.log){console.log(di)}};this.trackEvent=function(dj,dl,di,dk,dn,dm){ch(function(){at(dj,dl,di,dk,dn,dm)})};this.trackSiteSearch=function(di,dk,dj,dl){ca=[];ch(function(){b8(di,dk,dj,dl)})};this.setEcommerceView=function(dl,di,dk,dj){if(Y(dk)){dk=String(dk)}if(!J(dk)||dk===null||dk===false||!dk.length){dk=""}else{if(dk instanceof Array){dk=T.JSON.stringify(dk)}}bW[5]=["_pkc",dk];if(J(dj)&&dj!==null&&dj!==false&&String(dj).length){bW[2]=["_pkp",dj]}if(!Y(dl)&&!Y(di)){return}if(Y(dl)){bW[3]=["_pks",dl]}if(!Y(di)){di=""}bW[4]=["_pkn",di]};this.getEcommerceItems=function(){return JSON.parse(JSON.stringify(cZ)) +};this.addEcommerceItem=function(dm,di,dk,dj,dl){if(Y(dm)){cZ[dm]=[String(dm),di,dk,dj,dl]}};this.removeEcommerceItem=function(di){if(Y(di)){di=String(di);delete cZ[di]}};this.clearEcommerceCart=function(){cZ={}};this.trackEcommerceOrder=function(di,dm,dl,dk,dj,dn){bZ(di,dm,dl,dk,dj,dn)};this.trackEcommerceCartUpdate=function(di){bs(di)};this.trackRequest=function(dj,dl,dk,di){ch(function(){var dm=cs(dj,dl,di);bF(dm,bJ,dk)})};this.ping=function(){this.trackRequest("ping=1",null,null,"ping")};this.disableQueueRequest=function(){bC.enabled=false};this.setRequestQueueInterval=function(di){if(di<1000){throw new Error("Request queue interval needs to be at least 1000ms")}bC.interval=di};this.queueRequest=function(di){ch(function(){var dj=cs(di);bC.push(dj)})};this.isConsentRequired=function(){return cA};this.getRememberedConsent=function(){var di=aD(bd);if(aD(cL)){if(di){bY(bd,bp,cW)}return null}if(!di||di===0){return null}return di};this.hasRememberedConsent=function(){return !!this.getRememberedConsent() +};this.requireConsent=function(){cA=true;bB=this.hasRememberedConsent();x++;b["CoreConsent"+x]={unload:function(){if(!bB){aF()}}}};this.setConsentGiven=function(){bB=true;bY(cL,bp,cW);var dj,di;for(dj=0;dj<cK.length;dj++){di=typeof cK[dj];if(di==="string"){bF(cK[dj],bJ)}else{if(di==="object"){de(cK[dj],bJ)}}}cK=[]};this.rememberConsentGiven=function(dj){if(dj){dj=dj*60*60*1000}else{dj=30*365*24*60*60*1000}this.setConsentGiven();var di=new Date().getTime();dd(bd,di,dj,bp,cW,bS)};this.forgetConsentGiven=function(){var di=30*365*24*60*60*1000;bY(bd,bp,cW);dd(cL,new Date().getTime(),di,bp,cW,bS);this.requireConsent()};this.isUserOptedOut=function(){return !bB};this.optUserOut=this.forgetConsentGiven;this.forgetUserOptOut=this.rememberConsentGiven;n(function(){setTimeout(function(){bE=true},0)});e.trigger("TrackerSetup",[this])}function H(){return{push:af}}function c(au,at){var av={};var aq,ar;for(aq=0;aq<at.length;aq++){var ao=at[aq];av[ao]=1;for(ar=0;ar<au.length;ar++){if(au[ar]&&au[ar][0]){var ap=au[ar][0]; +if(ao===ap){af(au[ar]);delete au[ar];if(av[ap]>1&&ap!=="addTracker"){ak("The method "+ap+' is registered more than once in "_paq" variable. Only the last call has an effect. Please have a look at the multiple Piwik trackers documentation: https://developer.piwik.org/guides/tracking-javascript-guide#multiple-piwik-trackers')}av[ap]++}}}}return au}var C=["addTracker","disableCookies","setTrackerUrl","setAPIUrl","enableCrossDomainLinking","setCrossDomainLinkingTimeout","setSessionCookieTimeout","setVisitorCookieTimeout","setCookieNamePrefix","setSecureCookie","setCookiePath","setCookieDomain","setDomains","setUserId","setSiteId","alwaysUseSendBeacon","enableLinkTracking","requireConsent","setConsentGiven"];function ad(ao,aq){var ap=new Q(ao,aq);I.push(ap);_paq=c(_paq,C);for(E=0;E<_paq.length;E++){if(_paq[E]){af(_paq[E])}}_paq=new H();e.trigger("TrackerAdded",[ap]);return ap}an(T,"beforeunload",ai,false);an(T,"message",function(au){if(!au||!au.origin){return}var aw,ar,ap;var ax=d(au.origin); +var at=e.getAsyncTrackers();for(ar=0;ar<at.length;ar++){ap=d(at[ar].getPiwikUrl());if(ap===ax){aw=at[ar];break}}if(!aw){return}var aq=null;try{aq=JSON.parse(au.data)}catch(av){return}if(!aq){return}function ao(aA){var aC=G.getElementsByTagName("iframe");for(ar=0;ar<aC.length;ar++){var aB=aC[ar];var ay=d(aB.src);if(aB.contentWindow&&J(aB.contentWindow.postMessage)&&ay===ax){var az=JSON.stringify(aA);aB.contentWindow.postMessage(az,"*")}}}if(J(aq.maq_initial_value)){ao({maq_opted_in:aq.maq_initial_value&&aw.hasConsent(),maq_url:aw.getPiwikUrl(),maq_optout_by_default:aw.isConsentRequired()})}else{if(J(aq.maq_opted_in)){at=e.getAsyncTrackers();for(ar=0;ar<at.length;ar++){aw=at[ar];if(aq.maq_opted_in){aw.rememberConsentGiven()}else{aw.forgetConsentGiven()}}ao({maq_confirm_opted_in:aw.hasConsent(),maq_url:aw.getPiwikUrl(),maq_optout_by_default:aw.isConsentRequired()})}}},false);Date.prototype.getTimeAlias=Date.prototype.getTime;e={initialized:false,JSON:T.JSON,DOM:{addEventListener:function(ar,aq,ap,ao){var at=typeof ao; +if(at==="undefined"){ao=false}an(ar,aq,ap,ao)},onLoad:n,onReady:q,isNodeVisible:j,isOrWasNodeVisible:v.isNodeVisible},on:function(ap,ao){if(!y[ap]){y[ap]=[]}y[ap].push(ao)},off:function(aq,ap){if(!y[aq]){return}var ao=0;for(ao;ao<y[aq].length;ao++){if(y[aq][ao]===ap){y[aq].splice(ao,1)}}},trigger:function(aq,ar,ap){if(!y[aq]){return}var ao=0;for(ao;ao<y[aq].length;ao++){y[aq][ao].apply(ap||T,ar)}},addPlugin:function(ao,ap){b[ao]=ap},getTracker:function(ao,ap){if(!J(ap)){ap=this.getAsyncTracker().getSiteId()}if(!J(ao)){ao=this.getAsyncTracker().getTrackerUrl()}return new Q(ao,ap)},getAsyncTrackers:function(){return I},addTracker:function(ao,aq){var ap;if(!I.length){ap=ad(ao,aq)}else{ap=I[0].addTracker(ao,aq)}return ap},getAsyncTracker:function(ap,at){var ar;if(I&&I.length&&I[0]){ar=I[0]}else{return ad(ap,at)}if(!at&&!ap){return ar}if((!J(at)||null===at)&&ar){at=ar.getSiteId()}if((!J(ap)||null===ap)&&ar){ap=ar.getTrackerUrl()}var aq,ao=0;for(ao;ao<I.length;ao++){aq=I[ao];if(aq&&String(aq.getSiteId())===String(at)&&aq.getTrackerUrl()===ap){return aq +}}},retryMissedPluginCalls:function(){var ap=ah;ah=[];var ao=0;for(ao;ao<ap.length;ao++){af(ap[ao])}}};if(typeof define==="function"&&define.amd){define("piwik",[],function(){return e});define("matomo",[],function(){return e})}return e}())} /*!!! pluginTrackerHook */ -(function(){function b(){if("object"!==typeof _paq){return false}var c=typeof _paq.length; -if("undefined"===c){return false}return !!_paq.length}if(window&&"object"===typeof window.piwikPluginAsyncInit&&window.piwikPluginAsyncInit.length){var a=0;for(a;a<window.piwikPluginAsyncInit.length;a++){if(typeof window.piwikPluginAsyncInit[a]==="function"){window.piwikPluginAsyncInit[a]()}}}if(window&&window.piwikAsyncInit){window.piwikAsyncInit()}if(!window.Piwik.getAsyncTrackers().length){if(b()){window.Piwik.addTracker()}else{_paq={push:function(c){var d=typeof console;if(d!=="undefined"&&console&&console.error){console.error("_paq.push() was used but Matomo tracker was not initialized before the matomo.js file was loaded. Make sure to configure the tracker via _paq.push before loading matomo.js. Alternatively, you can create a tracker via Matomo.addTracker() manually and then use _paq.push but it may not fully work as tracker methods may not be executed in the correct order.",c)}}}}}window.Piwik.trigger("PiwikInitialized",[]);window.Piwik.initialized=true}());(function(){var a=(typeof AnalyticsTracker); -if(a==="undefined"){AnalyticsTracker=window.Piwik}}());if(typeof piwik_log!=="function"){piwik_log=function(b,f,d,g){function a(h){try{if(window["piwik_"+h]){return window["piwik_"+h]}}catch(i){}return}var c,e=window.Piwik.getTracker(d,f);e.setDocumentTitle(b);e.setCustomData(g);c=a("tracker_pause");if(c){e.setLinkTrackingTimer(c)}c=a("download_extensions");if(c){e.setDownloadExtensions(c)}c=a("hosts_alias");if(c){e.setDomains(c)}c=a("ignore_classes");if(c){e.setIgnoreClasses(c)}e.trackPageView();if(a("install_tracker")){piwik_track=function(i,k,j,h){e.setSiteId(k);e.setTrackerUrl(j);e.trackLink(i,h)};e.enableLinkTracking()}}} +(function(){function b(){if("object"!==typeof _paq){return false}var c=typeof _paq.length;if("undefined"===c){return false}return !!_paq.length}if(window&&"object"===typeof window.piwikPluginAsyncInit&&window.piwikPluginAsyncInit.length){var a=0;for(a;a<window.piwikPluginAsyncInit.length;a++){if(typeof window.piwikPluginAsyncInit[a]==="function"){window.piwikPluginAsyncInit[a]()}}}if(window&&window.piwikAsyncInit){window.piwikAsyncInit()}if(!window.Piwik.getAsyncTrackers().length){if(b()){window.Piwik.addTracker()}else{_paq={push:function(c){var d=typeof console;if(d!=="undefined"&&console&&console.error){console.error("_paq.push() was used but Matomo tracker was not initialized before the matomo.js file was loaded. Make sure to configure the tracker via _paq.push before loading matomo.js. Alternatively, you can create a tracker via Matomo.addTracker() manually and then use _paq.push but it may not fully work as tracker methods may not be executed in the correct order.",c) +}}}}}window.Piwik.trigger("PiwikInitialized",[]);window.Piwik.initialized=true}());(function(){var a=(typeof AnalyticsTracker);if(a==="undefined"){AnalyticsTracker=window.Piwik}}());if(typeof piwik_log!=="function"){piwik_log=function(b,f,d,g){function a(h){try{if(window["piwik_"+h]){return window["piwik_"+h]}}catch(i){}return}var c,e=window.Piwik.getTracker(d,f);e.setDocumentTitle(b);e.setCustomData(g);c=a("tracker_pause");if(c){e.setLinkTrackingTimer(c)}c=a("download_extensions");if(c){e.setDownloadExtensions(c)}c=a("hosts_alias");if(c){e.setDomains(c)}c=a("ignore_classes");if(c){e.setIgnoreClasses(c)}e.trackPageView();if(a("install_tracker")){piwik_track=function(i,k,j,h){e.setSiteId(k);e.setTrackerUrl(j);e.trackLink(i,h)};e.enableLinkTracking()}}} /*!! @license-end */;
\ No newline at end of file @@ -49,22 +49,22 @@ di--}}if(!dj||!dj.length){return[]}return cz(dj)}function aG(dk,di,dj){var dl=v. if(dj){dn+="&"+dj}var dm=cs(dn,dq,"link");bF(dm,bJ,dp)}function bU(dj,di){if(dj!==""){return dj+di.charAt(0).toUpperCase()+di.slice(1)}return di}function ch(dn){var dm,di,dl=["","webkit","ms","moz"],dk;if(!be){for(di=0;di<dl.length;di++){dk=dl[di];if(Object.prototype.hasOwnProperty.call(G,bU(dk,"hidden"))){if(G[bU(dk,"visibilityState")]==="prerender"){dm=true}break}}}if(dm){an(G,dk+"visibilitychange",function dj(){G.removeEventListener(dk+"visibilitychange",dj,false);dn()});return}dn()}function br(){var dj=aY().uuid;var di=aJ();return dj+di}function cj(di){if(!di){return}if(!ae.hasNodeAttribute(di,"href")){return}var dj=ae.getAttributeValueFromNode(di,"href");if(!dj||aU(dj)){return}dj=k(dj,av);var dk=br();dj=F(dj,av,dk);ae.setAnyAttribute(di,"href",dj)}function aB(dl){var dm=ae.getAttributeValueFromNode(dl,"href");if(!dm){return false}dm=String(dm);var dj=dm.indexOf("//")===0||dm.indexOf("http://")===0||dm.indexOf("https://")===0;if(!dj){return false}var di=dl.pathname||cl(dl.href);var dk=(dl.hostname||d(dl.href)).toLowerCase(); if(ar(dk,di)){if(!cG(cT,L(dk))){return true}return false}return false}function cF(di){var dj=db(di);if(dj&&dj.type){dj.href=p(dj.href);c0(dj.href,dj.type,undefined,null,di);return}if(cM){di=au(di);if(aB(di)){cj(di)}}}function cv(){return G.all&&!G.addEventListener}function cU(di){var dk=di.which;var dj=(typeof di.button);if(!dk&&dj!=="undefined"){if(cv()){if(di.button&1){dk=1}else{if(di.button&2){dk=3}else{if(di.button&4){dk=2}}}}else{if(di.button===0||di.button==="0"){dk=1}else{if(di.button&1){dk=2}else{if(di.button&2){dk=3}}}}}return dk}function bT(di){switch(cU(di)){case 1:return"left";case 2:return"middle";case 3:return"right"}}function a1(di){return di.target||di.srcElement}function aC(di){return function(dl){dl=dl||T.event;var dk=bT(dl);var dm=a1(dl);if(dl.type==="click"){var dj=false;if(di&&dk==="middle"){dj=true}if(dm&&!dj){cF(dm)}}else{if(dl.type==="mousedown"){if(dk==="middle"&&dm){aR=dk;bA=dm}else{aR=bA=null}}else{if(dl.type==="mouseup"){if(dk===aR&&dm===bA){cF(dm)}aR=bA=null }else{if(dl.type==="contextmenu"){cF(dm)}}}}}}function aq(dk,dj){var di=typeof dj;if(di==="undefined"){dj=true}an(dk,"click",aC(dj),false);if(dj){an(dk,"mouseup",aC(dj),false);an(dk,"mousedown",aC(dj),false);an(dk,"contextmenu",aC(dj),false)}}function bD(dk,dm){ap=true;var dl,dj=a0(bz,"ignore"),dn=G.links,di=null,dp=null;if(dn){for(dl=0;dl<dn.length;dl++){di=dn[dl];if(!dj.test(di.className)){dp=typeof di.piwikTrackers;if("undefined"===dp){di.piwikTrackers=[]}if(-1===M(di.piwikTrackers,dm)){di.piwikTrackers.push(dm);aq(di,dk)}}}}}function aS(dj,dm,dn){if(cf){return true}cf=true;var dp=false;var dl,dk;function di(){dp=true}n(function(){function dq(ds){setTimeout(function(){if(!cf){return}dp=false;dn.trackVisibleContentImpressions();dq(ds)},ds)}function dr(ds){setTimeout(function(){if(!cf){return}if(dp){dp=false;dn.trackVisibleContentImpressions()}dr(ds)},ds)}if(dj){dl=["scroll","resize"];for(dk=0;dk<dl.length;dk++){if(G.addEventListener){G.addEventListener(dl[dk],di,false)}else{T.attachEvent("on"+dl[dk],di) -}}dr(100)}if(dm&&dm>0){dm=parseInt(dm,10);dq(dm)}})}var bC={enabled:true,requests:[],timeout:null,interval:2500,sendRequests:function(){var di=this.requests;this.requests=[];if(di.length===1){bF(di[0],bJ)}else{de(di,bJ)}},push:function(di){if(!di){return}if(m||!this.enabled){bF(di,bJ);return}bC.requests.push(di);if(this.timeout){clearTimeout(this.timeout);this.timeout=null}this.timeout=setTimeout(function(){bC.timeout=null;bC.sendRequests()},bC.interval);var dj="RequestQueue"+aw;if(!Object.prototype.hasOwnProperty.call(b,dj)){b[dj]={unload:function(){if(bC.timeout){clearTimeout(bC.timeout)}bC.sendRequests()}}}}};bi();aM();this.hasConsent=function(){return bB};this.getVisitorId=function(){return aY().uuid};this.getVisitorInfo=function(){return cN()};this.getAttributionInfo=function(){return bM()};this.getAttributionCampaignName=function(){return bM()[0]};this.getAttributionCampaignKeyword=function(){return bM()[1]};this.getAttributionReferrerTimestamp=function(){return bM()[2]};this.getAttributionReferrerUrl=function(){return bM()[3] -};this.setTrackerUrl=function(di){aE=di};this.getTrackerUrl=function(){return aE};this.getPiwikUrl=function(){return O(this.getTrackerUrl(),bH)};this.addTracker=function(di,dk){if(!J(di)||null===di){di=this.getTrackerUrl()}var dj=new Q(di,dk);I.push(dj);e.trigger("TrackerAdded",[this]);return dj};this.getSiteId=function(){return b6};this.setSiteId=function(di){b3(di)};this.resetUserId=function(){by=""};this.setUserId=function(di){if(Y(di)){by=di}};this.getUserId=function(){return by};this.setCustomData=function(di,dj){if(W(di)){ao=di}else{if(!ao){ao={}}ao[di]=dj}};this.getCustomData=function(){return ao};this.setCustomRequestProcessing=function(di){cb=di};this.appendToTrackingUrl=function(di){cY=di};this.getRequest=function(di){return cs(di)};this.addPlugin=function(di,dj){b[di]=dj};this.setCustomDimension=function(di,dj){di=parseInt(di,10);if(di>0){if(!J(dj)){dj=""}if(!w(dj)){dj=String(dj)}bm[di]=dj}};this.getCustomDimension=function(di){di=parseInt(di,10);if(di>0&&Object.prototype.hasOwnProperty.call(bm,di)){return bm[di] -}};this.deleteCustomDimension=function(di){di=parseInt(di,10);if(di>0){delete bm[di]}};this.setCustomVariable=function(dj,di,dm,dk){var dl;if(!J(dk)){dk="visit"}if(!J(di)){return}if(!J(dm)){dm=""}if(dj>0){di=!w(di)?String(di):di;dm=!w(dm)?String(dm):dm;dl=[di.slice(0,bt),dm.slice(0,bt)];if(dk==="visit"||dk===2){cE();aQ[dj]=dl}else{if(dk==="page"||dk===3){bW[dj]=dl}else{if(dk==="event"){cm[dj]=dl}}}}};this.getCustomVariable=function(dj,dk){var di;if(!J(dk)){dk="visit"}if(dk==="page"||dk===3){di=bW[dj]}else{if(dk==="event"){di=cm[dj]}else{if(dk==="visit"||dk===2){cE();di=aQ[dj]}}}if(!J(di)||(di&&di[0]==="")){return false}return di};this.deleteCustomVariable=function(di,dj){if(this.getCustomVariable(di,dj)){this.setCustomVariable(di,"","",dj)}};this.deleteCustomVariables=function(di){if(di==="page"||di===3){bW={}}else{if(di==="event"){cm={}}else{if(di==="visit"||di===2){aQ={}}}}};this.storeCustomVariablesInCookie=function(){bQ=true};this.setLinkTrackingTimer=function(di){bJ=di};this.getLinkTrackingTimer=function(){return bJ -};this.setDownloadExtensions=function(di){if(w(di)){di=di.split("|")}c5=di};this.addDownloadExtensions=function(dj){var di;if(w(dj)){dj=dj.split("|")}for(di=0;di<dj.length;di++){c5.push(dj[di])}};this.removeDownloadExtensions=function(dk){var dj,di=[];if(w(dk)){dk=dk.split("|")}for(dj=0;dj<c5.length;dj++){if(M(dk,c5[dj])===-1){di.push(c5[dj])}}c5=di};this.setDomains=function(di){ax=w(di)?[di]:di;var dm=false,dk=0,dj;for(dk;dk<ax.length;dk++){dj=String(ax[dk]);if(cG(cT,L(dj))){dm=true;break}var dl=cl(dj);if(dl&&dl!=="/"&&dl!=="/*"){dm=true;break}}if(!dm){ax.push(cT)}};this.enableCrossDomainLinking=function(){cM=true};this.disableCrossDomainLinking=function(){cM=false};this.isCrossDomainLinkingEnabled=function(){return cM};this.setCrossDomainLinkingTimeout=function(di){aZ=di};this.getCrossDomainLinkingUrlParameter=function(){return t(av)+"="+t(br())};this.setIgnoreClasses=function(di){bz=w(di)?[di]:di};this.setRequestMethod=function(di){c9=di||ci};this.setRequestContentType=function(di){cw=di||aI -};this.setReferrerUrl=function(di){bn=di};this.setCustomUrl=function(di){a4=bV(bN,di)};this.getCurrentUrl=function(){return a4||bN};this.setDocumentTitle=function(di){bj=di};this.setAPIUrl=function(di){bH=di};this.setDownloadClasses=function(di){bL=w(di)?[di]:di};this.setLinkClasses=function(di){a8=w(di)?[di]:di};this.setCampaignNameKey=function(di){cq=w(di)?[di]:di};this.setCampaignKeywordKey=function(di){bG=w(di)?[di]:di};this.discardHashTag=function(di){bP=di};this.setCookieNamePrefix=function(di){bk=di;if(aQ){aQ=bX()}};this.setCookieDomain=function(di){var dj=L(di);if(bw(dj)){cW=dj;bi()}};this.getCookieDomain=function(){return cW};this.hasCookies=function(){return"1"===b5()};this.setSessionCookie=function(dk,dj,di){if(!dk){throw new Error("Missing cookie name")}if(!J(di)){di=co}bu.push(dk);dd(aT(dk),dj,di,bp,cW)};this.getCookie=function(dj){var di=aD(aT(dj));if(di===0){return null}return di};this.setCookiePath=function(di){bp=di;bi()};this.getCookiePath=function(di){return bp};this.setVisitorCookieTimeout=function(di){cJ=di*1000 -};this.setSessionCookieTimeout=function(di){co=di*1000};this.getSessionCookieTimeout=function(){return co};this.setReferralCookieTimeout=function(di){c4=di*1000};this.setConversionAttributionFirstReferrer=function(di){bv=di};this.setSecureCookie=function(di){bS=di};this.disableCookies=function(){bl=true;c7.cookie="0";if(b6){aF()}};this.deleteCookies=function(){aF()};this.setDoNotTrack=function(dj){var di=h.doNotTrack||h.msDoNotTrack;cP=dj&&(di==="yes"||di==="1");if(cP){this.disableCookies()}};this.alwaysUseSendBeacon=function(){cV=true};this.disableAlwaysUseSendBeacon=function(){cV=false};this.addListener=function(dj,di){aq(dj,di)};this.enableLinkTracking=function(dj){c8=true;var di=this;ch(function(){q(function(){bD(dj,di)})})};this.enableJSErrorTracking=function(){if(cR){return}cR=true;var di=T.onerror;T.onerror=function(dn,dl,dk,dm,dj){ch(function(){var dp="JavaScript Errors";var dq=dl+":"+dk;if(dm){dq+=":"+dm}at(dp,dq,dn)});if(di){return di(dn,dl,dk,dm,dj)}return false}};this.disablePerformanceTracking=function(){a2=false -};this.setVisitStandardLength=function(di){di=Math.max(di,5);c6=di};this.enableHeartBeatTimer=function(di){di=Math.max(di,5);a5=(di||15)*1000;if(cX!==null){df()}};this.disableHeartBeatTimer=function(){bK();if(a5||aN){if(T.removeEventListener){T.removeEventListener("focus",ba);T.removeEventListener("blur",ay)}else{if(T.detachEvent){T.detachEvent("onfocus",ba);T.detachEvent("onblur",ay)}}}a5=null;aN=false};this.killFrame=function(){if(T.location!==T.top.location){T.top.location=T.location}};this.redirectFile=function(di){if(T.location.protocol==="file:"){T.location=di}};this.setCountPreRendered=function(di){be=di};this.trackGoal=function(di,dl,dk,dj){ch(function(){cS(di,dl,dk,dj)})};this.trackLink=function(dj,di,dl,dk){ch(function(){c0(dj,di,dl,dk)})};this.getNumTrackedPageViews=function(){return cr};this.trackPageView=function(di,dk,dj){ca=[];cK=[];if(N(b6)){ch(function(){Z(aE,bH,b6)})}else{ch(function(){cr++;b0(di,dk,dj)})}};this.trackAllContentImpressions=function(){if(N(b6)){return}ch(function(){q(function(){var di=v.findContentNodes(); -var dj=cz(di);de(dj,bJ)})})};this.trackVisibleContentImpressions=function(di,dj){if(N(b6)){return}if(!J(di)){di=true}if(!J(dj)){dj=750}aS(di,dj,this);ch(function(){n(function(){var dk=v.findContentNodes();var dl=a9(dk);de(dl,bJ)})})};this.trackContentImpression=function(dk,di,dj){if(N(b6)){return}dk=a(dk);di=a(di);dj=a(dj);if(!dk){return}di=di||"Unknown";ch(function(){var dl=aG(dk,di,dj);bF(dl,bJ)})};this.trackContentImpressionsWithinNode=function(di){if(N(b6)||!di){return}ch(function(){if(cf){n(function(){var dj=v.findContentNodesWithinNode(di);var dk=a9(dj);de(dk,bJ)})}else{q(function(){var dj=v.findContentNodesWithinNode(di);var dk=cz(dj);de(dk,bJ)})}})};this.trackContentInteraction=function(dk,dl,di,dj){if(N(b6)){return}dk=a(dk);dl=a(dl);di=a(di);dj=a(dj);if(!dk||!dl){return}di=di||"Unknown";ch(function(){var dm=aP(dk,dl,di,dj);if(dm){bF(dm,bJ)}})};this.trackContentInteractionNode=function(dk,dj){if(N(b6)||!dk){return}var di=null;ch(function(){di=da(dk,dj);if(di){bF(di,bJ)}});return di -};this.logAllContentBlocksOnPage=function(){var dk=v.findContentNodes();var di=v.collectContent(dk);var dj=typeof console;if(dj!=="undefined"&&console&&console.log){console.log(di)}};this.trackEvent=function(dj,dl,di,dk,dn,dm){ch(function(){at(dj,dl,di,dk,dn,dm)})};this.trackSiteSearch=function(di,dk,dj,dl){ca=[];ch(function(){b8(di,dk,dj,dl)})};this.setEcommerceView=function(dl,di,dk,dj){if(Y(dk)){dk=String(dk)}if(!J(dk)||dk===null||dk===false||!dk.length){dk=""}else{if(dk instanceof Array){dk=T.JSON.stringify(dk)}}bW[5]=["_pkc",dk];if(J(dj)&&dj!==null&&dj!==false&&String(dj).length){bW[2]=["_pkp",dj]}if(!Y(dl)&&!Y(di)){return}if(Y(dl)){bW[3]=["_pks",dl]}if(!Y(di)){di=""}bW[4]=["_pkn",di]};this.getEcommerceItems=function(){return JSON.parse(JSON.stringify(cZ))};this.addEcommerceItem=function(dm,di,dk,dj,dl){if(Y(dm)){cZ[dm]=[String(dm),di,dk,dj,dl]}};this.removeEcommerceItem=function(di){if(Y(di)){di=String(di);delete cZ[di]}};this.clearEcommerceCart=function(){cZ={}};this.trackEcommerceOrder=function(di,dm,dl,dk,dj,dn){bZ(di,dm,dl,dk,dj,dn) -};this.trackEcommerceCartUpdate=function(di){bs(di)};this.trackRequest=function(dj,dl,dk,di){ch(function(){var dm=cs(dj,dl,di);bF(dm,bJ,dk)})};this.ping=function(){this.trackRequest("ping=1",null,null,"ping")};this.disableQueueRequest=function(){bC.enabled=false};this.setRequestQueueInterval=function(di){if(di<1000){throw new Error("Request queue interval needs to be at least 1000ms")}bC.interval=di};this.queueRequest=function(di){ch(function(){var dj=cs(di);bC.push(dj)})};this.isConsentRequired=function(){return cA};this.getRememberedConsent=function(){var di=aD(bd);if(aD(cL)){if(di){bY(bd,bp,cW)}return null}if(!di||di===0){return null}return di};this.hasRememberedConsent=function(){return !!this.getRememberedConsent()};this.requireConsent=function(){cA=true;bB=this.hasRememberedConsent();x++;b["CoreConsent"+x]={unload:function(){if(!bB){aF()}}}};this.setConsentGiven=function(){bB=true;bY(cL,bp,cW);var dj,di;for(dj=0;dj<cK.length;dj++){di=typeof cK[dj];if(di==="string"){bF(cK[dj],bJ)}else{if(di==="object"){de(cK[dj],bJ) -}}}cK=[]};this.rememberConsentGiven=function(dj){if(dj){dj=dj*60*60*1000}else{dj=30*365*24*60*60*1000}this.setConsentGiven();var di=new Date().getTime();dd(bd,di,dj,bp,cW,bS)};this.forgetConsentGiven=function(){var di=30*365*24*60*60*1000;bY(bd,bp,cW);dd(cL,new Date().getTime(),di,bp,cW,bS);this.requireConsent()};this.isUserOptedOut=function(){return !bB};this.optUserOut=this.forgetConsentGiven;this.forgetUserOptOut=this.rememberConsentGiven;n(function(){setTimeout(function(){bE=true},0)});e.trigger("TrackerSetup",[this])}function H(){return{push:af}}function c(au,at){var av={};var aq,ar;for(aq=0;aq<at.length;aq++){var ao=at[aq];av[ao]=1;for(ar=0;ar<au.length;ar++){if(au[ar]&&au[ar][0]){var ap=au[ar][0];if(ao===ap){af(au[ar]);delete au[ar];if(av[ap]>1&&ap!=="addTracker"){ak("The method "+ap+' is registered more than once in "_paq" variable. Only the last call has an effect. Please have a look at the multiple Piwik trackers documentation: https://developer.piwik.org/guides/tracking-javascript-guide#multiple-piwik-trackers') -}av[ap]++}}}}return au}var C=["addTracker","disableCookies","setTrackerUrl","setAPIUrl","enableCrossDomainLinking","setCrossDomainLinkingTimeout","setSessionCookieTimeout","setVisitorCookieTimeout","setCookieNamePrefix","setSecureCookie","setCookiePath","setCookieDomain","setDomains","setUserId","setSiteId","alwaysUseSendBeacon","enableLinkTracking","requireConsent","setConsentGiven"];function ad(ao,aq){var ap=new Q(ao,aq);I.push(ap);_paq=c(_paq,C);for(E=0;E<_paq.length;E++){if(_paq[E]){af(_paq[E])}}_paq=new H();e.trigger("TrackerAdded",[ap]);return ap}an(T,"beforeunload",ai,false);an(T,"message",function(au){if(!au||!au.origin){return}var aw,ar,ap;var ax=d(au.origin);var at=e.getAsyncTrackers();for(ar=0;ar<at.length;ar++){ap=d(at[ar].getPiwikUrl());if(ap===ax){aw=at[ar];break}}if(!aw){return}var aq=null;try{aq=JSON.parse(au.data)}catch(av){return}if(!aq){return}function ao(aA){var aC=G.getElementsByTagName("iframe");for(ar=0;ar<aC.length;ar++){var aB=aC[ar];var ay=d(aB.src);if(aB.contentWindow&&J(aB.contentWindow.postMessage)&&ay===ax){var az=JSON.stringify(aA); -aB.contentWindow.postMessage(az,"*")}}}if(J(aq.maq_initial_value)){ao({maq_opted_in:aq.maq_initial_value&&aw.hasConsent(),maq_url:aw.getPiwikUrl(),maq_optout_by_default:aw.isConsentRequired()})}else{if(J(aq.maq_opted_in)){at=e.getAsyncTrackers();for(ar=0;ar<at.length;ar++){aw=at[ar];if(aq.maq_opted_in){aw.rememberConsentGiven()}else{aw.forgetConsentGiven()}}ao({maq_confirm_opted_in:aw.hasConsent(),maq_url:aw.getPiwikUrl(),maq_optout_by_default:aw.isConsentRequired()})}}},false);Date.prototype.getTimeAlias=Date.prototype.getTime;e={initialized:false,JSON:T.JSON,DOM:{addEventListener:function(ar,aq,ap,ao){var at=typeof ao;if(at==="undefined"){ao=false}an(ar,aq,ap,ao)},onLoad:n,onReady:q,isNodeVisible:j,isOrWasNodeVisible:v.isNodeVisible},on:function(ap,ao){if(!y[ap]){y[ap]=[]}y[ap].push(ao)},off:function(aq,ap){if(!y[aq]){return}var ao=0;for(ao;ao<y[aq].length;ao++){if(y[aq][ao]===ap){y[aq].splice(ao,1)}}},trigger:function(aq,ar,ap){if(!y[aq]){return}var ao=0;for(ao;ao<y[aq].length;ao++){y[aq][ao].apply(ap||T,ar) -}},addPlugin:function(ao,ap){b[ao]=ap},getTracker:function(ao,ap){if(!J(ap)){ap=this.getAsyncTracker().getSiteId()}if(!J(ao)){ao=this.getAsyncTracker().getTrackerUrl()}return new Q(ao,ap)},getAsyncTrackers:function(){return I},addTracker:function(ao,aq){var ap;if(!I.length){ap=ad(ao,aq)}else{ap=I[0].addTracker(ao,aq)}return ap},getAsyncTracker:function(ap,at){var ar;if(I&&I.length&&I[0]){ar=I[0]}else{return ad(ap,at)}if(!at&&!ap){return ar}if((!J(at)||null===at)&&ar){at=ar.getSiteId()}if((!J(ap)||null===ap)&&ar){ap=ar.getTrackerUrl()}var aq,ao=0;for(ao;ao<I.length;ao++){aq=I[ao];if(aq&&String(aq.getSiteId())===String(at)&&aq.getTrackerUrl()===ap){return aq}}},retryMissedPluginCalls:function(){var ap=ah;ah=[];var ao=0;for(ao;ao<ap.length;ao++){af(ap[ao])}}};if(typeof define==="function"&&define.amd){define("piwik",[],function(){return e});define("matomo",[],function(){return e})}return e}())} +}}dr(100)}if(dm&&dm>0){dm=parseInt(dm,10);dq(dm)}})}var bC={enabled:true,requests:[],timeout:null,interval:2500,sendRequests:function(){var di=this.requests;this.requests=[];if(di.length===1){bF(di[0],bJ)}else{de(di,bJ)}},canQueue:function(){return !m&&this.enabled},pushMultiple:function(dj){if(!this.canQueue()){de(dj,bJ);return}var di;for(di=0;di<dj.length;di++){this.push(dj[di])}},push:function(di){if(!di){return}if(!this.canQueue()){bF(di,bJ);return}bC.requests.push(di);if(this.timeout){clearTimeout(this.timeout);this.timeout=null}this.timeout=setTimeout(function(){bC.timeout=null;bC.sendRequests()},bC.interval);var dj="RequestQueue"+aw;if(!Object.prototype.hasOwnProperty.call(b,dj)){b[dj]={unload:function(){if(bC.timeout){clearTimeout(bC.timeout)}bC.sendRequests()}}}}};bi();aM();this.hasConsent=function(){return bB};this.getVisitorId=function(){return aY().uuid};this.getVisitorInfo=function(){return cN()};this.getAttributionInfo=function(){return bM()};this.getAttributionCampaignName=function(){return bM()[0] +};this.getAttributionCampaignKeyword=function(){return bM()[1]};this.getAttributionReferrerTimestamp=function(){return bM()[2]};this.getAttributionReferrerUrl=function(){return bM()[3]};this.setTrackerUrl=function(di){aE=di};this.getTrackerUrl=function(){return aE};this.getPiwikUrl=function(){return O(this.getTrackerUrl(),bH)};this.addTracker=function(di,dk){if(!J(di)||null===di){di=this.getTrackerUrl()}var dj=new Q(di,dk);I.push(dj);e.trigger("TrackerAdded",[this]);return dj};this.getSiteId=function(){return b6};this.setSiteId=function(di){b3(di)};this.resetUserId=function(){by=""};this.setUserId=function(di){if(Y(di)){by=di}};this.getUserId=function(){return by};this.setCustomData=function(di,dj){if(W(di)){ao=di}else{if(!ao){ao={}}ao[di]=dj}};this.getCustomData=function(){return ao};this.setCustomRequestProcessing=function(di){cb=di};this.appendToTrackingUrl=function(di){cY=di};this.getRequest=function(di){return cs(di)};this.addPlugin=function(di,dj){b[di]=dj};this.setCustomDimension=function(di,dj){di=parseInt(di,10); +if(di>0){if(!J(dj)){dj=""}if(!w(dj)){dj=String(dj)}bm[di]=dj}};this.getCustomDimension=function(di){di=parseInt(di,10);if(di>0&&Object.prototype.hasOwnProperty.call(bm,di)){return bm[di]}};this.deleteCustomDimension=function(di){di=parseInt(di,10);if(di>0){delete bm[di]}};this.setCustomVariable=function(dj,di,dm,dk){var dl;if(!J(dk)){dk="visit"}if(!J(di)){return}if(!J(dm)){dm=""}if(dj>0){di=!w(di)?String(di):di;dm=!w(dm)?String(dm):dm;dl=[di.slice(0,bt),dm.slice(0,bt)];if(dk==="visit"||dk===2){cE();aQ[dj]=dl}else{if(dk==="page"||dk===3){bW[dj]=dl}else{if(dk==="event"){cm[dj]=dl}}}}};this.getCustomVariable=function(dj,dk){var di;if(!J(dk)){dk="visit"}if(dk==="page"||dk===3){di=bW[dj]}else{if(dk==="event"){di=cm[dj]}else{if(dk==="visit"||dk===2){cE();di=aQ[dj]}}}if(!J(di)||(di&&di[0]==="")){return false}return di};this.deleteCustomVariable=function(di,dj){if(this.getCustomVariable(di,dj)){this.setCustomVariable(di,"","",dj)}};this.deleteCustomVariables=function(di){if(di==="page"||di===3){bW={} +}else{if(di==="event"){cm={}}else{if(di==="visit"||di===2){aQ={}}}}};this.storeCustomVariablesInCookie=function(){bQ=true};this.setLinkTrackingTimer=function(di){bJ=di};this.getLinkTrackingTimer=function(){return bJ};this.setDownloadExtensions=function(di){if(w(di)){di=di.split("|")}c5=di};this.addDownloadExtensions=function(dj){var di;if(w(dj)){dj=dj.split("|")}for(di=0;di<dj.length;di++){c5.push(dj[di])}};this.removeDownloadExtensions=function(dk){var dj,di=[];if(w(dk)){dk=dk.split("|")}for(dj=0;dj<c5.length;dj++){if(M(dk,c5[dj])===-1){di.push(c5[dj])}}c5=di};this.setDomains=function(di){ax=w(di)?[di]:di;var dm=false,dk=0,dj;for(dk;dk<ax.length;dk++){dj=String(ax[dk]);if(cG(cT,L(dj))){dm=true;break}var dl=cl(dj);if(dl&&dl!=="/"&&dl!=="/*"){dm=true;break}}if(!dm){ax.push(cT)}};this.enableCrossDomainLinking=function(){cM=true};this.disableCrossDomainLinking=function(){cM=false};this.isCrossDomainLinkingEnabled=function(){return cM};this.setCrossDomainLinkingTimeout=function(di){aZ=di};this.getCrossDomainLinkingUrlParameter=function(){return t(av)+"="+t(br()) +};this.setIgnoreClasses=function(di){bz=w(di)?[di]:di};this.setRequestMethod=function(di){c9=di||ci};this.setRequestContentType=function(di){cw=di||aI};this.setReferrerUrl=function(di){bn=di};this.setCustomUrl=function(di){a4=bV(bN,di)};this.getCurrentUrl=function(){return a4||bN};this.setDocumentTitle=function(di){bj=di};this.setAPIUrl=function(di){bH=di};this.setDownloadClasses=function(di){bL=w(di)?[di]:di};this.setLinkClasses=function(di){a8=w(di)?[di]:di};this.setCampaignNameKey=function(di){cq=w(di)?[di]:di};this.setCampaignKeywordKey=function(di){bG=w(di)?[di]:di};this.discardHashTag=function(di){bP=di};this.setCookieNamePrefix=function(di){bk=di;if(aQ){aQ=bX()}};this.setCookieDomain=function(di){var dj=L(di);if(bw(dj)){cW=dj;bi()}};this.getCookieDomain=function(){return cW};this.hasCookies=function(){return"1"===b5()};this.setSessionCookie=function(dk,dj,di){if(!dk){throw new Error("Missing cookie name")}if(!J(di)){di=co}bu.push(dk);dd(aT(dk),dj,di,bp,cW)};this.getCookie=function(dj){var di=aD(aT(dj)); +if(di===0){return null}return di};this.setCookiePath=function(di){bp=di;bi()};this.getCookiePath=function(di){return bp};this.setVisitorCookieTimeout=function(di){cJ=di*1000};this.setSessionCookieTimeout=function(di){co=di*1000};this.getSessionCookieTimeout=function(){return co};this.setReferralCookieTimeout=function(di){c4=di*1000};this.setConversionAttributionFirstReferrer=function(di){bv=di};this.setSecureCookie=function(di){bS=di};this.disableCookies=function(){bl=true;c7.cookie="0";if(b6){aF()}};this.deleteCookies=function(){aF()};this.setDoNotTrack=function(dj){var di=h.doNotTrack||h.msDoNotTrack;cP=dj&&(di==="yes"||di==="1");if(cP){this.disableCookies()}};this.alwaysUseSendBeacon=function(){cV=true};this.disableAlwaysUseSendBeacon=function(){cV=false};this.addListener=function(dj,di){aq(dj,di)};this.enableLinkTracking=function(dj){c8=true;var di=this;ch(function(){q(function(){bD(dj,di)});n(function(){bD(dj,di)})})};this.enableJSErrorTracking=function(){if(cR){return}cR=true;var di=T.onerror; +T.onerror=function(dn,dl,dk,dm,dj){ch(function(){var dp="JavaScript Errors";var dq=dl+":"+dk;if(dm){dq+=":"+dm}at(dp,dq,dn)});if(di){return di(dn,dl,dk,dm,dj)}return false}};this.disablePerformanceTracking=function(){a2=false};this.setVisitStandardLength=function(di){di=Math.max(di,5);c6=di};this.enableHeartBeatTimer=function(di){di=Math.max(di,5);a5=(di||15)*1000;if(cX!==null){df()}};this.disableHeartBeatTimer=function(){bK();if(a5||aN){if(T.removeEventListener){T.removeEventListener("focus",ba);T.removeEventListener("blur",ay)}else{if(T.detachEvent){T.detachEvent("onfocus",ba);T.detachEvent("onblur",ay)}}}a5=null;aN=false};this.killFrame=function(){if(T.location!==T.top.location){T.top.location=T.location}};this.redirectFile=function(di){if(T.location.protocol==="file:"){T.location=di}};this.setCountPreRendered=function(di){be=di};this.trackGoal=function(di,dl,dk,dj){ch(function(){cS(di,dl,dk,dj)})};this.trackLink=function(dj,di,dl,dk){ch(function(){c0(dj,di,dl,dk)})};this.getNumTrackedPageViews=function(){return cr +};this.trackPageView=function(di,dk,dj){ca=[];cK=[];if(N(b6)){ch(function(){Z(aE,bH,b6)})}else{ch(function(){cr++;b0(di,dk,dj)})}};this.trackAllContentImpressions=function(){if(N(b6)){return}ch(function(){q(function(){var di=v.findContentNodes();var dj=cz(di);bC.pushMultiple(dj)})})};this.trackVisibleContentImpressions=function(di,dj){if(N(b6)){return}if(!J(di)){di=true}if(!J(dj)){dj=750}aS(di,dj,this);ch(function(){n(function(){var dk=v.findContentNodes();var dl=a9(dk);bC.pushMultiple(dl)})})};this.trackContentImpression=function(dk,di,dj){if(N(b6)){return}dk=a(dk);di=a(di);dj=a(dj);if(!dk){return}di=di||"Unknown";ch(function(){var dl=aG(dk,di,dj);bC.push(dl)})};this.trackContentImpressionsWithinNode=function(di){if(N(b6)||!di){return}ch(function(){if(cf){n(function(){var dj=v.findContentNodesWithinNode(di);var dk=a9(dj);bC.pushMultiple(dk)})}else{q(function(){var dj=v.findContentNodesWithinNode(di);var dk=cz(dj);bC.pushMultiple(dk)})}})};this.trackContentInteraction=function(dk,dl,di,dj){if(N(b6)){return +}dk=a(dk);dl=a(dl);di=a(di);dj=a(dj);if(!dk||!dl){return}di=di||"Unknown";ch(function(){var dm=aP(dk,dl,di,dj);if(dm){bC.push(dm)}})};this.trackContentInteractionNode=function(dk,dj){if(N(b6)||!dk){return}var di=null;ch(function(){di=da(dk,dj);if(di){bC.push(di)}});return di};this.logAllContentBlocksOnPage=function(){var dk=v.findContentNodes();var di=v.collectContent(dk);var dj=typeof console;if(dj!=="undefined"&&console&&console.log){console.log(di)}};this.trackEvent=function(dj,dl,di,dk,dn,dm){ch(function(){at(dj,dl,di,dk,dn,dm)})};this.trackSiteSearch=function(di,dk,dj,dl){ca=[];ch(function(){b8(di,dk,dj,dl)})};this.setEcommerceView=function(dl,di,dk,dj){if(Y(dk)){dk=String(dk)}if(!J(dk)||dk===null||dk===false||!dk.length){dk=""}else{if(dk instanceof Array){dk=T.JSON.stringify(dk)}}bW[5]=["_pkc",dk];if(J(dj)&&dj!==null&&dj!==false&&String(dj).length){bW[2]=["_pkp",dj]}if(!Y(dl)&&!Y(di)){return}if(Y(dl)){bW[3]=["_pks",dl]}if(!Y(di)){di=""}bW[4]=["_pkn",di]};this.getEcommerceItems=function(){return JSON.parse(JSON.stringify(cZ)) +};this.addEcommerceItem=function(dm,di,dk,dj,dl){if(Y(dm)){cZ[dm]=[String(dm),di,dk,dj,dl]}};this.removeEcommerceItem=function(di){if(Y(di)){di=String(di);delete cZ[di]}};this.clearEcommerceCart=function(){cZ={}};this.trackEcommerceOrder=function(di,dm,dl,dk,dj,dn){bZ(di,dm,dl,dk,dj,dn)};this.trackEcommerceCartUpdate=function(di){bs(di)};this.trackRequest=function(dj,dl,dk,di){ch(function(){var dm=cs(dj,dl,di);bF(dm,bJ,dk)})};this.ping=function(){this.trackRequest("ping=1",null,null,"ping")};this.disableQueueRequest=function(){bC.enabled=false};this.setRequestQueueInterval=function(di){if(di<1000){throw new Error("Request queue interval needs to be at least 1000ms")}bC.interval=di};this.queueRequest=function(di){ch(function(){var dj=cs(di);bC.push(dj)})};this.isConsentRequired=function(){return cA};this.getRememberedConsent=function(){var di=aD(bd);if(aD(cL)){if(di){bY(bd,bp,cW)}return null}if(!di||di===0){return null}return di};this.hasRememberedConsent=function(){return !!this.getRememberedConsent() +};this.requireConsent=function(){cA=true;bB=this.hasRememberedConsent();x++;b["CoreConsent"+x]={unload:function(){if(!bB){aF()}}}};this.setConsentGiven=function(){bB=true;bY(cL,bp,cW);var dj,di;for(dj=0;dj<cK.length;dj++){di=typeof cK[dj];if(di==="string"){bF(cK[dj],bJ)}else{if(di==="object"){de(cK[dj],bJ)}}}cK=[]};this.rememberConsentGiven=function(dj){if(dj){dj=dj*60*60*1000}else{dj=30*365*24*60*60*1000}this.setConsentGiven();var di=new Date().getTime();dd(bd,di,dj,bp,cW,bS)};this.forgetConsentGiven=function(){var di=30*365*24*60*60*1000;bY(bd,bp,cW);dd(cL,new Date().getTime(),di,bp,cW,bS);this.requireConsent()};this.isUserOptedOut=function(){return !bB};this.optUserOut=this.forgetConsentGiven;this.forgetUserOptOut=this.rememberConsentGiven;n(function(){setTimeout(function(){bE=true},0)});e.trigger("TrackerSetup",[this])}function H(){return{push:af}}function c(au,at){var av={};var aq,ar;for(aq=0;aq<at.length;aq++){var ao=at[aq];av[ao]=1;for(ar=0;ar<au.length;ar++){if(au[ar]&&au[ar][0]){var ap=au[ar][0]; +if(ao===ap){af(au[ar]);delete au[ar];if(av[ap]>1&&ap!=="addTracker"){ak("The method "+ap+' is registered more than once in "_paq" variable. Only the last call has an effect. Please have a look at the multiple Piwik trackers documentation: https://developer.piwik.org/guides/tracking-javascript-guide#multiple-piwik-trackers')}av[ap]++}}}}return au}var C=["addTracker","disableCookies","setTrackerUrl","setAPIUrl","enableCrossDomainLinking","setCrossDomainLinkingTimeout","setSessionCookieTimeout","setVisitorCookieTimeout","setCookieNamePrefix","setSecureCookie","setCookiePath","setCookieDomain","setDomains","setUserId","setSiteId","alwaysUseSendBeacon","enableLinkTracking","requireConsent","setConsentGiven"];function ad(ao,aq){var ap=new Q(ao,aq);I.push(ap);_paq=c(_paq,C);for(E=0;E<_paq.length;E++){if(_paq[E]){af(_paq[E])}}_paq=new H();e.trigger("TrackerAdded",[ap]);return ap}an(T,"beforeunload",ai,false);an(T,"message",function(au){if(!au||!au.origin){return}var aw,ar,ap;var ax=d(au.origin); +var at=e.getAsyncTrackers();for(ar=0;ar<at.length;ar++){ap=d(at[ar].getPiwikUrl());if(ap===ax){aw=at[ar];break}}if(!aw){return}var aq=null;try{aq=JSON.parse(au.data)}catch(av){return}if(!aq){return}function ao(aA){var aC=G.getElementsByTagName("iframe");for(ar=0;ar<aC.length;ar++){var aB=aC[ar];var ay=d(aB.src);if(aB.contentWindow&&J(aB.contentWindow.postMessage)&&ay===ax){var az=JSON.stringify(aA);aB.contentWindow.postMessage(az,"*")}}}if(J(aq.maq_initial_value)){ao({maq_opted_in:aq.maq_initial_value&&aw.hasConsent(),maq_url:aw.getPiwikUrl(),maq_optout_by_default:aw.isConsentRequired()})}else{if(J(aq.maq_opted_in)){at=e.getAsyncTrackers();for(ar=0;ar<at.length;ar++){aw=at[ar];if(aq.maq_opted_in){aw.rememberConsentGiven()}else{aw.forgetConsentGiven()}}ao({maq_confirm_opted_in:aw.hasConsent(),maq_url:aw.getPiwikUrl(),maq_optout_by_default:aw.isConsentRequired()})}}},false);Date.prototype.getTimeAlias=Date.prototype.getTime;e={initialized:false,JSON:T.JSON,DOM:{addEventListener:function(ar,aq,ap,ao){var at=typeof ao; +if(at==="undefined"){ao=false}an(ar,aq,ap,ao)},onLoad:n,onReady:q,isNodeVisible:j,isOrWasNodeVisible:v.isNodeVisible},on:function(ap,ao){if(!y[ap]){y[ap]=[]}y[ap].push(ao)},off:function(aq,ap){if(!y[aq]){return}var ao=0;for(ao;ao<y[aq].length;ao++){if(y[aq][ao]===ap){y[aq].splice(ao,1)}}},trigger:function(aq,ar,ap){if(!y[aq]){return}var ao=0;for(ao;ao<y[aq].length;ao++){y[aq][ao].apply(ap||T,ar)}},addPlugin:function(ao,ap){b[ao]=ap},getTracker:function(ao,ap){if(!J(ap)){ap=this.getAsyncTracker().getSiteId()}if(!J(ao)){ao=this.getAsyncTracker().getTrackerUrl()}return new Q(ao,ap)},getAsyncTrackers:function(){return I},addTracker:function(ao,aq){var ap;if(!I.length){ap=ad(ao,aq)}else{ap=I[0].addTracker(ao,aq)}return ap},getAsyncTracker:function(ap,at){var ar;if(I&&I.length&&I[0]){ar=I[0]}else{return ad(ap,at)}if(!at&&!ap){return ar}if((!J(at)||null===at)&&ar){at=ar.getSiteId()}if((!J(ap)||null===ap)&&ar){ap=ar.getTrackerUrl()}var aq,ao=0;for(ao;ao<I.length;ao++){aq=I[ao];if(aq&&String(aq.getSiteId())===String(at)&&aq.getTrackerUrl()===ap){return aq +}}},retryMissedPluginCalls:function(){var ap=ah;ah=[];var ao=0;for(ao;ao<ap.length;ao++){af(ap[ao])}}};if(typeof define==="function"&&define.amd){define("piwik",[],function(){return e});define("matomo",[],function(){return e})}return e}())} /*!!! pluginTrackerHook */ -(function(){function b(){if("object"!==typeof _paq){return false}var c=typeof _paq.length; -if("undefined"===c){return false}return !!_paq.length}if(window&&"object"===typeof window.piwikPluginAsyncInit&&window.piwikPluginAsyncInit.length){var a=0;for(a;a<window.piwikPluginAsyncInit.length;a++){if(typeof window.piwikPluginAsyncInit[a]==="function"){window.piwikPluginAsyncInit[a]()}}}if(window&&window.piwikAsyncInit){window.piwikAsyncInit()}if(!window.Piwik.getAsyncTrackers().length){if(b()){window.Piwik.addTracker()}else{_paq={push:function(c){var d=typeof console;if(d!=="undefined"&&console&&console.error){console.error("_paq.push() was used but Matomo tracker was not initialized before the matomo.js file was loaded. Make sure to configure the tracker via _paq.push before loading matomo.js. Alternatively, you can create a tracker via Matomo.addTracker() manually and then use _paq.push but it may not fully work as tracker methods may not be executed in the correct order.",c)}}}}}window.Piwik.trigger("PiwikInitialized",[]);window.Piwik.initialized=true}());(function(){var a=(typeof AnalyticsTracker); -if(a==="undefined"){AnalyticsTracker=window.Piwik}}());if(typeof piwik_log!=="function"){piwik_log=function(b,f,d,g){function a(h){try{if(window["piwik_"+h]){return window["piwik_"+h]}}catch(i){}return}var c,e=window.Piwik.getTracker(d,f);e.setDocumentTitle(b);e.setCustomData(g);c=a("tracker_pause");if(c){e.setLinkTrackingTimer(c)}c=a("download_extensions");if(c){e.setDownloadExtensions(c)}c=a("hosts_alias");if(c){e.setDomains(c)}c=a("ignore_classes");if(c){e.setIgnoreClasses(c)}e.trackPageView();if(a("install_tracker")){piwik_track=function(i,k,j,h){e.setSiteId(k);e.setTrackerUrl(j);e.trackLink(i,h)};e.enableLinkTracking()}}} +(function(){function b(){if("object"!==typeof _paq){return false}var c=typeof _paq.length;if("undefined"===c){return false}return !!_paq.length}if(window&&"object"===typeof window.piwikPluginAsyncInit&&window.piwikPluginAsyncInit.length){var a=0;for(a;a<window.piwikPluginAsyncInit.length;a++){if(typeof window.piwikPluginAsyncInit[a]==="function"){window.piwikPluginAsyncInit[a]()}}}if(window&&window.piwikAsyncInit){window.piwikAsyncInit()}if(!window.Piwik.getAsyncTrackers().length){if(b()){window.Piwik.addTracker()}else{_paq={push:function(c){var d=typeof console;if(d!=="undefined"&&console&&console.error){console.error("_paq.push() was used but Matomo tracker was not initialized before the matomo.js file was loaded. Make sure to configure the tracker via _paq.push before loading matomo.js. Alternatively, you can create a tracker via Matomo.addTracker() manually and then use _paq.push but it may not fully work as tracker methods may not be executed in the correct order.",c) +}}}}}window.Piwik.trigger("PiwikInitialized",[]);window.Piwik.initialized=true}());(function(){var a=(typeof AnalyticsTracker);if(a==="undefined"){AnalyticsTracker=window.Piwik}}());if(typeof piwik_log!=="function"){piwik_log=function(b,f,d,g){function a(h){try{if(window["piwik_"+h]){return window["piwik_"+h]}}catch(i){}return}var c,e=window.Piwik.getTracker(d,f);e.setDocumentTitle(b);e.setCustomData(g);c=a("tracker_pause");if(c){e.setLinkTrackingTimer(c)}c=a("download_extensions");if(c){e.setDownloadExtensions(c)}c=a("hosts_alias");if(c){e.setDomains(c)}c=a("ignore_classes");if(c){e.setIgnoreClasses(c)}e.trackPageView();if(a("install_tracker")){piwik_track=function(i,k,j,h){e.setSiteId(k);e.setTrackerUrl(j);e.trackLink(i,h)};e.enableLinkTracking()}}} /*!! @license-end */;
\ No newline at end of file diff --git a/plugins/API/tests/System/expected/test_AutoSuggestAPITest_browserEngine__API.getSuggestedValuesForSegment.xml b/plugins/API/tests/System/expected/test_AutoSuggestAPITest_browserEngine__API.getSuggestedValuesForSegment.xml index 4d3987cb15..c8113891c7 100644 --- a/plugins/API/tests/System/expected/test_AutoSuggestAPITest_browserEngine__API.getSuggestedValuesForSegment.xml +++ b/plugins/API/tests/System/expected/test_AutoSuggestAPITest_browserEngine__API.getSuggestedValuesForSegment.xml @@ -14,4 +14,5 @@ <row>Edge</row> <row>NetSurf</row> <row>Servo</row> + <row>Goanna</row> </result>
\ No newline at end of file diff --git a/plugins/API/tests/System/expected/test_AutoSuggestAPITest_browserName__API.getSuggestedValuesForSegment.xml b/plugins/API/tests/System/expected/test_AutoSuggestAPITest_browserName__API.getSuggestedValuesForSegment.xml index d4244b015f..5aa3c56cb7 100644 --- a/plugins/API/tests/System/expected/test_AutoSuggestAPITest_browserName__API.getSuggestedValuesForSegment.xml +++ b/plugins/API/tests/System/expected/test_AutoSuggestAPITest_browserName__API.getSuggestedValuesForSegment.xml @@ -1,5 +1,6 @@ <?xml version="1.0" encoding="utf-8" ?> <result> + <row>115 Browser</row> <row>2345 Browser</row> <row>360 Phone Browser</row> <row>360 Browser</row> @@ -12,10 +13,13 @@ <row>Amaya</row> <row>Amigo</row> <row>Android Browser</row> + <row>AOL Desktop</row> <row>AOL Shield</row> <row>Arora</row> + <row>Arctic Fox</row> <row>Amiga Voyager</row> <row>Amiga Aweb</row> + <row>Atom</row> <row>Atomic Web Browser</row> <row>Avast Secure Browser</row> <row>AVG Secure Browser</row> @@ -34,6 +38,7 @@ <row>BrowseX</row> <row>Camino</row> <row>CCleaner</row> + <row>Centaury</row> <row>Coc Coc</row> <row>Comodo Dragon</row> <row>Coast</row> @@ -67,6 +72,7 @@ <row>Epic</row> <row>Elinks</row> <row>Element Browser</row> + <row>Elements Browser</row> <row>eZ Browser</row> <row>EUI Browser</row> <row>GNOME Web</row> @@ -119,6 +125,7 @@ <row>Cheetah Browser</row> <row>LieBaoFast</row> <row>LG Browser</row> + <row>Light</row> <row>Links</row> <row>Lovense Browser</row> <row>LuaKit</row> @@ -137,6 +144,7 @@ <row>Minimo</row> <row>Mint Browser</row> <row>Maxthon</row> + <row>Mypal</row> <row>Nokia Browser</row> <row>Nokia OSS Browser</row> <row>Nokia Ovi Browser</row> @@ -163,6 +171,7 @@ <row>Opera Touch</row> <row>Ordissimo</row> <row>Oregano</row> + <row>Origin In-Game Overlay</row> <row>Origyn Web Browser</row> <row>Openwave Mobile Browser</row> <row>OmniWeb</row> @@ -205,7 +214,9 @@ <row>Sunrise</row> <row>SuperBird</row> <row>Super Fast Browser</row> + <row>surf</row> <row>START Internet Browser</row> + <row>Steam In-Game Overlay</row> <row>Streamy</row> <row>Swiftfox</row> <row>Seznam Browser</row> @@ -224,6 +235,7 @@ <row>Vivaldi</row> <row>vivo Browser</row> <row>Vision Mobile Browser</row> + <row>VMware AirWatch</row> <row>Wear Internet Browser</row> <row>Web Explorer</row> <row>WebPositive</row> diff --git a/plugins/API/tests/System/expected/test_AutoSuggestAPITest_deviceType__API.getSuggestedValuesForSegment.xml b/plugins/API/tests/System/expected/test_AutoSuggestAPITest_deviceType__API.getSuggestedValuesForSegment.xml index c912de4505..73bbf36546 100644 --- a/plugins/API/tests/System/expected/test_AutoSuggestAPITest_deviceType__API.getSuggestedValuesForSegment.xml +++ b/plugins/API/tests/System/expected/test_AutoSuggestAPITest_deviceType__API.getSuggestedValuesForSegment.xml @@ -12,4 +12,5 @@ <row>portable media player</row> <row>phablet</row> <row>smart speaker</row> + <row>wearable</row> </result>
\ No newline at end of file diff --git a/plugins/CoreConsole/tests/System/expected/test_ArchiveCronTest_preArchivedSegment0_noOptions__Live.getLastVisitsDetails_year.xml b/plugins/CoreConsole/tests/System/expected/test_ArchiveCronTest_preArchivedSegment0_noOptions__Live.getLastVisitsDetails_year.xml index f0f2986a8a..6afcb33679 100644 --- a/plugins/CoreConsole/tests/System/expected/test_ArchiveCronTest_preArchivedSegment0_noOptions__Live.getLastVisitsDetails_year.xml +++ b/plugins/CoreConsole/tests/System/expected/test_ArchiveCronTest_preArchivedSegment0_noOptions__Live.getLastVisitsDetails_year.xml @@ -106,8 +106,8 @@ <pageId>71</pageId> <bandwidth /> - <timeSpent>50</timeSpent> - <timeSpentPretty>50s</timeSpentPretty> + <timeSpent>0</timeSpent> + <timeSpentPretty>0s</timeSpentPretty> <pageviewPosition>2</pageviewPosition> <title /> <subtitle>http://piwik.net/faq/</subtitle> @@ -131,8 +131,8 @@ <pageId>75</pageId> <bandwidth /> - <timeSpent>49</timeSpent> - <timeSpentPretty>49s</timeSpentPretty> + <timeSpent>0</timeSpent> + <timeSpentPretty>0s</timeSpentPretty> <pageviewPosition>6</pageviewPosition> <title /> <subtitle>http://piwik.net/faq/</subtitle> @@ -181,8 +181,8 @@ <pageId>72</pageId> <bandwidth /> - <timeSpent>26</timeSpent> - <timeSpentPretty>26s</timeSpentPretty> + <timeSpent>0</timeSpent> + <timeSpentPretty>0s</timeSpentPretty> <pageviewPosition>3</pageviewPosition> <title /> <subtitle>http://piwik.net/blog/category/community/</subtitle> @@ -231,8 +231,8 @@ <pageId>73</pageId> <bandwidth /> - <timeSpent>8</timeSpent> - <timeSpentPretty>8s</timeSpentPretty> + <timeSpent>1</timeSpent> + <timeSpentPretty>1s</timeSpentPretty> <pageviewPosition>4</pageviewPosition> <title /> <subtitle>http://piwik.net/docs/manage-websites/</subtitle> diff --git a/plugins/CoreConsole/tests/System/expected/test_ArchiveCronTest_preArchivedSegment1_noOptions__Live.getLastVisitsDetails_year.xml b/plugins/CoreConsole/tests/System/expected/test_ArchiveCronTest_preArchivedSegment1_noOptions__Live.getLastVisitsDetails_year.xml index f0f2986a8a..6afcb33679 100644 --- a/plugins/CoreConsole/tests/System/expected/test_ArchiveCronTest_preArchivedSegment1_noOptions__Live.getLastVisitsDetails_year.xml +++ b/plugins/CoreConsole/tests/System/expected/test_ArchiveCronTest_preArchivedSegment1_noOptions__Live.getLastVisitsDetails_year.xml @@ -106,8 +106,8 @@ <pageId>71</pageId> <bandwidth /> - <timeSpent>50</timeSpent> - <timeSpentPretty>50s</timeSpentPretty> + <timeSpent>0</timeSpent> + <timeSpentPretty>0s</timeSpentPretty> <pageviewPosition>2</pageviewPosition> <title /> <subtitle>http://piwik.net/faq/</subtitle> @@ -131,8 +131,8 @@ <pageId>75</pageId> <bandwidth /> - <timeSpent>49</timeSpent> - <timeSpentPretty>49s</timeSpentPretty> + <timeSpent>0</timeSpent> + <timeSpentPretty>0s</timeSpentPretty> <pageviewPosition>6</pageviewPosition> <title /> <subtitle>http://piwik.net/faq/</subtitle> @@ -181,8 +181,8 @@ <pageId>72</pageId> <bandwidth /> - <timeSpent>26</timeSpent> - <timeSpentPretty>26s</timeSpentPretty> + <timeSpent>0</timeSpent> + <timeSpentPretty>0s</timeSpentPretty> <pageviewPosition>3</pageviewPosition> <title /> <subtitle>http://piwik.net/blog/category/community/</subtitle> @@ -231,8 +231,8 @@ <pageId>73</pageId> <bandwidth /> - <timeSpent>8</timeSpent> - <timeSpentPretty>8s</timeSpentPretty> + <timeSpent>1</timeSpent> + <timeSpentPretty>1s</timeSpentPretty> <pageviewPosition>4</pageviewPosition> <title /> <subtitle>http://piwik.net/docs/manage-websites/</subtitle> diff --git a/plugins/CoreConsole/tests/System/expected/test_ArchiveCronTest_range_archive__DevicesDetection.getType_range.xml b/plugins/CoreConsole/tests/System/expected/test_ArchiveCronTest_range_archive__DevicesDetection.getType_range.xml index c75fcc08b0..0358d288a6 100644 --- a/plugins/CoreConsole/tests/System/expected/test_ArchiveCronTest_range_archive__DevicesDetection.getType_range.xml +++ b/plugins/CoreConsole/tests/System/expected/test_ArchiveCronTest_range_archive__DevicesDetection.getType_range.xml @@ -125,4 +125,10 @@ <segment>deviceType==tv</segment> <logo>plugins/Morpheus/icons/dist/devices/tv.png</logo> </row> + <row> + <label>Wearable</label> + <nb_visits>0</nb_visits> + <segment>deviceType==wearable</segment> + <logo>plugins/Morpheus/icons/dist/devices/wearable.png</logo> + </row> </result>
\ No newline at end of file diff --git a/plugins/CoreHome/Columns/VisitLastActionTime.php b/plugins/CoreHome/Columns/VisitLastActionTime.php index bc3ba0f5b1..6dadc3a0ad 100644 --- a/plugins/CoreHome/Columns/VisitLastActionTime.php +++ b/plugins/CoreHome/Columns/VisitLastActionTime.php @@ -14,6 +14,7 @@ use Piwik\Tracker\Action; use Piwik\Tracker\Request; use Piwik\Tracker\Visitor; use Piwik\Metrics\Formatter; +use Piwik\Tracker\VisitorRecognizer; require_once PIWIK_INCLUDE_PATH . '/plugins/VisitTime/functions.php'; @@ -67,7 +68,15 @@ class VisitLastActionTime extends VisitDimension if ($request->getParam('ping') == 1) { return false; } - + + $originalVisit = $visitor->getVisitorColumn(VisitorRecognizer::KEY_ORIGINAL_VISIT_ROW); + + if (!empty($originalVisit['visit_last_action_time']) + && Date::factory($originalVisit['visit_last_action_time'])->getTimestamp() > $request->getCurrentTimestamp()) { + // make sure to not set visit_last_action_time to an earlier time eg if tracking requests aren't sent in order + return $originalVisit['visit_last_action_time']; + } + return $this->onNewVisit($request, $visitor, $action); } }
\ No newline at end of file diff --git a/plugins/CoreHome/tests/Integration/Column/VisitLastActionTimeTest.php b/plugins/CoreHome/tests/Integration/Column/VisitLastActionTimeTest.php new file mode 100644 index 0000000000..2d82d93689 --- /dev/null +++ b/plugins/CoreHome/tests/Integration/Column/VisitLastActionTimeTest.php @@ -0,0 +1,121 @@ +<?php +/** + * Piwik - free/libre analytics platform + * + * @link https://matomo.org + * @license http://www.gnu.org/licenses/gpl-3.0.html GPL v3 or later + */ + +namespace Piwik\Plugins\CoreHome\tests\Integration\Column; + +use Piwik\Cache; +use Piwik\Common; +use Piwik\DataAccess\ArchiveTableCreator; +use Piwik\Date; +use Piwik\Db; +use Piwik\Metrics; +use Piwik\Plugins\CoreHome\Columns\UserId; +use Piwik\Plugins\CoreHome\Columns\VisitLastActionTime; +use Piwik\Tests\Framework\Fixture; +use Piwik\Tests\Framework\Mock\FakeAccess; +use Piwik\Tests\Framework\TestCase\IntegrationTestCase; +use Piwik\DataTable; +use Piwik\Tracker\Request; +use Piwik\Tracker\Visit\VisitProperties; +use Piwik\Tracker\Visitor; +use Piwik\Tracker\VisitorRecognizer; + +/** + * @group CoreHome + * @group VisitLastActionTimeTest + * @group Plugins + * @group Column + */ +class VisitLastActionTimeTest extends IntegrationTestCase +{ + /** + * @var VisitLastActionTime + */ + private $lastAction; + + public function setUp(): void + { + parent::setUp(); + $this->lastAction = new VisitLastActionTime(); + } + + public function tearDown(): void + { + parent::tearDown(); + } + + + private function makeRequest($request) + { + $request['idsite'] = 1; + + return new Request($request); + } + + private function getVisitor() + { + $visit = new VisitProperties(); + $visit->setProperty('idvisit', '321'); + $visit->setProperty('idvisitor', Common::hex2bin('1234567890234567')); + $visitor = new Visitor($visit, $isKnown = false); + + return $visitor; + } + + public function test_onExistingVisit_whenPing() + { + $request = $this->makeRequest(array('ping' => 1)); + $visitor = $this->getVisitor(); + $this->assertFalse($this->lastAction->onExistingVisit($request, $visitor, $action = null)); + } + + public function test_onExistingVisit_whenNewVisitReturnsTimeFromRequest() + { + $now = time() - 5; // -5 so we make sure this time is used and not actually now + $request = $this->makeRequest(array('cdt' => $now)); + $this->assertEquals($now, $request->getCurrentTimestamp()); + + $visitor = $this->getVisitor(); + + $expected = Date::factory($now)->getDatetime(); + $this->assertSame($expected, $this->lastAction->onExistingVisit($request, $visitor, $action = null)); + } + + public function test_onExistingVisit_whenKnownVisitRequestTimeIsNewer() + { + $now = time() - 5; // -5 so we make sure this time is used and not actually now + $previousTime = $now - 10; // is older + $request = $this->makeRequest(array('cdt' => $now)); + $this->assertEquals($now, $request->getCurrentTimestamp()); + + $visitor = $this->getVisitor(); + $visitor->setVisitorColumn(VisitorRecognizer::KEY_ORIGINAL_VISIT_ROW, + array('visit_last_action_time' => Date::factory($previousTime)->getDatetime()) + ); + + $expected = Date::factory($now)->getDatetime(); + $this->assertSame($expected, $this->lastAction->onExistingVisit($request, $visitor, $action = null)); + } + + public function test_onExistingVisit_whenKnownVisitAndPreviousVisitTimeIsNewer() + { + $now = time() - 5; // -5 so we make sure this time is used and not actually now + $previousTime = $now + 10; // is newer + $request = $this->makeRequest(array('cdt' => $now)); + $this->assertEquals($now, $request->getCurrentTimestamp()); + + $visitor = $this->getVisitor(); + $visitor->setVisitorColumn(VisitorRecognizer::KEY_ORIGINAL_VISIT_ROW, + array('visit_last_action_time' => Date::factory($previousTime)->getDatetime()) + ); + + $expected = Date::factory($previousTime)->getDatetime(); + // should keep existing visit last action time + $this->assertSame($expected, $this->lastAction->onExistingVisit($request, $visitor, $action = null)); + } +} diff --git a/plugins/CustomVariables/tests/System/expected/test_CustomVariablesSystemTest__Live.getLastVisitsDetails_day.xml b/plugins/CustomVariables/tests/System/expected/test_CustomVariablesSystemTest__Live.getLastVisitsDetails_day.xml index 22a34a78a5..05c93467e9 100644 --- a/plugins/CustomVariables/tests/System/expected/test_CustomVariablesSystemTest__Live.getLastVisitsDetails_day.xml +++ b/plugins/CustomVariables/tests/System/expected/test_CustomVariablesSystemTest__Live.getLastVisitsDetails_day.xml @@ -108,7 +108,7 @@ <referrerName>Google</referrerName> <referrerKeyword>this keyword should be ranked</referrerKeyword> <referrerKeywordPosition>1</referrerKeywordPosition> - <referrerUrl>http://www.google.com/url?sa=t&source=web&cd=1&ved=0CB4QFjAA&url=http://piwik.org/&rct=j&q=this keyword should be ranked&ei=V8WfTePkKKLfiALrpZWGAw&usg=AFQjCNF_MGJRqKPvaKuUokHtZ3VvNG9ALw&sig2=BvKAdCtNixsmfNWXjsNyMw</referrerUrl> + <referrerUrl>http://www.google.com/url?source=web&cd=1&url=http://piwik.org/&rct=j&q=this keyword should be ranked&sig2=BvKAdCtNixsmfNWXjsNyMw</referrerUrl> <referrerSearchEngineUrl>http://google.com</referrerSearchEngineUrl> <referrerSearchEngineIcon>plugins/Morpheus/icons/dist/searchEngines/google.com.png</referrerSearchEngineIcon> <referrerSocialNetworkUrl /> diff --git a/plugins/DevicesDetection/functions.php b/plugins/DevicesDetection/functions.php index 472fe5ad3d..65fc1d2833 100644 --- a/plugins/DevicesDetection/functions.php +++ b/plugins/DevicesDetection/functions.php @@ -135,6 +135,7 @@ function getDeviceTypeLabel($label) 'camera' => 'DevicesDetection_Camera', 'portable media player' => 'DevicesDetection_PortableMediaPlayer', 'smart speaker' => 'DevicesDetection_SmartSpeaker', + 'wearable' => 'DevicesDetection_Wearable', ); $deviceTypes = DeviceParser::getAvailableDeviceTypes(); diff --git a/plugins/DevicesDetection/lang/en.json b/plugins/DevicesDetection/lang/en.json index e985e0c060..26d6bc7182 100644 --- a/plugins/DevicesDetection/lang/en.json +++ b/plugins/DevicesDetection/lang/en.json @@ -48,6 +48,7 @@ "TV": "Tv", "UserAgent": "User-Agent", "XVisitsFromDevices": "%1$s visits from %2$s devices", + "Wearable": "Wearable", "WidgetBrowsers": "Visitor Browser", "WidgetBrowsersDocumentation": "This report contains information about what kind of browser your visitors were using. Each browser version is listed separately." } diff --git a/plugins/DevicesDetection/tests/System/expected/test___DevicesDetection.getType_day.xml b/plugins/DevicesDetection/tests/System/expected/test___DevicesDetection.getType_day.xml index c5ea05a965..d959ebf6cb 100644 --- a/plugins/DevicesDetection/tests/System/expected/test___DevicesDetection.getType_day.xml +++ b/plugins/DevicesDetection/tests/System/expected/test___DevicesDetection.getType_day.xml @@ -148,4 +148,10 @@ <segment>deviceType==smart+speaker</segment> <logo>plugins/Morpheus/icons/dist/devices/smart_speaker.png</logo> </row> + <row> + <label>Wearable</label> + <nb_visits>0</nb_visits> + <segment>deviceType==wearable</segment> + <logo>plugins/Morpheus/icons/dist/devices/wearable.png</logo> + </row> </result>
\ No newline at end of file diff --git a/plugins/Goals/tests/System/expected/test_trackGoals_allowMultipleConversionsPerVisit__Goals.get_day.xml b/plugins/Goals/tests/System/expected/test_trackGoals_allowMultipleConversionsPerVisit__Goals.get_day.xml index 27200051aa..3a8d1b2d0c 100644 --- a/plugins/Goals/tests/System/expected/test_trackGoals_allowMultipleConversionsPerVisit__Goals.get_day.xml +++ b/plugins/Goals/tests/System/expected/test_trackGoals_allowMultipleConversionsPerVisit__Goals.get_day.xml @@ -1,14 +1,14 @@ <?xml version="1.0" encoding="utf-8" ?> <result> - <nb_conversions>8</nb_conversions> + <nb_conversions>7</nb_conversions> <nb_visits_converted>2</nb_visits_converted> <revenue>1332</revenue> <conversion_rate>100%</conversion_rate> - <nb_conversions_new_visit>6</nb_conversions_new_visit> + <nb_conversions_new_visit>4</nb_conversions_new_visit> <nb_visits_converted_new_visit>1</nb_visits_converted_new_visit> <revenue_new_visit>1332</revenue_new_visit> <conversion_rate_new_visit>100%</conversion_rate_new_visit> - <nb_conversions_returning_visit>2</nb_conversions_returning_visit> + <nb_conversions_returning_visit>3</nb_conversions_returning_visit> <nb_visits_converted_returning_visit>1</nb_visits_converted_returning_visit> <revenue_returning_visit>0</revenue_returning_visit> <conversion_rate_returning_visit>100%</conversion_rate_returning_visit> diff --git a/plugins/Goals/tests/System/expected/test_trackGoals_allowMultipleConversionsPerVisit__VisitTime.getVisitInformationPerServerTime_day.xml b/plugins/Goals/tests/System/expected/test_trackGoals_allowMultipleConversionsPerVisit__VisitTime.getVisitInformationPerServerTime_day.xml index 4a3f7b7062..c5be750480 100644 --- a/plugins/Goals/tests/System/expected/test_trackGoals_allowMultipleConversionsPerVisit__VisitTime.getVisitInformationPerServerTime_day.xml +++ b/plugins/Goals/tests/System/expected/test_trackGoals_allowMultipleConversionsPerVisit__VisitTime.getVisitInformationPerServerTime_day.xml @@ -6,9 +6,9 @@ <nb_visits>2</nb_visits> <nb_actions>5</nb_actions> <nb_users>0</nb_users> - <max_actions>3</max_actions> - <sum_visit_length>363</sum_visit_length> - <bounce_count>0</bounce_count> + <max_actions>4</max_actions> + <sum_visit_length>1121</sum_visit_length> + <bounce_count>1</bounce_count> <nb_visits_converted>2</nb_visits_converted> <goals> <row idgoal='1'> @@ -22,8 +22,8 @@ <revenue>666</revenue> </row> <row idgoal='3'> - <nb_conversions>2</nb_conversions> - <nb_visits_converted>2</nb_visits_converted> + <nb_conversions>1</nb_conversions> + <nb_visits_converted>1</nb_visits_converted> <revenue>0</revenue> </row> <row idgoal='4'> @@ -37,7 +37,7 @@ <revenue>0</revenue> </row> </goals> - <nb_conversions>8</nb_conversions> + <nb_conversions>7</nb_conversions> <revenue>1332</revenue> <segment>visitStartServerHour==0</segment> </row> diff --git a/plugins/Goals/tests/System/expected/test_trackGoals_allowMultipleConversionsPerVisit__VisitsSummary.get_day.xml b/plugins/Goals/tests/System/expected/test_trackGoals_allowMultipleConversionsPerVisit__VisitsSummary.get_day.xml index 7168091d51..bfbd730f69 100644 --- a/plugins/Goals/tests/System/expected/test_trackGoals_allowMultipleConversionsPerVisit__VisitsSummary.get_day.xml +++ b/plugins/Goals/tests/System/expected/test_trackGoals_allowMultipleConversionsPerVisit__VisitsSummary.get_day.xml @@ -5,10 +5,10 @@ <nb_visits>2</nb_visits> <nb_actions>5</nb_actions> <nb_visits_converted>2</nb_visits_converted> - <bounce_count>0</bounce_count> - <sum_visit_length>363</sum_visit_length> - <max_actions>3</max_actions> - <bounce_rate>0%</bounce_rate> + <bounce_count>1</bounce_count> + <sum_visit_length>1121</sum_visit_length> + <max_actions>4</max_actions> + <bounce_rate>50%</bounce_rate> <nb_actions_per_visit>2.5</nb_actions_per_visit> - <avg_time_on_site>182</avg_time_on_site> + <avg_time_on_site>561</avg_time_on_site> </result>
\ No newline at end of file diff --git a/plugins/Goals/tests/System/expected/test_trackGoals_allowMultipleConversionsPerVisit_withLogLinkVisitActionSegment__Goals.get_day.xml b/plugins/Goals/tests/System/expected/test_trackGoals_allowMultipleConversionsPerVisit_withLogLinkVisitActionSegment__Goals.get_day.xml index 27200051aa..3a8d1b2d0c 100644 --- a/plugins/Goals/tests/System/expected/test_trackGoals_allowMultipleConversionsPerVisit_withLogLinkVisitActionSegment__Goals.get_day.xml +++ b/plugins/Goals/tests/System/expected/test_trackGoals_allowMultipleConversionsPerVisit_withLogLinkVisitActionSegment__Goals.get_day.xml @@ -1,14 +1,14 @@ <?xml version="1.0" encoding="utf-8" ?> <result> - <nb_conversions>8</nb_conversions> + <nb_conversions>7</nb_conversions> <nb_visits_converted>2</nb_visits_converted> <revenue>1332</revenue> <conversion_rate>100%</conversion_rate> - <nb_conversions_new_visit>6</nb_conversions_new_visit> + <nb_conversions_new_visit>4</nb_conversions_new_visit> <nb_visits_converted_new_visit>1</nb_visits_converted_new_visit> <revenue_new_visit>1332</revenue_new_visit> <conversion_rate_new_visit>100%</conversion_rate_new_visit> - <nb_conversions_returning_visit>2</nb_conversions_returning_visit> + <nb_conversions_returning_visit>3</nb_conversions_returning_visit> <nb_visits_converted_returning_visit>1</nb_visits_converted_returning_visit> <revenue_returning_visit>0</revenue_returning_visit> <conversion_rate_returning_visit>100%</conversion_rate_returning_visit> diff --git a/plugins/Morpheus/templates/_jsGlobalVariables.twig b/plugins/Morpheus/templates/_jsGlobalVariables.twig index 7f127d5b2c..70f7710936 100644 --- a/plugins/Morpheus/templates/_jsGlobalVariables.twig +++ b/plugins/Morpheus/templates/_jsGlobalVariables.twig @@ -16,7 +16,7 @@ symbolDecimal: "{{ 'Intl_NumberSymbolDecimal'|translate }}" }; - piwik.relativePluginWebDirs = {{ relativePluginWebDirs|json_encode|raw }} + piwik.relativePluginWebDirs = {{ relativePluginWebDirs|json_encode|raw }}; {% if userLogin %}piwik.userLogin = "{{ userLogin|e('js')}}";{% endif %} diff --git a/plugins/Referrers/Columns/Base.php b/plugins/Referrers/Columns/Base.php index 108a70a48b..b4e840656d 100644 --- a/plugins/Referrers/Columns/Base.php +++ b/plugins/Referrers/Columns/Base.php @@ -119,6 +119,8 @@ abstract class Base extends VisitDimension } } + $this->excludeQueryParamsFromReferrerUrl(); + $referrerInformation = array( 'referer_type' => $this->typeReferrerAnalyzed, 'referer_name' => $this->nameReferrerAnalyzed, @@ -137,6 +139,60 @@ abstract class Base extends VisitDimension return $referrerInformation; } + protected function excludeQueryParamsFromReferrerUrl() + { + $parametersToExclude = []; + + if (!empty($this->referrerHost) && strpos($this->referrerHost, 'instagram.com') !== false) { + $parametersToExclude[] = 'e'; + $parametersToExclude[] = 's'; + } + if (!empty($this->referrerHost) && strpos($this->referrerHost, 'facebook.com') !== false) { + $parametersToExclude[] = 'h'; + $parametersToExclude[] = 'p'; + } + if (!empty($this->referrerHost) && (strpos($this->referrerHost, 'google.') !== false || strpos($this->referrerHost, 'googleusercontent.') !== false)) { + $parametersToExclude[] = 'ust'; + $parametersToExclude[] = 'usg'; + $parametersToExclude[] = 'usd'; + $parametersToExclude[] = 'sa'; + $parametersToExclude[] = 'sntz'; + $parametersToExclude[] = 'ei'; + $parametersToExclude[] = 'sa'; + $parametersToExclude[] = 'bvm'; + $parametersToExclude[] = 'usg'; + $parametersToExclude[] = 'ved'; + $parametersToExclude[] = 'client'; + $parametersToExclude[] = 'channel'; + } + + if (!empty($this->referrerHost) && strpos($this->referrerHost, 'main.exoclick.com') !== false) { + $parametersToExclude[] = 'data'; + $parametersToExclude[] = 'wpn'; + } + if (!empty($this->referrerHost) && strpos($this->referrerHost, 'youtube.com') !== false) { + $parametersToExclude[] = 'redir_token'; + $parametersToExclude[] = 'html_redirect'; + $parametersToExclude[] = 'continuation'; + $parametersToExclude[] = 'feature'; + } + if (!empty($this->referrerHost) && strpos($this->referrerHost, 'bing.com') !== false) { + $parametersToExclude[] = 'cvid'; + $parametersToExclude[] = 'refig'; + $parametersToExclude[] = 'elv'; + $parametersToExclude[] = 'plvar'; + $parametersToExclude[] = 'setlang'; + $parametersToExclude[] = 'qs'; + $parametersToExclude[] = 'cc'; + $parametersToExclude[] = 'mkt'; + $parametersToExclude[] = 'PC'; + $parametersToExclude[] = 'form'; + $parametersToExclude[] = 'src'; + } + + $this->referrerUrl = PageUrl::excludeQueryParametersFromUrl($this->referrerUrl, $this->idsite, $parametersToExclude); + } + protected function getReferrerInformationFromRequest(Request $request, Visitor $visitor) { $referrerUrl = $request->getParam('urlref'); diff --git a/plugins/Referrers/tests/Integration/Columns/ReferrerUrlTest.php b/plugins/Referrers/tests/Integration/Columns/ReferrerUrlTest.php new file mode 100644 index 0000000000..db02b19613 --- /dev/null +++ b/plugins/Referrers/tests/Integration/Columns/ReferrerUrlTest.php @@ -0,0 +1,106 @@ +<?php +/** + * Matomo - free/libre analytics platform + * + * @link https://matomo.org + * @license http://www.gnu.org/licenses/gpl-3.0.html GPL v3 or later + */ + +namespace Piwik\Plugins\Referrers\tests\Integration\Columns; + +use Piwik\Plugins\Referrers\Columns\ReferrerUrl; +use Piwik\Tests\Framework\Fixture; +use Piwik\Tests\Framework\TestCase\IntegrationTestCase; +use Piwik\Tracker\Cache; +use Piwik\Tracker\Request; +use Piwik\Tracker\Visit\VisitProperties; +use Piwik\Tracker\Visitor; + +/** + * @group Referrers + * @group ReferrerUrlTest + * @group ReferrerUrl + * @group Plugins + */ +class ReferrerUrlTest extends IntegrationTestCase +{ + /** + * @var ReferrerUrl + */ + private $referrerUrl; + private $idSite1 = 1; + + public function setUp(): void + { + parent::setUp(); + + Cache::clearCacheGeneral(); + + $date = '2012-01-01 00:00:00'; + $ecommerce = false; + + Fixture::createWebsite($date, $ecommerce, $name = 'test1', $url = 'http://piwik.org/foo/bar'); + + $this->referrerUrl = new ReferrerUrl(); + } + + public function tearDown(): void + { + // clean up your test here if needed + Cache::clearCacheGeneral(); + + parent::tearDown(); + } + + /** + * @dataProvider getReferrerUrls + */ + public function test_onNewVisit_shouldDetectCorrectReferrerUrl($referrerUrl, $expectedUrl) + { + $request = $this->getRequest(['idsite' => $this->idSite1, 'url' => 'http://piwik.org/foo/bar', 'urlref' => $referrerUrl]); + $detectedUrl = $this->referrerUrl->onNewVisit($request, $this->getNewVisitor(), $action = null); + + $this->assertSame($expectedUrl, $detectedUrl); + } + + public function getReferrerUrls() + { + // $referrerUrl, $expectedUrl + return [ + // instagram referrer urls + ['https://l.instagram.com/?u=https%3A%2F%2Fexample.com%2Fexample.com&e=BTPcuqWixl6Mf5hgYPp6wXIlstuaEdJssdYEvT9s8-6yme_lb275lY2Bwc-YvE-fZNtSKux4QB-v8xNk&s=1', + 'https://l.instagram.com/?u=https%3A%2F%2Fexample.com%2Fexample.com'], + ['https://m.instagram.com/?u=https%3A%2F%2Fexample.com%2Fexample.com&e=BTPcuqWixl6Mf5hgYPp6wXIlstuaEdJssdYEvT9s8-6yme_lb275lY2Bwc-YvE-fZNtSKux4QB-v8xNk', + 'https://m.instagram.com/?u=https%3A%2F%2Fexample.com%2Fexample.com'], + + // facebook referrer urls + ['http://l.facebook.com/l.php?u=http://www.example.com.com/&h=BL0RXrrUUyk_ZbqijDe_mVGBi3ZsyVxJEvOfIhjlUEiRy4zkKwYMDUWbuoICNzhC6pKm6zbGCPAJQP4s8e2psymaokRV3dhp7FPx4Zk6B4x0fBbYTi54xynmBsoBRFB7f5t', + 'http://l.facebook.com/l.php?u=http://www.example.com.com/'], + ['http://lm.facebook.com/l.php?u=http://example.com/foobar&h=BT2Dh3r3VDLoabL3Rb1lpmN-_s0lFtReSGzBED3kfUGnaO5fPF-x8LspJAfJN9kkee5ptpybYgyIx68yzgo9kPAN6snSZL_eNcmgu5xhuUcLXJukNKvi0XMOY78Ca9NKexnpJKxKUDeVApPcfB', + 'http://lm.facebook.com/l.php?u=http://example.com/foobar'], + + // google referrer urls + ['https://www.google.com/url?q=https://example.com/foo&sa=D&ust=1689581471834000&usg=BCQjCNFw5f1S7rLgPNephpTW_4-i2KnAGA', + 'https://www.google.com/url?q=https://example.com/foo'], + + // bing referrer urls + ['https://www.bing.com/search?q=foo+bar&form=EDGTCK&qs=AB&cvid=ff8399e313a74fb592b0ca1d91c42224&refig=4540178a841b46ce8de1664920449112&cc=BE&setlang=4k-NL&elv=AXXfrEiqqD9r3GuelwApuloWthKnH5oOVtTkjmeLPBeagbGxe4rwyaaV!5HJFcbCTxaO4q5w7QqvI8XbCTXyJKn1N4PzqCvVFSdBSr*sdwlB&plvar=0', + 'https://www.bing.com/search?q=foo+bar'], + + // ensure custom url still keep those parameters + ['http://www.example.com/index.php?s=test&e=val&h=param&cvid=custom', + 'http://www.example.com/index.php?s=test&e=val&h=param&cvid=custom'] + ]; + } + + private function getRequest($params) + { + return new Request($params); + } + + private function getNewVisitor() + { + return new Visitor(new VisitProperties()); + } + +} diff --git a/plugins/SitesManager/templates/_trackingCodeEmail.twig b/plugins/SitesManager/templates/_trackingCodeEmail.twig index be2a0e2362..06712f1bce 100644 --- a/plugins/SitesManager/templates/_trackingCodeEmail.twig +++ b/plugins/SitesManager/templates/_trackingCodeEmail.twig @@ -15,6 +15,7 @@ Squarespace: https://matomo.org/faq/new-to-piwik/how-do-i-integrate-matomo-with- Wix: https://matomo.org/faq/new-to-piwik/how-do-i-install-the-matomo-analytics-tracking-code-on-wix/ SharePoint: https://matomo.org/faq/how-to-install/faq_19424/ Joomla: https://matomo.org/faq/new-to-piwik/how-do-i-install-the-matomo-analytics-tracking-code-on-joomla/ +Shopify: https://matomo.org/faq/new-to-piwik/how-do-i-install-the-matomo-tracking-code-on-my-shopify-store/ ** {{ 'SitesManager_Integrations'|translate }} {{ 'CoreAdminHome_JSTrackingIntro3a'|translate('', '') }} diff --git a/plugins/SitesManager/templates/siteWithoutData.twig b/plugins/SitesManager/templates/siteWithoutData.twig index 19e831c00e..a1215dd8c5 100644 --- a/plugins/SitesManager/templates/siteWithoutData.twig +++ b/plugins/SitesManager/templates/siteWithoutData.twig @@ -49,6 +49,7 @@ | <a target="_blank" rel="noreferrer noopener" href='https://matomo.org/faq/new-to-piwik/how-do-i-install-the-matomo-analytics-tracking-code-on-wix/'>Wix</a> | <a target="_blank" rel="noreferrer noopener" href='https://matomo.org/faq/how-to-install/faq_19424/'>SharePoint</a> | <a target="_blank" rel="noreferrer noopener" href='https://matomo.org/faq/new-to-piwik/how-do-i-install-the-matomo-analytics-tracking-code-on-joomla/'>Joomla</a> + | <a target="_blank" rel="noreferrer noopener" href='https://matomo.org/faq/new-to-piwik/how-do-i-install-the-matomo-tracking-code-on-my-shopify-store/'>Shopify</a> <br > <br > {{ 'SitesManager_ExtraInformationNeeded'|translate }} diff --git a/plugins/TagManager b/plugins/TagManager -Subproject 567f475764f6922a3889d5c9938150fad7f1b52 +Subproject 2105be36d15030f632efd60d71b761f6e1a5f8f diff --git a/plugins/UserCountryMap/svg/DEU.svg b/plugins/UserCountryMap/svg/DEU.svg index dc2f760b63..4f11651182 100644 --- a/plugins/UserCountryMap/svg/DEU.svg +++ b/plugins/UserCountryMap/svg/DEU.svg @@ -1 +1 @@ -<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE svg PUBLIC '-//W3C//DTD SVG 1.1//EN' 'http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd'><svg enable_background="new 0 0 450 451" height="451px" style="stroke-linejoin: round; stroke:#000; fill: none;" version="1.1" viewBox="0 0 450 451" width="450px" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"><defs><style type="text/css"><![CDATA[path { fill-rule: evenodd; }]]></style></defs><metadata><views><view h="451" padding="0.06" w="450"><proj id="laea" lat0="51.423631497" lon0="7.55593198638"/><bbox h="104.32" w="79.29" x="982.53" y="950.78"/></view></views></metadata><g class="" id="context"><path d="M450,335L443,332L441,332L437,336L427,337L418,332L410,331L403,328L399,328L394,330L394,329L388,328L388,337L387,340L384,340L380,346L380,350L371,350L369,352L362,353L357,352L355,347L349,344L348,344L348,345L348,353L345,357L338,354L337,355L336,365L333,368L319,376L316,379L314,383L322,393L322,397L320,402L325,402L326,405L325,414L318,411L317,408L313,405L306,407L301,405L295,404L295,409L279,412L274,414L264,421L253,423L249,418L249,417L244,417L241,415L235,416L231,425L226,430L224,430L223,425L220,424L219,420L208,415L205,418L201,417L200,418L201,419L204,421L203,425L201,431L201,432L202,436L202,437L203,442L203,443L204,443L213,445L214,449L228,449L231,446L233,447L234,449L258,449L259,447L263,445L273,443L282,443L289,440L296,437L295,442L296,445L300,449L421,449L423,447L428,446L435,447L435,440L437,437L439,436L444,430L447,428L450,428L450,420L449,416L450,413L448,408L450,406L450,394L446,392L450,388L450,335Z " data-iso="AUT"/><path d="M67,245L72,244L74,247L70,247L77,247L77,248L81,251L85,255L83,258L88,263L89,270L83,275L81,280L81,281L80,280L76,278L72,282L68,291L67,297L69,300L72,306L70,310L69,311L66,311L59,312L51,303L40,297L37,297L37,290L35,288L38,279L35,278L32,280L31,285L27,287L21,288L14,287L15,282L13,277L15,272L10,268L1,266L-1,267L-2,267L-3,260L-8,257L-14,256L-16,248L-17,244L-20,242L-26,244L-32,242L-34,239L-37,233L-36,231L-38,223L-23,215L-14,211L-10,210L-7,217L-2,216L1,216L6,220L8,220L13,218L17,215L19,211L22,213L29,207L33,210L37,207L43,211L46,208L48,215L52,218L55,219L62,219L65,223L72,227L69,234L69,237L66,241L67,246L67,245Z " data-iso="BEL"/><path d="M203,443L200,443L199,443L199,441L199,437L201,431L203,425L204,421L201,419L200,418L194,414L188,411L175,409L171,409L167,406L164,406L161,408L162,412L165,412L165,413L160,415L153,414L149,416L143,417L135,417L132,415L127,418L125,423L117,424L114,421L112,421L108,423L106,426L109,428L108,433L98,443L97,445L90,449L214,449L213,445L204,443L203,443Z M234,449L233,447L231,446L228,449L234,449Z " data-iso="CHE"/><path d="M372,230L372,231L371,232L366,231L366,227L361,223L354,222L353,224L358,228L342,238L336,241L330,243L329,247L321,249L319,253L314,255L312,259L306,258L298,261L295,263L290,273L285,266L283,268L288,277L290,280L299,287L295,296L302,304L305,310L311,317L315,316L319,320L323,325L335,335L338,334L347,341L348,344L349,344L355,347L357,352L362,353L369,352L371,350L380,350L380,346L384,340L387,340L388,337L388,328L394,329L394,330L399,328L403,328L410,331L418,332L427,337L437,336L441,332L443,332L450,335L450,245L444,246L449,254L442,259L441,262L437,262L432,256L427,251L423,249L422,248L424,244L426,243L423,235L416,237L394,231L392,231L388,227L387,223L378,221L378,228L375,229L372,230Z " data-iso="CZE"/><path d="M332,64L325,60L328,66L329,73L333,73L336,72L338,72L337,70L337,68L332,64Z M245,50L243,46L238,44L236,48L240,50L245,50Z M320,47L316,45L316,41L318,39L317,37L312,35L309,31L307,31L304,34L304,51L310,55L311,54L313,50L316,49L320,52L320,47Z M161,37L161,35L156,36L155,37L161,37Z M164,33L173,46L173,50L169,52L163,54L163,59L170,59L171,61L172,75L177,80L182,80L185,82L195,95L200,98L196,97L194,95L185,84L181,82L172,83L163,81L160,86L159,92L161,98L159,107L159,101L154,96L151,104L150,105L147,103L149,99L144,91L132,91L121,92L119,93L115,98L114,108L117,111L118,113L118,118L115,134L112,148L104,147L102,153L102,155L112,159L113,161L112,167L111,170L105,175L103,176L102,179L105,182L103,186L95,189L88,189L84,187L77,191L77,193L84,208L83,215L80,222L82,226L76,231L73,231L74,235L76,235L79,239L77,247L77,248L81,251L85,255L83,258L88,263L89,270L83,275L81,280L81,281L80,282L80,285L85,294L93,300L93,303L89,308L88,313L88,316L89,316L92,317L94,319L97,325L101,332L110,331L111,334L117,335L126,333L128,336L131,337L145,340L150,342L150,347L139,360L138,365L137,372L135,379L132,385L131,390L131,394L131,399L129,406L129,411L130,415L132,415L135,417L143,417L149,416L153,414L160,415L165,413L165,412L162,412L161,408L164,406L167,406L171,409L175,409L188,411L194,414L200,418L201,417L205,418L208,415L219,420L220,424L223,425L224,430L226,430L231,425L235,416L241,415L244,417L249,417L249,418L253,423L264,421L274,414L279,412L295,409L295,404L301,405L306,407L313,405L317,408L318,411L325,414L326,405L325,402L320,402L322,397L322,393L314,383L316,379L319,376L333,368L336,365L337,355L338,354L345,357L348,353L348,345L348,344L347,341L338,334L335,335L323,325L319,320L315,316L311,317L305,310L302,304L295,296L299,287L290,280L288,277L283,268L285,266L290,273L295,263L298,261L306,258L312,259L314,255L319,253L321,249L329,247L330,243L336,241L342,238L358,228L353,224L354,222L361,223L366,227L366,231L371,232L372,231L372,230L372,229L375,222L376,217L377,208L372,198L366,195L366,189L361,182L360,179L362,175L364,165L362,164L361,157L356,151L357,142L353,136L344,130L340,125L346,112L347,103L342,89L340,80L340,80L332,78L327,74L325,66L321,59L313,60L303,53L299,47L284,45L276,55L273,58L271,62L261,63L259,65L252,74L250,75L240,72L235,73L233,72L231,69L237,63L238,57L237,52L228,56L216,50L212,52L209,48L201,49L206,43L205,38L201,32L197,31L196,30L193,29L184,32L182,31L179,30L171,27L164,27L164,33Z M153,33L154,30L161,29L162,27L155,27L154,26L157,19L155,19L152,27L152,34L153,33Z " data-iso="DEU"/><path d="M246,25L242,22L236,22L236,31L249,38L253,36L256,37L259,35L255,27L251,28L246,25Z M219,28L212,23L215,28L219,28Z M282,18L277,15L274,15L269,22L271,23L276,19L282,18Z M206,27L204,21L199,18L198,26L203,27L206,27Z M227,33L232,16L232,11L230,17L227,22L225,25L226,33L227,33Z M346,0L346,6L352,9L358,10L360,5L359,2L355,0L346,0Z M199,0L201,9L203,12L212,16L217,18L223,17L228,13L228,9L227,5L228,3L227,0L199,0Z M239,0L239,2L243,8L248,7L254,8L257,20L257,23L261,30L267,27L267,14L267,8L274,5L276,2L276,0L239,0Z M164,27L171,27L179,30L182,31L184,32L193,29L196,30L195,25L196,23L191,19L187,19L189,15L193,10L194,7L192,0L162,0L163,4L163,13L160,15L163,22L164,27Z " data-iso="DNK"/><path d="M132,415L130,415L129,411L129,406L131,399L131,394L131,390L132,385L135,379L137,372L138,365L139,360L150,347L150,342L145,340L131,337L128,336L126,333L117,335L111,334L110,331L101,332L97,325L94,319L92,317L89,316L88,316L85,315L80,314L78,316L70,313L69,311L66,311L59,312L51,303L40,297L37,297L37,290L35,288L38,279L35,278L32,280L31,285L27,287L21,288L14,287L15,282L13,277L15,272L10,268L1,266L0,266L0,449L90,449L97,445L98,443L108,433L109,428L106,426L108,423L112,421L114,421L117,424L125,423L127,418L132,415Z " data-iso="FRA"/><path d="M439,436L446,436L448,440L449,443L450,444L450,428L447,428L444,430L439,436Z M450,406L448,408L450,413L449,416L450,420L450,406Z M450,388L446,392L450,394L450,388Z " data-iso="HUN"/><path d="M300,449L296,445L295,442L296,437L289,440L282,443L273,443L263,445L259,447L258,449L300,449Z " data-iso="ITA"/><path d="M203,442L202,437L202,436L201,432L201,431L199,437L199,441L199,443L200,443L203,443L203,442Z " data-iso="LIE"/><path d="M80,280L76,278L72,282L68,291L67,297L69,300L72,306L70,310L69,311L70,313L78,316L80,314L85,315L88,316L88,313L89,308L93,303L93,300L85,294L80,285L80,282L81,281L80,280Z " data-iso="LUX"/><path d="M1,216L6,220L8,220L13,218L17,215L19,211L15,213L12,210L8,212L0,210L0,216L1,216Z M11,192L6,192L4,195L7,194L11,198L15,197L11,192Z M44,123L45,117L40,122L41,126L44,123Z M52,110L49,110L46,114L52,110Z M19,211L22,213L29,207L33,210L37,207L43,211L46,208L48,215L52,218L55,219L62,219L65,223L72,227L69,234L69,237L66,241L67,246L67,246L69,246L70,247L77,247L79,239L76,235L74,235L73,231L76,231L82,226L80,222L83,215L84,208L77,193L77,191L84,187L88,189L95,189L103,186L105,182L102,179L103,176L105,175L111,170L112,167L113,161L112,159L102,155L102,153L104,147L112,148L115,134L118,118L118,113L114,112L111,111L106,105L98,105L91,106L82,106L76,108L65,113L62,116L59,122L50,129L44,131L40,130L37,136L33,156L30,163L26,169L20,176L16,179L11,188L17,196L18,199L12,200L20,205L21,207L17,208L8,201L4,199L0,199L0,207L6,209L12,208L16,210L19,211Z M75,151L75,155L73,158L63,167L57,165L48,162L47,160L48,158L49,157L49,156L49,152L49,150L49,147L52,147L55,144L55,141L53,138L51,136L51,133L50,131L56,126L60,124L61,125L61,132L61,134L62,135L65,135L69,135L69,137L68,139L67,140L67,144L67,145L68,147L74,148L75,151Z M59,107L67,104L62,104L55,106L59,107Z M78,103L76,102L71,102L72,104L78,103Z M91,101L90,100L86,102L91,101Z M104,97L106,95L101,97L104,97Z " data-iso="NLD"/><path d="M337,68L337,70L338,72L342,73L349,74L351,83L347,82L340,80L342,89L347,103L346,112L340,125L344,130L353,136L357,142L356,151L361,157L362,164L364,165L362,175L360,179L361,182L366,189L366,195L372,198L377,208L376,217L375,222L372,229L372,230L375,229L378,228L378,221L387,223L388,227L392,231L394,231L416,237L423,235L426,243L424,244L422,248L423,249L427,251L432,256L437,262L441,262L442,259L449,254L444,246L450,245L450,7L443,9L426,16L419,21L416,25L406,28L401,35L396,44L388,47L370,55L353,63L343,69L339,69L337,68Z " data-iso="POL"/><path d="M439,436L437,437L435,440L435,447L428,446L423,447L421,449L450,449L450,444L449,443L448,440L446,436L439,436Z " data-iso="SVN"/></g><g class="" id="regions"><path d="M112,169L106,175L103,176L101,179L105,182L103,186L96,188L90,190L82,187L83,188L78,190L79,198L83,205L85,211L83,217L81,220L80,225L82,226L77,230L75,232L74,231L73,233L75,235L77,236L79,241L77,246L81,250L83,254L85,255L82,258L84,261L88,262L89,265L88,268L89,270L89,270L96,267L101,269L104,268L102,264L107,261L109,258L118,254L120,255L124,250L129,249L136,243L136,240L139,240L148,250L149,251L149,250L150,248L149,246L152,243L157,241L163,233L162,229L166,229L168,228L169,221L168,220L163,220L167,215L172,214L175,213L175,212L176,208L179,208L183,210L184,210L189,202L191,200L192,199L190,200L190,195L192,192L192,188L187,188L188,186L186,184L186,182L182,181L183,180L181,174L177,174L179,168L176,167L177,163L178,163L181,159L179,154L177,155L173,160L167,160L167,155L165,153L159,155L159,157L154,157L155,160L158,162L159,163L159,170L160,171L157,175L153,174L148,178L145,178L141,176L145,172L141,170L142,165L143,165L134,159L134,157L130,158L129,161L120,167L115,167L112,169L112,169Z " data-fips="GM07" data-fips-="GM06" data-iso3="DEU" data-name="Nordrhein-Westfalen" data-p="NW"/><path d="M183,309L183,310L183,313L177,314L178,316L175,319L173,319L174,314L170,311L168,308L164,312L160,309L159,310L159,311L160,316L162,317L162,325L158,329L158,334L152,343L151,344L148,351L146,352L138,361L139,366L136,372L136,376L134,381L132,384L130,391L132,394L128,409L131,416L133,415L134,418L142,417L147,417L152,414L156,414L160,416L164,414L166,415L166,411L164,412L161,408L162,406L166,404L169,405L171,410L173,408L181,411L186,411L191,412L201,417L201,418L208,413L217,409L221,409L221,407L220,403L221,402L220,394L221,386L220,384L218,378L216,373L218,367L224,365L227,361L225,356L231,354L232,353L230,352L231,347L230,344L231,343L223,334L224,333L220,327L219,323L218,321L218,314L217,311L215,314L212,313L211,310L208,310L210,307L206,301L202,303L201,299L196,297L190,299L190,301L192,303L193,302L194,305L190,306L188,309L183,310L183,309Z " data-fips="GM01" data-fips-="" data-iso3="DEU" data-name="Baden-Württemberg" data-p="BW"/><path d="M208,212L206,213L204,212L201,214L203,216L200,217L196,215L199,212L198,204L200,203L199,201L192,199L192,199L191,200L189,202L184,210L183,210L179,208L176,208L175,212L175,213L172,214L167,215L163,220L168,220L169,221L168,228L166,229L162,229L163,233L157,241L152,243L149,246L150,248L149,250L149,251L149,252L147,259L145,260L145,263L144,266L146,267L148,271L148,273L146,273L141,278L142,282L137,285L141,289L142,289L146,286L151,285L152,285L156,289L157,295L159,300L161,300L157,305L159,308L159,310L160,309L164,312L168,308L170,311L174,314L173,319L175,319L178,316L177,314L183,313L183,310L183,309L183,309L184,301L182,295L181,295L180,292L180,284L178,284L182,280L190,279L193,282L201,272L204,270L204,265L212,263L214,259L214,259L214,259L214,252L212,250L210,253L208,253L210,243L212,242L213,239L211,237L213,236L213,233L216,233L217,230L216,230L217,227L215,226L218,224L215,222L213,221L212,218L210,218L208,213L209,213L208,212Z " data-fips="GM05" data-fips-="" data-iso3="DEU" data-name="Hessen" data-p="HE"/><path d="M162,117L160,117L166,124L166,125L169,125L173,126L175,125L175,120L172,120L162,117Z M160,96L161,99L161,99L161,100L161,100L164,100L163,97L160,95L160,96Z " data-fips="GM03" data-fips-="" data-iso3="DEU" data-name="Bremen" data-p="HB"/><path d="M104,97L102,96L102,98L104,97Z M123,90L118,90L121,90L123,90Z M125,89L125,90L126,89L125,89Z M149,89L147,90L148,90L149,89Z M137,87L135,86L135,88L137,87Z M160,95L163,97L164,100L161,100L161,101L161,99L153,95L151,97L154,101L152,106L148,104L146,104L146,101L149,100L142,90L128,92L127,91L122,92L115,97L116,100L116,101L114,110L122,110L120,111L117,120L118,128L114,136L113,139L112,148L104,147L101,154L102,157L109,158L111,157L113,160L112,168L112,169L115,167L120,167L129,161L130,158L134,157L134,159L143,165L142,165L141,170L145,172L141,176L145,178L148,178L153,174L157,175L160,171L159,170L159,163L158,162L155,160L154,157L159,157L159,155L165,153L167,155L167,160L173,160L177,155L179,154L181,159L178,163L177,163L176,167L179,168L177,174L181,174L183,180L182,181L186,182L186,184L188,186L187,188L192,188L192,192L190,195L190,200L192,199L192,199L199,201L200,203L198,204L199,212L196,215L200,217L203,216L201,214L204,212L206,213L208,212L209,213L211,211L215,210L223,201L227,203L232,202L232,199L233,198L232,197L232,194L229,191L229,187L231,185L231,182L228,179L244,171L244,165L242,163L243,159L239,154L241,152L237,144L232,137L233,134L235,134L240,131L245,130L248,132L256,128L256,125L258,124L258,122L256,122L254,121L253,120L251,122L250,121L250,121L250,121L249,120L248,118L244,116L240,117L237,114L229,106L228,106L226,106L225,107L224,106L219,104L218,103L217,103L216,104L213,105L209,103L207,104L201,103L199,98L197,98L191,92L190,91L188,88L183,82L178,82L175,83L170,84L165,81L161,84L159,90L160,95L160,95Z M160,117L162,117L172,120L175,120L175,125L173,126L169,125L166,125L166,124L160,117Z " data-fips="GM06" data-fips-="" data-iso3="DEU" data-name="Niedersachsen" data-p="NI"/><path d="M287,225L287,229L286,233L278,232L273,229L270,230L266,225L259,226L258,222L255,220L259,216L256,212L250,210L243,210L242,204L240,202L241,200L234,199L233,198L232,199L232,202L227,203L223,201L215,210L211,211L209,213L208,213L210,218L212,218L213,221L215,222L218,224L215,226L217,227L216,230L217,230L216,233L213,233L213,236L211,237L213,239L212,242L210,243L208,253L210,253L212,250L214,252L214,259L214,259L216,256L219,257L220,259L226,265L227,264L231,266L233,269L234,273L237,274L237,272L241,272L241,271L237,268L239,265L242,264L246,266L249,266L252,267L251,268L255,269L255,260L258,257L260,257L261,261L264,264L266,263L276,262L277,261L276,261L277,257L279,254L280,254L284,253L290,246L288,246L288,241L291,238L295,236L299,235L298,231L296,230L294,226L289,225L287,225L287,225Z " data-fips="GM15" data-fips-="" data-iso3="DEU" data-name="Thüringen" data-p="TH"/><path d="M217,103L212,99L213,91L211,89L209,89L208,91L204,93L198,97L200,97L201,97L201,98L201,98L199,98L201,103L207,104L209,103L213,105L216,104L217,103L217,103Z " data-fips="GM04" data-fips-="" data-iso3="DEU" data-name="Hamburg" data-p="HH"/><path d="M171,50L169,47L168,48L171,50Z M244,47L242,45L238,44L236,48L239,48L239,50L242,50L246,50L244,47Z M164,48L165,45L162,48L164,48Z M154,37L152,39L155,41L153,38L154,37Z M161,38L160,35L156,36L158,38L161,38Z M198,97L204,93L208,91L209,89L211,89L213,91L212,99L217,103L217,103L218,103L219,104L224,106L225,107L226,106L226,106L228,102L233,98L234,96L237,96L236,89L230,86L230,80L234,77L234,75L234,75L230,72L230,70L231,68L232,68L239,63L239,53L240,52L234,52L229,56L224,54L212,52L210,56L211,49L201,49L205,46L206,39L204,33L199,33L198,32L192,30L191,28L188,31L171,27L163,29L163,30L165,36L167,38L169,42L174,48L171,52L167,53L163,55L165,55L162,57L166,59L173,59L170,61L169,67L170,68L173,67L175,69L175,73L169,73L172,78L182,80L187,83L192,94L197,97L198,97Z M155,27L155,22L157,19L156,18L154,20L152,26L152,35L153,29L157,29L155,27Z " data-fips="GM10" data-fips-="" data-iso3="DEU" data-name="Schleswig-Holstein" data-p="SH"/><path d="M89,270L82,275L82,278L81,279L80,284L82,290L84,293L89,297L93,298L93,303L88,312L88,312L97,312L100,311L110,307L113,308L120,310L119,318L123,324L120,328L123,332L124,332L128,336L136,339L137,338L143,339L148,342L152,343L152,343L158,334L158,329L162,325L162,317L160,316L159,311L159,310L159,308L157,305L161,300L159,300L157,295L156,289L152,285L151,285L146,286L142,289L141,289L137,285L142,282L141,278L146,273L148,273L148,271L146,267L144,266L145,263L145,260L147,259L149,252L149,251L148,250L139,240L136,240L136,243L129,249L124,250L120,255L118,254L109,258L107,261L102,264L104,268L101,269L96,267L89,270L89,270Z " data-fips="GM08" data-fips-="" data-iso3="DEU" data-name="Rheinland-Pfalz" data-p="RP"/><path d="M88,314L88,316L90,316L93,317L96,321L101,332L104,333L105,332L111,331L112,335L120,335L123,332L123,332L120,328L123,324L119,318L120,310L113,308L110,307L100,311L97,312L88,312L88,314Z " data-fips="GM09" data-fips-="" data-iso3="DEU" data-name="Saarland" data-p="SL"/><path d="M214,259L214,259L212,263L204,265L204,270L201,272L193,282L190,279L182,280L178,284L180,284L180,292L181,295L182,295L184,301L183,309L183,309L183,310L188,309L190,306L194,305L193,302L192,303L190,301L190,299L196,297L201,299L202,303L206,301L210,307L208,310L211,310L212,313L215,314L217,311L218,314L218,321L219,323L220,327L224,333L223,334L231,343L230,344L231,347L230,352L232,353L231,354L225,356L227,361L224,365L218,367L216,373L218,378L220,384L221,386L220,394L221,402L220,403L221,407L221,409L217,409L208,413L201,418L203,418L206,418L210,414L211,417L215,417L217,420L218,419L220,422L220,426L223,425L225,426L223,431L227,430L229,428L233,423L232,414L236,417L239,415L248,416L249,417L248,418L252,421L252,423L257,423L259,421L263,422L264,420L267,419L266,418L268,416L273,416L276,411L282,412L283,410L286,410L295,409L296,406L295,405L303,404L306,407L313,405L318,408L317,411L321,413L325,415L326,413L327,404L326,404L320,401L322,393L321,391L313,382L318,376L320,376L323,373L327,371L331,370L336,365L337,355L339,354L343,355L346,357L349,347L348,346L348,343L341,336L340,335L337,334L336,336L332,331L328,327L326,327L318,319L318,318L311,317L308,314L305,312L299,299L297,298L298,291L298,291L295,282L289,280L285,271L283,270L283,266L284,266L280,264L279,263L278,261L277,261L276,262L266,263L264,264L261,261L260,257L258,257L255,260L255,269L251,268L252,267L249,266L246,266L242,264L239,265L237,268L241,271L241,272L237,272L237,274L234,273L233,269L231,266L227,264L226,265L220,259L219,257L216,256L214,259Z " data-fips="GM02" data-fips-="GM15" data-iso3="DEU" data-name="Bayern" data-p="BY"/><path d="M321,139L312,141L312,143L310,146L310,148L309,153L311,153L324,152L327,155L329,150L327,147L326,147L326,144L323,143L321,139Z " data-fips="GM16" data-fips-="" data-iso3="DEU" data-name="Berlin" data-p="BE"/><path d="M312,194L314,190L313,186L316,182L305,180L304,180L296,176L295,177L287,174L286,173L281,167L282,153L281,148L278,149L278,144L279,143L279,135L280,134L279,131L269,129L266,128L264,125L262,125L259,122L258,122L258,124L256,125L256,128L248,132L245,130L240,131L235,134L233,134L232,137L237,144L241,152L239,154L243,159L242,163L244,165L244,171L228,179L231,182L231,185L229,187L229,191L232,194L232,197L233,198L234,199L241,200L240,202L242,204L243,210L250,210L256,212L259,216L255,220L258,222L259,226L266,225L270,230L273,229L278,232L286,233L287,229L287,225L287,225L285,225L282,216L283,212L283,201L284,200L290,199L291,197L298,197L302,195L305,192L306,193L310,195L311,195L312,194Z " data-fips="GM14" data-fips-="" data-iso3="DEU" data-name="Sachsen-Anhalt" data-p="ST"/><path d="M287,225L289,225L294,226L296,230L298,231L299,235L295,236L291,238L288,241L288,246L290,246L284,253L280,254L279,254L277,257L276,261L277,261L278,261L279,263L280,264L284,266L285,266L287,269L289,269L291,274L294,265L296,264L297,261L304,260L307,258L312,259L315,254L320,252L321,249L323,249L326,246L327,248L329,246L333,241L340,240L342,237L346,235L352,232L353,231L357,230L358,229L355,226L353,225L355,222L357,223L360,221L364,228L366,228L366,230L372,231L372,229L375,222L377,215L376,206L374,200L372,197L366,195L365,194L362,193L359,194L353,197L349,196L346,198L344,202L341,206L335,207L330,207L323,204L317,206L316,201L311,195L311,195L310,195L306,193L305,192L302,195L298,197L291,197L290,199L284,200L283,201L283,212L282,216L285,225L287,225Z " data-fips="GM13" data-fips-="" data-iso3="DEU" data-name="Sachsen" data-p="SN"/><path d="M268,109L268,109L266,112L263,112L260,111L256,114L256,118L252,118L252,119L248,119L249,120L250,121L250,121L250,121L251,122L253,120L254,121L256,122L258,122L259,122L262,125L264,125L266,128L269,129L279,131L280,134L279,135L279,143L278,144L278,149L281,148L282,153L281,167L286,173L287,174L295,177L296,176L304,180L305,180L316,182L313,186L314,190L312,194L311,195L311,195L316,201L317,206L323,204L330,207L335,207L341,206L344,202L346,198L349,196L353,197L359,194L362,193L365,194L365,194L365,187L360,181L360,178L363,173L364,166L362,164L362,157L357,155L355,148L357,146L358,139L355,137L353,136L349,132L343,128L340,127L341,125L340,121L345,117L347,111L346,109L348,104L346,101L346,100L342,105L337,103L341,99L337,96L336,97L331,97L329,92L326,92L324,95L319,100L318,103L315,106L312,106L309,109L307,108L303,113L297,112L287,108L284,109L281,106L278,105L277,104L272,105L269,109L268,109Z M321,139L323,143L326,144L326,147L327,147L329,150L327,155L324,152L311,153L309,153L310,148L310,146L312,143L312,141L321,139Z " data-fips="GM11" data-fips-="GM16" data-iso3="DEU" data-name="Brandenburg" data-p="BE"/><path d="M254,69L256,66L253,67L254,69Z M330,62L323,57L324,63L323,65L326,64L326,66L329,63L332,65L332,68L328,68L329,70L327,73L329,74L333,73L337,72L337,70L330,62Z M234,75L234,77L230,80L230,86L236,89L237,96L234,96L233,98L228,102L226,106L226,106L228,106L229,106L237,114L240,117L244,116L248,118L248,119L252,119L252,118L254,118L256,118L256,114L260,111L263,112L266,112L268,109L269,109L272,105L277,104L278,105L281,106L284,109L287,108L297,112L303,113L307,108L309,109L312,106L315,106L318,103L319,100L324,95L326,92L329,92L331,97L336,97L337,96L341,99L337,103L342,105L346,100L345,97L344,94L342,90L342,87L339,81L340,79L339,78L338,79L333,79L327,75L325,74L328,69L323,65L324,61L320,59L321,58L314,63L311,58L309,58L307,56L304,54L301,51L300,48L298,46L297,46L293,50L290,49L289,48L282,52L280,56L279,56L281,49L285,49L295,46L285,46L282,45L280,49L276,56L269,61L262,63L257,64L255,69L252,72L252,77L248,74L245,75L245,73L242,71L239,72L235,75L234,75Z M302,37L302,37L302,37L302,37Z M302,37L300,36L301,39L302,37Z M309,33L309,31L304,33L306,34L305,38L308,35L311,38L313,37L313,42L310,41L308,37L302,39L303,41L304,41L304,45L306,48L303,48L302,50L307,54L309,53L309,55L311,53L322,48L315,43L315,42L318,38L315,36L310,37L309,33Z " data-fips="GM12" data-fips-="" data-iso3="DEU" data-name="Mecklenburg-Vorpommern" data-p="MV"/></g></svg>
\ No newline at end of file +<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE svg PUBLIC '-//W3C//DTD SVG 1.1//EN' 'http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd'><svg enable_background="new 0 0 450 451" height="451px" style="stroke-linejoin: round; stroke:#000; fill: none;" version="1.1" viewBox="0 0 450 451" width="450px" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"><defs><style type="text/css"><![CDATA[path { fill-rule: evenodd; }]]></style></defs><metadata><views><view h="451" padding="0.06" w="450"><proj id="laea" lat0="51.423631497" lon0="7.55593198638"/><bbox h="104.32" w="79.29" x="982.53" y="950.78"/></view></views></metadata><g class="" id="context"><path d="M450,335L443,332L441,332L437,336L427,337L418,332L410,331L403,328L399,328L394,330L394,329L388,328L388,337L387,340L384,340L380,346L380,350L371,350L369,352L362,353L357,352L355,347L349,344L348,344L348,345L348,353L345,357L338,354L337,355L336,365L333,368L319,376L316,379L314,383L322,393L322,397L320,402L325,402L326,405L325,414L318,411L317,408L313,405L306,407L301,405L295,404L295,409L279,412L274,414L264,421L253,423L249,418L249,417L244,417L241,415L235,416L231,425L226,430L224,430L223,425L220,424L219,420L208,415L205,418L201,417L200,418L201,419L204,421L203,425L201,431L201,432L202,436L202,437L203,442L203,443L204,443L213,445L214,449L228,449L231,446L233,447L234,449L258,449L259,447L263,445L273,443L282,443L289,440L296,437L295,442L296,445L300,449L421,449L423,447L428,446L435,447L435,440L437,437L439,436L444,430L447,428L450,428L450,420L449,416L450,413L448,408L450,406L450,394L446,392L450,388L450,335Z " data-iso="AUT"/><path d="M67,245L72,244L74,247L70,247L77,247L77,248L81,251L85,255L83,258L88,263L89,270L83,275L81,280L81,281L80,280L76,278L72,282L68,291L67,297L69,300L72,306L70,310L69,311L66,311L59,312L51,303L40,297L37,297L37,290L35,288L38,279L35,278L32,280L31,285L27,287L21,288L14,287L15,282L13,277L15,272L10,268L1,266L-1,267L-2,267L-3,260L-8,257L-14,256L-16,248L-17,244L-20,242L-26,244L-32,242L-34,239L-37,233L-36,231L-38,223L-23,215L-14,211L-10,210L-7,217L-2,216L1,216L6,220L8,220L13,218L17,215L19,211L22,213L29,207L33,210L37,207L43,211L46,208L48,215L52,218L55,219L62,219L65,223L72,227L69,234L69,237L66,241L67,246L67,245Z " data-iso="BEL"/><path d="M203,443L200,443L199,443L199,441L199,437L201,431L203,425L204,421L201,419L200,418L194,414L188,411L175,409L171,409L167,406L164,406L161,408L162,412L165,412L165,413L160,415L153,414L149,416L143,417L135,417L132,415L127,418L125,423L117,424L114,421L112,421L108,423L106,426L109,428L108,433L98,443L97,445L90,449L214,449L213,445L204,443L203,443Z M234,449L233,447L231,446L228,449L234,449Z " data-iso="CHE"/><path d="M372,230L372,231L371,232L366,231L366,227L361,223L354,222L353,224L358,228L342,238L336,241L330,243L329,247L321,249L319,253L314,255L312,259L306,258L298,261L295,263L290,273L285,266L283,268L288,277L290,280L299,287L295,296L302,304L305,310L311,317L315,316L319,320L323,325L335,335L338,334L347,341L348,344L349,344L355,347L357,352L362,353L369,352L371,350L380,350L380,346L384,340L387,340L388,337L388,328L394,329L394,330L399,328L403,328L410,331L418,332L427,337L437,336L441,332L443,332L450,335L450,245L444,246L449,254L442,259L441,262L437,262L432,256L427,251L423,249L422,248L424,244L426,243L423,235L416,237L394,231L392,231L388,227L387,223L378,221L378,228L375,229L372,230Z " data-iso="CZE"/><path d="M332,64L325,60L328,66L329,73L333,73L336,72L338,72L337,70L337,68L332,64Z M245,50L243,46L238,44L236,48L240,50L245,50Z M320,47L316,45L316,41L318,39L317,37L312,35L309,31L307,31L304,34L304,51L310,55L311,54L313,50L316,49L320,52L320,47Z M161,37L161,35L156,36L155,37L161,37Z M164,33L173,46L173,50L169,52L163,54L163,59L170,59L171,61L172,75L177,80L182,80L185,82L195,95L200,98L196,97L194,95L185,84L181,82L172,83L163,81L160,86L159,92L161,98L159,107L159,101L154,96L151,104L150,105L147,103L149,99L144,91L132,91L121,92L119,93L115,98L114,108L117,111L118,113L118,118L115,134L112,148L104,147L102,153L102,155L112,159L113,161L112,167L111,170L105,175L103,176L102,179L105,182L103,186L95,189L88,189L84,187L77,191L77,193L84,208L83,215L80,222L82,226L76,231L73,231L74,235L76,235L79,239L77,247L77,248L81,251L85,255L83,258L88,263L89,270L83,275L81,280L81,281L80,282L80,285L85,294L93,300L93,303L89,308L88,313L88,316L89,316L92,317L94,319L97,325L101,332L110,331L111,334L117,335L126,333L128,336L131,337L145,340L150,342L150,347L139,360L138,365L137,372L135,379L132,385L131,390L131,394L131,399L129,406L129,411L130,415L132,415L135,417L143,417L149,416L153,414L160,415L165,413L165,412L162,412L161,408L164,406L167,406L171,409L175,409L188,411L194,414L200,418L201,417L205,418L208,415L219,420L220,424L223,425L224,430L226,430L231,425L235,416L241,415L244,417L249,417L249,418L253,423L264,421L274,414L279,412L295,409L295,404L301,405L306,407L313,405L317,408L318,411L325,414L326,405L325,402L320,402L322,397L322,393L314,383L316,379L319,376L333,368L336,365L337,355L338,354L345,357L348,353L348,345L348,344L347,341L338,334L335,335L323,325L319,320L315,316L311,317L305,310L302,304L295,296L299,287L290,280L288,277L283,268L285,266L290,273L295,263L298,261L306,258L312,259L314,255L319,253L321,249L329,247L330,243L336,241L342,238L358,228L353,224L354,222L361,223L366,227L366,231L371,232L372,231L372,230L372,229L375,222L376,217L377,208L372,198L366,195L366,189L361,182L360,179L362,175L364,165L362,164L361,157L356,151L357,142L353,136L344,130L340,125L346,112L347,103L342,89L340,80L340,80L332,78L327,74L325,66L321,59L313,60L303,53L299,47L284,45L276,55L273,58L271,62L261,63L259,65L252,74L250,75L240,72L235,73L233,72L231,69L237,63L238,57L237,52L228,56L216,50L212,52L209,48L201,49L206,43L205,38L201,32L197,31L196,30L193,29L184,32L182,31L179,30L171,27L164,27L164,33Z M153,33L154,30L161,29L162,27L155,27L154,26L157,19L155,19L152,27L152,34L153,33Z " data-iso="DEU"/><path d="M246,25L242,22L236,22L236,31L249,38L253,36L256,37L259,35L255,27L251,28L246,25Z M219,28L212,23L215,28L219,28Z M282,18L277,15L274,15L269,22L271,23L276,19L282,18Z M206,27L204,21L199,18L198,26L203,27L206,27Z M227,33L232,16L232,11L230,17L227,22L225,25L226,33L227,33Z M346,0L346,6L352,9L358,10L360,5L359,2L355,0L346,0Z M199,0L201,9L203,12L212,16L217,18L223,17L228,13L228,9L227,5L228,3L227,0L199,0Z M239,0L239,2L243,8L248,7L254,8L257,20L257,23L261,30L267,27L267,14L267,8L274,5L276,2L276,0L239,0Z M164,27L171,27L179,30L182,31L184,32L193,29L196,30L195,25L196,23L191,19L187,19L189,15L193,10L194,7L192,0L162,0L163,4L163,13L160,15L163,22L164,27Z " data-iso="DNK"/><path d="M132,415L130,415L129,411L129,406L131,399L131,394L131,390L132,385L135,379L137,372L138,365L139,360L150,347L150,342L145,340L131,337L128,336L126,333L117,335L111,334L110,331L101,332L97,325L94,319L92,317L89,316L88,316L85,315L80,314L78,316L70,313L69,311L66,311L59,312L51,303L40,297L37,297L37,290L35,288L38,279L35,278L32,280L31,285L27,287L21,288L14,287L15,282L13,277L15,272L10,268L1,266L0,266L0,449L90,449L97,445L98,443L108,433L109,428L106,426L108,423L112,421L114,421L117,424L125,423L127,418L132,415Z " data-iso="FRA"/><path d="M439,436L446,436L448,440L449,443L450,444L450,428L447,428L444,430L439,436Z M450,406L448,408L450,413L449,416L450,420L450,406Z M450,388L446,392L450,394L450,388Z " data-iso="HUN"/><path d="M300,449L296,445L295,442L296,437L289,440L282,443L273,443L263,445L259,447L258,449L300,449Z " data-iso="ITA"/><path d="M203,442L202,437L202,436L201,432L201,431L199,437L199,441L199,443L200,443L203,443L203,442Z " data-iso="LIE"/><path d="M80,280L76,278L72,282L68,291L67,297L69,300L72,306L70,310L69,311L70,313L78,316L80,314L85,315L88,316L88,313L89,308L93,303L93,300L85,294L80,285L80,282L81,281L80,280Z " data-iso="LUX"/><path d="M1,216L6,220L8,220L13,218L17,215L19,211L15,213L12,210L8,212L0,210L0,216L1,216Z M11,192L6,192L4,195L7,194L11,198L15,197L11,192Z M44,123L45,117L40,122L41,126L44,123Z M52,110L49,110L46,114L52,110Z M19,211L22,213L29,207L33,210L37,207L43,211L46,208L48,215L52,218L55,219L62,219L65,223L72,227L69,234L69,237L66,241L67,246L67,246L69,246L70,247L77,247L79,239L76,235L74,235L73,231L76,231L82,226L80,222L83,215L84,208L77,193L77,191L84,187L88,189L95,189L103,186L105,182L102,179L103,176L105,175L111,170L112,167L113,161L112,159L102,155L102,153L104,147L112,148L115,134L118,118L118,113L114,112L111,111L106,105L98,105L91,106L82,106L76,108L65,113L62,116L59,122L50,129L44,131L40,130L37,136L33,156L30,163L26,169L20,176L16,179L11,188L17,196L18,199L12,200L20,205L21,207L17,208L8,201L4,199L0,199L0,207L6,209L12,208L16,210L19,211Z M75,151L75,155L73,158L63,167L57,165L48,162L47,160L48,158L49,157L49,156L49,152L49,150L49,147L52,147L55,144L55,141L53,138L51,136L51,133L50,131L56,126L60,124L61,125L61,132L61,134L62,135L65,135L69,135L69,137L68,139L67,140L67,144L67,145L68,147L74,148L75,151Z M59,107L67,104L62,104L55,106L59,107Z M78,103L76,102L71,102L72,104L78,103Z M91,101L90,100L86,102L91,101Z M104,97L106,95L101,97L104,97Z " data-iso="NLD"/><path d="M337,68L337,70L338,72L342,73L349,74L351,83L347,82L340,80L342,89L347,103L346,112L340,125L344,130L353,136L357,142L356,151L361,157L362,164L364,165L362,175L360,179L361,182L366,189L366,195L372,198L377,208L376,217L375,222L372,229L372,230L375,229L378,228L378,221L387,223L388,227L392,231L394,231L416,237L423,235L426,243L424,244L422,248L423,249L427,251L432,256L437,262L441,262L442,259L449,254L444,246L450,245L450,7L443,9L426,16L419,21L416,25L406,28L401,35L396,44L388,47L370,55L353,63L343,69L339,69L337,68Z " data-iso="POL"/><path d="M439,436L437,437L435,440L435,447L428,446L423,447L421,449L450,449L450,444L449,443L448,440L446,436L439,436Z " data-iso="SVN"/></g><g class="" id="regions"><path d="M112,169L106,175L103,176L101,179L105,182L103,186L96,188L90,190L82,187L83,188L78,190L79,198L83,205L85,211L83,217L81,220L80,225L82,226L77,230L75,232L74,231L73,233L75,235L77,236L79,241L77,246L81,250L83,254L85,255L82,258L84,261L88,262L89,265L88,268L89,270L89,270L96,267L101,269L104,268L102,264L107,261L109,258L118,254L120,255L124,250L129,249L136,243L136,240L139,240L148,250L149,251L149,250L150,248L149,246L152,243L157,241L163,233L162,229L166,229L168,228L169,221L168,220L163,220L167,215L172,214L175,213L175,212L176,208L179,208L183,210L184,210L189,202L191,200L192,199L190,200L190,195L192,192L192,188L187,188L188,186L186,184L186,182L182,181L183,180L181,174L177,174L179,168L176,167L177,163L178,163L181,159L179,154L177,155L173,160L167,160L167,155L165,153L159,155L159,157L154,157L155,160L158,162L159,163L159,170L160,171L157,175L153,174L148,178L145,178L141,176L145,172L141,170L142,165L143,165L134,159L134,157L130,158L129,161L120,167L115,167L112,169L112,169Z " data-fips="GM07" data-fips-="GM06" data-iso3="DEU" data-name="Nordrhein-Westfalen" data-p="NW"/><path d="M183,309L183,310L183,313L177,314L178,316L175,319L173,319L174,314L170,311L168,308L164,312L160,309L159,310L159,311L160,316L162,317L162,325L158,329L158,334L152,343L151,344L148,351L146,352L138,361L139,366L136,372L136,376L134,381L132,384L130,391L132,394L128,409L131,416L133,415L134,418L142,417L147,417L152,414L156,414L160,416L164,414L166,415L166,411L164,412L161,408L162,406L166,404L169,405L171,410L173,408L181,411L186,411L191,412L201,417L201,418L208,413L217,409L221,409L221,407L220,403L221,402L220,394L221,386L220,384L218,378L216,373L218,367L224,365L227,361L225,356L231,354L232,353L230,352L231,347L230,344L231,343L223,334L224,333L220,327L219,323L218,321L218,314L217,311L215,314L212,313L211,310L208,310L210,307L206,301L202,303L201,299L196,297L190,299L190,301L192,303L193,302L194,305L190,306L188,309L183,310L183,309Z " data-fips="GM01" data-fips-="" data-iso3="DEU" data-name="Baden-Württemberg" data-p="BW"/><path d="M208,212L206,213L204,212L201,214L203,216L200,217L196,215L199,212L198,204L200,203L199,201L192,199L192,199L191,200L189,202L184,210L183,210L179,208L176,208L175,212L175,213L172,214L167,215L163,220L168,220L169,221L168,228L166,229L162,229L163,233L157,241L152,243L149,246L150,248L149,250L149,251L149,252L147,259L145,260L145,263L144,266L146,267L148,271L148,273L146,273L141,278L142,282L137,285L141,289L142,289L146,286L151,285L152,285L156,289L157,295L159,300L161,300L157,305L159,308L159,310L160,309L164,312L168,308L170,311L174,314L173,319L175,319L178,316L177,314L183,313L183,310L183,309L183,309L184,301L182,295L181,295L180,292L180,284L178,284L182,280L190,279L193,282L201,272L204,270L204,265L212,263L214,259L214,259L214,259L214,252L212,250L210,253L208,253L210,243L212,242L213,239L211,237L213,236L213,233L216,233L217,230L216,230L217,227L215,226L218,224L215,222L213,221L212,218L210,218L208,213L209,213L208,212Z " data-fips="GM05" data-fips-="" data-iso3="DEU" data-name="Hessen" data-p="HE"/><path d="M162,117L160,117L166,124L166,125L169,125L173,126L175,125L175,120L172,120L162,117Z M160,96L161,99L161,99L161,100L161,100L164,100L163,97L160,95L160,96Z " data-fips="GM03" data-fips-="" data-iso3="DEU" data-name="Bremen" data-p="HB"/><path d="M104,97L102,96L102,98L104,97Z M123,90L118,90L121,90L123,90Z M125,89L125,90L126,89L125,89Z M149,89L147,90L148,90L149,89Z M137,87L135,86L135,88L137,87Z M160,95L163,97L164,100L161,100L161,101L161,99L153,95L151,97L154,101L152,106L148,104L146,104L146,101L149,100L142,90L128,92L127,91L122,92L115,97L116,100L116,101L114,110L122,110L120,111L117,120L118,128L114,136L113,139L112,148L104,147L101,154L102,157L109,158L111,157L113,160L112,168L112,169L115,167L120,167L129,161L130,158L134,157L134,159L143,165L142,165L141,170L145,172L141,176L145,178L148,178L153,174L157,175L160,171L159,170L159,163L158,162L155,160L154,157L159,157L159,155L165,153L167,155L167,160L173,160L177,155L179,154L181,159L178,163L177,163L176,167L179,168L177,174L181,174L183,180L182,181L186,182L186,184L188,186L187,188L192,188L192,192L190,195L190,200L192,199L192,199L199,201L200,203L198,204L199,212L196,215L200,217L203,216L201,214L204,212L206,213L208,212L209,213L211,211L215,210L223,201L227,203L232,202L232,199L233,198L232,197L232,194L229,191L229,187L231,185L231,182L228,179L244,171L244,165L242,163L243,159L239,154L241,152L237,144L232,137L233,134L235,134L240,131L245,130L248,132L256,128L256,125L258,124L258,122L256,122L254,121L253,120L251,122L250,121L250,121L250,121L249,120L248,118L244,116L240,117L237,114L229,106L228,106L226,106L225,107L224,106L219,104L218,103L217,103L216,104L213,105L209,103L207,104L201,103L199,98L197,98L191,92L190,91L188,88L183,82L178,82L175,83L170,84L165,81L161,84L159,90L160,95L160,95Z M160,117L162,117L172,120L175,120L175,125L173,126L169,125L166,125L166,124L160,117Z " data-fips="GM06" data-fips-="" data-iso3="DEU" data-name="Niedersachsen" data-p="NI"/><path d="M287,225L287,229L286,233L278,232L273,229L270,230L266,225L259,226L258,222L255,220L259,216L256,212L250,210L243,210L242,204L240,202L241,200L234,199L233,198L232,199L232,202L227,203L223,201L215,210L211,211L209,213L208,213L210,218L212,218L213,221L215,222L218,224L215,226L217,227L216,230L217,230L216,233L213,233L213,236L211,237L213,239L212,242L210,243L208,253L210,253L212,250L214,252L214,259L214,259L216,256L219,257L220,259L226,265L227,264L231,266L233,269L234,273L237,274L237,272L241,272L241,271L237,268L239,265L242,264L246,266L249,266L252,267L251,268L255,269L255,260L258,257L260,257L261,261L264,264L266,263L276,262L277,261L276,261L277,257L279,254L280,254L284,253L290,246L288,246L288,241L291,238L295,236L299,235L298,231L296,230L294,226L289,225L287,225L287,225Z " data-fips="GM15" data-fips-="" data-iso3="DEU" data-name="Thüringen" data-p="TH"/><path d="M217,103L212,99L213,91L211,89L209,89L208,91L204,93L198,97L200,97L201,97L201,98L201,98L199,98L201,103L207,104L209,103L213,105L216,104L217,103L217,103Z " data-fips="GM04" data-fips-="" data-iso3="DEU" data-name="Hamburg" data-p="HH"/><path d="M171,50L169,47L168,48L171,50Z M244,47L242,45L238,44L236,48L239,48L239,50L242,50L246,50L244,47Z M164,48L165,45L162,48L164,48Z M154,37L152,39L155,41L153,38L154,37Z M161,38L160,35L156,36L158,38L161,38Z M198,97L204,93L208,91L209,89L211,89L213,91L212,99L217,103L217,103L218,103L219,104L224,106L225,107L226,106L226,106L228,102L233,98L234,96L237,96L236,89L230,86L230,80L234,77L234,75L234,75L230,72L230,70L231,68L232,68L239,63L239,53L240,52L234,52L229,56L224,54L212,52L210,56L211,49L201,49L205,46L206,39L204,33L199,33L198,32L192,30L191,28L188,31L171,27L163,29L163,30L165,36L167,38L169,42L174,48L171,52L167,53L163,55L165,55L162,57L166,59L173,59L170,61L169,67L170,68L173,67L175,69L175,73L169,73L172,78L182,80L187,83L192,94L197,97L198,97Z M155,27L155,22L157,19L156,18L154,20L152,26L152,35L153,29L157,29L155,27Z " data-fips="GM10" data-fips-="" data-iso3="DEU" data-name="Schleswig-Holstein" data-p="SH"/><path d="M89,270L82,275L82,278L81,279L80,284L82,290L84,293L89,297L93,298L93,303L88,312L88,312L97,312L100,311L110,307L113,308L120,310L119,318L123,324L120,328L123,332L124,332L128,336L136,339L137,338L143,339L148,342L152,343L152,343L158,334L158,329L162,325L162,317L160,316L159,311L159,310L159,308L157,305L161,300L159,300L157,295L156,289L152,285L151,285L146,286L142,289L141,289L137,285L142,282L141,278L146,273L148,273L148,271L146,267L144,266L145,263L145,260L147,259L149,252L149,251L148,250L139,240L136,240L136,243L129,249L124,250L120,255L118,254L109,258L107,261L102,264L104,268L101,269L96,267L89,270L89,270Z " data-fips="GM08" data-fips-="" data-iso3="DEU" data-name="Rheinland-Pfalz" data-p="RP"/><path d="M88,314L88,316L90,316L93,317L96,321L101,332L104,333L105,332L111,331L112,335L120,335L123,332L123,332L120,328L123,324L119,318L120,310L113,308L110,307L100,311L97,312L88,312L88,314Z " data-fips="GM09" data-fips-="" data-iso3="DEU" data-name="Saarland" data-p="SL"/><path d="M214,259L214,259L212,263L204,265L204,270L201,272L193,282L190,279L182,280L178,284L180,284L180,292L181,295L182,295L184,301L183,309L183,309L183,310L188,309L190,306L194,305L193,302L192,303L190,301L190,299L196,297L201,299L202,303L206,301L210,307L208,310L211,310L212,313L215,314L217,311L218,314L218,321L219,323L220,327L224,333L223,334L231,343L230,344L231,347L230,352L232,353L231,354L225,356L227,361L224,365L218,367L216,373L218,378L220,384L221,386L220,394L221,402L220,403L221,407L221,409L217,409L208,413L201,418L203,418L206,418L210,414L211,417L215,417L217,420L218,419L220,422L220,426L223,425L225,426L223,431L227,430L229,428L233,423L232,414L236,417L239,415L248,416L249,417L248,418L252,421L252,423L257,423L259,421L263,422L264,420L267,419L266,418L268,416L273,416L276,411L282,412L283,410L286,410L295,409L296,406L295,405L303,404L306,407L313,405L318,408L317,411L321,413L325,415L326,413L327,404L326,404L320,401L322,393L321,391L313,382L318,376L320,376L323,373L327,371L331,370L336,365L337,355L339,354L343,355L346,357L349,347L348,346L348,343L341,336L340,335L337,334L336,336L332,331L328,327L326,327L318,319L318,318L311,317L308,314L305,312L299,299L297,298L298,291L298,291L295,282L289,280L285,271L283,270L283,266L284,266L280,264L279,263L278,261L277,261L276,262L266,263L264,264L261,261L260,257L258,257L255,260L255,269L251,268L252,267L249,266L246,266L242,264L239,265L237,268L241,271L241,272L237,272L237,274L234,273L233,269L231,266L227,264L226,265L220,259L219,257L216,256L214,259Z " data-fips="GM02" data-fips-="GM15" data-iso3="DEU" data-name="Bayern" data-p="BY"/><path d="M321,139L312,141L312,143L310,146L310,148L309,153L311,153L324,152L327,155L329,150L327,147L326,147L326,144L323,143L321,139Z " data-fips="GM16" data-fips-="" data-iso3="DEU" data-name="Berlin" data-p="BE"/><path d="M312,194L314,190L313,186L316,182L305,180L304,180L296,176L295,177L287,174L286,173L281,167L282,153L281,148L278,149L278,144L279,143L279,135L280,134L279,131L269,129L266,128L264,125L262,125L259,122L258,122L258,124L256,125L256,128L248,132L245,130L240,131L235,134L233,134L232,137L237,144L241,152L239,154L243,159L242,163L244,165L244,171L228,179L231,182L231,185L229,187L229,191L232,194L232,197L233,198L234,199L241,200L240,202L242,204L243,210L250,210L256,212L259,216L255,220L258,222L259,226L266,225L270,230L273,229L278,232L286,233L287,229L287,225L287,225L285,225L282,216L283,212L283,201L284,200L290,199L291,197L298,197L302,195L305,192L306,193L310,195L311,195L312,194Z " data-fips="GM14" data-fips-="" data-iso3="DEU" data-name="Sachsen-Anhalt" data-p="ST"/><path d="M287,225L289,225L294,226L296,230L298,231L299,235L295,236L291,238L288,241L288,246L290,246L284,253L280,254L279,254L277,257L276,261L277,261L278,261L279,263L280,264L284,266L285,266L287,269L289,269L291,274L294,265L296,264L297,261L304,260L307,258L312,259L315,254L320,252L321,249L323,249L326,246L327,248L329,246L333,241L340,240L342,237L346,235L352,232L353,231L357,230L358,229L355,226L353,225L355,222L357,223L360,221L364,228L366,228L366,230L372,231L372,229L375,222L377,215L376,206L374,200L372,197L366,195L365,194L362,193L359,194L353,197L349,196L346,198L344,202L341,206L335,207L330,207L323,204L317,206L316,201L311,195L311,195L310,195L306,193L305,192L302,195L298,197L291,197L290,199L284,200L283,201L283,212L282,216L285,225L287,225Z " data-fips="GM13" data-fips-="" data-iso3="DEU" data-name="Sachsen" data-p="SN"/><path d="M268,109L268,109L266,112L263,112L260,111L256,114L256,118L252,118L252,119L248,119L249,120L250,121L250,121L250,121L251,122L253,120L254,121L256,122L258,122L259,122L262,125L264,125L266,128L269,129L279,131L280,134L279,135L279,143L278,144L278,149L281,148L282,153L281,167L286,173L287,174L295,177L296,176L304,180L305,180L316,182L313,186L314,190L312,194L311,195L311,195L316,201L317,206L323,204L330,207L335,207L341,206L344,202L346,198L349,196L353,197L359,194L362,193L365,194L365,194L365,187L360,181L360,178L363,173L364,166L362,164L362,157L357,155L355,148L357,146L358,139L355,137L353,136L349,132L343,128L340,127L341,125L340,121L345,117L347,111L346,109L348,104L346,101L346,100L342,105L337,103L341,99L337,96L336,97L331,97L329,92L326,92L324,95L319,100L318,103L315,106L312,106L309,109L307,108L303,113L297,112L287,108L284,109L281,106L278,105L277,104L272,105L269,109L268,109Z M321,139L323,143L326,144L326,147L327,147L329,150L327,155L324,152L311,153L309,153L310,148L310,146L312,143L312,141L321,139Z " data-fips="GM11" data-fips-="GM16" data-iso3="DEU" data-name="Brandenburg" data-p="BB"/><path d="M254,69L256,66L253,67L254,69Z M330,62L323,57L324,63L323,65L326,64L326,66L329,63L332,65L332,68L328,68L329,70L327,73L329,74L333,73L337,72L337,70L330,62Z M234,75L234,77L230,80L230,86L236,89L237,96L234,96L233,98L228,102L226,106L226,106L228,106L229,106L237,114L240,117L244,116L248,118L248,119L252,119L252,118L254,118L256,118L256,114L260,111L263,112L266,112L268,109L269,109L272,105L277,104L278,105L281,106L284,109L287,108L297,112L303,113L307,108L309,109L312,106L315,106L318,103L319,100L324,95L326,92L329,92L331,97L336,97L337,96L341,99L337,103L342,105L346,100L345,97L344,94L342,90L342,87L339,81L340,79L339,78L338,79L333,79L327,75L325,74L328,69L323,65L324,61L320,59L321,58L314,63L311,58L309,58L307,56L304,54L301,51L300,48L298,46L297,46L293,50L290,49L289,48L282,52L280,56L279,56L281,49L285,49L295,46L285,46L282,45L280,49L276,56L269,61L262,63L257,64L255,69L252,72L252,77L248,74L245,75L245,73L242,71L239,72L235,75L234,75Z M302,37L302,37L302,37L302,37Z M302,37L300,36L301,39L302,37Z M309,33L309,31L304,33L306,34L305,38L308,35L311,38L313,37L313,42L310,41L308,37L302,39L303,41L304,41L304,45L306,48L303,48L302,50L307,54L309,53L309,55L311,53L322,48L315,43L315,42L318,38L315,36L310,37L309,33Z " data-fips="GM12" data-fips-="" data-iso3="DEU" data-name="Mecklenburg-Vorpommern" data-p="MV"/></g></svg>
\ No newline at end of file diff --git a/tests/PHPUnit/Integration/Concurrency/LockTest.php b/tests/PHPUnit/Integration/Concurrency/LockTest.php index 96929a96d0..0e5f176313 100644 --- a/tests/PHPUnit/Integration/Concurrency/LockTest.php +++ b/tests/PHPUnit/Integration/Concurrency/LockTest.php @@ -9,8 +9,11 @@ namespace Piwik\Tests\Integration\Concurrency; +use Piwik\Common; use Piwik\Concurrency\Lock; use Piwik\Concurrency\LockBackend\MySqlLockBackend; +use Piwik\Date; +use Piwik\Db; use Piwik\Tests\Framework\TestCase\IntegrationTestCase; /** @@ -128,6 +131,54 @@ class LockTest extends IntegrationTestCase $this->assertSame(array('TestLock0', 'TestLock4', 'TestLock5'), $locks); } + public function test_rexpire_onlyRexpiresWhenCloseToOriginalExpirationTime() + { + Date::$now = strtotime('2015-03-04 03:04:05'); + + $this->lock->acquireLock(0); + + $expireTime = $this->getLockExpirationTime(); + + sleep(1); + $this->lock->reexpireLock(); + $newExpireTime = $this->getLockExpirationTime(); + $this->assertEquals($expireTime, $newExpireTime); + + // 30s after initial, no update + Date::$now = strtotime('2015-03-04 03:04:35'); + + sleep(1); + $this->lock->reexpireLock(); + $newExpireTime = $this->getLockExpirationTime(); + $this->assertEquals($expireTime, $newExpireTime); + + // 50s after initial, update + Date::$now = strtotime('2015-03-04 03:04:55'); + + sleep(1); + $this->lock->reexpireLock(); + $newExpireTime = $this->getLockExpirationTime(); + $this->assertNotEquals($expireTime, $newExpireTime); + + $expireTime = $newExpireTime; + + // 60s after initial, no update + Date::$now = strtotime('2015-03-04 03:05:05'); + + sleep(1); + $this->lock->reexpireLock(); + $newExpireTime = $this->getLockExpirationTime(); + $this->assertEquals($expireTime, $newExpireTime); + + // 1m 50s after initial, update + Date::$now = strtotime('2015-03-04 03:05:55'); + + sleep(1); + $this->lock->reexpireLock(); + $newExpireTime = $this->getLockExpirationTime(); + $this->assertNotEquals($expireTime, $newExpireTime); + } + private function assertNumberOfLocksEquals($numExpectedLocks) { $this->assertSame($numExpectedLocks, $this->lock->getNumberOfAcquiredLocks()); @@ -138,4 +189,9 @@ class LockTest extends IntegrationTestCase return new Lock($mysql, 'TestLock'); } + private function getLockExpirationTime() + { + return Db::fetchOne("SELECT expiry_time FROM `" . Common::prefixTable('locks') . "`"); + } + } diff --git a/tests/PHPUnit/Integration/DataAccess/LogAggregatorTest.php b/tests/PHPUnit/Integration/DataAccess/LogAggregatorTest.php index 1bc95a9be9..a086553bce 100644 --- a/tests/PHPUnit/Integration/DataAccess/LogAggregatorTest.php +++ b/tests/PHPUnit/Integration/DataAccess/LogAggregatorTest.php @@ -159,8 +159,9 @@ class LogAggregatorTest extends IntegrationTestCase $t->setUrl('http://example.com/here/we/go'); $t->doTrackPageView('here we go'); - $params = new Parameters(new Site(self::$fixture->idSite), Period\Factory::build('day', self::$fixture->dateTime), new Segment('', [self::$fixture->idSite])); + Date::$now = strtotime('2015-03-04 00:08:04'); + $params = new Parameters(new Site(self::$fixture->idSite), Period\Factory::build('day', self::$fixture->dateTime), new Segment('', [self::$fixture->idSite])); $archiveStatus = StaticContainer::get(ArchivingStatus::class); $archiveStatus->archiveStarted($params); @@ -170,6 +171,8 @@ class LogAggregatorTest extends IntegrationTestCase sleep(1); + Date::$now = strtotime('2015-03-04 10:08:04'); + $this->logAggregator->queryVisitsByDimension(['visit_total_time']); $locks = $this->getAllLocks(); diff --git a/tests/PHPUnit/Integration/Tracker/VisitorRecognizerTest.php b/tests/PHPUnit/Integration/Tracker/VisitorRecognizerTest.php new file mode 100644 index 0000000000..08fe1064f3 --- /dev/null +++ b/tests/PHPUnit/Integration/Tracker/VisitorRecognizerTest.php @@ -0,0 +1,114 @@ +<?php +/** + * Piwik - free/libre analytics platform + * + * @link https://matomo.org + * @license http://www.gnu.org/licenses/gpl-3.0.html GPL v3 or later + */ + +namespace Piwik\Tests\Integration\Tracker; + +use Piwik\Common; +use Piwik\EventDispatcher; +use Piwik\Tracker\Model; +use Piwik\Tests\Framework\TestCase\IntegrationTestCase; +use Piwik\Tracker\Visit\VisitProperties; +use Piwik\Tracker\VisitorRecognizer; + +/** + * @group Core + */ +class VisitorRecognizerTest extends IntegrationTestCase +{ + /** + * @var VisitorRecognizer + */ + private $recognizer; + + public function setUp(): void + { + parent::setUp(); + $this->recognizer = new VisitorRecognizer(true, 1800, 24000, + new Model(), EventDispatcher::getInstance()); + } + + private function getVisitProperties($originalVisit = false) + { + $visit = new VisitProperties(); + $visit->setProperty('idvisit', '321'); + $visit->setProperty('idvisitor', Common::hex2bin('1234567890234567')); + if ($originalVisit) { + $visit->setProperty(VisitorRecognizer::KEY_ORIGINAL_VISIT_ROW, $originalVisit); + } + + return $visit; + } + + public function test_removeUnchangedValues_newVisit_shouldNotChangeAnything() + { + $visit = array( + 'visit_last_action_time' => '2020-05-05 05:05:05', + 'visit_total_time' => '50', + 'foo' => 'bar', + ); + $result = $this->recognizer->removeUnchangedValues($this->getVisitProperties(), $visit); + + $this->assertEquals($visit, $result); + } + + public function test_removeUnchangedValues_existingVisitWithDifferentValues_shouldNotChangeAnything() + { + $visit = array( + 'idvisitor' => Common::hex2bin('1234567890234567'), + 'visit_last_action_time' => '2020-05-05 05:05:05', + 'visit_total_time' => '50', + 'foo' => 'bar', + ); + $properties = $this->getVisitProperties(array( + 'visit_last_action_time' => '2020-05-05 04:05:05', + 'visit_total_time' => '40', + )); + $result = $this->recognizer->removeUnchangedValues($properties, $visit); + + $this->assertEquals($visit, $result); + } + + public function test_removeUnchangedValues_existingVisitWithSomeSameValues_shouldRemoveUnchangedValues() + { + $visit = array( + 'idvisitor' => Common::hex2bin('1234567890234569'), + 'user_id' => 'hello', + 'visit_last_action_time' => '2020-05-05 05:05:05', + 'visit_total_time' => '50', + 'foo' => 'bar', + ); + $properties = $this->getVisitProperties(array( + 'idvisitor' => Common::hex2bin('1234567890234567'), + 'user_id' => 'hello', + 'visit_last_action_time' => '2020-05-05 04:05:05', + 'visit_total_time' => '50', + )); + $result = $this->recognizer->removeUnchangedValues($properties, $visit); + + $this->assertEquals(array( + 'visit_last_action_time' => '2020-05-05 05:05:05', + 'foo' => 'bar', + 'idvisitor' => Common::hex2bin('1234567890234569'), + ), $result); + } + + public function test_removeUnchangedValues_existingVisitWithAllSameValues_shouldRemoveEmptyArray() + { + $visit = array( + 'idvisitor' => Common::hex2bin('1234567890234569'), + 'user_id' => 'hello', + 'visit_last_action_time' => '2020-05-05 05:05:05', + 'visit_total_time' => '50', + ); + $properties = $this->getVisitProperties($visit); + $result = $this->recognizer->removeUnchangedValues($properties, $visit); + + $this->assertEquals(array(), $result); + } + +} diff --git a/tests/PHPUnit/System/expected/test_CustomEvents__Actions.getPageUrls_day.xml b/tests/PHPUnit/System/expected/test_CustomEvents__Actions.getPageUrls_day.xml index c58c5a08f6..e2f3c3a963 100644 --- a/tests/PHPUnit/System/expected/test_CustomEvents__Actions.getPageUrls_day.xml +++ b/tests/PHPUnit/System/expected/test_CustomEvents__Actions.getPageUrls_day.xml @@ -54,7 +54,7 @@ <nb_visits>1</nb_visits> <nb_uniq_visitors>1</nb_uniq_visitors> <nb_hits>1</nb_hits> - <sum_time_spent>1620</sum_time_spent> + <sum_time_spent>1499</sum_time_spent> <nb_hits_with_time_network>1</nb_hits_with_time_network> <min_time_network>0.0050</min_time_network> <max_time_network>0.0050</max_time_network> @@ -90,7 +90,7 @@ <avg_time_dom_completion>0.066</avg_time_dom_completion> <avg_time_on_load>0</avg_time_on_load> <avg_page_load_time>0.572</avg_page_load_time> - <avg_time_on_page>1620</avg_time_on_page> + <avg_time_on_page>1499</avg_time_on_page> <bounce_rate>0%</bounce_rate> <exit_rate>0%</exit_rate> <url>http://example.org/webradio</url> diff --git a/tests/PHPUnit/System/expected/test_CustomEvents__Actions.getPageUrls_month.xml b/tests/PHPUnit/System/expected/test_CustomEvents__Actions.getPageUrls_month.xml index 6dee178318..2e0763ff17 100644 --- a/tests/PHPUnit/System/expected/test_CustomEvents__Actions.getPageUrls_month.xml +++ b/tests/PHPUnit/System/expected/test_CustomEvents__Actions.getPageUrls_month.xml @@ -53,7 +53,7 @@ <label>/webradio</label> <nb_visits>1</nb_visits> <nb_hits>1</nb_hits> - <sum_time_spent>1620</sum_time_spent> + <sum_time_spent>1499</sum_time_spent> <nb_hits_with_time_network>1</nb_hits_with_time_network> <min_time_network>0.0050</min_time_network> <max_time_network>0.0050</max_time_network> @@ -90,7 +90,7 @@ <avg_time_dom_completion>0.066</avg_time_dom_completion> <avg_time_on_load>0</avg_time_on_load> <avg_page_load_time>0.572</avg_page_load_time> - <avg_time_on_page>1620</avg_time_on_page> + <avg_time_on_page>1499</avg_time_on_page> <bounce_rate>0%</bounce_rate> <exit_rate>0%</exit_rate> <url>http://example.org/webradio</url> diff --git a/tests/PHPUnit/System/expected/test_CustomEvents__Live.getLastVisitsDetails_day.xml b/tests/PHPUnit/System/expected/test_CustomEvents__Live.getLastVisitsDetails_day.xml index a90ccc37f9..bc19a53ab0 100644 --- a/tests/PHPUnit/System/expected/test_CustomEvents__Live.getLastVisitsDetails_day.xml +++ b/tests/PHPUnit/System/expected/test_CustomEvents__Live.getLastVisitsDetails_day.xml @@ -731,8 +731,8 @@ <eventCategory>Music</eventCategory> <eventAction>play25%</eventAction> <bandwidth /> - <timeSpent>60</timeSpent> - <timeSpentPretty>1 min 0s</timeSpentPretty> + <timeSpent>0</timeSpent> + <timeSpentPretty>0s</timeSpentPretty> <pageviewPosition>1</pageviewPosition> <icon>plugins/Morpheus/images/event.png</icon> @@ -794,8 +794,8 @@ <eventCategory>Music</eventCategory> <eventAction>play50%</eventAction> <bandwidth /> - <timeSpent>60</timeSpent> - <timeSpentPretty>1 min 0s</timeSpentPretty> + <timeSpent>0</timeSpent> + <timeSpentPretty>0s</timeSpentPretty> <pageviewPosition>1</pageviewPosition> <icon>plugins/Morpheus/images/event.png</icon> @@ -939,8 +939,8 @@ <eventCategory>Music</eventCategory> <eventAction>rating</eventAction> <bandwidth /> - <timeSpent>1620</timeSpent> - <timeSpentPretty>27 min 0s</timeSpentPretty> + <timeSpent>1499</timeSpent> + <timeSpentPretty>24 min 59s</timeSpentPretty> <pageviewPosition>1</pageviewPosition> <icon>plugins/Morpheus/images/event.png</icon> diff --git a/tests/PHPUnit/System/expected/test_CustomEvents__Live.getLastVisitsDetails_month.xml b/tests/PHPUnit/System/expected/test_CustomEvents__Live.getLastVisitsDetails_month.xml index d831878334..231d489df1 100644 --- a/tests/PHPUnit/System/expected/test_CustomEvents__Live.getLastVisitsDetails_month.xml +++ b/tests/PHPUnit/System/expected/test_CustomEvents__Live.getLastVisitsDetails_month.xml @@ -1772,8 +1772,8 @@ <eventCategory>Music</eventCategory> <eventAction>play25%</eventAction> <bandwidth /> - <timeSpent>60</timeSpent> - <timeSpentPretty>1 min 0s</timeSpentPretty> + <timeSpent>0</timeSpent> + <timeSpentPretty>0s</timeSpentPretty> <pageviewPosition>1</pageviewPosition> <icon>plugins/Morpheus/images/event.png</icon> @@ -1835,8 +1835,8 @@ <eventCategory>Music</eventCategory> <eventAction>play50%</eventAction> <bandwidth /> - <timeSpent>60</timeSpent> - <timeSpentPretty>1 min 0s</timeSpentPretty> + <timeSpent>0</timeSpent> + <timeSpentPretty>0s</timeSpentPretty> <pageviewPosition>1</pageviewPosition> <icon>plugins/Morpheus/images/event.png</icon> @@ -1980,8 +1980,8 @@ <eventCategory>Music</eventCategory> <eventAction>rating</eventAction> <bandwidth /> - <timeSpent>1620</timeSpent> - <timeSpentPretty>27 min 0s</timeSpentPretty> + <timeSpent>1499</timeSpent> + <timeSpentPretty>24 min 59s</timeSpentPretty> <pageviewPosition>1</pageviewPosition> <icon>plugins/Morpheus/images/event.png</icon> diff --git a/tests/PHPUnit/System/expected/test_CustomEvents_eventCategoryOrNameMatch__Actions.getPageUrls_day.xml b/tests/PHPUnit/System/expected/test_CustomEvents_eventCategoryOrNameMatch__Actions.getPageUrls_day.xml index c58c5a08f6..e2f3c3a963 100644 --- a/tests/PHPUnit/System/expected/test_CustomEvents_eventCategoryOrNameMatch__Actions.getPageUrls_day.xml +++ b/tests/PHPUnit/System/expected/test_CustomEvents_eventCategoryOrNameMatch__Actions.getPageUrls_day.xml @@ -54,7 +54,7 @@ <nb_visits>1</nb_visits> <nb_uniq_visitors>1</nb_uniq_visitors> <nb_hits>1</nb_hits> - <sum_time_spent>1620</sum_time_spent> + <sum_time_spent>1499</sum_time_spent> <nb_hits_with_time_network>1</nb_hits_with_time_network> <min_time_network>0.0050</min_time_network> <max_time_network>0.0050</max_time_network> @@ -90,7 +90,7 @@ <avg_time_dom_completion>0.066</avg_time_dom_completion> <avg_time_on_load>0</avg_time_on_load> <avg_page_load_time>0.572</avg_page_load_time> - <avg_time_on_page>1620</avg_time_on_page> + <avg_time_on_page>1499</avg_time_on_page> <bounce_rate>0%</bounce_rate> <exit_rate>0%</exit_rate> <url>http://example.org/webradio</url> diff --git a/tests/PHPUnit/System/expected/test_CustomEvents_eventValueMatch__Actions.getPageUrls_day.xml b/tests/PHPUnit/System/expected/test_CustomEvents_eventValueMatch__Actions.getPageUrls_day.xml index c58c5a08f6..e2f3c3a963 100644 --- a/tests/PHPUnit/System/expected/test_CustomEvents_eventValueMatch__Actions.getPageUrls_day.xml +++ b/tests/PHPUnit/System/expected/test_CustomEvents_eventValueMatch__Actions.getPageUrls_day.xml @@ -54,7 +54,7 @@ <nb_visits>1</nb_visits> <nb_uniq_visitors>1</nb_uniq_visitors> <nb_hits>1</nb_hits> - <sum_time_spent>1620</sum_time_spent> + <sum_time_spent>1499</sum_time_spent> <nb_hits_with_time_network>1</nb_hits_with_time_network> <min_time_network>0.0050</min_time_network> <max_time_network>0.0050</max_time_network> @@ -90,7 +90,7 @@ <avg_time_dom_completion>0.066</avg_time_dom_completion> <avg_time_on_load>0</avg_time_on_load> <avg_page_load_time>0.572</avg_page_load_time> - <avg_time_on_page>1620</avg_time_on_page> + <avg_time_on_page>1499</avg_time_on_page> <bounce_rate>0%</bounce_rate> <exit_rate>0%</exit_rate> <url>http://example.org/webradio</url> diff --git a/tests/PHPUnit/System/expected/test_CustomEvents_segmentMatchesEventActionPlay__Actions.getPageUrls_day.xml b/tests/PHPUnit/System/expected/test_CustomEvents_segmentMatchesEventActionPlay__Actions.getPageUrls_day.xml index c58c5a08f6..e2f3c3a963 100644 --- a/tests/PHPUnit/System/expected/test_CustomEvents_segmentMatchesEventActionPlay__Actions.getPageUrls_day.xml +++ b/tests/PHPUnit/System/expected/test_CustomEvents_segmentMatchesEventActionPlay__Actions.getPageUrls_day.xml @@ -54,7 +54,7 @@ <nb_visits>1</nb_visits> <nb_uniq_visitors>1</nb_uniq_visitors> <nb_hits>1</nb_hits> - <sum_time_spent>1620</sum_time_spent> + <sum_time_spent>1499</sum_time_spent> <nb_hits_with_time_network>1</nb_hits_with_time_network> <min_time_network>0.0050</min_time_network> <max_time_network>0.0050</max_time_network> @@ -90,7 +90,7 @@ <avg_time_dom_completion>0.066</avg_time_dom_completion> <avg_time_on_load>0</avg_time_on_load> <avg_page_load_time>0.572</avg_page_load_time> - <avg_time_on_page>1620</avg_time_on_page> + <avg_time_on_page>1499</avg_time_on_page> <bounce_rate>0%</bounce_rate> <exit_rate>0%</exit_rate> <url>http://example.org/webradio</url> diff --git a/tests/PHPUnit/System/expected/test_ImportLogs__Actions.getEntryPageUrls_month.xml b/tests/PHPUnit/System/expected/test_ImportLogs__Actions.getEntryPageUrls_month.xml index 5cd2e67ecd..58e89445a7 100644 --- a/tests/PHPUnit/System/expected/test_ImportLogs__Actions.getEntryPageUrls_month.xml +++ b/tests/PHPUnit/System/expected/test_ImportLogs__Actions.getEntryPageUrls_month.xml @@ -556,8 +556,37 @@ </subtable> </row> <row> + <label>/index</label> + <nb_visits>3</nb_visits> + <nb_hits>3</nb_hits> + <sum_time_spent>0</sum_time_spent> + <nb_hits_with_time_server>1</nb_hits_with_time_server> + <min_time_server>0.001</min_time_server> + <max_time_server>0.001</max_time_server> + <sum_bandwidth>8063</sum_bandwidth> + <nb_hits_with_bandwidth>3</nb_hits_with_bandwidth> + <min_bandwidth>8063</min_bandwidth> + <max_bandwidth>8063</max_bandwidth> + <entry_nb_visits>3</entry_nb_visits> + <entry_nb_actions>3</entry_nb_actions> + <entry_sum_visit_length>0</entry_sum_visit_length> + <entry_bounce_count>3</entry_bounce_count> + <exit_nb_visits>3</exit_nb_visits> + <sum_daily_nb_uniq_visitors>3</sum_daily_nb_uniq_visitors> + <sum_daily_entry_nb_uniq_visitors>3</sum_daily_entry_nb_uniq_visitors> + <sum_daily_exit_nb_uniq_visitors>3</sum_daily_exit_nb_uniq_visitors> + <avg_bandwidth>2687</avg_bandwidth> + <avg_time_server>0.001</avg_time_server> + <avg_page_load_time>0.001</avg_page_load_time> + <avg_time_on_page>0</avg_time_on_page> + <bounce_rate>100%</bounce_rate> + <exit_rate>100%</exit_rate> + <url>http://piwik.net/</url> + <segment>entryPageUrl==http%253A%252F%252Fpiwik.net%252F</segment> + </row> + <row> <label>hello</label> - <nb_visits>4</nb_visits> + <nb_visits>3</nb_visits> <nb_hits>4</nb_hits> <sum_time_spent>0</sum_time_spent> <nb_hits_with_time_server>4</nb_hits_with_time_server> @@ -567,21 +596,21 @@ <nb_hits_with_bandwidth>0</nb_hits_with_bandwidth> <min_bandwidth /> <max_bandwidth /> - <entry_nb_visits>3</entry_nb_visits> + <entry_nb_visits>2</entry_nb_visits> <entry_nb_actions>4</entry_nb_actions> <entry_sum_visit_length>2</entry_sum_visit_length> - <entry_bounce_count>2</entry_bounce_count> - <exit_nb_visits>3</exit_nb_visits> + <entry_bounce_count>1</entry_bounce_count> + <exit_nb_visits>2</exit_nb_visits> <avg_bandwidth>0</avg_bandwidth> <avg_time_server>0.359</avg_time_server> <avg_page_load_time>0.359</avg_page_load_time> <avg_time_on_page>0</avg_time_on_page> - <bounce_rate>67%</bounce_rate> - <exit_rate>75%</exit_rate> + <bounce_rate>50%</bounce_rate> + <exit_rate>67%</exit_rate> <segment>pageUrl=^http%253A%252F%252Fpiwik.net%252Fhello</segment> <subtable> <row> - <label>from</label> + <label>world</label> <nb_visits>2</nb_visits> <nb_hits>2</nb_hits> <sum_time_spent>0</sum_time_spent> @@ -592,19 +621,69 @@ <nb_hits_with_bandwidth>0</nb_hits_with_bandwidth> <min_bandwidth /> <max_bandwidth /> - <entry_nb_visits>2</entry_nb_visits> - <entry_nb_actions>3</entry_nb_actions> - <entry_sum_visit_length>2</entry_sum_visit_length> + <entry_nb_visits>1</entry_nb_visits> + <entry_nb_actions>1</entry_nb_actions> + <entry_sum_visit_length>0</entry_sum_visit_length> <entry_bounce_count>1</entry_bounce_count> <exit_nb_visits>1</exit_nb_visits> <avg_time_on_page>0</avg_time_on_page> - <bounce_rate>50%</bounce_rate> + <bounce_rate>100%</bounce_rate> <exit_rate>50%</exit_rate> + <segment>pageUrl=^http%253A%252F%252Fpiwik.net%252Fhello%252Fworld</segment> + <subtable> + <row> + <label>/6,681965</label> + <nb_visits>2</nb_visits> + <nb_hits>2</nb_hits> + <sum_time_spent>0</sum_time_spent> + <nb_hits_with_time_server>2</nb_hits_with_time_server> + <min_time_server>0.3590</min_time_server> + <max_time_server>0.3590</max_time_server> + <sum_bandwidth>0</sum_bandwidth> + <nb_hits_with_bandwidth>0</nb_hits_with_bandwidth> + <min_bandwidth /> + <max_bandwidth /> + <entry_nb_visits>1</entry_nb_visits> + <entry_nb_actions>1</entry_nb_actions> + <entry_sum_visit_length>0</entry_sum_visit_length> + <entry_bounce_count>1</entry_bounce_count> + <exit_nb_visits>1</exit_nb_visits> + <sum_daily_nb_uniq_visitors>1</sum_daily_nb_uniq_visitors> + <sum_daily_entry_nb_uniq_visitors>1</sum_daily_entry_nb_uniq_visitors> + <sum_daily_exit_nb_uniq_visitors>1</sum_daily_exit_nb_uniq_visitors> + <avg_time_on_page>0</avg_time_on_page> + <bounce_rate>100%</bounce_rate> + <exit_rate>50%</exit_rate> + <url>http://hello.example.com/hello/world/6,681965</url> + <segment>entryPageUrl==http%253A%252F%252Fhello.example.com%252Fhello%252Fworld%252F6%252C681965</segment> + </row> + </subtable> + </row> + <row> + <label>from</label> + <nb_visits>1</nb_visits> + <nb_hits>2</nb_hits> + <sum_time_spent>0</sum_time_spent> + <nb_hits_with_time_server>2</nb_hits_with_time_server> + <min_time_server>0.359</min_time_server> + <max_time_server>0.359</max_time_server> + <sum_bandwidth>0</sum_bandwidth> + <nb_hits_with_bandwidth>0</nb_hits_with_bandwidth> + <min_bandwidth /> + <max_bandwidth /> + <entry_nb_visits>1</entry_nb_visits> + <entry_nb_actions>3</entry_nb_actions> + <entry_sum_visit_length>2</entry_sum_visit_length> + <entry_bounce_count>0</entry_bounce_count> + <exit_nb_visits>1</exit_nb_visits> + <avg_time_on_page>0</avg_time_on_page> + <bounce_rate>0%</bounce_rate> + <exit_rate>100%</exit_rate> <segment>pageUrl=^http%253A%252F%252Fpiwik.net%252Fhello%252Ffrom</segment> <subtable> <row> <label>another</label> - <nb_visits>2</nb_visits> + <nb_visits>1</nb_visits> <nb_hits>2</nb_hits> <sum_time_spent>0</sum_time_spent> <nb_hits_with_time_server>2</nb_hits_with_time_server> @@ -614,19 +693,19 @@ <nb_hits_with_bandwidth>0</nb_hits_with_bandwidth> <min_bandwidth /> <max_bandwidth /> - <entry_nb_visits>2</entry_nb_visits> + <entry_nb_visits>1</entry_nb_visits> <entry_nb_actions>3</entry_nb_actions> <entry_sum_visit_length>2</entry_sum_visit_length> - <entry_bounce_count>1</entry_bounce_count> + <entry_bounce_count>0</entry_bounce_count> <exit_nb_visits>1</exit_nb_visits> <avg_time_on_page>0</avg_time_on_page> - <bounce_rate>50%</bounce_rate> - <exit_rate>50%</exit_rate> + <bounce_rate>0%</bounce_rate> + <exit_rate>100%</exit_rate> <segment>pageUrl=^http%253A%252F%252Fpiwik.net%252Fhello%252Ffrom%252Fanother</segment> <subtable> <row> <label>world</label> - <nb_visits>2</nb_visits> + <nb_visits>1</nb_visits> <nb_hits>2</nb_hits> <sum_time_spent>0</sum_time_spent> <nb_hits_with_time_server>2</nb_hits_with_time_server> @@ -636,19 +715,19 @@ <nb_hits_with_bandwidth>0</nb_hits_with_bandwidth> <min_bandwidth /> <max_bandwidth /> - <entry_nb_visits>2</entry_nb_visits> + <entry_nb_visits>1</entry_nb_visits> <entry_nb_actions>3</entry_nb_actions> <entry_sum_visit_length>2</entry_sum_visit_length> - <entry_bounce_count>1</entry_bounce_count> + <entry_bounce_count>0</entry_bounce_count> <exit_nb_visits>1</exit_nb_visits> <avg_time_on_page>0</avg_time_on_page> - <bounce_rate>50%</bounce_rate> - <exit_rate>50%</exit_rate> + <bounce_rate>0%</bounce_rate> + <exit_rate>100%</exit_rate> <segment>pageUrl=^http%253A%252F%252Fpiwik.net%252Fhello%252Ffrom%252Fanother%252Fworld</segment> <subtable> <row> <label>/6,681965</label> - <nb_visits>2</nb_visits> + <nb_visits>1</nb_visits> <nb_hits>2</nb_hits> <sum_time_spent>0</sum_time_spent> <nb_hits_with_time_server>2</nb_hits_with_time_server> @@ -658,17 +737,17 @@ <nb_hits_with_bandwidth>0</nb_hits_with_bandwidth> <min_bandwidth /> <max_bandwidth /> - <entry_nb_visits>2</entry_nb_visits> + <entry_nb_visits>1</entry_nb_visits> <entry_nb_actions>3</entry_nb_actions> <entry_sum_visit_length>2</entry_sum_visit_length> - <entry_bounce_count>1</entry_bounce_count> + <entry_bounce_count>0</entry_bounce_count> <exit_nb_visits>1</exit_nb_visits> <sum_daily_nb_uniq_visitors>1</sum_daily_nb_uniq_visitors> <sum_daily_entry_nb_uniq_visitors>1</sum_daily_entry_nb_uniq_visitors> <sum_daily_exit_nb_uniq_visitors>1</sum_daily_exit_nb_uniq_visitors> <avg_time_on_page>0</avg_time_on_page> - <bounce_rate>50%</bounce_rate> - <exit_rate>50%</exit_rate> + <bounce_rate>0%</bounce_rate> + <exit_rate>100%</exit_rate> <url>http://hello.example.com/hello/from/another/world/6,681965</url> <segment>entryPageUrl==http%253A%252F%252Fhello.example.com%252Fhello%252Ffrom%252Fanother%252Fworld%252F6%252C681965</segment> </row> @@ -678,88 +757,9 @@ </row> </subtable> </row> - <row> - <label>world</label> - <nb_visits>2</nb_visits> - <nb_hits>2</nb_hits> - <sum_time_spent>0</sum_time_spent> - <nb_hits_with_time_server>2</nb_hits_with_time_server> - <min_time_server>0.359</min_time_server> - <max_time_server>0.359</max_time_server> - <sum_bandwidth>0</sum_bandwidth> - <nb_hits_with_bandwidth>0</nb_hits_with_bandwidth> - <min_bandwidth /> - <max_bandwidth /> - <entry_nb_visits>1</entry_nb_visits> - <entry_nb_actions>1</entry_nb_actions> - <entry_sum_visit_length>0</entry_sum_visit_length> - <entry_bounce_count>1</entry_bounce_count> - <exit_nb_visits>2</exit_nb_visits> - <avg_time_on_page>0</avg_time_on_page> - <bounce_rate>100%</bounce_rate> - <exit_rate>100%</exit_rate> - <segment>pageUrl=^http%253A%252F%252Fpiwik.net%252Fhello%252Fworld</segment> - <subtable> - <row> - <label>/6,681965</label> - <nb_visits>2</nb_visits> - <nb_hits>2</nb_hits> - <sum_time_spent>0</sum_time_spent> - <nb_hits_with_time_server>2</nb_hits_with_time_server> - <min_time_server>0.3590</min_time_server> - <max_time_server>0.3590</max_time_server> - <sum_bandwidth>0</sum_bandwidth> - <nb_hits_with_bandwidth>0</nb_hits_with_bandwidth> - <min_bandwidth /> - <max_bandwidth /> - <entry_nb_visits>1</entry_nb_visits> - <entry_nb_actions>1</entry_nb_actions> - <entry_sum_visit_length>0</entry_sum_visit_length> - <entry_bounce_count>1</entry_bounce_count> - <exit_nb_visits>2</exit_nb_visits> - <sum_daily_nb_uniq_visitors>1</sum_daily_nb_uniq_visitors> - <sum_daily_entry_nb_uniq_visitors>1</sum_daily_entry_nb_uniq_visitors> - <sum_daily_exit_nb_uniq_visitors>1</sum_daily_exit_nb_uniq_visitors> - <avg_time_on_page>0</avg_time_on_page> - <bounce_rate>100%</bounce_rate> - <exit_rate>100%</exit_rate> - <url>http://hello.example.com/hello/world/6,681965</url> - <segment>entryPageUrl==http%253A%252F%252Fhello.example.com%252Fhello%252Fworld%252F6%252C681965</segment> - </row> - </subtable> - </row> </subtable> </row> <row> - <label>/index</label> - <nb_visits>3</nb_visits> - <nb_hits>3</nb_hits> - <sum_time_spent>0</sum_time_spent> - <nb_hits_with_time_server>1</nb_hits_with_time_server> - <min_time_server>0.001</min_time_server> - <max_time_server>0.001</max_time_server> - <sum_bandwidth>8063</sum_bandwidth> - <nb_hits_with_bandwidth>3</nb_hits_with_bandwidth> - <min_bandwidth>8063</min_bandwidth> - <max_bandwidth>8063</max_bandwidth> - <entry_nb_visits>3</entry_nb_visits> - <entry_nb_actions>3</entry_nb_actions> - <entry_sum_visit_length>0</entry_sum_visit_length> - <entry_bounce_count>3</entry_bounce_count> - <exit_nb_visits>3</exit_nb_visits> - <sum_daily_nb_uniq_visitors>3</sum_daily_nb_uniq_visitors> - <sum_daily_entry_nb_uniq_visitors>3</sum_daily_entry_nb_uniq_visitors> - <sum_daily_exit_nb_uniq_visitors>3</sum_daily_exit_nb_uniq_visitors> - <avg_bandwidth>2687</avg_bandwidth> - <avg_time_server>0.001</avg_time_server> - <avg_page_load_time>0.001</avg_page_load_time> - <avg_time_on_page>0</avg_time_on_page> - <bounce_rate>100%</bounce_rate> - <exit_rate>100%</exit_rate> - <url>http://piwik.net/</url> - <segment>entryPageUrl==http%253A%252F%252Fpiwik.net%252F</segment> - </row> - <row> <label>Citrix</label> <nb_visits>2</nb_visits> <nb_hits>2</nb_hits> diff --git a/tests/PHPUnit/System/expected/test_ImportLogs__Actions.getEntryPageUrls_range.xml b/tests/PHPUnit/System/expected/test_ImportLogs__Actions.getEntryPageUrls_range.xml index 47a6bb7b40..b5649e9acb 100644 --- a/tests/PHPUnit/System/expected/test_ImportLogs__Actions.getEntryPageUrls_range.xml +++ b/tests/PHPUnit/System/expected/test_ImportLogs__Actions.getEntryPageUrls_range.xml @@ -4,7 +4,7 @@ <label>blog</label> <nb_visits>15</nb_visits> <nb_hits>18</nb_hits> - <sum_time_spent>166</sum_time_spent> + <sum_time_spent>60</sum_time_spent> <nb_hits_with_time_network>1</nb_hits_with_time_network> <min_time_network>0.01</min_time_network> <max_time_network>0.01</max_time_network> @@ -40,7 +40,7 @@ <avg_time_dom_completion>0.255</avg_time_dom_completion> <avg_time_on_load>0</avg_time_on_load> <avg_page_load_time>1.194</avg_page_load_time> - <avg_time_on_page>9</avg_time_on_page> + <avg_time_on_page>3</avg_time_on_page> <bounce_rate>93%</bounce_rate> <exit_rate>87%</exit_rate> <segment>pageUrl=^http%253A%252F%252Fpiwik.net%252Fblog</segment> @@ -49,7 +49,7 @@ <label>category</label> <nb_visits>12</nb_visits> <nb_hits>15</nb_hits> - <sum_time_spent>166</sum_time_spent> + <sum_time_spent>60</sum_time_spent> <nb_hits_with_time_network>0</nb_hits_with_time_network> <min_time_network /> <max_time_network /> @@ -77,7 +77,7 @@ <entry_sum_visit_length>54</entry_sum_visit_length> <entry_bounce_count>10</entry_bounce_count> <exit_nb_visits>10</exit_nb_visits> - <avg_time_on_page>11</avg_time_on_page> + <avg_time_on_page>4</avg_time_on_page> <bounce_rate>91%</bounce_rate> <exit_rate>83%</exit_rate> <segment>pageUrl=^http%253A%252F%252Fpiwik.net%252Fblog%252Fcategory</segment> @@ -86,7 +86,7 @@ <label>meta</label> <nb_visits>10</nb_visits> <nb_hits>12</nb_hits> - <sum_time_spent>151</sum_time_spent> + <sum_time_spent>52</sum_time_spent> <nb_hits_with_time_network>0</nb_hits_with_time_network> <min_time_network /> <max_time_network /> @@ -114,7 +114,7 @@ <entry_sum_visit_length>54</entry_sum_visit_length> <entry_bounce_count>9</entry_bounce_count> <exit_nb_visits>9</exit_nb_visits> - <avg_time_on_page>13</avg_time_on_page> + <avg_time_on_page>4</avg_time_on_page> <bounce_rate>90%</bounce_rate> <exit_rate>90%</exit_rate> <segment>pageUrl=^http%253A%252F%252Fpiwik.net%252Fblog%252Fcategory%252Fmeta</segment> @@ -123,7 +123,7 @@ <label>/index</label> <nb_visits>10</nb_visits> <nb_hits>12</nb_hits> - <sum_time_spent>151</sum_time_spent> + <sum_time_spent>52</sum_time_spent> <nb_hits_with_time_network>0</nb_hits_with_time_network> <min_time_network /> <max_time_network /> @@ -154,7 +154,7 @@ <sum_daily_nb_uniq_visitors>10</sum_daily_nb_uniq_visitors> <sum_daily_entry_nb_uniq_visitors>10</sum_daily_entry_nb_uniq_visitors> <sum_daily_exit_nb_uniq_visitors>9</sum_daily_exit_nb_uniq_visitors> - <avg_time_on_page>13</avg_time_on_page> + <avg_time_on_page>4</avg_time_on_page> <bounce_rate>90%</bounce_rate> <exit_rate>90%</exit_rate> <url>http://included1.com/blog/category/meta/</url> @@ -166,7 +166,7 @@ <label>community</label> <nb_visits>2</nb_visits> <nb_hits>3</nb_hits> - <sum_time_spent>15</sum_time_spent> + <sum_time_spent>8</sum_time_spent> <nb_hits_with_time_network>0</nb_hits_with_time_network> <min_time_network /> <max_time_network /> @@ -194,7 +194,7 @@ <entry_sum_visit_length>0</entry_sum_visit_length> <entry_bounce_count>1</entry_bounce_count> <exit_nb_visits>1</exit_nb_visits> - <avg_time_on_page>5</avg_time_on_page> + <avg_time_on_page>3</avg_time_on_page> <bounce_rate>100%</bounce_rate> <exit_rate>50%</exit_rate> <segment>pageUrl=^http%253A%252F%252Fpiwik.net%252Fblog%252Fcategory%252Fcommunity</segment> @@ -203,7 +203,7 @@ <label>/index</label> <nb_visits>2</nb_visits> <nb_hits>3</nb_hits> - <sum_time_spent>15</sum_time_spent> + <sum_time_spent>8</sum_time_spent> <nb_hits_with_time_network>0</nb_hits_with_time_network> <min_time_network /> <max_time_network /> @@ -234,7 +234,7 @@ <sum_daily_nb_uniq_visitors>2</sum_daily_nb_uniq_visitors> <sum_daily_entry_nb_uniq_visitors>1</sum_daily_entry_nb_uniq_visitors> <sum_daily_exit_nb_uniq_visitors>1</sum_daily_exit_nb_uniq_visitors> - <avg_time_on_page>5</avg_time_on_page> + <avg_time_on_page>3</avg_time_on_page> <bounce_rate>100%</bounce_rate> <exit_rate>50%</exit_rate> <url>http://piwik.net/blog/category/community/</url> @@ -1062,7 +1062,7 @@ <label>faq</label> <nb_visits>5</nb_visits> <nb_hits>7</nb_hits> - <sum_time_spent>52</sum_time_spent> + <sum_time_spent>26</sum_time_spent> <nb_hits_with_time_network>0</nb_hits_with_time_network> <min_time_network /> <max_time_network /> @@ -1098,7 +1098,7 @@ <avg_time_dom_completion>0</avg_time_dom_completion> <avg_time_on_load>0</avg_time_on_load> <avg_page_load_time>0.255</avg_page_load_time> - <avg_time_on_page>7</avg_time_on_page> + <avg_time_on_page>4</avg_time_on_page> <bounce_rate>100%</bounce_rate> <exit_rate>100%</exit_rate> <segment>pageUrl=^http%253A%252F%252Fpiwik.net%252Ffaq</segment> @@ -1107,7 +1107,7 @@ <label>/index</label> <nb_visits>3</nb_visits> <nb_hits>5</nb_hits> - <sum_time_spent>52</sum_time_spent> + <sum_time_spent>26</sum_time_spent> <nb_hits_with_time_network>0</nb_hits_with_time_network> <min_time_network /> <max_time_network /> @@ -1138,7 +1138,7 @@ <sum_daily_nb_uniq_visitors>3</sum_daily_nb_uniq_visitors> <sum_daily_entry_nb_uniq_visitors>2</sum_daily_entry_nb_uniq_visitors> <sum_daily_exit_nb_uniq_visitors>3</sum_daily_exit_nb_uniq_visitors> - <avg_time_on_page>10</avg_time_on_page> + <avg_time_on_page>5</avg_time_on_page> <bounce_rate>100%</bounce_rate> <exit_rate>100%</exit_rate> <url>http://piwik.net/faq/</url> @@ -1308,7 +1308,7 @@ </row> <row> <label>hello</label> - <nb_visits>4</nb_visits> + <nb_visits>3</nb_visits> <nb_hits>4</nb_hits> <sum_time_spent>0</sum_time_spent> <nb_hits_with_time_network>0</nb_hits_with_time_network> @@ -1333,11 +1333,11 @@ <nb_hits_with_bandwidth>0</nb_hits_with_bandwidth> <min_bandwidth /> <max_bandwidth /> - <entry_nb_visits>3</entry_nb_visits> + <entry_nb_visits>2</entry_nb_visits> <entry_nb_actions>4</entry_nb_actions> <entry_sum_visit_length>2</entry_sum_visit_length> - <entry_bounce_count>2</entry_bounce_count> - <exit_nb_visits>3</exit_nb_visits> + <entry_bounce_count>1</entry_bounce_count> + <exit_nb_visits>2</exit_nb_visits> <avg_bandwidth>0</avg_bandwidth> <avg_time_network>0</avg_time_network> <avg_time_server>0.359</avg_time_server> @@ -1347,12 +1347,12 @@ <avg_time_on_load>0</avg_time_on_load> <avg_page_load_time>0.359</avg_page_load_time> <avg_time_on_page>0</avg_time_on_page> - <bounce_rate>67%</bounce_rate> - <exit_rate>75%</exit_rate> + <bounce_rate>50%</bounce_rate> + <exit_rate>67%</exit_rate> <segment>pageUrl=^http%253A%252F%252Fpiwik.net%252Fhello</segment> <subtable> <row> - <label>from</label> + <label>world</label> <nb_visits>2</nb_visits> <nb_hits>2</nb_hits> <sum_time_spent>0</sum_time_spent> @@ -1378,19 +1378,99 @@ <nb_hits_with_bandwidth>0</nb_hits_with_bandwidth> <min_bandwidth /> <max_bandwidth /> - <entry_nb_visits>2</entry_nb_visits> - <entry_nb_actions>3</entry_nb_actions> - <entry_sum_visit_length>2</entry_sum_visit_length> + <entry_nb_visits>1</entry_nb_visits> + <entry_nb_actions>1</entry_nb_actions> + <entry_sum_visit_length>0</entry_sum_visit_length> <entry_bounce_count>1</entry_bounce_count> <exit_nb_visits>1</exit_nb_visits> <avg_time_on_page>0</avg_time_on_page> - <bounce_rate>50%</bounce_rate> + <bounce_rate>100%</bounce_rate> <exit_rate>50%</exit_rate> + <segment>pageUrl=^http%253A%252F%252Fpiwik.net%252Fhello%252Fworld</segment> + <subtable> + <row> + <label>/6,681965</label> + <nb_visits>2</nb_visits> + <nb_hits>2</nb_hits> + <sum_time_spent>0</sum_time_spent> + <nb_hits_with_time_network>0</nb_hits_with_time_network> + <min_time_network /> + <max_time_network /> + <nb_hits_with_time_server>2</nb_hits_with_time_server> + <min_time_server>0.3590</min_time_server> + <max_time_server>0.3590</max_time_server> + <nb_hits_with_time_transfer>0</nb_hits_with_time_transfer> + <min_time_transfer /> + <max_time_transfer /> + <nb_hits_with_time_dom_processing>0</nb_hits_with_time_dom_processing> + <min_time_dom_processing /> + <max_time_dom_processing /> + <nb_hits_with_time_dom_completion>0</nb_hits_with_time_dom_completion> + <min_time_dom_completion /> + <max_time_dom_completion /> + <nb_hits_with_time_on_load>0</nb_hits_with_time_on_load> + <min_time_on_load /> + <max_time_on_load /> + <sum_bandwidth>0</sum_bandwidth> + <nb_hits_with_bandwidth>0</nb_hits_with_bandwidth> + <min_bandwidth /> + <max_bandwidth /> + <entry_nb_visits>1</entry_nb_visits> + <entry_nb_actions>1</entry_nb_actions> + <entry_sum_visit_length>0</entry_sum_visit_length> + <entry_bounce_count>1</entry_bounce_count> + <exit_nb_visits>1</exit_nb_visits> + <sum_daily_nb_uniq_visitors>1</sum_daily_nb_uniq_visitors> + <sum_daily_entry_nb_uniq_visitors>1</sum_daily_entry_nb_uniq_visitors> + <sum_daily_exit_nb_uniq_visitors>1</sum_daily_exit_nb_uniq_visitors> + <avg_time_on_page>0</avg_time_on_page> + <bounce_rate>100%</bounce_rate> + <exit_rate>50%</exit_rate> + <url>http://hello.example.com/hello/world/6,681965</url> + <segment>entryPageUrl==http%253A%252F%252Fhello.example.com%252Fhello%252Fworld%252F6%252C681965</segment> + </row> + </subtable> + </row> + <row> + <label>from</label> + <nb_visits>1</nb_visits> + <nb_hits>2</nb_hits> + <sum_time_spent>0</sum_time_spent> + <nb_hits_with_time_network>0</nb_hits_with_time_network> + <min_time_network /> + <max_time_network /> + <nb_hits_with_time_server>2</nb_hits_with_time_server> + <min_time_server>0.359</min_time_server> + <max_time_server>0.359</max_time_server> + <nb_hits_with_time_transfer>0</nb_hits_with_time_transfer> + <min_time_transfer /> + <max_time_transfer /> + <nb_hits_with_time_dom_processing>0</nb_hits_with_time_dom_processing> + <min_time_dom_processing /> + <max_time_dom_processing /> + <nb_hits_with_time_dom_completion>0</nb_hits_with_time_dom_completion> + <min_time_dom_completion /> + <max_time_dom_completion /> + <nb_hits_with_time_on_load>0</nb_hits_with_time_on_load> + <min_time_on_load /> + <max_time_on_load /> + <sum_bandwidth>0</sum_bandwidth> + <nb_hits_with_bandwidth>0</nb_hits_with_bandwidth> + <min_bandwidth /> + <max_bandwidth /> + <entry_nb_visits>1</entry_nb_visits> + <entry_nb_actions>3</entry_nb_actions> + <entry_sum_visit_length>2</entry_sum_visit_length> + <entry_bounce_count>0</entry_bounce_count> + <exit_nb_visits>1</exit_nb_visits> + <avg_time_on_page>0</avg_time_on_page> + <bounce_rate>0%</bounce_rate> + <exit_rate>100%</exit_rate> <segment>pageUrl=^http%253A%252F%252Fpiwik.net%252Fhello%252Ffrom</segment> <subtable> <row> <label>another</label> - <nb_visits>2</nb_visits> + <nb_visits>1</nb_visits> <nb_hits>2</nb_hits> <sum_time_spent>0</sum_time_spent> <nb_hits_with_time_network>0</nb_hits_with_time_network> @@ -1415,19 +1495,19 @@ <nb_hits_with_bandwidth>0</nb_hits_with_bandwidth> <min_bandwidth /> <max_bandwidth /> - <entry_nb_visits>2</entry_nb_visits> + <entry_nb_visits>1</entry_nb_visits> <entry_nb_actions>3</entry_nb_actions> <entry_sum_visit_length>2</entry_sum_visit_length> - <entry_bounce_count>1</entry_bounce_count> + <entry_bounce_count>0</entry_bounce_count> <exit_nb_visits>1</exit_nb_visits> <avg_time_on_page>0</avg_time_on_page> - <bounce_rate>50%</bounce_rate> - <exit_rate>50%</exit_rate> + <bounce_rate>0%</bounce_rate> + <exit_rate>100%</exit_rate> <segment>pageUrl=^http%253A%252F%252Fpiwik.net%252Fhello%252Ffrom%252Fanother</segment> <subtable> <row> <label>world</label> - <nb_visits>2</nb_visits> + <nb_visits>1</nb_visits> <nb_hits>2</nb_hits> <sum_time_spent>0</sum_time_spent> <nb_hits_with_time_network>0</nb_hits_with_time_network> @@ -1452,19 +1532,19 @@ <nb_hits_with_bandwidth>0</nb_hits_with_bandwidth> <min_bandwidth /> <max_bandwidth /> - <entry_nb_visits>2</entry_nb_visits> + <entry_nb_visits>1</entry_nb_visits> <entry_nb_actions>3</entry_nb_actions> <entry_sum_visit_length>2</entry_sum_visit_length> - <entry_bounce_count>1</entry_bounce_count> + <entry_bounce_count>0</entry_bounce_count> <exit_nb_visits>1</exit_nb_visits> <avg_time_on_page>0</avg_time_on_page> - <bounce_rate>50%</bounce_rate> - <exit_rate>50%</exit_rate> + <bounce_rate>0%</bounce_rate> + <exit_rate>100%</exit_rate> <segment>pageUrl=^http%253A%252F%252Fpiwik.net%252Fhello%252Ffrom%252Fanother%252Fworld</segment> <subtable> <row> <label>/6,681965</label> - <nb_visits>2</nb_visits> + <nb_visits>1</nb_visits> <nb_hits>2</nb_hits> <sum_time_spent>0</sum_time_spent> <nb_hits_with_time_network>0</nb_hits_with_time_network> @@ -1489,17 +1569,17 @@ <nb_hits_with_bandwidth>0</nb_hits_with_bandwidth> <min_bandwidth /> <max_bandwidth /> - <entry_nb_visits>2</entry_nb_visits> + <entry_nb_visits>1</entry_nb_visits> <entry_nb_actions>3</entry_nb_actions> <entry_sum_visit_length>2</entry_sum_visit_length> - <entry_bounce_count>1</entry_bounce_count> + <entry_bounce_count>0</entry_bounce_count> <exit_nb_visits>1</exit_nb_visits> <sum_daily_nb_uniq_visitors>1</sum_daily_nb_uniq_visitors> <sum_daily_entry_nb_uniq_visitors>1</sum_daily_entry_nb_uniq_visitors> <sum_daily_exit_nb_uniq_visitors>1</sum_daily_exit_nb_uniq_visitors> <avg_time_on_page>0</avg_time_on_page> - <bounce_rate>50%</bounce_rate> - <exit_rate>50%</exit_rate> + <bounce_rate>0%</bounce_rate> + <exit_rate>100%</exit_rate> <url>http://hello.example.com/hello/from/another/world/6,681965</url> <segment>entryPageUrl==http%253A%252F%252Fhello.example.com%252Fhello%252Ffrom%252Fanother%252Fworld%252F6%252C681965</segment> </row> @@ -1509,86 +1589,6 @@ </row> </subtable> </row> - <row> - <label>world</label> - <nb_visits>2</nb_visits> - <nb_hits>2</nb_hits> - <sum_time_spent>0</sum_time_spent> - <nb_hits_with_time_network>0</nb_hits_with_time_network> - <min_time_network /> - <max_time_network /> - <nb_hits_with_time_server>2</nb_hits_with_time_server> - <min_time_server>0.359</min_time_server> - <max_time_server>0.359</max_time_server> - <nb_hits_with_time_transfer>0</nb_hits_with_time_transfer> - <min_time_transfer /> - <max_time_transfer /> - <nb_hits_with_time_dom_processing>0</nb_hits_with_time_dom_processing> - <min_time_dom_processing /> - <max_time_dom_processing /> - <nb_hits_with_time_dom_completion>0</nb_hits_with_time_dom_completion> - <min_time_dom_completion /> - <max_time_dom_completion /> - <nb_hits_with_time_on_load>0</nb_hits_with_time_on_load> - <min_time_on_load /> - <max_time_on_load /> - <sum_bandwidth>0</sum_bandwidth> - <nb_hits_with_bandwidth>0</nb_hits_with_bandwidth> - <min_bandwidth /> - <max_bandwidth /> - <entry_nb_visits>1</entry_nb_visits> - <entry_nb_actions>1</entry_nb_actions> - <entry_sum_visit_length>0</entry_sum_visit_length> - <entry_bounce_count>1</entry_bounce_count> - <exit_nb_visits>2</exit_nb_visits> - <avg_time_on_page>0</avg_time_on_page> - <bounce_rate>100%</bounce_rate> - <exit_rate>100%</exit_rate> - <segment>pageUrl=^http%253A%252F%252Fpiwik.net%252Fhello%252Fworld</segment> - <subtable> - <row> - <label>/6,681965</label> - <nb_visits>2</nb_visits> - <nb_hits>2</nb_hits> - <sum_time_spent>0</sum_time_spent> - <nb_hits_with_time_network>0</nb_hits_with_time_network> - <min_time_network /> - <max_time_network /> - <nb_hits_with_time_server>2</nb_hits_with_time_server> - <min_time_server>0.3590</min_time_server> - <max_time_server>0.3590</max_time_server> - <nb_hits_with_time_transfer>0</nb_hits_with_time_transfer> - <min_time_transfer /> - <max_time_transfer /> - <nb_hits_with_time_dom_processing>0</nb_hits_with_time_dom_processing> - <min_time_dom_processing /> - <max_time_dom_processing /> - <nb_hits_with_time_dom_completion>0</nb_hits_with_time_dom_completion> - <min_time_dom_completion /> - <max_time_dom_completion /> - <nb_hits_with_time_on_load>0</nb_hits_with_time_on_load> - <min_time_on_load /> - <max_time_on_load /> - <sum_bandwidth>0</sum_bandwidth> - <nb_hits_with_bandwidth>0</nb_hits_with_bandwidth> - <min_bandwidth /> - <max_bandwidth /> - <entry_nb_visits>1</entry_nb_visits> - <entry_nb_actions>1</entry_nb_actions> - <entry_sum_visit_length>0</entry_sum_visit_length> - <entry_bounce_count>1</entry_bounce_count> - <exit_nb_visits>2</exit_nb_visits> - <sum_daily_nb_uniq_visitors>1</sum_daily_nb_uniq_visitors> - <sum_daily_entry_nb_uniq_visitors>1</sum_daily_entry_nb_uniq_visitors> - <sum_daily_exit_nb_uniq_visitors>1</sum_daily_exit_nb_uniq_visitors> - <avg_time_on_page>0</avg_time_on_page> - <bounce_rate>100%</bounce_rate> - <exit_rate>100%</exit_rate> - <url>http://hello.example.com/hello/world/6,681965</url> - <segment>entryPageUrl==http%253A%252F%252Fhello.example.com%252Fhello%252Fworld%252F6%252C681965</segment> - </row> - </subtable> - </row> </subtable> </row> <row> diff --git a/tests/PHPUnit/System/expected/test_ImportLogs__Actions.getExitPageUrls_month.xml b/tests/PHPUnit/System/expected/test_ImportLogs__Actions.getExitPageUrls_month.xml index c93a95de7c..ead9d18eb8 100644 --- a/tests/PHPUnit/System/expected/test_ImportLogs__Actions.getExitPageUrls_month.xml +++ b/tests/PHPUnit/System/expected/test_ImportLogs__Actions.getExitPageUrls_month.xml @@ -556,8 +556,37 @@ </subtable> </row> <row> + <label>/index</label> + <nb_visits>3</nb_visits> + <nb_hits>3</nb_hits> + <sum_time_spent>0</sum_time_spent> + <nb_hits_with_time_server>1</nb_hits_with_time_server> + <min_time_server>0.001</min_time_server> + <max_time_server>0.001</max_time_server> + <sum_bandwidth>8063</sum_bandwidth> + <nb_hits_with_bandwidth>3</nb_hits_with_bandwidth> + <min_bandwidth>8063</min_bandwidth> + <max_bandwidth>8063</max_bandwidth> + <entry_nb_visits>3</entry_nb_visits> + <entry_nb_actions>3</entry_nb_actions> + <entry_sum_visit_length>0</entry_sum_visit_length> + <entry_bounce_count>3</entry_bounce_count> + <exit_nb_visits>3</exit_nb_visits> + <sum_daily_nb_uniq_visitors>3</sum_daily_nb_uniq_visitors> + <sum_daily_entry_nb_uniq_visitors>3</sum_daily_entry_nb_uniq_visitors> + <sum_daily_exit_nb_uniq_visitors>3</sum_daily_exit_nb_uniq_visitors> + <avg_bandwidth>2687</avg_bandwidth> + <avg_time_server>0.001</avg_time_server> + <avg_page_load_time>0.001</avg_page_load_time> + <avg_time_on_page>0</avg_time_on_page> + <bounce_rate>100%</bounce_rate> + <exit_rate>100%</exit_rate> + <url>http://piwik.net/</url> + <segment>exitPageUrl==http%253A%252F%252Fpiwik.net%252F</segment> + </row> + <row> <label>hello</label> - <nb_visits>4</nb_visits> + <nb_visits>3</nb_visits> <nb_hits>4</nb_hits> <sum_time_spent>0</sum_time_spent> <nb_hits_with_time_server>4</nb_hits_with_time_server> @@ -567,21 +596,21 @@ <nb_hits_with_bandwidth>0</nb_hits_with_bandwidth> <min_bandwidth /> <max_bandwidth /> - <entry_nb_visits>3</entry_nb_visits> + <entry_nb_visits>2</entry_nb_visits> <entry_nb_actions>4</entry_nb_actions> <entry_sum_visit_length>2</entry_sum_visit_length> - <entry_bounce_count>2</entry_bounce_count> - <exit_nb_visits>3</exit_nb_visits> + <entry_bounce_count>1</entry_bounce_count> + <exit_nb_visits>2</exit_nb_visits> <avg_bandwidth>0</avg_bandwidth> <avg_time_server>0.359</avg_time_server> <avg_page_load_time>0.359</avg_page_load_time> <avg_time_on_page>0</avg_time_on_page> - <bounce_rate>67%</bounce_rate> - <exit_rate>75%</exit_rate> + <bounce_rate>50%</bounce_rate> + <exit_rate>67%</exit_rate> <segment>pageUrl=^http%253A%252F%252Fpiwik.net%252Fhello</segment> <subtable> <row> - <label>from</label> + <label>world</label> <nb_visits>2</nb_visits> <nb_hits>2</nb_hits> <sum_time_spent>0</sum_time_spent> @@ -592,19 +621,69 @@ <nb_hits_with_bandwidth>0</nb_hits_with_bandwidth> <min_bandwidth /> <max_bandwidth /> - <entry_nb_visits>2</entry_nb_visits> - <entry_nb_actions>3</entry_nb_actions> - <entry_sum_visit_length>2</entry_sum_visit_length> + <entry_nb_visits>1</entry_nb_visits> + <entry_nb_actions>1</entry_nb_actions> + <entry_sum_visit_length>0</entry_sum_visit_length> <entry_bounce_count>1</entry_bounce_count> <exit_nb_visits>1</exit_nb_visits> <avg_time_on_page>0</avg_time_on_page> - <bounce_rate>50%</bounce_rate> + <bounce_rate>100%</bounce_rate> <exit_rate>50%</exit_rate> + <segment>pageUrl=^http%253A%252F%252Fpiwik.net%252Fhello%252Fworld</segment> + <subtable> + <row> + <label>/6,681965</label> + <nb_visits>2</nb_visits> + <nb_hits>2</nb_hits> + <sum_time_spent>0</sum_time_spent> + <nb_hits_with_time_server>2</nb_hits_with_time_server> + <min_time_server>0.3590</min_time_server> + <max_time_server>0.3590</max_time_server> + <sum_bandwidth>0</sum_bandwidth> + <nb_hits_with_bandwidth>0</nb_hits_with_bandwidth> + <min_bandwidth /> + <max_bandwidth /> + <entry_nb_visits>1</entry_nb_visits> + <entry_nb_actions>1</entry_nb_actions> + <entry_sum_visit_length>0</entry_sum_visit_length> + <entry_bounce_count>1</entry_bounce_count> + <exit_nb_visits>1</exit_nb_visits> + <sum_daily_nb_uniq_visitors>1</sum_daily_nb_uniq_visitors> + <sum_daily_entry_nb_uniq_visitors>1</sum_daily_entry_nb_uniq_visitors> + <sum_daily_exit_nb_uniq_visitors>1</sum_daily_exit_nb_uniq_visitors> + <avg_time_on_page>0</avg_time_on_page> + <bounce_rate>100%</bounce_rate> + <exit_rate>50%</exit_rate> + <url>http://hello.example.com/hello/world/6,681965</url> + <segment>exitPageUrl==http%253A%252F%252Fhello.example.com%252Fhello%252Fworld%252F6%252C681965</segment> + </row> + </subtable> + </row> + <row> + <label>from</label> + <nb_visits>1</nb_visits> + <nb_hits>2</nb_hits> + <sum_time_spent>0</sum_time_spent> + <nb_hits_with_time_server>2</nb_hits_with_time_server> + <min_time_server>0.359</min_time_server> + <max_time_server>0.359</max_time_server> + <sum_bandwidth>0</sum_bandwidth> + <nb_hits_with_bandwidth>0</nb_hits_with_bandwidth> + <min_bandwidth /> + <max_bandwidth /> + <entry_nb_visits>1</entry_nb_visits> + <entry_nb_actions>3</entry_nb_actions> + <entry_sum_visit_length>2</entry_sum_visit_length> + <entry_bounce_count>0</entry_bounce_count> + <exit_nb_visits>1</exit_nb_visits> + <avg_time_on_page>0</avg_time_on_page> + <bounce_rate>0%</bounce_rate> + <exit_rate>100%</exit_rate> <segment>pageUrl=^http%253A%252F%252Fpiwik.net%252Fhello%252Ffrom</segment> <subtable> <row> <label>another</label> - <nb_visits>2</nb_visits> + <nb_visits>1</nb_visits> <nb_hits>2</nb_hits> <sum_time_spent>0</sum_time_spent> <nb_hits_with_time_server>2</nb_hits_with_time_server> @@ -614,19 +693,19 @@ <nb_hits_with_bandwidth>0</nb_hits_with_bandwidth> <min_bandwidth /> <max_bandwidth /> - <entry_nb_visits>2</entry_nb_visits> + <entry_nb_visits>1</entry_nb_visits> <entry_nb_actions>3</entry_nb_actions> <entry_sum_visit_length>2</entry_sum_visit_length> - <entry_bounce_count>1</entry_bounce_count> + <entry_bounce_count>0</entry_bounce_count> <exit_nb_visits>1</exit_nb_visits> <avg_time_on_page>0</avg_time_on_page> - <bounce_rate>50%</bounce_rate> - <exit_rate>50%</exit_rate> + <bounce_rate>0%</bounce_rate> + <exit_rate>100%</exit_rate> <segment>pageUrl=^http%253A%252F%252Fpiwik.net%252Fhello%252Ffrom%252Fanother</segment> <subtable> <row> <label>world</label> - <nb_visits>2</nb_visits> + <nb_visits>1</nb_visits> <nb_hits>2</nb_hits> <sum_time_spent>0</sum_time_spent> <nb_hits_with_time_server>2</nb_hits_with_time_server> @@ -636,19 +715,19 @@ <nb_hits_with_bandwidth>0</nb_hits_with_bandwidth> <min_bandwidth /> <max_bandwidth /> - <entry_nb_visits>2</entry_nb_visits> + <entry_nb_visits>1</entry_nb_visits> <entry_nb_actions>3</entry_nb_actions> <entry_sum_visit_length>2</entry_sum_visit_length> - <entry_bounce_count>1</entry_bounce_count> + <entry_bounce_count>0</entry_bounce_count> <exit_nb_visits>1</exit_nb_visits> <avg_time_on_page>0</avg_time_on_page> - <bounce_rate>50%</bounce_rate> - <exit_rate>50%</exit_rate> + <bounce_rate>0%</bounce_rate> + <exit_rate>100%</exit_rate> <segment>pageUrl=^http%253A%252F%252Fpiwik.net%252Fhello%252Ffrom%252Fanother%252Fworld</segment> <subtable> <row> <label>/6,681965</label> - <nb_visits>2</nb_visits> + <nb_visits>1</nb_visits> <nb_hits>2</nb_hits> <sum_time_spent>0</sum_time_spent> <nb_hits_with_time_server>2</nb_hits_with_time_server> @@ -658,17 +737,17 @@ <nb_hits_with_bandwidth>0</nb_hits_with_bandwidth> <min_bandwidth /> <max_bandwidth /> - <entry_nb_visits>2</entry_nb_visits> + <entry_nb_visits>1</entry_nb_visits> <entry_nb_actions>3</entry_nb_actions> <entry_sum_visit_length>2</entry_sum_visit_length> - <entry_bounce_count>1</entry_bounce_count> + <entry_bounce_count>0</entry_bounce_count> <exit_nb_visits>1</exit_nb_visits> <sum_daily_nb_uniq_visitors>1</sum_daily_nb_uniq_visitors> <sum_daily_entry_nb_uniq_visitors>1</sum_daily_entry_nb_uniq_visitors> <sum_daily_exit_nb_uniq_visitors>1</sum_daily_exit_nb_uniq_visitors> <avg_time_on_page>0</avg_time_on_page> - <bounce_rate>50%</bounce_rate> - <exit_rate>50%</exit_rate> + <bounce_rate>0%</bounce_rate> + <exit_rate>100%</exit_rate> <url>http://hello.example.com/hello/from/another/world/6,681965</url> <segment>exitPageUrl==http%253A%252F%252Fhello.example.com%252Fhello%252Ffrom%252Fanother%252Fworld%252F6%252C681965</segment> </row> @@ -678,88 +757,9 @@ </row> </subtable> </row> - <row> - <label>world</label> - <nb_visits>2</nb_visits> - <nb_hits>2</nb_hits> - <sum_time_spent>0</sum_time_spent> - <nb_hits_with_time_server>2</nb_hits_with_time_server> - <min_time_server>0.359</min_time_server> - <max_time_server>0.359</max_time_server> - <sum_bandwidth>0</sum_bandwidth> - <nb_hits_with_bandwidth>0</nb_hits_with_bandwidth> - <min_bandwidth /> - <max_bandwidth /> - <entry_nb_visits>1</entry_nb_visits> - <entry_nb_actions>1</entry_nb_actions> - <entry_sum_visit_length>0</entry_sum_visit_length> - <entry_bounce_count>1</entry_bounce_count> - <exit_nb_visits>2</exit_nb_visits> - <avg_time_on_page>0</avg_time_on_page> - <bounce_rate>100%</bounce_rate> - <exit_rate>100%</exit_rate> - <segment>pageUrl=^http%253A%252F%252Fpiwik.net%252Fhello%252Fworld</segment> - <subtable> - <row> - <label>/6,681965</label> - <nb_visits>2</nb_visits> - <nb_hits>2</nb_hits> - <sum_time_spent>0</sum_time_spent> - <nb_hits_with_time_server>2</nb_hits_with_time_server> - <min_time_server>0.3590</min_time_server> - <max_time_server>0.3590</max_time_server> - <sum_bandwidth>0</sum_bandwidth> - <nb_hits_with_bandwidth>0</nb_hits_with_bandwidth> - <min_bandwidth /> - <max_bandwidth /> - <entry_nb_visits>1</entry_nb_visits> - <entry_nb_actions>1</entry_nb_actions> - <entry_sum_visit_length>0</entry_sum_visit_length> - <entry_bounce_count>1</entry_bounce_count> - <exit_nb_visits>2</exit_nb_visits> - <sum_daily_nb_uniq_visitors>1</sum_daily_nb_uniq_visitors> - <sum_daily_entry_nb_uniq_visitors>1</sum_daily_entry_nb_uniq_visitors> - <sum_daily_exit_nb_uniq_visitors>1</sum_daily_exit_nb_uniq_visitors> - <avg_time_on_page>0</avg_time_on_page> - <bounce_rate>100%</bounce_rate> - <exit_rate>100%</exit_rate> - <url>http://hello.example.com/hello/world/6,681965</url> - <segment>exitPageUrl==http%253A%252F%252Fhello.example.com%252Fhello%252Fworld%252F6%252C681965</segment> - </row> - </subtable> - </row> </subtable> </row> <row> - <label>/index</label> - <nb_visits>3</nb_visits> - <nb_hits>3</nb_hits> - <sum_time_spent>0</sum_time_spent> - <nb_hits_with_time_server>1</nb_hits_with_time_server> - <min_time_server>0.001</min_time_server> - <max_time_server>0.001</max_time_server> - <sum_bandwidth>8063</sum_bandwidth> - <nb_hits_with_bandwidth>3</nb_hits_with_bandwidth> - <min_bandwidth>8063</min_bandwidth> - <max_bandwidth>8063</max_bandwidth> - <entry_nb_visits>3</entry_nb_visits> - <entry_nb_actions>3</entry_nb_actions> - <entry_sum_visit_length>0</entry_sum_visit_length> - <entry_bounce_count>3</entry_bounce_count> - <exit_nb_visits>3</exit_nb_visits> - <sum_daily_nb_uniq_visitors>3</sum_daily_nb_uniq_visitors> - <sum_daily_entry_nb_uniq_visitors>3</sum_daily_entry_nb_uniq_visitors> - <sum_daily_exit_nb_uniq_visitors>3</sum_daily_exit_nb_uniq_visitors> - <avg_bandwidth>2687</avg_bandwidth> - <avg_time_server>0.001</avg_time_server> - <avg_page_load_time>0.001</avg_page_load_time> - <avg_time_on_page>0</avg_time_on_page> - <bounce_rate>100%</bounce_rate> - <exit_rate>100%</exit_rate> - <url>http://piwik.net/</url> - <segment>exitPageUrl==http%253A%252F%252Fpiwik.net%252F</segment> - </row> - <row> <label>Citrix</label> <nb_visits>2</nb_visits> <nb_hits>2</nb_hits> diff --git a/tests/PHPUnit/System/expected/test_ImportLogs__Actions.getExitPageUrls_range.xml b/tests/PHPUnit/System/expected/test_ImportLogs__Actions.getExitPageUrls_range.xml index 9fd1140f34..2e283afb6e 100644 --- a/tests/PHPUnit/System/expected/test_ImportLogs__Actions.getExitPageUrls_range.xml +++ b/tests/PHPUnit/System/expected/test_ImportLogs__Actions.getExitPageUrls_range.xml @@ -4,7 +4,7 @@ <label>blog</label> <nb_visits>15</nb_visits> <nb_hits>18</nb_hits> - <sum_time_spent>166</sum_time_spent> + <sum_time_spent>60</sum_time_spent> <nb_hits_with_time_network>1</nb_hits_with_time_network> <min_time_network>0.01</min_time_network> <max_time_network>0.01</max_time_network> @@ -40,7 +40,7 @@ <avg_time_dom_completion>0.255</avg_time_dom_completion> <avg_time_on_load>0</avg_time_on_load> <avg_page_load_time>1.194</avg_page_load_time> - <avg_time_on_page>9</avg_time_on_page> + <avg_time_on_page>3</avg_time_on_page> <bounce_rate>93%</bounce_rate> <exit_rate>87%</exit_rate> <segment>pageUrl=^http%253A%252F%252Fpiwik.net%252Fblog</segment> @@ -49,7 +49,7 @@ <label>category</label> <nb_visits>12</nb_visits> <nb_hits>15</nb_hits> - <sum_time_spent>166</sum_time_spent> + <sum_time_spent>60</sum_time_spent> <nb_hits_with_time_network>0</nb_hits_with_time_network> <min_time_network /> <max_time_network /> @@ -77,7 +77,7 @@ <entry_sum_visit_length>54</entry_sum_visit_length> <entry_bounce_count>10</entry_bounce_count> <exit_nb_visits>10</exit_nb_visits> - <avg_time_on_page>11</avg_time_on_page> + <avg_time_on_page>4</avg_time_on_page> <bounce_rate>91%</bounce_rate> <exit_rate>83%</exit_rate> <segment>pageUrl=^http%253A%252F%252Fpiwik.net%252Fblog%252Fcategory</segment> @@ -86,7 +86,7 @@ <label>meta</label> <nb_visits>10</nb_visits> <nb_hits>12</nb_hits> - <sum_time_spent>151</sum_time_spent> + <sum_time_spent>52</sum_time_spent> <nb_hits_with_time_network>0</nb_hits_with_time_network> <min_time_network /> <max_time_network /> @@ -114,7 +114,7 @@ <entry_sum_visit_length>54</entry_sum_visit_length> <entry_bounce_count>9</entry_bounce_count> <exit_nb_visits>9</exit_nb_visits> - <avg_time_on_page>13</avg_time_on_page> + <avg_time_on_page>4</avg_time_on_page> <bounce_rate>90%</bounce_rate> <exit_rate>90%</exit_rate> <segment>pageUrl=^http%253A%252F%252Fpiwik.net%252Fblog%252Fcategory%252Fmeta</segment> @@ -123,7 +123,7 @@ <label>/index</label> <nb_visits>10</nb_visits> <nb_hits>12</nb_hits> - <sum_time_spent>151</sum_time_spent> + <sum_time_spent>52</sum_time_spent> <nb_hits_with_time_network>0</nb_hits_with_time_network> <min_time_network /> <max_time_network /> @@ -154,7 +154,7 @@ <sum_daily_nb_uniq_visitors>10</sum_daily_nb_uniq_visitors> <sum_daily_entry_nb_uniq_visitors>10</sum_daily_entry_nb_uniq_visitors> <sum_daily_exit_nb_uniq_visitors>9</sum_daily_exit_nb_uniq_visitors> - <avg_time_on_page>13</avg_time_on_page> + <avg_time_on_page>4</avg_time_on_page> <bounce_rate>90%</bounce_rate> <exit_rate>90%</exit_rate> <url>http://included1.com/blog/category/meta/</url> @@ -166,7 +166,7 @@ <label>community</label> <nb_visits>2</nb_visits> <nb_hits>3</nb_hits> - <sum_time_spent>15</sum_time_spent> + <sum_time_spent>8</sum_time_spent> <nb_hits_with_time_network>0</nb_hits_with_time_network> <min_time_network /> <max_time_network /> @@ -194,7 +194,7 @@ <entry_sum_visit_length>0</entry_sum_visit_length> <entry_bounce_count>1</entry_bounce_count> <exit_nb_visits>1</exit_nb_visits> - <avg_time_on_page>5</avg_time_on_page> + <avg_time_on_page>3</avg_time_on_page> <bounce_rate>100%</bounce_rate> <exit_rate>50%</exit_rate> <segment>pageUrl=^http%253A%252F%252Fpiwik.net%252Fblog%252Fcategory%252Fcommunity</segment> @@ -203,7 +203,7 @@ <label>/index</label> <nb_visits>2</nb_visits> <nb_hits>3</nb_hits> - <sum_time_spent>15</sum_time_spent> + <sum_time_spent>8</sum_time_spent> <nb_hits_with_time_network>0</nb_hits_with_time_network> <min_time_network /> <max_time_network /> @@ -234,7 +234,7 @@ <sum_daily_nb_uniq_visitors>2</sum_daily_nb_uniq_visitors> <sum_daily_entry_nb_uniq_visitors>1</sum_daily_entry_nb_uniq_visitors> <sum_daily_exit_nb_uniq_visitors>1</sum_daily_exit_nb_uniq_visitors> - <avg_time_on_page>5</avg_time_on_page> + <avg_time_on_page>3</avg_time_on_page> <bounce_rate>100%</bounce_rate> <exit_rate>50%</exit_rate> <url>http://piwik.net/blog/category/community/</url> @@ -1062,7 +1062,7 @@ <label>faq</label> <nb_visits>5</nb_visits> <nb_hits>7</nb_hits> - <sum_time_spent>52</sum_time_spent> + <sum_time_spent>26</sum_time_spent> <nb_hits_with_time_network>0</nb_hits_with_time_network> <min_time_network /> <max_time_network /> @@ -1098,7 +1098,7 @@ <avg_time_dom_completion>0</avg_time_dom_completion> <avg_time_on_load>0</avg_time_on_load> <avg_page_load_time>0.255</avg_page_load_time> - <avg_time_on_page>7</avg_time_on_page> + <avg_time_on_page>4</avg_time_on_page> <bounce_rate>100%</bounce_rate> <exit_rate>100%</exit_rate> <segment>pageUrl=^http%253A%252F%252Fpiwik.net%252Ffaq</segment> @@ -1107,7 +1107,7 @@ <label>/index</label> <nb_visits>3</nb_visits> <nb_hits>5</nb_hits> - <sum_time_spent>52</sum_time_spent> + <sum_time_spent>26</sum_time_spent> <nb_hits_with_time_network>0</nb_hits_with_time_network> <min_time_network /> <max_time_network /> @@ -1138,7 +1138,7 @@ <sum_daily_nb_uniq_visitors>3</sum_daily_nb_uniq_visitors> <sum_daily_entry_nb_uniq_visitors>2</sum_daily_entry_nb_uniq_visitors> <sum_daily_exit_nb_uniq_visitors>3</sum_daily_exit_nb_uniq_visitors> - <avg_time_on_page>10</avg_time_on_page> + <avg_time_on_page>5</avg_time_on_page> <bounce_rate>100%</bounce_rate> <exit_rate>100%</exit_rate> <url>http://piwik.net/faq/</url> @@ -1308,7 +1308,7 @@ </row> <row> <label>hello</label> - <nb_visits>4</nb_visits> + <nb_visits>3</nb_visits> <nb_hits>4</nb_hits> <sum_time_spent>0</sum_time_spent> <nb_hits_with_time_network>0</nb_hits_with_time_network> @@ -1333,11 +1333,11 @@ <nb_hits_with_bandwidth>0</nb_hits_with_bandwidth> <min_bandwidth /> <max_bandwidth /> - <entry_nb_visits>3</entry_nb_visits> + <entry_nb_visits>2</entry_nb_visits> <entry_nb_actions>4</entry_nb_actions> <entry_sum_visit_length>2</entry_sum_visit_length> - <entry_bounce_count>2</entry_bounce_count> - <exit_nb_visits>3</exit_nb_visits> + <entry_bounce_count>1</entry_bounce_count> + <exit_nb_visits>2</exit_nb_visits> <avg_bandwidth>0</avg_bandwidth> <avg_time_network>0</avg_time_network> <avg_time_server>0.359</avg_time_server> @@ -1347,12 +1347,12 @@ <avg_time_on_load>0</avg_time_on_load> <avg_page_load_time>0.359</avg_page_load_time> <avg_time_on_page>0</avg_time_on_page> - <bounce_rate>67%</bounce_rate> - <exit_rate>75%</exit_rate> + <bounce_rate>50%</bounce_rate> + <exit_rate>67%</exit_rate> <segment>pageUrl=^http%253A%252F%252Fpiwik.net%252Fhello</segment> <subtable> <row> - <label>from</label> + <label>world</label> <nb_visits>2</nb_visits> <nb_hits>2</nb_hits> <sum_time_spent>0</sum_time_spent> @@ -1378,19 +1378,99 @@ <nb_hits_with_bandwidth>0</nb_hits_with_bandwidth> <min_bandwidth /> <max_bandwidth /> - <entry_nb_visits>2</entry_nb_visits> - <entry_nb_actions>3</entry_nb_actions> - <entry_sum_visit_length>2</entry_sum_visit_length> + <entry_nb_visits>1</entry_nb_visits> + <entry_nb_actions>1</entry_nb_actions> + <entry_sum_visit_length>0</entry_sum_visit_length> <entry_bounce_count>1</entry_bounce_count> <exit_nb_visits>1</exit_nb_visits> <avg_time_on_page>0</avg_time_on_page> - <bounce_rate>50%</bounce_rate> + <bounce_rate>100%</bounce_rate> <exit_rate>50%</exit_rate> + <segment>pageUrl=^http%253A%252F%252Fpiwik.net%252Fhello%252Fworld</segment> + <subtable> + <row> + <label>/6,681965</label> + <nb_visits>2</nb_visits> + <nb_hits>2</nb_hits> + <sum_time_spent>0</sum_time_spent> + <nb_hits_with_time_network>0</nb_hits_with_time_network> + <min_time_network /> + <max_time_network /> + <nb_hits_with_time_server>2</nb_hits_with_time_server> + <min_time_server>0.3590</min_time_server> + <max_time_server>0.3590</max_time_server> + <nb_hits_with_time_transfer>0</nb_hits_with_time_transfer> + <min_time_transfer /> + <max_time_transfer /> + <nb_hits_with_time_dom_processing>0</nb_hits_with_time_dom_processing> + <min_time_dom_processing /> + <max_time_dom_processing /> + <nb_hits_with_time_dom_completion>0</nb_hits_with_time_dom_completion> + <min_time_dom_completion /> + <max_time_dom_completion /> + <nb_hits_with_time_on_load>0</nb_hits_with_time_on_load> + <min_time_on_load /> + <max_time_on_load /> + <sum_bandwidth>0</sum_bandwidth> + <nb_hits_with_bandwidth>0</nb_hits_with_bandwidth> + <min_bandwidth /> + <max_bandwidth /> + <entry_nb_visits>1</entry_nb_visits> + <entry_nb_actions>1</entry_nb_actions> + <entry_sum_visit_length>0</entry_sum_visit_length> + <entry_bounce_count>1</entry_bounce_count> + <exit_nb_visits>1</exit_nb_visits> + <sum_daily_nb_uniq_visitors>1</sum_daily_nb_uniq_visitors> + <sum_daily_entry_nb_uniq_visitors>1</sum_daily_entry_nb_uniq_visitors> + <sum_daily_exit_nb_uniq_visitors>1</sum_daily_exit_nb_uniq_visitors> + <avg_time_on_page>0</avg_time_on_page> + <bounce_rate>100%</bounce_rate> + <exit_rate>50%</exit_rate> + <url>http://hello.example.com/hello/world/6,681965</url> + <segment>exitPageUrl==http%253A%252F%252Fhello.example.com%252Fhello%252Fworld%252F6%252C681965</segment> + </row> + </subtable> + </row> + <row> + <label>from</label> + <nb_visits>1</nb_visits> + <nb_hits>2</nb_hits> + <sum_time_spent>0</sum_time_spent> + <nb_hits_with_time_network>0</nb_hits_with_time_network> + <min_time_network /> + <max_time_network /> + <nb_hits_with_time_server>2</nb_hits_with_time_server> + <min_time_server>0.359</min_time_server> + <max_time_server>0.359</max_time_server> + <nb_hits_with_time_transfer>0</nb_hits_with_time_transfer> + <min_time_transfer /> + <max_time_transfer /> + <nb_hits_with_time_dom_processing>0</nb_hits_with_time_dom_processing> + <min_time_dom_processing /> + <max_time_dom_processing /> + <nb_hits_with_time_dom_completion>0</nb_hits_with_time_dom_completion> + <min_time_dom_completion /> + <max_time_dom_completion /> + <nb_hits_with_time_on_load>0</nb_hits_with_time_on_load> + <min_time_on_load /> + <max_time_on_load /> + <sum_bandwidth>0</sum_bandwidth> + <nb_hits_with_bandwidth>0</nb_hits_with_bandwidth> + <min_bandwidth /> + <max_bandwidth /> + <entry_nb_visits>1</entry_nb_visits> + <entry_nb_actions>3</entry_nb_actions> + <entry_sum_visit_length>2</entry_sum_visit_length> + <entry_bounce_count>0</entry_bounce_count> + <exit_nb_visits>1</exit_nb_visits> + <avg_time_on_page>0</avg_time_on_page> + <bounce_rate>0%</bounce_rate> + <exit_rate>100%</exit_rate> <segment>pageUrl=^http%253A%252F%252Fpiwik.net%252Fhello%252Ffrom</segment> <subtable> <row> <label>another</label> - <nb_visits>2</nb_visits> + <nb_visits>1</nb_visits> <nb_hits>2</nb_hits> <sum_time_spent>0</sum_time_spent> <nb_hits_with_time_network>0</nb_hits_with_time_network> @@ -1415,19 +1495,19 @@ <nb_hits_with_bandwidth>0</nb_hits_with_bandwidth> <min_bandwidth /> <max_bandwidth /> - <entry_nb_visits>2</entry_nb_visits> + <entry_nb_visits>1</entry_nb_visits> <entry_nb_actions>3</entry_nb_actions> <entry_sum_visit_length>2</entry_sum_visit_length> - <entry_bounce_count>1</entry_bounce_count> + <entry_bounce_count>0</entry_bounce_count> <exit_nb_visits>1</exit_nb_visits> <avg_time_on_page>0</avg_time_on_page> - <bounce_rate>50%</bounce_rate> - <exit_rate>50%</exit_rate> + <bounce_rate>0%</bounce_rate> + <exit_rate>100%</exit_rate> <segment>pageUrl=^http%253A%252F%252Fpiwik.net%252Fhello%252Ffrom%252Fanother</segment> <subtable> <row> <label>world</label> - <nb_visits>2</nb_visits> + <nb_visits>1</nb_visits> <nb_hits>2</nb_hits> <sum_time_spent>0</sum_time_spent> <nb_hits_with_time_network>0</nb_hits_with_time_network> @@ -1452,19 +1532,19 @@ <nb_hits_with_bandwidth>0</nb_hits_with_bandwidth> <min_bandwidth /> <max_bandwidth /> - <entry_nb_visits>2</entry_nb_visits> + <entry_nb_visits>1</entry_nb_visits> <entry_nb_actions>3</entry_nb_actions> <entry_sum_visit_length>2</entry_sum_visit_length> - <entry_bounce_count>1</entry_bounce_count> + <entry_bounce_count>0</entry_bounce_count> <exit_nb_visits>1</exit_nb_visits> <avg_time_on_page>0</avg_time_on_page> - <bounce_rate>50%</bounce_rate> - <exit_rate>50%</exit_rate> + <bounce_rate>0%</bounce_rate> + <exit_rate>100%</exit_rate> <segment>pageUrl=^http%253A%252F%252Fpiwik.net%252Fhello%252Ffrom%252Fanother%252Fworld</segment> <subtable> <row> <label>/6,681965</label> - <nb_visits>2</nb_visits> + <nb_visits>1</nb_visits> <nb_hits>2</nb_hits> <sum_time_spent>0</sum_time_spent> <nb_hits_with_time_network>0</nb_hits_with_time_network> @@ -1489,17 +1569,17 @@ <nb_hits_with_bandwidth>0</nb_hits_with_bandwidth> <min_bandwidth /> <max_bandwidth /> - <entry_nb_visits>2</entry_nb_visits> + <entry_nb_visits>1</entry_nb_visits> <entry_nb_actions>3</entry_nb_actions> <entry_sum_visit_length>2</entry_sum_visit_length> - <entry_bounce_count>1</entry_bounce_count> + <entry_bounce_count>0</entry_bounce_count> <exit_nb_visits>1</exit_nb_visits> <sum_daily_nb_uniq_visitors>1</sum_daily_nb_uniq_visitors> <sum_daily_entry_nb_uniq_visitors>1</sum_daily_entry_nb_uniq_visitors> <sum_daily_exit_nb_uniq_visitors>1</sum_daily_exit_nb_uniq_visitors> <avg_time_on_page>0</avg_time_on_page> - <bounce_rate>50%</bounce_rate> - <exit_rate>50%</exit_rate> + <bounce_rate>0%</bounce_rate> + <exit_rate>100%</exit_rate> <url>http://hello.example.com/hello/from/another/world/6,681965</url> <segment>exitPageUrl==http%253A%252F%252Fhello.example.com%252Fhello%252Ffrom%252Fanother%252Fworld%252F6%252C681965</segment> </row> @@ -1509,86 +1589,6 @@ </row> </subtable> </row> - <row> - <label>world</label> - <nb_visits>2</nb_visits> - <nb_hits>2</nb_hits> - <sum_time_spent>0</sum_time_spent> - <nb_hits_with_time_network>0</nb_hits_with_time_network> - <min_time_network /> - <max_time_network /> - <nb_hits_with_time_server>2</nb_hits_with_time_server> - <min_time_server>0.359</min_time_server> - <max_time_server>0.359</max_time_server> - <nb_hits_with_time_transfer>0</nb_hits_with_time_transfer> - <min_time_transfer /> - <max_time_transfer /> - <nb_hits_with_time_dom_processing>0</nb_hits_with_time_dom_processing> - <min_time_dom_processing /> - <max_time_dom_processing /> - <nb_hits_with_time_dom_completion>0</nb_hits_with_time_dom_completion> - <min_time_dom_completion /> - <max_time_dom_completion /> - <nb_hits_with_time_on_load>0</nb_hits_with_time_on_load> - <min_time_on_load /> - <max_time_on_load /> - <sum_bandwidth>0</sum_bandwidth> - <nb_hits_with_bandwidth>0</nb_hits_with_bandwidth> - <min_bandwidth /> - <max_bandwidth /> - <entry_nb_visits>1</entry_nb_visits> - <entry_nb_actions>1</entry_nb_actions> - <entry_sum_visit_length>0</entry_sum_visit_length> - <entry_bounce_count>1</entry_bounce_count> - <exit_nb_visits>2</exit_nb_visits> - <avg_time_on_page>0</avg_time_on_page> - <bounce_rate>100%</bounce_rate> - <exit_rate>100%</exit_rate> - <segment>pageUrl=^http%253A%252F%252Fpiwik.net%252Fhello%252Fworld</segment> - <subtable> - <row> - <label>/6,681965</label> - <nb_visits>2</nb_visits> - <nb_hits>2</nb_hits> - <sum_time_spent>0</sum_time_spent> - <nb_hits_with_time_network>0</nb_hits_with_time_network> - <min_time_network /> - <max_time_network /> - <nb_hits_with_time_server>2</nb_hits_with_time_server> - <min_time_server>0.3590</min_time_server> - <max_time_server>0.3590</max_time_server> - <nb_hits_with_time_transfer>0</nb_hits_with_time_transfer> - <min_time_transfer /> - <max_time_transfer /> - <nb_hits_with_time_dom_processing>0</nb_hits_with_time_dom_processing> - <min_time_dom_processing /> - <max_time_dom_processing /> - <nb_hits_with_time_dom_completion>0</nb_hits_with_time_dom_completion> - <min_time_dom_completion /> - <max_time_dom_completion /> - <nb_hits_with_time_on_load>0</nb_hits_with_time_on_load> - <min_time_on_load /> - <max_time_on_load /> - <sum_bandwidth>0</sum_bandwidth> - <nb_hits_with_bandwidth>0</nb_hits_with_bandwidth> - <min_bandwidth /> - <max_bandwidth /> - <entry_nb_visits>1</entry_nb_visits> - <entry_nb_actions>1</entry_nb_actions> - <entry_sum_visit_length>0</entry_sum_visit_length> - <entry_bounce_count>1</entry_bounce_count> - <exit_nb_visits>2</exit_nb_visits> - <sum_daily_nb_uniq_visitors>1</sum_daily_nb_uniq_visitors> - <sum_daily_entry_nb_uniq_visitors>1</sum_daily_entry_nb_uniq_visitors> - <sum_daily_exit_nb_uniq_visitors>1</sum_daily_exit_nb_uniq_visitors> - <avg_time_on_page>0</avg_time_on_page> - <bounce_rate>100%</bounce_rate> - <exit_rate>100%</exit_rate> - <url>http://hello.example.com/hello/world/6,681965</url> - <segment>exitPageUrl==http%253A%252F%252Fhello.example.com%252Fhello%252Fworld%252F6%252C681965</segment> - </row> - </subtable> - </row> </subtable> </row> <row> diff --git a/tests/PHPUnit/System/expected/test_ImportLogs__Actions.getPageTitles_month.xml b/tests/PHPUnit/System/expected/test_ImportLogs__Actions.getPageTitles_month.xml index 67d82638b8..77d3f256e9 100644 --- a/tests/PHPUnit/System/expected/test_ImportLogs__Actions.getPageTitles_month.xml +++ b/tests/PHPUnit/System/expected/test_ImportLogs__Actions.getPageTitles_month.xml @@ -2,7 +2,7 @@ <result> <row> <label> Page Name not defined</label> - <nb_visits>33</nb_visits> + <nb_visits>32</nb_visits> <nb_hits>34</nb_hits> <sum_time_spent>0</sum_time_spent> <nb_hits_with_time_server>7</nb_hits_with_time_server> diff --git a/tests/PHPUnit/System/expected/test_ImportLogs__Actions.getPageTitles_range.xml b/tests/PHPUnit/System/expected/test_ImportLogs__Actions.getPageTitles_range.xml index a0f71bc829..d1534f9ecf 100644 --- a/tests/PHPUnit/System/expected/test_ImportLogs__Actions.getPageTitles_range.xml +++ b/tests/PHPUnit/System/expected/test_ImportLogs__Actions.getPageTitles_range.xml @@ -2,7 +2,7 @@ <result> <row> <label> Page Name not defined</label> - <nb_visits>34</nb_visits> + <nb_visits>33</nb_visits> <nb_hits>44</nb_hits> <sum_time_spent>0</sum_time_spent> <nb_hits_with_time_network>0</nb_hits_with_time_network> diff --git a/tests/PHPUnit/System/expected/test_ImportLogs__Actions.getPageUrls_day.xml b/tests/PHPUnit/System/expected/test_ImportLogs__Actions.getPageUrls_day.xml index 0f6d9a9916..b63c71979d 100644 --- a/tests/PHPUnit/System/expected/test_ImportLogs__Actions.getPageUrls_day.xml +++ b/tests/PHPUnit/System/expected/test_ImportLogs__Actions.getPageUrls_day.xml @@ -4,7 +4,7 @@ <label>blog</label> <nb_visits>2</nb_visits> <nb_hits>5</nb_hits> - <sum_time_spent>166</sum_time_spent> + <sum_time_spent>60</sum_time_spent> <nb_hits_with_time_server>5</nb_hits_with_time_server> <min_time_server>0.647</min_time_server> <max_time_server>1.447</max_time_server> @@ -19,7 +19,7 @@ <avg_bandwidth>0</avg_bandwidth> <avg_time_server>0.443</avg_time_server> <avg_page_load_time>0.443</avg_page_load_time> - <avg_time_on_page>33</avg_time_on_page> + <avg_time_on_page>12</avg_time_on_page> <bounce_rate>0%</bounce_rate> <exit_rate>0%</exit_rate> <segment>pageUrl=^http%253A%252F%252Fpiwik.net%252Fblog</segment> @@ -28,7 +28,7 @@ <label>category</label> <nb_visits>2</nb_visits> <nb_hits>5</nb_hits> - <sum_time_spent>166</sum_time_spent> + <sum_time_spent>60</sum_time_spent> <nb_hits_with_time_server>5</nb_hits_with_time_server> <min_time_server>0.647</min_time_server> <max_time_server>1.447</max_time_server> @@ -40,7 +40,7 @@ <entry_nb_actions>10</entry_nb_actions> <entry_sum_visit_length>54</entry_sum_visit_length> <entry_bounce_count>0</entry_bounce_count> - <avg_time_on_page>33</avg_time_on_page> + <avg_time_on_page>12</avg_time_on_page> <bounce_rate>0%</bounce_rate> <exit_rate>0%</exit_rate> <segment>pageUrl=^http%253A%252F%252Fpiwik.net%252Fblog%252Fcategory</segment> @@ -49,7 +49,7 @@ <label>community</label> <nb_visits>1</nb_visits> <nb_hits>2</nb_hits> - <sum_time_spent>15</sum_time_spent> + <sum_time_spent>8</sum_time_spent> <nb_hits_with_time_server>2</nb_hits_with_time_server> <min_time_server>0.624</min_time_server> <max_time_server>1.324</max_time_server> @@ -57,7 +57,7 @@ <nb_hits_with_bandwidth>0</nb_hits_with_bandwidth> <min_bandwidth /> <max_bandwidth /> - <avg_time_on_page>8</avg_time_on_page> + <avg_time_on_page>4</avg_time_on_page> <bounce_rate>0%</bounce_rate> <exit_rate>0%</exit_rate> <segment>pageUrl=^http%253A%252F%252Fpiwik.net%252Fblog%252Fcategory%252Fcommunity</segment> @@ -67,7 +67,7 @@ <nb_visits>1</nb_visits> <nb_uniq_visitors>1</nb_uniq_visitors> <nb_hits>2</nb_hits> - <sum_time_spent>15</sum_time_spent> + <sum_time_spent>8</sum_time_spent> <nb_hits_with_time_server>2</nb_hits_with_time_server> <min_time_server>0.6240</min_time_server> <max_time_server>1.3240</max_time_server> @@ -75,7 +75,7 @@ <nb_hits_with_bandwidth>0</nb_hits_with_bandwidth> <min_bandwidth /> <max_bandwidth /> - <avg_time_on_page>8</avg_time_on_page> + <avg_time_on_page>4</avg_time_on_page> <bounce_rate>0%</bounce_rate> <exit_rate>0%</exit_rate> <url>http://piwik.net/blog/category/community/</url> @@ -87,7 +87,7 @@ <label>meta</label> <nb_visits>1</nb_visits> <nb_hits>3</nb_hits> - <sum_time_spent>151</sum_time_spent> + <sum_time_spent>52</sum_time_spent> <nb_hits_with_time_server>3</nb_hits_with_time_server> <min_time_server>0.023</min_time_server> <max_time_server>0.123</max_time_server> @@ -99,7 +99,7 @@ <entry_nb_actions>10</entry_nb_actions> <entry_sum_visit_length>54</entry_sum_visit_length> <entry_bounce_count>0</entry_bounce_count> - <avg_time_on_page>50</avg_time_on_page> + <avg_time_on_page>17</avg_time_on_page> <bounce_rate>0%</bounce_rate> <exit_rate>0%</exit_rate> <segment>pageUrl=^http%253A%252F%252Fpiwik.net%252Fblog%252Fcategory%252Fmeta</segment> @@ -109,7 +109,7 @@ <nb_visits>1</nb_visits> <nb_uniq_visitors>1</nb_uniq_visitors> <nb_hits>3</nb_hits> - <sum_time_spent>151</sum_time_spent> + <sum_time_spent>52</sum_time_spent> <nb_hits_with_time_server>3</nb_hits_with_time_server> <min_time_server>0.0230</min_time_server> <max_time_server>0.1230</max_time_server> @@ -122,7 +122,7 @@ <entry_nb_actions>10</entry_nb_actions> <entry_sum_visit_length>54</entry_sum_visit_length> <entry_bounce_count>0</entry_bounce_count> - <avg_time_on_page>50</avg_time_on_page> + <avg_time_on_page>17</avg_time_on_page> <bounce_rate>0%</bounce_rate> <exit_rate>0%</exit_rate> <url>http://piwik.net/blog/category/meta/</url> @@ -198,7 +198,7 @@ <label>faq</label> <nb_visits>1</nb_visits> <nb_hits>3</nb_hits> - <sum_time_spent>52</sum_time_spent> + <sum_time_spent>26</sum_time_spent> <nb_hits_with_time_server>3</nb_hits_with_time_server> <min_time_server>0.234</min_time_server> <max_time_server>0.294</max_time_server> @@ -210,7 +210,7 @@ <avg_bandwidth>0</avg_bandwidth> <avg_time_server>0.255</avg_time_server> <avg_page_load_time>0.255</avg_page_load_time> - <avg_time_on_page>17</avg_time_on_page> + <avg_time_on_page>9</avg_time_on_page> <bounce_rate>0%</bounce_rate> <exit_rate>100%</exit_rate> <segment>pageUrl=^http%253A%252F%252Fpiwik.net%252Ffaq</segment> @@ -220,7 +220,7 @@ <nb_visits>1</nb_visits> <nb_uniq_visitors>1</nb_uniq_visitors> <nb_hits>3</nb_hits> - <sum_time_spent>52</sum_time_spent> + <sum_time_spent>26</sum_time_spent> <nb_hits_with_time_server>3</nb_hits_with_time_server> <min_time_server>0.2340</min_time_server> <max_time_server>0.2940</max_time_server> @@ -230,7 +230,7 @@ <max_bandwidth /> <exit_nb_uniq_visitors>1</exit_nb_uniq_visitors> <exit_nb_visits>1</exit_nb_visits> - <avg_time_on_page>17</avg_time_on_page> + <avg_time_on_page>9</avg_time_on_page> <bounce_rate>0%</bounce_rate> <exit_rate>100%</exit_rate> <url>http://piwik.net/faq/</url> diff --git a/tests/PHPUnit/System/expected/test_ImportLogs__Actions.getPageUrls_month.xml b/tests/PHPUnit/System/expected/test_ImportLogs__Actions.getPageUrls_month.xml index c4b8cdb73f..70fea4b274 100644 --- a/tests/PHPUnit/System/expected/test_ImportLogs__Actions.getPageUrls_month.xml +++ b/tests/PHPUnit/System/expected/test_ImportLogs__Actions.getPageUrls_month.xml @@ -556,8 +556,37 @@ </subtable> </row> <row> + <label>/index</label> + <nb_visits>3</nb_visits> + <nb_hits>3</nb_hits> + <sum_time_spent>0</sum_time_spent> + <nb_hits_with_time_server>1</nb_hits_with_time_server> + <min_time_server>0.001</min_time_server> + <max_time_server>0.001</max_time_server> + <sum_bandwidth>8063</sum_bandwidth> + <nb_hits_with_bandwidth>3</nb_hits_with_bandwidth> + <min_bandwidth>8063</min_bandwidth> + <max_bandwidth>8063</max_bandwidth> + <entry_nb_visits>3</entry_nb_visits> + <entry_nb_actions>3</entry_nb_actions> + <entry_sum_visit_length>0</entry_sum_visit_length> + <entry_bounce_count>3</entry_bounce_count> + <exit_nb_visits>3</exit_nb_visits> + <sum_daily_nb_uniq_visitors>3</sum_daily_nb_uniq_visitors> + <sum_daily_entry_nb_uniq_visitors>3</sum_daily_entry_nb_uniq_visitors> + <sum_daily_exit_nb_uniq_visitors>3</sum_daily_exit_nb_uniq_visitors> + <avg_bandwidth>2687</avg_bandwidth> + <avg_time_server>0.001</avg_time_server> + <avg_page_load_time>0.001</avg_page_load_time> + <avg_time_on_page>0</avg_time_on_page> + <bounce_rate>100%</bounce_rate> + <exit_rate>100%</exit_rate> + <url>http://piwik.net/</url> + <segment>pageUrl==http%253A%252F%252Fpiwik.net%252F</segment> + </row> + <row> <label>hello</label> - <nb_visits>4</nb_visits> + <nb_visits>3</nb_visits> <nb_hits>4</nb_hits> <sum_time_spent>0</sum_time_spent> <nb_hits_with_time_server>4</nb_hits_with_time_server> @@ -567,21 +596,21 @@ <nb_hits_with_bandwidth>0</nb_hits_with_bandwidth> <min_bandwidth /> <max_bandwidth /> - <entry_nb_visits>3</entry_nb_visits> + <entry_nb_visits>2</entry_nb_visits> <entry_nb_actions>4</entry_nb_actions> <entry_sum_visit_length>2</entry_sum_visit_length> - <entry_bounce_count>2</entry_bounce_count> - <exit_nb_visits>3</exit_nb_visits> + <entry_bounce_count>1</entry_bounce_count> + <exit_nb_visits>2</exit_nb_visits> <avg_bandwidth>0</avg_bandwidth> <avg_time_server>0.359</avg_time_server> <avg_page_load_time>0.359</avg_page_load_time> <avg_time_on_page>0</avg_time_on_page> - <bounce_rate>67%</bounce_rate> - <exit_rate>75%</exit_rate> + <bounce_rate>50%</bounce_rate> + <exit_rate>67%</exit_rate> <segment>pageUrl=^http%253A%252F%252Fpiwik.net%252Fhello</segment> <subtable> <row> - <label>from</label> + <label>world</label> <nb_visits>2</nb_visits> <nb_hits>2</nb_hits> <sum_time_spent>0</sum_time_spent> @@ -592,19 +621,69 @@ <nb_hits_with_bandwidth>0</nb_hits_with_bandwidth> <min_bandwidth /> <max_bandwidth /> - <entry_nb_visits>2</entry_nb_visits> - <entry_nb_actions>3</entry_nb_actions> - <entry_sum_visit_length>2</entry_sum_visit_length> + <entry_nb_visits>1</entry_nb_visits> + <entry_nb_actions>1</entry_nb_actions> + <entry_sum_visit_length>0</entry_sum_visit_length> <entry_bounce_count>1</entry_bounce_count> <exit_nb_visits>1</exit_nb_visits> <avg_time_on_page>0</avg_time_on_page> - <bounce_rate>50%</bounce_rate> + <bounce_rate>100%</bounce_rate> <exit_rate>50%</exit_rate> + <segment>pageUrl=^http%253A%252F%252Fpiwik.net%252Fhello%252Fworld</segment> + <subtable> + <row> + <label>/6,681965</label> + <nb_visits>2</nb_visits> + <nb_hits>2</nb_hits> + <sum_time_spent>0</sum_time_spent> + <nb_hits_with_time_server>2</nb_hits_with_time_server> + <min_time_server>0.3590</min_time_server> + <max_time_server>0.3590</max_time_server> + <sum_bandwidth>0</sum_bandwidth> + <nb_hits_with_bandwidth>0</nb_hits_with_bandwidth> + <min_bandwidth /> + <max_bandwidth /> + <entry_nb_visits>1</entry_nb_visits> + <entry_nb_actions>1</entry_nb_actions> + <entry_sum_visit_length>0</entry_sum_visit_length> + <entry_bounce_count>1</entry_bounce_count> + <exit_nb_visits>1</exit_nb_visits> + <sum_daily_nb_uniq_visitors>1</sum_daily_nb_uniq_visitors> + <sum_daily_entry_nb_uniq_visitors>1</sum_daily_entry_nb_uniq_visitors> + <sum_daily_exit_nb_uniq_visitors>1</sum_daily_exit_nb_uniq_visitors> + <avg_time_on_page>0</avg_time_on_page> + <bounce_rate>100%</bounce_rate> + <exit_rate>50%</exit_rate> + <url>http://hello.example.com/hello/world/6,681965</url> + <segment>pageUrl==http%253A%252F%252Fhello.example.com%252Fhello%252Fworld%252F6%252C681965</segment> + </row> + </subtable> + </row> + <row> + <label>from</label> + <nb_visits>1</nb_visits> + <nb_hits>2</nb_hits> + <sum_time_spent>0</sum_time_spent> + <nb_hits_with_time_server>2</nb_hits_with_time_server> + <min_time_server>0.359</min_time_server> + <max_time_server>0.359</max_time_server> + <sum_bandwidth>0</sum_bandwidth> + <nb_hits_with_bandwidth>0</nb_hits_with_bandwidth> + <min_bandwidth /> + <max_bandwidth /> + <entry_nb_visits>1</entry_nb_visits> + <entry_nb_actions>3</entry_nb_actions> + <entry_sum_visit_length>2</entry_sum_visit_length> + <entry_bounce_count>0</entry_bounce_count> + <exit_nb_visits>1</exit_nb_visits> + <avg_time_on_page>0</avg_time_on_page> + <bounce_rate>0%</bounce_rate> + <exit_rate>100%</exit_rate> <segment>pageUrl=^http%253A%252F%252Fpiwik.net%252Fhello%252Ffrom</segment> <subtable> <row> <label>another</label> - <nb_visits>2</nb_visits> + <nb_visits>1</nb_visits> <nb_hits>2</nb_hits> <sum_time_spent>0</sum_time_spent> <nb_hits_with_time_server>2</nb_hits_with_time_server> @@ -614,19 +693,19 @@ <nb_hits_with_bandwidth>0</nb_hits_with_bandwidth> <min_bandwidth /> <max_bandwidth /> - <entry_nb_visits>2</entry_nb_visits> + <entry_nb_visits>1</entry_nb_visits> <entry_nb_actions>3</entry_nb_actions> <entry_sum_visit_length>2</entry_sum_visit_length> - <entry_bounce_count>1</entry_bounce_count> + <entry_bounce_count>0</entry_bounce_count> <exit_nb_visits>1</exit_nb_visits> <avg_time_on_page>0</avg_time_on_page> - <bounce_rate>50%</bounce_rate> - <exit_rate>50%</exit_rate> + <bounce_rate>0%</bounce_rate> + <exit_rate>100%</exit_rate> <segment>pageUrl=^http%253A%252F%252Fpiwik.net%252Fhello%252Ffrom%252Fanother</segment> <subtable> <row> <label>world</label> - <nb_visits>2</nb_visits> + <nb_visits>1</nb_visits> <nb_hits>2</nb_hits> <sum_time_spent>0</sum_time_spent> <nb_hits_with_time_server>2</nb_hits_with_time_server> @@ -636,19 +715,19 @@ <nb_hits_with_bandwidth>0</nb_hits_with_bandwidth> <min_bandwidth /> <max_bandwidth /> - <entry_nb_visits>2</entry_nb_visits> + <entry_nb_visits>1</entry_nb_visits> <entry_nb_actions>3</entry_nb_actions> <entry_sum_visit_length>2</entry_sum_visit_length> - <entry_bounce_count>1</entry_bounce_count> + <entry_bounce_count>0</entry_bounce_count> <exit_nb_visits>1</exit_nb_visits> <avg_time_on_page>0</avg_time_on_page> - <bounce_rate>50%</bounce_rate> - <exit_rate>50%</exit_rate> + <bounce_rate>0%</bounce_rate> + <exit_rate>100%</exit_rate> <segment>pageUrl=^http%253A%252F%252Fpiwik.net%252Fhello%252Ffrom%252Fanother%252Fworld</segment> <subtable> <row> <label>/6,681965</label> - <nb_visits>2</nb_visits> + <nb_visits>1</nb_visits> <nb_hits>2</nb_hits> <sum_time_spent>0</sum_time_spent> <nb_hits_with_time_server>2</nb_hits_with_time_server> @@ -658,17 +737,17 @@ <nb_hits_with_bandwidth>0</nb_hits_with_bandwidth> <min_bandwidth /> <max_bandwidth /> - <entry_nb_visits>2</entry_nb_visits> + <entry_nb_visits>1</entry_nb_visits> <entry_nb_actions>3</entry_nb_actions> <entry_sum_visit_length>2</entry_sum_visit_length> - <entry_bounce_count>1</entry_bounce_count> + <entry_bounce_count>0</entry_bounce_count> <exit_nb_visits>1</exit_nb_visits> <sum_daily_nb_uniq_visitors>1</sum_daily_nb_uniq_visitors> <sum_daily_entry_nb_uniq_visitors>1</sum_daily_entry_nb_uniq_visitors> <sum_daily_exit_nb_uniq_visitors>1</sum_daily_exit_nb_uniq_visitors> <avg_time_on_page>0</avg_time_on_page> - <bounce_rate>50%</bounce_rate> - <exit_rate>50%</exit_rate> + <bounce_rate>0%</bounce_rate> + <exit_rate>100%</exit_rate> <url>http://hello.example.com/hello/from/another/world/6,681965</url> <segment>pageUrl==http%253A%252F%252Fhello.example.com%252Fhello%252Ffrom%252Fanother%252Fworld%252F6%252C681965</segment> </row> @@ -678,88 +757,9 @@ </row> </subtable> </row> - <row> - <label>world</label> - <nb_visits>2</nb_visits> - <nb_hits>2</nb_hits> - <sum_time_spent>0</sum_time_spent> - <nb_hits_with_time_server>2</nb_hits_with_time_server> - <min_time_server>0.359</min_time_server> - <max_time_server>0.359</max_time_server> - <sum_bandwidth>0</sum_bandwidth> - <nb_hits_with_bandwidth>0</nb_hits_with_bandwidth> - <min_bandwidth /> - <max_bandwidth /> - <entry_nb_visits>1</entry_nb_visits> - <entry_nb_actions>1</entry_nb_actions> - <entry_sum_visit_length>0</entry_sum_visit_length> - <entry_bounce_count>1</entry_bounce_count> - <exit_nb_visits>2</exit_nb_visits> - <avg_time_on_page>0</avg_time_on_page> - <bounce_rate>100%</bounce_rate> - <exit_rate>100%</exit_rate> - <segment>pageUrl=^http%253A%252F%252Fpiwik.net%252Fhello%252Fworld</segment> - <subtable> - <row> - <label>/6,681965</label> - <nb_visits>2</nb_visits> - <nb_hits>2</nb_hits> - <sum_time_spent>0</sum_time_spent> - <nb_hits_with_time_server>2</nb_hits_with_time_server> - <min_time_server>0.3590</min_time_server> - <max_time_server>0.3590</max_time_server> - <sum_bandwidth>0</sum_bandwidth> - <nb_hits_with_bandwidth>0</nb_hits_with_bandwidth> - <min_bandwidth /> - <max_bandwidth /> - <entry_nb_visits>1</entry_nb_visits> - <entry_nb_actions>1</entry_nb_actions> - <entry_sum_visit_length>0</entry_sum_visit_length> - <entry_bounce_count>1</entry_bounce_count> - <exit_nb_visits>2</exit_nb_visits> - <sum_daily_nb_uniq_visitors>1</sum_daily_nb_uniq_visitors> - <sum_daily_entry_nb_uniq_visitors>1</sum_daily_entry_nb_uniq_visitors> - <sum_daily_exit_nb_uniq_visitors>1</sum_daily_exit_nb_uniq_visitors> - <avg_time_on_page>0</avg_time_on_page> - <bounce_rate>100%</bounce_rate> - <exit_rate>100%</exit_rate> - <url>http://hello.example.com/hello/world/6,681965</url> - <segment>pageUrl==http%253A%252F%252Fhello.example.com%252Fhello%252Fworld%252F6%252C681965</segment> - </row> - </subtable> - </row> </subtable> </row> <row> - <label>/index</label> - <nb_visits>3</nb_visits> - <nb_hits>3</nb_hits> - <sum_time_spent>0</sum_time_spent> - <nb_hits_with_time_server>1</nb_hits_with_time_server> - <min_time_server>0.001</min_time_server> - <max_time_server>0.001</max_time_server> - <sum_bandwidth>8063</sum_bandwidth> - <nb_hits_with_bandwidth>3</nb_hits_with_bandwidth> - <min_bandwidth>8063</min_bandwidth> - <max_bandwidth>8063</max_bandwidth> - <entry_nb_visits>3</entry_nb_visits> - <entry_nb_actions>3</entry_nb_actions> - <entry_sum_visit_length>0</entry_sum_visit_length> - <entry_bounce_count>3</entry_bounce_count> - <exit_nb_visits>3</exit_nb_visits> - <sum_daily_nb_uniq_visitors>3</sum_daily_nb_uniq_visitors> - <sum_daily_entry_nb_uniq_visitors>3</sum_daily_entry_nb_uniq_visitors> - <sum_daily_exit_nb_uniq_visitors>3</sum_daily_exit_nb_uniq_visitors> - <avg_bandwidth>2687</avg_bandwidth> - <avg_time_server>0.001</avg_time_server> - <avg_page_load_time>0.001</avg_page_load_time> - <avg_time_on_page>0</avg_time_on_page> - <bounce_rate>100%</bounce_rate> - <exit_rate>100%</exit_rate> - <url>http://piwik.net/</url> - <segment>pageUrl==http%253A%252F%252Fpiwik.net%252F</segment> - </row> - <row> <label>Citrix</label> <nb_visits>2</nb_visits> <nb_hits>2</nb_hits> diff --git a/tests/PHPUnit/System/expected/test_ImportLogs__Actions.getPageUrls_range.xml b/tests/PHPUnit/System/expected/test_ImportLogs__Actions.getPageUrls_range.xml index 008cca4d72..8dae7cc0a6 100644 --- a/tests/PHPUnit/System/expected/test_ImportLogs__Actions.getPageUrls_range.xml +++ b/tests/PHPUnit/System/expected/test_ImportLogs__Actions.getPageUrls_range.xml @@ -4,7 +4,7 @@ <label>blog</label> <nb_visits>15</nb_visits> <nb_hits>18</nb_hits> - <sum_time_spent>166</sum_time_spent> + <sum_time_spent>60</sum_time_spent> <nb_hits_with_time_network>1</nb_hits_with_time_network> <min_time_network>0.01</min_time_network> <max_time_network>0.01</max_time_network> @@ -40,7 +40,7 @@ <avg_time_dom_completion>0.255</avg_time_dom_completion> <avg_time_on_load>0</avg_time_on_load> <avg_page_load_time>1.194</avg_page_load_time> - <avg_time_on_page>9</avg_time_on_page> + <avg_time_on_page>3</avg_time_on_page> <bounce_rate>93%</bounce_rate> <exit_rate>87%</exit_rate> <segment>pageUrl=^http%253A%252F%252Fpiwik.net%252Fblog</segment> @@ -49,7 +49,7 @@ <label>category</label> <nb_visits>12</nb_visits> <nb_hits>15</nb_hits> - <sum_time_spent>166</sum_time_spent> + <sum_time_spent>60</sum_time_spent> <nb_hits_with_time_network>0</nb_hits_with_time_network> <min_time_network /> <max_time_network /> @@ -77,7 +77,7 @@ <entry_sum_visit_length>54</entry_sum_visit_length> <entry_bounce_count>10</entry_bounce_count> <exit_nb_visits>10</exit_nb_visits> - <avg_time_on_page>11</avg_time_on_page> + <avg_time_on_page>4</avg_time_on_page> <bounce_rate>91%</bounce_rate> <exit_rate>83%</exit_rate> <segment>pageUrl=^http%253A%252F%252Fpiwik.net%252Fblog%252Fcategory</segment> @@ -86,7 +86,7 @@ <label>meta</label> <nb_visits>10</nb_visits> <nb_hits>12</nb_hits> - <sum_time_spent>151</sum_time_spent> + <sum_time_spent>52</sum_time_spent> <nb_hits_with_time_network>0</nb_hits_with_time_network> <min_time_network /> <max_time_network /> @@ -114,7 +114,7 @@ <entry_sum_visit_length>54</entry_sum_visit_length> <entry_bounce_count>9</entry_bounce_count> <exit_nb_visits>9</exit_nb_visits> - <avg_time_on_page>13</avg_time_on_page> + <avg_time_on_page>4</avg_time_on_page> <bounce_rate>90%</bounce_rate> <exit_rate>90%</exit_rate> <segment>pageUrl=^http%253A%252F%252Fpiwik.net%252Fblog%252Fcategory%252Fmeta</segment> @@ -123,7 +123,7 @@ <label>/index</label> <nb_visits>10</nb_visits> <nb_hits>12</nb_hits> - <sum_time_spent>151</sum_time_spent> + <sum_time_spent>52</sum_time_spent> <nb_hits_with_time_network>0</nb_hits_with_time_network> <min_time_network /> <max_time_network /> @@ -154,7 +154,7 @@ <sum_daily_nb_uniq_visitors>10</sum_daily_nb_uniq_visitors> <sum_daily_entry_nb_uniq_visitors>10</sum_daily_entry_nb_uniq_visitors> <sum_daily_exit_nb_uniq_visitors>9</sum_daily_exit_nb_uniq_visitors> - <avg_time_on_page>13</avg_time_on_page> + <avg_time_on_page>4</avg_time_on_page> <bounce_rate>90%</bounce_rate> <exit_rate>90%</exit_rate> <url>http://included1.com/blog/category/meta/</url> @@ -166,7 +166,7 @@ <label>community</label> <nb_visits>2</nb_visits> <nb_hits>3</nb_hits> - <sum_time_spent>15</sum_time_spent> + <sum_time_spent>8</sum_time_spent> <nb_hits_with_time_network>0</nb_hits_with_time_network> <min_time_network /> <max_time_network /> @@ -194,7 +194,7 @@ <entry_sum_visit_length>0</entry_sum_visit_length> <entry_bounce_count>1</entry_bounce_count> <exit_nb_visits>1</exit_nb_visits> - <avg_time_on_page>5</avg_time_on_page> + <avg_time_on_page>3</avg_time_on_page> <bounce_rate>100%</bounce_rate> <exit_rate>50%</exit_rate> <segment>pageUrl=^http%253A%252F%252Fpiwik.net%252Fblog%252Fcategory%252Fcommunity</segment> @@ -203,7 +203,7 @@ <label>/index</label> <nb_visits>2</nb_visits> <nb_hits>3</nb_hits> - <sum_time_spent>15</sum_time_spent> + <sum_time_spent>8</sum_time_spent> <nb_hits_with_time_network>0</nb_hits_with_time_network> <min_time_network /> <max_time_network /> @@ -234,7 +234,7 @@ <sum_daily_nb_uniq_visitors>2</sum_daily_nb_uniq_visitors> <sum_daily_entry_nb_uniq_visitors>1</sum_daily_entry_nb_uniq_visitors> <sum_daily_exit_nb_uniq_visitors>1</sum_daily_exit_nb_uniq_visitors> - <avg_time_on_page>5</avg_time_on_page> + <avg_time_on_page>3</avg_time_on_page> <bounce_rate>100%</bounce_rate> <exit_rate>50%</exit_rate> <url>http://piwik.net/blog/category/community/</url> @@ -1062,7 +1062,7 @@ <label>faq</label> <nb_visits>5</nb_visits> <nb_hits>7</nb_hits> - <sum_time_spent>52</sum_time_spent> + <sum_time_spent>26</sum_time_spent> <nb_hits_with_time_network>0</nb_hits_with_time_network> <min_time_network /> <max_time_network /> @@ -1098,7 +1098,7 @@ <avg_time_dom_completion>0</avg_time_dom_completion> <avg_time_on_load>0</avg_time_on_load> <avg_page_load_time>0.255</avg_page_load_time> - <avg_time_on_page>7</avg_time_on_page> + <avg_time_on_page>4</avg_time_on_page> <bounce_rate>100%</bounce_rate> <exit_rate>100%</exit_rate> <segment>pageUrl=^http%253A%252F%252Fpiwik.net%252Ffaq</segment> @@ -1107,7 +1107,7 @@ <label>/index</label> <nb_visits>3</nb_visits> <nb_hits>5</nb_hits> - <sum_time_spent>52</sum_time_spent> + <sum_time_spent>26</sum_time_spent> <nb_hits_with_time_network>0</nb_hits_with_time_network> <min_time_network /> <max_time_network /> @@ -1138,7 +1138,7 @@ <sum_daily_nb_uniq_visitors>3</sum_daily_nb_uniq_visitors> <sum_daily_entry_nb_uniq_visitors>2</sum_daily_entry_nb_uniq_visitors> <sum_daily_exit_nb_uniq_visitors>3</sum_daily_exit_nb_uniq_visitors> - <avg_time_on_page>10</avg_time_on_page> + <avg_time_on_page>5</avg_time_on_page> <bounce_rate>100%</bounce_rate> <exit_rate>100%</exit_rate> <url>http://piwik.net/faq/</url> @@ -1308,7 +1308,7 @@ </row> <row> <label>hello</label> - <nb_visits>4</nb_visits> + <nb_visits>3</nb_visits> <nb_hits>4</nb_hits> <sum_time_spent>0</sum_time_spent> <nb_hits_with_time_network>0</nb_hits_with_time_network> @@ -1333,11 +1333,11 @@ <nb_hits_with_bandwidth>0</nb_hits_with_bandwidth> <min_bandwidth /> <max_bandwidth /> - <entry_nb_visits>3</entry_nb_visits> + <entry_nb_visits>2</entry_nb_visits> <entry_nb_actions>4</entry_nb_actions> <entry_sum_visit_length>2</entry_sum_visit_length> - <entry_bounce_count>2</entry_bounce_count> - <exit_nb_visits>3</exit_nb_visits> + <entry_bounce_count>1</entry_bounce_count> + <exit_nb_visits>2</exit_nb_visits> <avg_bandwidth>0</avg_bandwidth> <avg_time_network>0</avg_time_network> <avg_time_server>0.359</avg_time_server> @@ -1347,12 +1347,12 @@ <avg_time_on_load>0</avg_time_on_load> <avg_page_load_time>0.359</avg_page_load_time> <avg_time_on_page>0</avg_time_on_page> - <bounce_rate>67%</bounce_rate> - <exit_rate>75%</exit_rate> + <bounce_rate>50%</bounce_rate> + <exit_rate>67%</exit_rate> <segment>pageUrl=^http%253A%252F%252Fpiwik.net%252Fhello</segment> <subtable> <row> - <label>from</label> + <label>world</label> <nb_visits>2</nb_visits> <nb_hits>2</nb_hits> <sum_time_spent>0</sum_time_spent> @@ -1378,19 +1378,99 @@ <nb_hits_with_bandwidth>0</nb_hits_with_bandwidth> <min_bandwidth /> <max_bandwidth /> - <entry_nb_visits>2</entry_nb_visits> - <entry_nb_actions>3</entry_nb_actions> - <entry_sum_visit_length>2</entry_sum_visit_length> + <entry_nb_visits>1</entry_nb_visits> + <entry_nb_actions>1</entry_nb_actions> + <entry_sum_visit_length>0</entry_sum_visit_length> <entry_bounce_count>1</entry_bounce_count> <exit_nb_visits>1</exit_nb_visits> <avg_time_on_page>0</avg_time_on_page> - <bounce_rate>50%</bounce_rate> + <bounce_rate>100%</bounce_rate> <exit_rate>50%</exit_rate> + <segment>pageUrl=^http%253A%252F%252Fpiwik.net%252Fhello%252Fworld</segment> + <subtable> + <row> + <label>/6,681965</label> + <nb_visits>2</nb_visits> + <nb_hits>2</nb_hits> + <sum_time_spent>0</sum_time_spent> + <nb_hits_with_time_network>0</nb_hits_with_time_network> + <min_time_network /> + <max_time_network /> + <nb_hits_with_time_server>2</nb_hits_with_time_server> + <min_time_server>0.3590</min_time_server> + <max_time_server>0.3590</max_time_server> + <nb_hits_with_time_transfer>0</nb_hits_with_time_transfer> + <min_time_transfer /> + <max_time_transfer /> + <nb_hits_with_time_dom_processing>0</nb_hits_with_time_dom_processing> + <min_time_dom_processing /> + <max_time_dom_processing /> + <nb_hits_with_time_dom_completion>0</nb_hits_with_time_dom_completion> + <min_time_dom_completion /> + <max_time_dom_completion /> + <nb_hits_with_time_on_load>0</nb_hits_with_time_on_load> + <min_time_on_load /> + <max_time_on_load /> + <sum_bandwidth>0</sum_bandwidth> + <nb_hits_with_bandwidth>0</nb_hits_with_bandwidth> + <min_bandwidth /> + <max_bandwidth /> + <entry_nb_visits>1</entry_nb_visits> + <entry_nb_actions>1</entry_nb_actions> + <entry_sum_visit_length>0</entry_sum_visit_length> + <entry_bounce_count>1</entry_bounce_count> + <exit_nb_visits>1</exit_nb_visits> + <sum_daily_nb_uniq_visitors>1</sum_daily_nb_uniq_visitors> + <sum_daily_entry_nb_uniq_visitors>1</sum_daily_entry_nb_uniq_visitors> + <sum_daily_exit_nb_uniq_visitors>1</sum_daily_exit_nb_uniq_visitors> + <avg_time_on_page>0</avg_time_on_page> + <bounce_rate>100%</bounce_rate> + <exit_rate>50%</exit_rate> + <url>http://hello.example.com/hello/world/6,681965</url> + <segment>pageUrl==http%253A%252F%252Fhello.example.com%252Fhello%252Fworld%252F6%252C681965</segment> + </row> + </subtable> + </row> + <row> + <label>from</label> + <nb_visits>1</nb_visits> + <nb_hits>2</nb_hits> + <sum_time_spent>0</sum_time_spent> + <nb_hits_with_time_network>0</nb_hits_with_time_network> + <min_time_network /> + <max_time_network /> + <nb_hits_with_time_server>2</nb_hits_with_time_server> + <min_time_server>0.359</min_time_server> + <max_time_server>0.359</max_time_server> + <nb_hits_with_time_transfer>0</nb_hits_with_time_transfer> + <min_time_transfer /> + <max_time_transfer /> + <nb_hits_with_time_dom_processing>0</nb_hits_with_time_dom_processing> + <min_time_dom_processing /> + <max_time_dom_processing /> + <nb_hits_with_time_dom_completion>0</nb_hits_with_time_dom_completion> + <min_time_dom_completion /> + <max_time_dom_completion /> + <nb_hits_with_time_on_load>0</nb_hits_with_time_on_load> + <min_time_on_load /> + <max_time_on_load /> + <sum_bandwidth>0</sum_bandwidth> + <nb_hits_with_bandwidth>0</nb_hits_with_bandwidth> + <min_bandwidth /> + <max_bandwidth /> + <entry_nb_visits>1</entry_nb_visits> + <entry_nb_actions>3</entry_nb_actions> + <entry_sum_visit_length>2</entry_sum_visit_length> + <entry_bounce_count>0</entry_bounce_count> + <exit_nb_visits>1</exit_nb_visits> + <avg_time_on_page>0</avg_time_on_page> + <bounce_rate>0%</bounce_rate> + <exit_rate>100%</exit_rate> <segment>pageUrl=^http%253A%252F%252Fpiwik.net%252Fhello%252Ffrom</segment> <subtable> <row> <label>another</label> - <nb_visits>2</nb_visits> + <nb_visits>1</nb_visits> <nb_hits>2</nb_hits> <sum_time_spent>0</sum_time_spent> <nb_hits_with_time_network>0</nb_hits_with_time_network> @@ -1415,19 +1495,19 @@ <nb_hits_with_bandwidth>0</nb_hits_with_bandwidth> <min_bandwidth /> <max_bandwidth /> - <entry_nb_visits>2</entry_nb_visits> + <entry_nb_visits>1</entry_nb_visits> <entry_nb_actions>3</entry_nb_actions> <entry_sum_visit_length>2</entry_sum_visit_length> - <entry_bounce_count>1</entry_bounce_count> + <entry_bounce_count>0</entry_bounce_count> <exit_nb_visits>1</exit_nb_visits> <avg_time_on_page>0</avg_time_on_page> - <bounce_rate>50%</bounce_rate> - <exit_rate>50%</exit_rate> + <bounce_rate>0%</bounce_rate> + <exit_rate>100%</exit_rate> <segment>pageUrl=^http%253A%252F%252Fpiwik.net%252Fhello%252Ffrom%252Fanother</segment> <subtable> <row> <label>world</label> - <nb_visits>2</nb_visits> + <nb_visits>1</nb_visits> <nb_hits>2</nb_hits> <sum_time_spent>0</sum_time_spent> <nb_hits_with_time_network>0</nb_hits_with_time_network> @@ -1452,19 +1532,19 @@ <nb_hits_with_bandwidth>0</nb_hits_with_bandwidth> <min_bandwidth /> <max_bandwidth /> - <entry_nb_visits>2</entry_nb_visits> + <entry_nb_visits>1</entry_nb_visits> <entry_nb_actions>3</entry_nb_actions> <entry_sum_visit_length>2</entry_sum_visit_length> - <entry_bounce_count>1</entry_bounce_count> + <entry_bounce_count>0</entry_bounce_count> <exit_nb_visits>1</exit_nb_visits> <avg_time_on_page>0</avg_time_on_page> - <bounce_rate>50%</bounce_rate> - <exit_rate>50%</exit_rate> + <bounce_rate>0%</bounce_rate> + <exit_rate>100%</exit_rate> <segment>pageUrl=^http%253A%252F%252Fpiwik.net%252Fhello%252Ffrom%252Fanother%252Fworld</segment> <subtable> <row> <label>/6,681965</label> - <nb_visits>2</nb_visits> + <nb_visits>1</nb_visits> <nb_hits>2</nb_hits> <sum_time_spent>0</sum_time_spent> <nb_hits_with_time_network>0</nb_hits_with_time_network> @@ -1489,17 +1569,17 @@ <nb_hits_with_bandwidth>0</nb_hits_with_bandwidth> <min_bandwidth /> <max_bandwidth /> - <entry_nb_visits>2</entry_nb_visits> + <entry_nb_visits>1</entry_nb_visits> <entry_nb_actions>3</entry_nb_actions> <entry_sum_visit_length>2</entry_sum_visit_length> - <entry_bounce_count>1</entry_bounce_count> + <entry_bounce_count>0</entry_bounce_count> <exit_nb_visits>1</exit_nb_visits> <sum_daily_nb_uniq_visitors>1</sum_daily_nb_uniq_visitors> <sum_daily_entry_nb_uniq_visitors>1</sum_daily_entry_nb_uniq_visitors> <sum_daily_exit_nb_uniq_visitors>1</sum_daily_exit_nb_uniq_visitors> <avg_time_on_page>0</avg_time_on_page> - <bounce_rate>50%</bounce_rate> - <exit_rate>50%</exit_rate> + <bounce_rate>0%</bounce_rate> + <exit_rate>100%</exit_rate> <url>http://hello.example.com/hello/from/another/world/6,681965</url> <segment>pageUrl==http%253A%252F%252Fhello.example.com%252Fhello%252Ffrom%252Fanother%252Fworld%252F6%252C681965</segment> </row> @@ -1509,86 +1589,6 @@ </row> </subtable> </row> - <row> - <label>world</label> - <nb_visits>2</nb_visits> - <nb_hits>2</nb_hits> - <sum_time_spent>0</sum_time_spent> - <nb_hits_with_time_network>0</nb_hits_with_time_network> - <min_time_network /> - <max_time_network /> - <nb_hits_with_time_server>2</nb_hits_with_time_server> - <min_time_server>0.359</min_time_server> - <max_time_server>0.359</max_time_server> - <nb_hits_with_time_transfer>0</nb_hits_with_time_transfer> - <min_time_transfer /> - <max_time_transfer /> - <nb_hits_with_time_dom_processing>0</nb_hits_with_time_dom_processing> - <min_time_dom_processing /> - <max_time_dom_processing /> - <nb_hits_with_time_dom_completion>0</nb_hits_with_time_dom_completion> - <min_time_dom_completion /> - <max_time_dom_completion /> - <nb_hits_with_time_on_load>0</nb_hits_with_time_on_load> - <min_time_on_load /> - <max_time_on_load /> - <sum_bandwidth>0</sum_bandwidth> - <nb_hits_with_bandwidth>0</nb_hits_with_bandwidth> - <min_bandwidth /> - <max_bandwidth /> - <entry_nb_visits>1</entry_nb_visits> - <entry_nb_actions>1</entry_nb_actions> - <entry_sum_visit_length>0</entry_sum_visit_length> - <entry_bounce_count>1</entry_bounce_count> - <exit_nb_visits>2</exit_nb_visits> - <avg_time_on_page>0</avg_time_on_page> - <bounce_rate>100%</bounce_rate> - <exit_rate>100%</exit_rate> - <segment>pageUrl=^http%253A%252F%252Fpiwik.net%252Fhello%252Fworld</segment> - <subtable> - <row> - <label>/6,681965</label> - <nb_visits>2</nb_visits> - <nb_hits>2</nb_hits> - <sum_time_spent>0</sum_time_spent> - <nb_hits_with_time_network>0</nb_hits_with_time_network> - <min_time_network /> - <max_time_network /> - <nb_hits_with_time_server>2</nb_hits_with_time_server> - <min_time_server>0.3590</min_time_server> - <max_time_server>0.3590</max_time_server> - <nb_hits_with_time_transfer>0</nb_hits_with_time_transfer> - <min_time_transfer /> - <max_time_transfer /> - <nb_hits_with_time_dom_processing>0</nb_hits_with_time_dom_processing> - <min_time_dom_processing /> - <max_time_dom_processing /> - <nb_hits_with_time_dom_completion>0</nb_hits_with_time_dom_completion> - <min_time_dom_completion /> - <max_time_dom_completion /> - <nb_hits_with_time_on_load>0</nb_hits_with_time_on_load> - <min_time_on_load /> - <max_time_on_load /> - <sum_bandwidth>0</sum_bandwidth> - <nb_hits_with_bandwidth>0</nb_hits_with_bandwidth> - <min_bandwidth /> - <max_bandwidth /> - <entry_nb_visits>1</entry_nb_visits> - <entry_nb_actions>1</entry_nb_actions> - <entry_sum_visit_length>0</entry_sum_visit_length> - <entry_bounce_count>1</entry_bounce_count> - <exit_nb_visits>2</exit_nb_visits> - <sum_daily_nb_uniq_visitors>1</sum_daily_nb_uniq_visitors> - <sum_daily_entry_nb_uniq_visitors>1</sum_daily_entry_nb_uniq_visitors> - <sum_daily_exit_nb_uniq_visitors>1</sum_daily_exit_nb_uniq_visitors> - <avg_time_on_page>0</avg_time_on_page> - <bounce_rate>100%</bounce_rate> - <exit_rate>100%</exit_rate> - <url>http://hello.example.com/hello/world/6,681965</url> - <segment>pageUrl==http%253A%252F%252Fhello.example.com%252Fhello%252Fworld%252F6%252C681965</segment> - </row> - </subtable> - </row> </subtable> </row> <row> diff --git a/tests/PHPUnit/System/expected/test_ImportLogs__Actions.get_month.xml b/tests/PHPUnit/System/expected/test_ImportLogs__Actions.get_month.xml index e42b6bfd5e..efaab5cb0c 100644 --- a/tests/PHPUnit/System/expected/test_ImportLogs__Actions.get_month.xml +++ b/tests/PHPUnit/System/expected/test_ImportLogs__Actions.get_month.xml @@ -1,7 +1,7 @@ <?xml version="1.0" encoding="utf-8" ?> <result> <nb_pageviews>45</nb_pageviews> - <nb_uniq_pageviews>43</nb_uniq_pageviews> + <nb_uniq_pageviews>42</nb_uniq_pageviews> <nb_downloads>4</nb_downloads> <nb_uniq_downloads>4</nb_uniq_downloads> <nb_outlinks>0</nb_outlinks> diff --git a/tests/PHPUnit/System/expected/test_ImportLogs__Actions.get_range.xml b/tests/PHPUnit/System/expected/test_ImportLogs__Actions.get_range.xml index 9a71fc7e43..0ea842f740 100644 --- a/tests/PHPUnit/System/expected/test_ImportLogs__Actions.get_range.xml +++ b/tests/PHPUnit/System/expected/test_ImportLogs__Actions.get_range.xml @@ -1,7 +1,7 @@ <?xml version="1.0" encoding="utf-8" ?> <result> <nb_pageviews>69</nb_pageviews> - <nb_uniq_pageviews>61</nb_uniq_pageviews> + <nb_uniq_pageviews>60</nb_uniq_pageviews> <nb_downloads>5</nb_downloads> <nb_uniq_downloads>5</nb_uniq_downloads> <nb_outlinks>1</nb_outlinks> diff --git a/tests/PHPUnit/System/expected/test_ImportLogs__CustomVariables.getCustomVariables_month.xml b/tests/PHPUnit/System/expected/test_ImportLogs__CustomVariables.getCustomVariables_month.xml index c4b0cacda8..8b06eb1295 100644 --- a/tests/PHPUnit/System/expected/test_ImportLogs__CustomVariables.getCustomVariables_month.xml +++ b/tests/PHPUnit/System/expected/test_ImportLogs__CustomVariables.getCustomVariables_month.xml @@ -156,22 +156,13 @@ <row> <label>User Name</label> <nb_visits>3</nb_visits> - <nb_actions>5</nb_actions> - <max_actions>2</max_actions> - <sum_visit_length>5</sum_visit_length> - <bounce_count>1</bounce_count> + <nb_actions>7</nb_actions> + <max_actions>3</max_actions> + <sum_visit_length>6</sum_visit_length> + <bounce_count>0</bounce_count> <nb_visits_converted>3</nb_visits_converted> - <goals> - <row idgoal='1'> - <nb_conversions>1</nb_conversions> - <nb_visits_converted>1</nb_visits_converted> - <revenue>5</revenue> - </row> - </goals> - <nb_conversions>1</nb_conversions> - <revenue>5</revenue> <sum_daily_nb_uniq_visitors>3</sum_daily_nb_uniq_visitors> - <sum_daily_nb_users>1</sum_daily_nb_users> + <sum_daily_nb_users>2</sum_daily_nb_users> <slots> <row> <scope>visit</scope> @@ -194,22 +185,13 @@ <row> <label>user2</label> <nb_visits>1</nb_visits> - <nb_actions>1</nb_actions> - <max_actions>1</max_actions> - <sum_visit_length>1</sum_visit_length> - <bounce_count>1</bounce_count> + <nb_actions>3</nb_actions> + <max_actions>3</max_actions> + <sum_visit_length>2</sum_visit_length> + <bounce_count>0</bounce_count> <nb_visits_converted>1</nb_visits_converted> - <goals> - <row idgoal='1'> - <nb_conversions>1</nb_conversions> - <nb_visits_converted>1</nb_visits_converted> - <revenue>5</revenue> - </row> - </goals> - <nb_conversions>1</nb_conversions> - <revenue>5</revenue> <sum_daily_nb_uniq_visitors>1</sum_daily_nb_uniq_visitors> - <sum_daily_nb_users>0</sum_daily_nb_users> + <sum_daily_nb_users>1</sum_daily_nb_users> </row> </subtable> </row> @@ -226,7 +208,7 @@ <subtable> <row> <label>359</label> - <nb_visits>2</nb_visits> + <nb_visits>1</nb_visits> <nb_actions>2</nb_actions> <sum_daily_nb_uniq_visitors>1</sum_daily_nb_uniq_visitors> </row> diff --git a/tests/PHPUnit/System/expected/test_ImportLogs__CustomVariables.getUsagesOfSlots.xml b/tests/PHPUnit/System/expected/test_ImportLogs__CustomVariables.getUsagesOfSlots.xml index 8f81585e8d..28ec275d90 100644 --- a/tests/PHPUnit/System/expected/test_ImportLogs__CustomVariables.getUsagesOfSlots.xml +++ b/tests/PHPUnit/System/expected/test_ImportLogs__CustomVariables.getUsagesOfSlots.xml @@ -17,7 +17,7 @@ <row> <name>User Name</name> <nb_visits>3</nb_visits> - <nb_actions>5</nb_actions> + <nb_actions>7</nb_actions> </row> <row> <name>Bot</name> diff --git a/tests/PHPUnit/System/expected/test_ImportLogs__DevicePlugins.getPlugin_month.xml b/tests/PHPUnit/System/expected/test_ImportLogs__DevicePlugins.getPlugin_month.xml index 41b8bcdaf0..94a694cef6 100644 --- a/tests/PHPUnit/System/expected/test_ImportLogs__DevicePlugins.getPlugin_month.xml +++ b/tests/PHPUnit/System/expected/test_ImportLogs__DevicePlugins.getPlugin_month.xml @@ -3,19 +3,19 @@ <row> <label>Cookie</label> <nb_visits>2</nb_visits> - <nb_visits_percentage>5%</nb_visits_percentage> + <nb_visits_percentage>6%</nb_visits_percentage> <logo>plugins/Morpheus/icons/dist/plugins/cookie.png</logo> </row> <row> <label>Flash</label> <nb_visits>2</nb_visits> - <nb_visits_percentage>5%</nb_visits_percentage> + <nb_visits_percentage>6%</nb_visits_percentage> <logo>plugins/Morpheus/icons/dist/plugins/flash.png</logo> </row> <row> <label>Java</label> <nb_visits>2</nb_visits> - <nb_visits_percentage>5%</nb_visits_percentage> + <nb_visits_percentage>6%</nb_visits_percentage> <logo>plugins/Morpheus/icons/dist/plugins/java.png</logo> </row> <row> diff --git a/tests/PHPUnit/System/expected/test_ImportLogs__DevicesDetection.getBrand_month.xml b/tests/PHPUnit/System/expected/test_ImportLogs__DevicesDetection.getBrand_month.xml index 5d10bbb81e..692fb0da97 100644 --- a/tests/PHPUnit/System/expected/test_ImportLogs__DevicesDetection.getBrand_month.xml +++ b/tests/PHPUnit/System/expected/test_ImportLogs__DevicesDetection.getBrand_month.xml @@ -24,21 +24,21 @@ </row> <row> <label>Apple</label> - <nb_visits>18</nb_visits> + <nb_visits>17</nb_visits> <nb_actions>23</nb_actions> <max_actions>3</max_actions> <sum_visit_length>309</sum_visit_length> - <bounce_count>14</bounce_count> - <nb_visits_converted>17</nb_visits_converted> + <bounce_count>13</bounce_count> + <nb_visits_converted>16</nb_visits_converted> <goals> <row idgoal='1'> - <nb_conversions>17</nb_conversions> - <nb_visits_converted>17</nb_visits_converted> - <revenue>85</revenue> + <nb_conversions>16</nb_conversions> + <nb_visits_converted>16</nb_visits_converted> + <revenue>80</revenue> </row> </goals> - <nb_conversions>17</nb_conversions> - <revenue>85</revenue> + <nb_conversions>16</nb_conversions> + <revenue>80</revenue> <sum_daily_nb_uniq_visitors>16</sum_daily_nb_uniq_visitors> <sum_daily_nb_users>2</sum_daily_nb_users> <logo>plugins/Morpheus/icons/dist/brand/Apple.png</logo> diff --git a/tests/PHPUnit/System/expected/test_ImportLogs__DevicesDetection.getBrowserEngines_month.xml b/tests/PHPUnit/System/expected/test_ImportLogs__DevicesDetection.getBrowserEngines_month.xml index d53a0dfeab..2c7a839cd5 100644 --- a/tests/PHPUnit/System/expected/test_ImportLogs__DevicesDetection.getBrowserEngines_month.xml +++ b/tests/PHPUnit/System/expected/test_ImportLogs__DevicesDetection.getBrowserEngines_month.xml @@ -26,12 +26,12 @@ </row> <row> <label>Blink (Chrome, Opera)</label> - <nb_visits>6</nb_visits> + <nb_visits>5</nb_visits> <nb_actions>9</nb_actions> - <max_actions>2</max_actions> + <max_actions>3</max_actions> <sum_visit_length>6</sum_visit_length> - <bounce_count>3</bounce_count> - <nb_visits_converted>6</nb_visits_converted> + <bounce_count>2</bounce_count> + <nb_visits_converted>5</nb_visits_converted> <sum_daily_nb_uniq_visitors>4</sum_daily_nb_uniq_visitors> <sum_daily_nb_users>2</sum_daily_nb_users> <segment>browserEngine==Blink</segment> diff --git a/tests/PHPUnit/System/expected/test_ImportLogs__DevicesDetection.getBrowserFamilies_month.xml b/tests/PHPUnit/System/expected/test_ImportLogs__DevicesDetection.getBrowserFamilies_month.xml index c2920295b9..548db04c7d 100644 --- a/tests/PHPUnit/System/expected/test_ImportLogs__DevicesDetection.getBrowserFamilies_month.xml +++ b/tests/PHPUnit/System/expected/test_ImportLogs__DevicesDetection.getBrowserFamilies_month.xml @@ -23,21 +23,21 @@ </row> <row> <label>Chrome</label> - <nb_visits>10</nb_visits> + <nb_visits>9</nb_visits> <nb_actions>12</nb_actions> - <max_actions>2</max_actions> + <max_actions>3</max_actions> <sum_visit_length>4</sum_visit_length> - <bounce_count>8</bounce_count> - <nb_visits_converted>10</nb_visits_converted> + <bounce_count>7</bounce_count> + <nb_visits_converted>9</nb_visits_converted> <goals> <row idgoal='1'> - <nb_conversions>10</nb_conversions> - <nb_visits_converted>10</nb_visits_converted> - <revenue>50</revenue> + <nb_conversions>9</nb_conversions> + <nb_visits_converted>9</nb_visits_converted> + <revenue>45</revenue> </row> </goals> - <nb_conversions>10</nb_conversions> - <revenue>50</revenue> + <nb_conversions>9</nb_conversions> + <revenue>45</revenue> <sum_daily_nb_uniq_visitors>8</sum_daily_nb_uniq_visitors> <sum_daily_nb_users>3</sum_daily_nb_users> <logo>plugins/Morpheus/icons/dist/browsers/CH.png</logo> diff --git a/tests/PHPUnit/System/expected/test_ImportLogs__DevicesDetection.getBrowserVersions_month.xml b/tests/PHPUnit/System/expected/test_ImportLogs__DevicesDetection.getBrowserVersions_month.xml index 68ab3e527b..a1080be166 100644 --- a/tests/PHPUnit/System/expected/test_ImportLogs__DevicesDetection.getBrowserVersions_month.xml +++ b/tests/PHPUnit/System/expected/test_ImportLogs__DevicesDetection.getBrowserVersions_month.xml @@ -53,19 +53,6 @@ <logo>plugins/Morpheus/icons/dist/browsers/UNK.png</logo> </row> <row> - <label>Chrome 37.0</label> - <nb_visits>3</nb_visits> - <nb_actions>4</nb_actions> - <max_actions>2</max_actions> - <sum_visit_length>2</sum_visit_length> - <bounce_count>2</bounce_count> - <nb_visits_converted>3</nb_visits_converted> - <sum_daily_nb_uniq_visitors>1</sum_daily_nb_uniq_visitors> - <sum_daily_nb_users>1</sum_daily_nb_users> - <segment>browserCode==CH;browserVersion==37.0</segment> - <logo>plugins/Morpheus/icons/dist/browsers/CH.png</logo> - </row> - <row> <label>Android Browser</label> <nb_visits>2</nb_visits> <nb_actions>2</nb_actions> @@ -105,6 +92,19 @@ <logo>plugins/Morpheus/icons/dist/browsers/CH.png</logo> </row> <row> + <label>Chrome 37.0</label> + <nb_visits>2</nb_visits> + <nb_actions>4</nb_actions> + <max_actions>3</max_actions> + <sum_visit_length>2</sum_visit_length> + <bounce_count>1</bounce_count> + <nb_visits_converted>2</nb_visits_converted> + <sum_daily_nb_uniq_visitors>1</sum_daily_nb_uniq_visitors> + <sum_daily_nb_users>1</sum_daily_nb_users> + <segment>browserCode==CH;browserVersion==37.0</segment> + <logo>plugins/Morpheus/icons/dist/browsers/CH.png</logo> + </row> + <row> <label>Firefox 6.0</label> <nb_visits>2</nb_visits> <nb_actions>2</nb_actions> diff --git a/tests/PHPUnit/System/expected/test_ImportLogs__DevicesDetection.getBrowsers_month.xml b/tests/PHPUnit/System/expected/test_ImportLogs__DevicesDetection.getBrowsers_month.xml index 1eebfd78fb..b4a267119f 100644 --- a/tests/PHPUnit/System/expected/test_ImportLogs__DevicesDetection.getBrowsers_month.xml +++ b/tests/PHPUnit/System/expected/test_ImportLogs__DevicesDetection.getBrowsers_month.xml @@ -24,21 +24,21 @@ </row> <row> <label>Chrome</label> - <nb_visits>10</nb_visits> + <nb_visits>9</nb_visits> <nb_actions>12</nb_actions> - <max_actions>2</max_actions> + <max_actions>3</max_actions> <sum_visit_length>4</sum_visit_length> - <bounce_count>8</bounce_count> - <nb_visits_converted>10</nb_visits_converted> + <bounce_count>7</bounce_count> + <nb_visits_converted>9</nb_visits_converted> <goals> <row idgoal='1'> - <nb_conversions>10</nb_conversions> - <nb_visits_converted>10</nb_visits_converted> - <revenue>50</revenue> + <nb_conversions>9</nb_conversions> + <nb_visits_converted>9</nb_visits_converted> + <revenue>45</revenue> </row> </goals> - <nb_conversions>10</nb_conversions> - <revenue>50</revenue> + <nb_conversions>9</nb_conversions> + <revenue>45</revenue> <sum_daily_nb_uniq_visitors>8</sum_daily_nb_uniq_visitors> <sum_daily_nb_users>3</sum_daily_nb_users> <logo>plugins/Morpheus/icons/dist/browsers/CH.png</logo> diff --git a/tests/PHPUnit/System/expected/test_ImportLogs__DevicesDetection.getModel_month.xml b/tests/PHPUnit/System/expected/test_ImportLogs__DevicesDetection.getModel_month.xml index 1daf9d2766..a4ca2396cf 100644 --- a/tests/PHPUnit/System/expected/test_ImportLogs__DevicesDetection.getModel_month.xml +++ b/tests/PHPUnit/System/expected/test_ImportLogs__DevicesDetection.getModel_month.xml @@ -23,21 +23,21 @@ </row> <row> <label>Apple - Generic Desktop</label> - <nb_visits>17</nb_visits> + <nb_visits>16</nb_visits> <nb_actions>22</nb_actions> <max_actions>3</max_actions> <sum_visit_length>309</sum_visit_length> - <bounce_count>13</bounce_count> - <nb_visits_converted>16</nb_visits_converted> + <bounce_count>12</bounce_count> + <nb_visits_converted>15</nb_visits_converted> <goals> <row idgoal='1'> - <nb_conversions>16</nb_conversions> - <nb_visits_converted>16</nb_visits_converted> - <revenue>80</revenue> + <nb_conversions>15</nb_conversions> + <nb_visits_converted>15</nb_visits_converted> + <revenue>75</revenue> </row> </goals> - <nb_conversions>16</nb_conversions> - <revenue>80</revenue> + <nb_conversions>15</nb_conversions> + <revenue>75</revenue> <sum_daily_nb_uniq_visitors>15</sum_daily_nb_uniq_visitors> <sum_daily_nb_users>2</sum_daily_nb_users> <segment>deviceBrand==Apple;deviceModel==generic+desktop</segment> diff --git a/tests/PHPUnit/System/expected/test_ImportLogs__DevicesDetection.getOsFamilies_month.xml b/tests/PHPUnit/System/expected/test_ImportLogs__DevicesDetection.getOsFamilies_month.xml index 4376e34ff3..ef45d527fe 100644 --- a/tests/PHPUnit/System/expected/test_ImportLogs__DevicesDetection.getOsFamilies_month.xml +++ b/tests/PHPUnit/System/expected/test_ImportLogs__DevicesDetection.getOsFamilies_month.xml @@ -2,12 +2,12 @@ <result> <row> <label>Mac</label> - <nb_visits>17</nb_visits> + <nb_visits>16</nb_visits> <nb_actions>22</nb_actions> <max_actions>3</max_actions> <sum_visit_length>309</sum_visit_length> - <bounce_count>13</bounce_count> - <nb_visits_converted>16</nb_visits_converted> + <bounce_count>12</bounce_count> + <nb_visits_converted>15</nb_visits_converted> <sum_daily_nb_uniq_visitors>15</sum_daily_nb_uniq_visitors> <sum_daily_nb_users>2</sum_daily_nb_users> <logo>plugins/Morpheus/icons/dist/os/MAC.png</logo> diff --git a/tests/PHPUnit/System/expected/test_ImportLogs__DevicesDetection.getOsVersions_month.xml b/tests/PHPUnit/System/expected/test_ImportLogs__DevicesDetection.getOsVersions_month.xml index da83acba74..72c55f1f48 100644 --- a/tests/PHPUnit/System/expected/test_ImportLogs__DevicesDetection.getOsVersions_month.xml +++ b/tests/PHPUnit/System/expected/test_ImportLogs__DevicesDetection.getOsVersions_month.xml @@ -41,12 +41,12 @@ </row> <row> <label>Mac 10.10</label> - <nb_visits>4</nb_visits> + <nb_visits>3</nb_visits> <nb_actions>6</nb_actions> - <max_actions>2</max_actions> + <max_actions>3</max_actions> <sum_visit_length>4</sum_visit_length> - <bounce_count>2</bounce_count> - <nb_visits_converted>4</nb_visits_converted> + <bounce_count>1</bounce_count> + <nb_visits_converted>3</nb_visits_converted> <sum_daily_nb_uniq_visitors>2</sum_daily_nb_uniq_visitors> <sum_daily_nb_users>2</sum_daily_nb_users> <segment>operatingSystemCode==MAC;operatingSystemVersion==10.10</segment> diff --git a/tests/PHPUnit/System/expected/test_ImportLogs__DevicesDetection.getType_month.xml b/tests/PHPUnit/System/expected/test_ImportLogs__DevicesDetection.getType_month.xml index 4895b203ae..c2aa063957 100644 --- a/tests/PHPUnit/System/expected/test_ImportLogs__DevicesDetection.getType_month.xml +++ b/tests/PHPUnit/System/expected/test_ImportLogs__DevicesDetection.getType_month.xml @@ -2,21 +2,21 @@ <result> <row> <label>Desktop</label> - <nb_visits>36</nb_visits> + <nb_visits>35</nb_visits> <nb_actions>42</nb_actions> <max_actions>3</max_actions> <sum_visit_length>551</sum_visit_length> - <bounce_count>31</bounce_count> - <nb_visits_converted>35</nb_visits_converted> + <bounce_count>30</bounce_count> + <nb_visits_converted>34</nb_visits_converted> <goals> <row idgoal='1'> - <nb_conversions>35</nb_conversions> - <nb_visits_converted>35</nb_visits_converted> - <revenue>175</revenue> + <nb_conversions>34</nb_conversions> + <nb_visits_converted>34</nb_visits_converted> + <revenue>170</revenue> </row> </goals> - <nb_conversions>35</nb_conversions> - <revenue>175</revenue> + <nb_conversions>34</nb_conversions> + <revenue>170</revenue> <sum_daily_nb_uniq_visitors>34</sum_daily_nb_uniq_visitors> <sum_daily_nb_users>3</sum_daily_nb_users> <segment>deviceType==desktop</segment> @@ -125,4 +125,10 @@ <segment>deviceType==tv</segment> <logo>plugins/Morpheus/icons/dist/devices/tv.png</logo> </row> + <row> + <label>Wearable</label> + <nb_visits>0</nb_visits> + <segment>deviceType==wearable</segment> + <logo>plugins/Morpheus/icons/dist/devices/wearable.png</logo> + </row> </result>
\ No newline at end of file diff --git a/tests/PHPUnit/System/expected/test_ImportLogs__Goals.getDaysToConversion_month.xml b/tests/PHPUnit/System/expected/test_ImportLogs__Goals.getDaysToConversion_month.xml index b0b23db829..16e08f290e 100644 --- a/tests/PHPUnit/System/expected/test_ImportLogs__Goals.getDaysToConversion_month.xml +++ b/tests/PHPUnit/System/expected/test_ImportLogs__Goals.getDaysToConversion_month.xml @@ -2,7 +2,7 @@ <result> <row> <label>0 days</label> - <nb_conversions>40</nb_conversions> + <nb_conversions>39</nb_conversions> </row> <row> <label>1 day</label> diff --git a/tests/PHPUnit/System/expected/test_ImportLogs__Goals.getMetrics_month.xml b/tests/PHPUnit/System/expected/test_ImportLogs__Goals.getMetrics_month.xml index 1df782d8d8..40616d9afb 100644 --- a/tests/PHPUnit/System/expected/test_ImportLogs__Goals.getMetrics_month.xml +++ b/tests/PHPUnit/System/expected/test_ImportLogs__Goals.getMetrics_month.xml @@ -1,7 +1,7 @@ <?xml version="1.0" encoding="utf-8" ?> <result> - <nb_conversions>40</nb_conversions> - <nb_visits_converted>40</nb_visits_converted> - <revenue>200</revenue> - <conversion_rate>90.91%</conversion_rate> + <nb_conversions>39</nb_conversions> + <nb_visits_converted>39</nb_visits_converted> + <revenue>195</revenue> + <conversion_rate>90.7%</conversion_rate> </result>
\ No newline at end of file diff --git a/tests/PHPUnit/System/expected/test_ImportLogs__Goals.getVisitsUntilConversion_month.xml b/tests/PHPUnit/System/expected/test_ImportLogs__Goals.getVisitsUntilConversion_month.xml index cca7f6ab94..d5443afb52 100644 --- a/tests/PHPUnit/System/expected/test_ImportLogs__Goals.getVisitsUntilConversion_month.xml +++ b/tests/PHPUnit/System/expected/test_ImportLogs__Goals.getVisitsUntilConversion_month.xml @@ -2,7 +2,7 @@ <result> <row> <label>1 visit</label> - <nb_conversions>40</nb_conversions> + <nb_conversions>39</nb_conversions> </row> <row> <label>2 visits</label> diff --git a/tests/PHPUnit/System/expected/test_ImportLogs__Goals.get_month.xml b/tests/PHPUnit/System/expected/test_ImportLogs__Goals.get_month.xml index d7f6fab345..5ae831a4dc 100644 --- a/tests/PHPUnit/System/expected/test_ImportLogs__Goals.get_month.xml +++ b/tests/PHPUnit/System/expected/test_ImportLogs__Goals.get_month.xml @@ -1,15 +1,15 @@ <?xml version="1.0" encoding="utf-8" ?> <result> - <nb_conversions>40</nb_conversions> - <nb_visits_converted>40</nb_visits_converted> - <revenue>200</revenue> - <conversion_rate>90.91%</conversion_rate> + <nb_conversions>39</nb_conversions> + <nb_visits_converted>39</nb_visits_converted> + <revenue>195</revenue> + <conversion_rate>90.7%</conversion_rate> <nb_conversions_new_visit>37</nb_conversions_new_visit> <nb_visits_converted_new_visit>37</nb_visits_converted_new_visit> <revenue_new_visit>185</revenue_new_visit> <conversion_rate_new_visit>90.24%</conversion_rate_new_visit> - <nb_conversions_returning_visit>3</nb_conversions_returning_visit> - <nb_visits_converted_returning_visit>3</nb_visits_converted_returning_visit> - <revenue_returning_visit>15</revenue_returning_visit> + <nb_conversions_returning_visit>2</nb_conversions_returning_visit> + <nb_visits_converted_returning_visit>2</nb_visits_converted_returning_visit> + <revenue_returning_visit>10</revenue_returning_visit> <conversion_rate_returning_visit>100%</conversion_rate_returning_visit> </result>
\ No newline at end of file diff --git a/tests/PHPUnit/System/expected/test_ImportLogs__Live.getLastVisitsDetails_range.xml b/tests/PHPUnit/System/expected/test_ImportLogs__Live.getLastVisitsDetails_range.xml index 8b48960e60..2b57dac4af 100644 --- a/tests/PHPUnit/System/expected/test_ImportLogs__Live.getLastVisitsDetails_range.xml +++ b/tests/PHPUnit/System/expected/test_ImportLogs__Live.getLastVisitsDetails_range.xml @@ -580,7 +580,7 @@ <referrerName>Google</referrerName> <referrerKeyword>Keyword not defined</referrerKeyword> <referrerKeywordPosition>1</referrerKeywordPosition> - <referrerUrl>http://www.google.com/url?sa=t&rct=j&q=&esrc=s&source=web&cd=1&ved=0CCcQFjAA&url=http%3A%2F%2Fpiwik.org%2F&ei=8vwgU8TYDZTI2wWTi4CQCA&usg=AFQjCNF_MGJRqKPvaKuUokHtZ3VvNG9ALw&bvm=bv.62922401,d.b2I</referrerUrl> + <referrerUrl>http://www.google.com/url?rct=j&q=&esrc=s&source=web&cd=1&url=http%3A%2F%2Fpiwik.org%2F</referrerUrl> <referrerSearchEngineUrl>http://google.com</referrerSearchEngineUrl> <referrerSearchEngineIcon>plugins/Morpheus/icons/dist/searchEngines/google.com.png</referrerSearchEngineIcon> <referrerSocialNetworkUrl /> @@ -1038,7 +1038,7 @@ <referrerName>Google</referrerName> <referrerKeyword>Keyword not defined</referrerKeyword> <referrerKeywordPosition>2</referrerKeywordPosition> - <referrerUrl>https://www.google.co.jp/url?sa=t&rct=j&q=&esrc=s&source=web&cd=2&ved=0CDAQFjAB&url=https%3A%2F%2Fpiwik.org%2Flog-analytics%2F&ei=rogdU5OuK43pkgXZmYGICA&usg=AFQjCNH4nR8bKYaliCj2egiJ0H_CX4sFJg&bvm=bv.62578216,d.dGI</referrerUrl> + <referrerUrl>https://www.google.co.jp/url?rct=j&q=&esrc=s&source=web&cd=2&url=https%3A%2F%2Fpiwik.org%2Flog-analytics%2F</referrerUrl> <referrerSearchEngineUrl>http://google.com</referrerSearchEngineUrl> <referrerSearchEngineIcon>plugins/Morpheus/icons/dist/searchEngines/google.com.png</referrerSearchEngineIcon> <referrerSocialNetworkUrl /> @@ -1549,7 +1549,7 @@ <referrerName>Google</referrerName> <referrerKeyword>Keyword not defined</referrerKeyword> <referrerKeywordPosition>1</referrerKeywordPosition> - <referrerUrl>http://www.google.ru/url?sa=t&rct=j&q=&esrc=s&source=web&cd=1&ved=0CCoQFjAA&url=http%3A%2F%2Fpiwik.org%2F&ei=ffwgU57VGuf44QT3-oCQCw&usg=AFQjCNF_MGJRqKPvaKuUokHtZ3VvNG9ALw&bvm=bv.62922401,d.bGE&cad=rjt</referrerUrl> + <referrerUrl>http://www.google.ru/url?rct=j&q=&esrc=s&source=web&cd=1&url=http%3A%2F%2Fpiwik.org%2F&cad=rjt</referrerUrl> <referrerSearchEngineUrl>http://google.com</referrerSearchEngineUrl> <referrerSearchEngineIcon>plugins/Morpheus/icons/dist/searchEngines/google.com.png</referrerSearchEngineIcon> <referrerSocialNetworkUrl /> @@ -2036,8 +2036,8 @@ <pageId>71</pageId> <bandwidth /> - <timeSpent>50</timeSpent> - <timeSpentPretty>50s</timeSpentPretty> + <timeSpent>0</timeSpent> + <timeSpentPretty>0s</timeSpentPretty> <pageviewPosition>2</pageviewPosition> <title /> <subtitle>http://piwik.net/faq/</subtitle> @@ -2061,8 +2061,8 @@ <pageId>75</pageId> <bandwidth /> - <timeSpent>49</timeSpent> - <timeSpentPretty>49s</timeSpentPretty> + <timeSpent>0</timeSpent> + <timeSpentPretty>0s</timeSpentPretty> <pageviewPosition>6</pageviewPosition> <title /> <subtitle>http://piwik.net/faq/</subtitle> @@ -2111,8 +2111,8 @@ <pageId>72</pageId> <bandwidth /> - <timeSpent>26</timeSpent> - <timeSpentPretty>26s</timeSpentPretty> + <timeSpent>0</timeSpent> + <timeSpentPretty>0s</timeSpentPretty> <pageviewPosition>3</pageviewPosition> <title /> <subtitle>http://piwik.net/blog/category/community/</subtitle> @@ -2161,8 +2161,8 @@ <pageId>73</pageId> <bandwidth /> - <timeSpent>8</timeSpent> - <timeSpentPretty>8s</timeSpentPretty> + <timeSpent>1</timeSpent> + <timeSpentPretty>1s</timeSpentPretty> <pageviewPosition>4</pageviewPosition> <title /> <subtitle>http://piwik.net/docs/manage-websites/</subtitle> @@ -2417,7 +2417,7 @@ </row> <row> <idSite>1</idSite> - <idVisit>73</idVisit> + <idVisit>72</idVisit> <visitIp>175.41.191.47</visitIp> @@ -2702,23 +2702,25 @@ </row> <row> <idSite>1</idSite> - <idVisit>68</idVisit> + <idVisit>61</idVisit> <visitIp>173.5.0.0</visitIp> <actionDetails> <row> <type>action</type> - <url>http://hello.example.com/hello/from/another/world/6,681965</url> - <pageTitle /> - <pageIdAction>61</pageIdAction> + <url>http://hello.example.com/hello/world/6,681965</url> + <pageTitle>404/URL = http%3A%2F%2Fhello.example.com%2Fhello%2Fworld%2F6%2C681965</pageTitle> + <pageIdAction>60</pageIdAction> - <pageId>94</pageId> + <pageId>93</pageId> <bandwidth /> - <pageviewPosition>1</pageviewPosition> - <title /> - <subtitle>http://hello.example.com/hello/from/another/world/6,681965</subtitle> + <timeSpent>0</timeSpent> + <timeSpentPretty>0s</timeSpentPretty> + <pageviewPosition>2</pageviewPosition> + <title>404/URL = http%3A%2F%2Fhello.example.com%2Fhello%2Fworld%2F6%2C681965</title> + <subtitle>http://hello.example.com/hello/world/6,681965</subtitle> <icon /> <iconSVG>plugins/Morpheus/images/action.svg</iconSVG> @@ -2729,11 +2731,36 @@ </row> <row> <customVariablePageName2>Windows Status Code</customVariablePageName2> - <customVariablePageValue2>96</customVariablePageValue2> + <customVariablePageValue2>24</customVariablePageValue2> </row> <row> <customVariablePageName3>HTTP-code</customVariablePageName3> - <customVariablePageValue3>200</customVariablePageValue3> + <customVariablePageValue3>404</customVariablePageValue3> + </row> + </customVariables> + <bandwidth_pretty>0 M</bandwidth_pretty> + </row> + <row> + <type>action</type> + <url>http://hello.example.com/hello/from/another/world/6,681965</url> + <pageTitle /> + <pageIdAction>61</pageIdAction> + + + <pageId>83</pageId> + <bandwidth /> + <timeSpent>0</timeSpent> + <timeSpentPretty>0s</timeSpentPretty> + <pageviewPosition>1</pageviewPosition> + <title /> + <subtitle>http://hello.example.com/hello/from/another/world/6,681965</subtitle> + <icon /> + <iconSVG>plugins/Morpheus/images/action.svg</iconSVG> + + <customVariables> + <row> + <customVariablePageName1>HTTP-code</customVariablePageName1> + <customVariablePageValue1>200</customVariablePageValue1> </row> </customVariables> <bandwidth_pretty>0 M</bandwidth_pretty> @@ -2744,7 +2771,7 @@ <goalId>1</goalId> <revenue>5</revenue> - <goalPageId>94</goalPageId> + <goalPageId>83</goalPageId> <url>http://hello.example.com/hello/from/another/world/6,681965</url> <icon>plugins/Morpheus/images/goal.png</icon> @@ -2753,6 +2780,37 @@ <subtitle>all ($5 revenue)</subtitle> </row> + <row> + <type>action</type> + <url>http://hello.example.com/hello/from/another/world/6,681965</url> + <pageTitle /> + <pageIdAction>61</pageIdAction> + + + <pageId>94</pageId> + <bandwidth /> + <pageviewPosition>3</pageviewPosition> + <title /> + <subtitle>http://hello.example.com/hello/from/another/world/6,681965</subtitle> + <icon /> + <iconSVG>plugins/Morpheus/images/action.svg</iconSVG> + + <customVariables> + <row> + <customVariablePageName1>Generation Time</customVariablePageName1> + <customVariablePageValue1>359</customVariablePageValue1> + </row> + <row> + <customVariablePageName2>Windows Status Code</customVariablePageName2> + <customVariablePageValue2>96</customVariablePageValue2> + </row> + <row> + <customVariablePageName3>HTTP-code</customVariablePageName3> + <customVariablePageValue3>200</customVariablePageValue3> + </row> + </customVariables> + <bandwidth_pretty>0 M</bandwidth_pretty> + </row> </actionDetails> <goalConversions>1</goalConversions> <siteCurrency>USD</siteCurrency> @@ -2768,7 +2826,7 @@ - <userId /> + <userId>user2</userId> <visitorType>returning</visitorType> <visitorTypeIcon>plugins/Live/images/returningVisitor.png</visitorTypeIcon> <visitConverted>1</visitConverted> @@ -2778,11 +2836,11 @@ <visitEcommerceStatusIcon /> <daysSinceFirstVisit>0</daysSinceFirstVisit> <daysSinceLastEcommerceOrder>0</daysSinceLastEcommerceOrder> - <visitDuration>1</visitDuration> - <visitDurationPretty>1s</visitDurationPretty> + <visitDuration>2</visitDuration> + <visitDurationPretty>2s</visitDurationPretty> <searches>0</searches> - <actions>1</actions> - <interactions>1</interactions> + <actions>3</actions> + <interactions>3</interactions> <referrerType>direct</referrerType> <referrerTypeName>Direct Entry</referrerTypeName> <referrerName /> @@ -3308,169 +3366,6 @@ </row> <row> <idSite>1</idSite> - <idVisit>61</idVisit> - <visitIp>173.5.0.0</visitIp> - - - <actionDetails> - <row> - <type>action</type> - <url>http://hello.example.com/hello/world/6,681965</url> - <pageTitle>404/URL = http%3A%2F%2Fhello.example.com%2Fhello%2Fworld%2F6%2C681965</pageTitle> - <pageIdAction>60</pageIdAction> - - - <pageId>93</pageId> - <bandwidth /> - <timeSpent>0</timeSpent> - <timeSpentPretty>0s</timeSpentPretty> - <pageviewPosition>2</pageviewPosition> - <title>404/URL = http%3A%2F%2Fhello.example.com%2Fhello%2Fworld%2F6%2C681965</title> - <subtitle>http://hello.example.com/hello/world/6,681965</subtitle> - <icon /> - <iconSVG>plugins/Morpheus/images/action.svg</iconSVG> - - <customVariables> - <row> - <customVariablePageName1>Generation Time</customVariablePageName1> - <customVariablePageValue1>359</customVariablePageValue1> - </row> - <row> - <customVariablePageName2>Windows Status Code</customVariablePageName2> - <customVariablePageValue2>24</customVariablePageValue2> - </row> - <row> - <customVariablePageName3>HTTP-code</customVariablePageName3> - <customVariablePageValue3>404</customVariablePageValue3> - </row> - </customVariables> - <bandwidth_pretty>0 M</bandwidth_pretty> - </row> - <row> - <type>action</type> - <url>http://hello.example.com/hello/from/another/world/6,681965</url> - <pageTitle /> - <pageIdAction>61</pageIdAction> - - - <pageId>83</pageId> - <bandwidth /> - <pageviewPosition>1</pageviewPosition> - <title /> - <subtitle>http://hello.example.com/hello/from/another/world/6,681965</subtitle> - <icon /> - <iconSVG>plugins/Morpheus/images/action.svg</iconSVG> - - <customVariables> - <row> - <customVariablePageName1>HTTP-code</customVariablePageName1> - <customVariablePageValue1>200</customVariablePageValue1> - </row> - </customVariables> - <bandwidth_pretty>0 M</bandwidth_pretty> - </row> - <row> - <type>goal</type> - <goalName>all</goalName> - <goalId>1</goalId> - - <revenue>5</revenue> - <goalPageId>83</goalPageId> - - <url>http://hello.example.com/hello/from/another/world/6,681965</url> - <icon>plugins/Morpheus/images/goal.png</icon> - <iconSVG>plugins/Morpheus/images/goal.svg</iconSVG> - <title>Goal conversion</title> - <subtitle>all ($5 revenue)</subtitle> - - </row> - </actionDetails> - <goalConversions>1</goalConversions> - <siteCurrency>USD</siteCurrency> - <siteCurrencySymbol>$</siteCurrencySymbol> - - - - - <siteName>Piwik test</siteName> - - - - - - - <userId>user2</userId> - <visitorType>returning</visitorType> - <visitorTypeIcon>plugins/Live/images/returningVisitor.png</visitorTypeIcon> - <visitConverted>1</visitConverted> - <visitConvertedIcon>plugins/Morpheus/images/goal.svg</visitConvertedIcon> - <visitCount>1</visitCount> - <visitEcommerceStatus>none</visitEcommerceStatus> - <visitEcommerceStatusIcon /> - <daysSinceFirstVisit>0</daysSinceFirstVisit> - <daysSinceLastEcommerceOrder>0</daysSinceLastEcommerceOrder> - <visitDuration>1</visitDuration> - <visitDurationPretty>1s</visitDurationPretty> - <searches>0</searches> - <actions>2</actions> - <interactions>2</interactions> - <referrerType>direct</referrerType> - <referrerTypeName>Direct Entry</referrerTypeName> - <referrerName /> - <referrerKeyword /> - <referrerKeywordPosition /> - <referrerUrl /> - <referrerSearchEngineUrl /> - <referrerSearchEngineIcon /> - <referrerSocialNetworkUrl /> - <referrerSocialNetworkIcon /> - <languageCode /> - <language>Unknown</language> - <deviceType>Desktop</deviceType> - <deviceTypeIcon>plugins/Morpheus/icons/dist/devices/desktop.png</deviceTypeIcon> - <deviceBrand>Apple</deviceBrand> - <deviceModel>Generic Desktop</deviceModel> - <operatingSystem>Mac 10.10</operatingSystem> - <operatingSystemName>Mac</operatingSystemName> - <operatingSystemIcon>plugins/Morpheus/icons/dist/os/MAC.png</operatingSystemIcon> - <operatingSystemCode>MAC</operatingSystemCode> - <operatingSystemVersion>10.10</operatingSystemVersion> - <browserFamily>Blink</browserFamily> - <browserFamilyDescription>Blink (Chrome, Opera)</browserFamilyDescription> - <browser>Chrome 37.0</browser> - <browserName>Chrome</browserName> - <browserIcon>plugins/Morpheus/icons/dist/browsers/CH.png</browserIcon> - <browserCode>CH</browserCode> - <browserVersion>37.0</browserVersion> - <totalEcommerceRevenue>0</totalEcommerceRevenue> - <totalEcommerceConversions>0</totalEcommerceConversions> - <totalEcommerceItems>0</totalEcommerceItems> - <totalAbandonedCartsRevenue>0</totalAbandonedCartsRevenue> - <totalAbandonedCarts>0</totalAbandonedCarts> - <totalAbandonedCartsItems>0</totalAbandonedCartsItems> - <events>0</events> - <continent>North America</continent> - <continentCode>amn</continentCode> - <country>United States</country> - <countryCode>us</countryCode> - <countryFlag>plugins/Morpheus/icons/dist/flags/us.png</countryFlag> - <region /> - <regionCode /> - <city /> - <location>United States</location> - <latitude>38</latitude> - <longitude>-97</longitude> - <visitLocalTime>17:30:00</visitLocalTime> - <visitLocalHour>17</visitLocalHour> - <daysSinceLastVisit>0</daysSinceLastVisit> - <customVariables> - </customVariables> - <resolution>unknown</resolution> - <plugins /> - <pluginsIcons /> - </row> - <row> - <idSite>1</idSite> <idVisit>27</idVisit> <visitIp>0.0.0.0</visitIp> @@ -6573,7 +6468,7 @@ </row> <row> <idSite>1</idSite> - <idVisit>69</idVisit> + <idVisit>68</idVisit> <visitIp>175.41.193.45</visitIp> @@ -6703,7 +6598,7 @@ </row> <row> <idSite>1</idSite> - <idVisit>71</idVisit> + <idVisit>70</idVisit> <visitIp>175.41.191.45</visitIp> @@ -7873,7 +7768,7 @@ </row> <row> <idSite>1</idSite> - <idVisit>70</idVisit> + <idVisit>69</idVisit> <visitIp>175.41.193.46</visitIp> @@ -8003,7 +7898,7 @@ </row> <row> <idSite>1</idSite> - <idVisit>72</idVisit> + <idVisit>71</idVisit> <visitIp>175.41.191.46</visitIp> diff --git a/tests/PHPUnit/System/expected/test_ImportLogs__MultiSites.getAll_month.xml b/tests/PHPUnit/System/expected/test_ImportLogs__MultiSites.getAll_month.xml index c219d48a6c..39ab78c6e9 100644 --- a/tests/PHPUnit/System/expected/test_ImportLogs__MultiSites.getAll_month.xml +++ b/tests/PHPUnit/System/expected/test_ImportLogs__MultiSites.getAll_month.xml @@ -2,10 +2,10 @@ <result> <row> <label>Piwik test</label> - <nb_visits>44</nb_visits> + <nb_visits>43</nb_visits> <nb_actions>51</nb_actions> <nb_pageviews>45</nb_pageviews> - <revenue>200</revenue> + <revenue>195</revenue> <visits_evolution>100%</visits_evolution> <actions_evolution>100%</actions_evolution> <pageviews_evolution>100%</pageviews_evolution> diff --git a/tests/PHPUnit/System/expected/test_ImportLogs__MultiSites.getOne_month.xml b/tests/PHPUnit/System/expected/test_ImportLogs__MultiSites.getOne_month.xml index d90ee5a8f6..ca2db76ca1 100644 --- a/tests/PHPUnit/System/expected/test_ImportLogs__MultiSites.getOne_month.xml +++ b/tests/PHPUnit/System/expected/test_ImportLogs__MultiSites.getOne_month.xml @@ -1,11 +1,11 @@ <?xml version="1.0" encoding="utf-8" ?> <result> - <nb_visits>44</nb_visits> + <nb_visits>43</nb_visits> <nb_actions>51</nb_actions> <visits_evolution>100%</visits_evolution> <actions_evolution>100%</actions_evolution> <pageviews_evolution>100%</pageviews_evolution> <revenue_evolution>100%</revenue_evolution> <nb_pageviews>45</nb_pageviews> - <revenue>200</revenue> + <revenue>195</revenue> </result>
\ No newline at end of file diff --git a/tests/PHPUnit/System/expected/test_ImportLogs__Referrers.getReferrerType_month.xml b/tests/PHPUnit/System/expected/test_ImportLogs__Referrers.getReferrerType_month.xml index 571e6a1029..5c14385224 100644 --- a/tests/PHPUnit/System/expected/test_ImportLogs__Referrers.getReferrerType_month.xml +++ b/tests/PHPUnit/System/expected/test_ImportLogs__Referrers.getReferrerType_month.xml @@ -2,21 +2,21 @@ <result> <row> <label>Direct Entry</label> - <nb_visits>40</nb_visits> + <nb_visits>39</nb_visits> <nb_actions>46</nb_actions> <max_actions>3</max_actions> <sum_visit_length>551</sum_visit_length> - <bounce_count>35</bounce_count> - <nb_visits_converted>36</nb_visits_converted> + <bounce_count>34</bounce_count> + <nb_visits_converted>35</nb_visits_converted> <goals> <row idgoal='1'> - <nb_conversions>36</nb_conversions> - <nb_visits_converted>36</nb_visits_converted> - <revenue>180</revenue> + <nb_conversions>35</nb_conversions> + <nb_visits_converted>35</nb_visits_converted> + <revenue>175</revenue> </row> </goals> - <nb_conversions>36</nb_conversions> - <revenue>180</revenue> + <nb_conversions>35</nb_conversions> + <revenue>175</revenue> <sum_daily_nb_uniq_visitors>38</sum_daily_nb_uniq_visitors> <sum_daily_nb_users>3</sum_daily_nb_users> <segment>referrerType==direct</segment> diff --git a/tests/PHPUnit/System/expected/test_ImportLogs__Referrers.get_month.xml b/tests/PHPUnit/System/expected/test_ImportLogs__Referrers.get_month.xml index 29b33a88aa..19977ad965 100644 --- a/tests/PHPUnit/System/expected/test_ImportLogs__Referrers.get_month.xml +++ b/tests/PHPUnit/System/expected/test_ImportLogs__Referrers.get_month.xml @@ -2,7 +2,7 @@ <result> <Referrers_visitorsFromSearchEngines>0</Referrers_visitorsFromSearchEngines> <Referrers_visitorsFromSocialNetworks>0</Referrers_visitorsFromSocialNetworks> - <Referrers_visitorsFromDirectEntry>40</Referrers_visitorsFromDirectEntry> + <Referrers_visitorsFromDirectEntry>39</Referrers_visitorsFromDirectEntry> <Referrers_visitorsFromWebsites>4</Referrers_visitorsFromWebsites> <Referrers_visitorsFromCampaigns>0</Referrers_visitorsFromCampaigns> <Referrers_distinctSearchEngines>0</Referrers_distinctSearchEngines> diff --git a/tests/PHPUnit/System/expected/test_ImportLogs__Resolution.getConfiguration_month.xml b/tests/PHPUnit/System/expected/test_ImportLogs__Resolution.getConfiguration_month.xml index 063b04c95c..a907ee446f 100644 --- a/tests/PHPUnit/System/expected/test_ImportLogs__Resolution.getConfiguration_month.xml +++ b/tests/PHPUnit/System/expected/test_ImportLogs__Resolution.getConfiguration_month.xml @@ -35,12 +35,12 @@ </row> <row> <label>Mac / Chrome / unknown</label> - <nb_visits>5</nb_visits> + <nb_visits>4</nb_visits> <nb_actions>7</nb_actions> - <max_actions>2</max_actions> + <max_actions>3</max_actions> <sum_visit_length>4</sum_visit_length> - <bounce_count>3</bounce_count> - <nb_visits_converted>5</nb_visits_converted> + <bounce_count>2</bounce_count> + <nb_visits_converted>4</nb_visits_converted> <sum_daily_nb_uniq_visitors>3</sum_daily_nb_uniq_visitors> <sum_daily_nb_users>2</sum_daily_nb_users> </row> diff --git a/tests/PHPUnit/System/expected/test_ImportLogs__Resolution.getResolution_month.xml b/tests/PHPUnit/System/expected/test_ImportLogs__Resolution.getResolution_month.xml index 45cff0dd1e..1b77106393 100644 --- a/tests/PHPUnit/System/expected/test_ImportLogs__Resolution.getResolution_month.xml +++ b/tests/PHPUnit/System/expected/test_ImportLogs__Resolution.getResolution_month.xml @@ -2,12 +2,12 @@ <result> <row> <label>unknown</label> - <nb_visits>42</nb_visits> + <nb_visits>41</nb_visits> <nb_actions>49</nb_actions> <max_actions>3</max_actions> <sum_visit_length>553</sum_visit_length> - <bounce_count>36</bounce_count> - <nb_visits_converted>38</nb_visits_converted> + <bounce_count>35</bounce_count> + <nb_visits_converted>37</nb_visits_converted> <sum_daily_nb_uniq_visitors>40</sum_daily_nb_uniq_visitors> <sum_daily_nb_users>3</sum_daily_nb_users> <segment>resolution==unknown</segment> diff --git a/tests/PHPUnit/System/expected/test_ImportLogs__UserCountry.getCity_month.xml b/tests/PHPUnit/System/expected/test_ImportLogs__UserCountry.getCity_month.xml index a954714a2e..4daac6184a 100644 --- a/tests/PHPUnit/System/expected/test_ImportLogs__UserCountry.getCity_month.xml +++ b/tests/PHPUnit/System/expected/test_ImportLogs__UserCountry.getCity_month.xml @@ -2,21 +2,21 @@ <result> <row> <label>Unknown</label> - <nb_visits>33</nb_visits> + <nb_visits>32</nb_visits> <nb_actions>40</nb_actions> <max_actions>3</max_actions> <sum_visit_length>553</sum_visit_length> - <bounce_count>27</bounce_count> - <nb_visits_converted>29</nb_visits_converted> + <bounce_count>26</bounce_count> + <nb_visits_converted>28</nb_visits_converted> <goals> <row idgoal='1'> - <nb_conversions>29</nb_conversions> - <nb_visits_converted>29</nb_visits_converted> - <revenue>145</revenue> + <nb_conversions>28</nb_conversions> + <nb_visits_converted>28</nb_visits_converted> + <revenue>140</revenue> </row> </goals> - <nb_conversions>29</nb_conversions> - <revenue>145</revenue> + <nb_conversions>28</nb_conversions> + <revenue>140</revenue> <sum_daily_nb_uniq_visitors>31</sum_daily_nb_uniq_visitors> <sum_daily_nb_users>3</sum_daily_nb_users> <city_name>Unknown</city_name> diff --git a/tests/PHPUnit/System/expected/test_ImportLogs__UserCountry.getContinent_month.xml b/tests/PHPUnit/System/expected/test_ImportLogs__UserCountry.getContinent_month.xml index d44023513c..85a05944b2 100644 --- a/tests/PHPUnit/System/expected/test_ImportLogs__UserCountry.getContinent_month.xml +++ b/tests/PHPUnit/System/expected/test_ImportLogs__UserCountry.getContinent_month.xml @@ -23,21 +23,21 @@ </row> <row> <label>North America</label> - <nb_visits>12</nb_visits> + <nb_visits>11</nb_visits> <nb_actions>15</nb_actions> - <max_actions>2</max_actions> + <max_actions>3</max_actions> <sum_visit_length>6</sum_visit_length> - <bounce_count>9</bounce_count> - <nb_visits_converted>12</nb_visits_converted> + <bounce_count>8</bounce_count> + <nb_visits_converted>11</nb_visits_converted> <goals> <row idgoal='1'> - <nb_conversions>12</nb_conversions> - <nb_visits_converted>12</nb_visits_converted> - <revenue>60</revenue> + <nb_conversions>11</nb_conversions> + <nb_visits_converted>11</nb_visits_converted> + <revenue>55</revenue> </row> </goals> - <nb_conversions>12</nb_conversions> - <revenue>60</revenue> + <nb_conversions>11</nb_conversions> + <revenue>55</revenue> <sum_daily_nb_uniq_visitors>10</sum_daily_nb_uniq_visitors> <sum_daily_nb_users>2</sum_daily_nb_users> <code>North America</code> diff --git a/tests/PHPUnit/System/expected/test_ImportLogs__UserCountry.getCountry_month.xml b/tests/PHPUnit/System/expected/test_ImportLogs__UserCountry.getCountry_month.xml index b64a579d68..4be24663cf 100644 --- a/tests/PHPUnit/System/expected/test_ImportLogs__UserCountry.getCountry_month.xml +++ b/tests/PHPUnit/System/expected/test_ImportLogs__UserCountry.getCountry_month.xml @@ -26,21 +26,21 @@ </row> <row> <label>United States</label> - <nb_visits>11</nb_visits> + <nb_visits>10</nb_visits> <nb_actions>14</nb_actions> - <max_actions>2</max_actions> + <max_actions>3</max_actions> <sum_visit_length>6</sum_visit_length> - <bounce_count>8</bounce_count> - <nb_visits_converted>11</nb_visits_converted> + <bounce_count>7</bounce_count> + <nb_visits_converted>10</nb_visits_converted> <goals> <row idgoal='1'> - <nb_conversions>11</nb_conversions> - <nb_visits_converted>11</nb_visits_converted> - <revenue>55</revenue> + <nb_conversions>10</nb_conversions> + <nb_visits_converted>10</nb_visits_converted> + <revenue>50</revenue> </row> </goals> - <nb_conversions>11</nb_conversions> - <revenue>55</revenue> + <nb_conversions>10</nb_conversions> + <revenue>50</revenue> <sum_daily_nb_uniq_visitors>9</sum_daily_nb_uniq_visitors> <sum_daily_nb_users>2</sum_daily_nb_users> <code>us</code> diff --git a/tests/PHPUnit/System/expected/test_ImportLogs__UserCountry.getRegion_month.xml b/tests/PHPUnit/System/expected/test_ImportLogs__UserCountry.getRegion_month.xml index 2091eab09f..290a19cac8 100644 --- a/tests/PHPUnit/System/expected/test_ImportLogs__UserCountry.getRegion_month.xml +++ b/tests/PHPUnit/System/expected/test_ImportLogs__UserCountry.getRegion_month.xml @@ -2,21 +2,21 @@ <result> <row> <label>Unknown</label> - <nb_visits>36</nb_visits> + <nb_visits>35</nb_visits> <nb_actions>43</nb_actions> <max_actions>3</max_actions> <sum_visit_length>553</sum_visit_length> - <bounce_count>30</bounce_count> - <nb_visits_converted>32</nb_visits_converted> + <bounce_count>29</bounce_count> + <nb_visits_converted>31</nb_visits_converted> <goals> <row idgoal='1'> - <nb_conversions>32</nb_conversions> - <nb_visits_converted>32</nb_visits_converted> - <revenue>160</revenue> + <nb_conversions>31</nb_conversions> + <nb_visits_converted>31</nb_visits_converted> + <revenue>155</revenue> </row> </goals> - <nb_conversions>32</nb_conversions> - <revenue>160</revenue> + <nb_conversions>31</nb_conversions> + <revenue>155</revenue> <sum_daily_nb_uniq_visitors>34</sum_daily_nb_uniq_visitors> <sum_daily_nb_users>3</sum_daily_nb_users> <region>xx</region> diff --git a/tests/PHPUnit/System/expected/test_ImportLogs__UserId.getUsers_month.xml b/tests/PHPUnit/System/expected/test_ImportLogs__UserId.getUsers_month.xml index e535c0e66b..ac5f6a14be 100644 --- a/tests/PHPUnit/System/expected/test_ImportLogs__UserId.getUsers_month.xml +++ b/tests/PHPUnit/System/expected/test_ImportLogs__UserId.getUsers_month.xml @@ -29,9 +29,9 @@ <row> <label>user2</label> <nb_visits>1</nb_visits> - <nb_actions>2</nb_actions> - <max_actions>2</max_actions> - <sum_visit_length>1</sum_visit_length> + <nb_actions>3</nb_actions> + <max_actions>3</max_actions> + <sum_visit_length>2</sum_visit_length> <bounce_count>0</bounce_count> <nb_visits_converted>1</nb_visits_converted> <sum_daily_nb_uniq_visitors>1</sum_daily_nb_uniq_visitors> diff --git a/tests/PHPUnit/System/expected/test_ImportLogs__UserLanguage.getLanguageCode_month.xml b/tests/PHPUnit/System/expected/test_ImportLogs__UserLanguage.getLanguageCode_month.xml index 7c402950bf..061fe84ad2 100644 --- a/tests/PHPUnit/System/expected/test_ImportLogs__UserLanguage.getLanguageCode_month.xml +++ b/tests/PHPUnit/System/expected/test_ImportLogs__UserLanguage.getLanguageCode_month.xml @@ -2,12 +2,12 @@ <result> <row> <label>Unknown (xx)</label> - <nb_visits>44</nb_visits> + <nb_visits>43</nb_visits> <nb_actions>51</nb_actions> <max_actions>3</max_actions> <sum_visit_length>553</sum_visit_length> - <bounce_count>38</bounce_count> - <nb_visits_converted>40</nb_visits_converted> + <bounce_count>37</bounce_count> + <nb_visits_converted>39</nb_visits_converted> <sum_daily_nb_uniq_visitors>42</sum_daily_nb_uniq_visitors> <sum_daily_nb_users>3</sum_daily_nb_users> <segment>languageCode==xx</segment> diff --git a/tests/PHPUnit/System/expected/test_ImportLogs__UserLanguage.getLanguage_month.xml b/tests/PHPUnit/System/expected/test_ImportLogs__UserLanguage.getLanguage_month.xml index c2696d3fc2..bbc17c5de4 100644 --- a/tests/PHPUnit/System/expected/test_ImportLogs__UserLanguage.getLanguage_month.xml +++ b/tests/PHPUnit/System/expected/test_ImportLogs__UserLanguage.getLanguage_month.xml @@ -2,12 +2,12 @@ <result> <row> <label>Unknown</label> - <nb_visits>44</nb_visits> + <nb_visits>43</nb_visits> <nb_actions>51</nb_actions> <max_actions>3</max_actions> <sum_visit_length>553</sum_visit_length> - <bounce_count>38</bounce_count> - <nb_visits_converted>40</nb_visits_converted> + <bounce_count>37</bounce_count> + <nb_visits_converted>39</nb_visits_converted> <sum_daily_nb_uniq_visitors>42</sum_daily_nb_uniq_visitors> <sum_daily_nb_users>3</sum_daily_nb_users> <segment>languageCode==xx</segment> diff --git a/tests/PHPUnit/System/expected/test_ImportLogs__VisitFrequency.get_month.xml b/tests/PHPUnit/System/expected/test_ImportLogs__VisitFrequency.get_month.xml index 142034bc1b..2f714fa2e9 100644 --- a/tests/PHPUnit/System/expected/test_ImportLogs__VisitFrequency.get_month.xml +++ b/tests/PHPUnit/System/expected/test_ImportLogs__VisitFrequency.get_month.xml @@ -13,13 +13,13 @@ <avg_time_on_site_new>13</avg_time_on_site_new> <nb_uniq_visitors_returning>2</nb_uniq_visitors_returning> <nb_users_returning>1</nb_users_returning> - <nb_visits_returning>3</nb_visits_returning> + <nb_visits_returning>2</nb_visits_returning> <nb_actions_returning>4</nb_actions_returning> - <nb_visits_converted_returning>3</nb_visits_converted_returning> - <bounce_count_returning>2</bounce_count_returning> + <nb_visits_converted_returning>2</nb_visits_converted_returning> + <bounce_count_returning>1</bounce_count_returning> <sum_visit_length_returning>2</sum_visit_length_returning> - <max_actions_returning>2</max_actions_returning> - <bounce_rate_returning>67%</bounce_rate_returning> - <nb_actions_per_visit_returning>1.3</nb_actions_per_visit_returning> + <max_actions_returning>3</max_actions_returning> + <bounce_rate_returning>50%</bounce_rate_returning> + <nb_actions_per_visit_returning>2</nb_actions_per_visit_returning> <avg_time_on_site_returning>1</avg_time_on_site_returning> </result>
\ No newline at end of file diff --git a/tests/PHPUnit/System/expected/test_ImportLogs__VisitFrequency.get_range.xml b/tests/PHPUnit/System/expected/test_ImportLogs__VisitFrequency.get_range.xml index 3077b9fce8..f6839e0fc2 100644 --- a/tests/PHPUnit/System/expected/test_ImportLogs__VisitFrequency.get_range.xml +++ b/tests/PHPUnit/System/expected/test_ImportLogs__VisitFrequency.get_range.xml @@ -9,13 +9,13 @@ <bounce_rate_new>84%</bounce_rate_new> <nb_actions_per_visit_new>1.4</nb_actions_per_visit_new> <avg_time_on_site_new>14</avg_time_on_site_new> - <nb_visits_returning>12</nb_visits_returning> + <nb_visits_returning>11</nb_visits_returning> <nb_actions_returning>15</nb_actions_returning> - <nb_visits_converted_returning>11</nb_visits_converted_returning> - <bounce_count_returning>9</bounce_count_returning> + <nb_visits_converted_returning>10</nb_visits_converted_returning> + <bounce_count_returning>8</bounce_count_returning> <sum_visit_length_returning>117</sum_visit_length_returning> - <max_actions_returning>2</max_actions_returning> - <bounce_rate_returning>75%</bounce_rate_returning> - <nb_actions_per_visit_returning>1.3</nb_actions_per_visit_returning> - <avg_time_on_site_returning>10</avg_time_on_site_returning> + <max_actions_returning>3</max_actions_returning> + <bounce_rate_returning>73%</bounce_rate_returning> + <nb_actions_per_visit_returning>1.4</nb_actions_per_visit_returning> + <avg_time_on_site_returning>11</avg_time_on_site_returning> </result>
\ No newline at end of file diff --git a/tests/PHPUnit/System/expected/test_ImportLogs__VisitTime.getByDayOfWeek_month.xml b/tests/PHPUnit/System/expected/test_ImportLogs__VisitTime.getByDayOfWeek_month.xml index f16e86021a..f96b214a44 100644 --- a/tests/PHPUnit/System/expected/test_ImportLogs__VisitTime.getByDayOfWeek_month.xml +++ b/tests/PHPUnit/System/expected/test_ImportLogs__VisitTime.getByDayOfWeek_month.xml @@ -18,13 +18,13 @@ </row> <row> <label>Wednesday</label> - <nb_visits>7</nb_visits> + <nb_visits>6</nb_visits> <nb_uniq_visitors>5</nb_uniq_visitors> <nb_actions>10</nb_actions> <nb_users>2</nb_users> <sum_visit_length>6</sum_visit_length> - <bounce_count>4</bounce_count> - <nb_visits_converted>7</nb_visits_converted> + <bounce_count>3</bounce_count> + <nb_visits_converted>6</nb_visits_converted> <day_of_week>3</day_of_week> </row> <row> diff --git a/tests/PHPUnit/System/expected/test_ImportLogs__VisitTime.getVisitInformationPerLocalTime_month.xml b/tests/PHPUnit/System/expected/test_ImportLogs__VisitTime.getVisitInformationPerLocalTime_month.xml index 2d4d9f99c0..b3a5299faf 100644 --- a/tests/PHPUnit/System/expected/test_ImportLogs__VisitTime.getVisitInformationPerLocalTime_month.xml +++ b/tests/PHPUnit/System/expected/test_ImportLogs__VisitTime.getVisitInformationPerLocalTime_month.xml @@ -206,12 +206,12 @@ </row> <row> <label>17</label> - <nb_visits>8</nb_visits> + <nb_visits>7</nb_visits> <nb_actions>11</nb_actions> - <max_actions>2</max_actions> + <max_actions>3</max_actions> <sum_visit_length>6</sum_visit_length> - <bounce_count>5</bounce_count> - <nb_visits_converted>7</nb_visits_converted> + <bounce_count>4</bounce_count> + <nb_visits_converted>6</nb_visits_converted> <sum_daily_nb_uniq_visitors>6</sum_daily_nb_uniq_visitors> <sum_daily_nb_users>2</sum_daily_nb_users> <segment>visitLocalHour==17</segment> diff --git a/tests/PHPUnit/System/expected/test_ImportLogs__VisitTime.getVisitInformationPerServerTime_month.xml b/tests/PHPUnit/System/expected/test_ImportLogs__VisitTime.getVisitInformationPerServerTime_month.xml index e4cab0eb15..eb22784834 100644 --- a/tests/PHPUnit/System/expected/test_ImportLogs__VisitTime.getVisitInformationPerServerTime_month.xml +++ b/tests/PHPUnit/System/expected/test_ImportLogs__VisitTime.getVisitInformationPerServerTime_month.xml @@ -287,23 +287,23 @@ </row> <row> <label>17</label> - <nb_visits>8</nb_visits> + <nb_visits>7</nb_visits> <nb_actions>11</nb_actions> - <max_actions>2</max_actions> + <max_actions>3</max_actions> <sum_visit_length>6</sum_visit_length> - <bounce_count>5</bounce_count> - <nb_visits_converted>7</nb_visits_converted> + <bounce_count>4</bounce_count> + <nb_visits_converted>6</nb_visits_converted> <sum_daily_nb_uniq_visitors>6</sum_daily_nb_uniq_visitors> <sum_daily_nb_users>2</sum_daily_nb_users> <goals> <row idgoal='1'> - <nb_conversions>7</nb_conversions> - <nb_visits_converted>7</nb_visits_converted> - <revenue>35</revenue> + <nb_conversions>6</nb_conversions> + <nb_visits_converted>6</nb_visits_converted> + <revenue>30</revenue> </row> </goals> - <nb_conversions>7</nb_conversions> - <revenue>35</revenue> + <nb_conversions>6</nb_conversions> + <revenue>30</revenue> <segment>visitStartServerHour==17</segment> </row> <row> diff --git a/tests/PHPUnit/System/expected/test_ImportLogs__VisitorInterest.getNumberOfVisitsByDaysSinceLast_month.xml b/tests/PHPUnit/System/expected/test_ImportLogs__VisitorInterest.getNumberOfVisitsByDaysSinceLast_month.xml index f1793cadc0..bd509ac8a3 100644 --- a/tests/PHPUnit/System/expected/test_ImportLogs__VisitorInterest.getNumberOfVisitsByDaysSinceLast_month.xml +++ b/tests/PHPUnit/System/expected/test_ImportLogs__VisitorInterest.getNumberOfVisitsByDaysSinceLast_month.xml @@ -7,7 +7,7 @@ </row> <row> <label>0 days</label> - <nb_visits>2</nb_visits> + <nb_visits>1</nb_visits> <segment>daysSinceLastVisit==0</segment> </row> <row> diff --git a/tests/PHPUnit/System/expected/test_ImportLogs__VisitorInterest.getNumberOfVisitsByDaysSinceLast_range.xml b/tests/PHPUnit/System/expected/test_ImportLogs__VisitorInterest.getNumberOfVisitsByDaysSinceLast_range.xml index 1374a671f3..d25f241887 100644 --- a/tests/PHPUnit/System/expected/test_ImportLogs__VisitorInterest.getNumberOfVisitsByDaysSinceLast_range.xml +++ b/tests/PHPUnit/System/expected/test_ImportLogs__VisitorInterest.getNumberOfVisitsByDaysSinceLast_range.xml @@ -7,7 +7,7 @@ </row> <row> <label>0 days</label> - <nb_visits>5</nb_visits> + <nb_visits>4</nb_visits> <segment>daysSinceLastVisit==0</segment> </row> <row> diff --git a/tests/PHPUnit/System/expected/test_ImportLogs__VisitorInterest.getNumberOfVisitsByVisitCount_month.xml b/tests/PHPUnit/System/expected/test_ImportLogs__VisitorInterest.getNumberOfVisitsByVisitCount_month.xml index b41ab329c6..66cb4fee08 100644 --- a/tests/PHPUnit/System/expected/test_ImportLogs__VisitorInterest.getNumberOfVisitsByVisitCount_month.xml +++ b/tests/PHPUnit/System/expected/test_ImportLogs__VisitorInterest.getNumberOfVisitsByVisitCount_month.xml @@ -2,7 +2,7 @@ <result> <row> <label>1 visit</label> - <nb_visits>44</nb_visits> + <nb_visits>43</nb_visits> <nb_visits_percentage>100%</nb_visits_percentage> <segment>visitCount==1</segment> </row> diff --git a/tests/PHPUnit/System/expected/test_ImportLogs__VisitorInterest.getNumberOfVisitsByVisitCount_range.xml b/tests/PHPUnit/System/expected/test_ImportLogs__VisitorInterest.getNumberOfVisitsByVisitCount_range.xml index beeede00f0..e36c95afa4 100644 --- a/tests/PHPUnit/System/expected/test_ImportLogs__VisitorInterest.getNumberOfVisitsByVisitCount_range.xml +++ b/tests/PHPUnit/System/expected/test_ImportLogs__VisitorInterest.getNumberOfVisitsByVisitCount_range.xml @@ -2,7 +2,7 @@ <result> <row> <label>1 visit</label> - <nb_visits>50</nb_visits> + <nb_visits>49</nb_visits> <nb_visits_percentage>88%</nb_visits_percentage> <segment>visitCount==1</segment> </row> diff --git a/tests/PHPUnit/System/expected/test_ImportLogs__VisitorInterest.getNumberOfVisitsPerPage_month.xml b/tests/PHPUnit/System/expected/test_ImportLogs__VisitorInterest.getNumberOfVisitsPerPage_month.xml index 8827da6b88..38480fa988 100644 --- a/tests/PHPUnit/System/expected/test_ImportLogs__VisitorInterest.getNumberOfVisitsPerPage_month.xml +++ b/tests/PHPUnit/System/expected/test_ImportLogs__VisitorInterest.getNumberOfVisitsPerPage_month.xml @@ -2,17 +2,17 @@ <result> <row> <label>1 page</label> - <nb_visits>38</nb_visits> + <nb_visits>37</nb_visits> <segment>actions==1</segment> </row> <row> <label>2 pages</label> - <nb_visits>5</nb_visits> + <nb_visits>4</nb_visits> <segment>actions==2</segment> </row> <row> <label>3 pages</label> - <nb_visits>1</nb_visits> + <nb_visits>2</nb_visits> <segment>actions==3</segment> </row> <row> diff --git a/tests/PHPUnit/System/expected/test_ImportLogs__VisitorInterest.getNumberOfVisitsPerPage_range.xml b/tests/PHPUnit/System/expected/test_ImportLogs__VisitorInterest.getNumberOfVisitsPerPage_range.xml index 4432d4bc29..6795b68553 100644 --- a/tests/PHPUnit/System/expected/test_ImportLogs__VisitorInterest.getNumberOfVisitsPerPage_range.xml +++ b/tests/PHPUnit/System/expected/test_ImportLogs__VisitorInterest.getNumberOfVisitsPerPage_range.xml @@ -2,17 +2,17 @@ <result> <row> <label>1 page</label> - <nb_visits>47</nb_visits> + <nb_visits>46</nb_visits> <segment>actions==1</segment> </row> <row> <label>2 pages</label> - <nb_visits>7</nb_visits> + <nb_visits>6</nb_visits> <segment>actions==2</segment> </row> <row> <label>3 pages</label> - <nb_visits>2</nb_visits> + <nb_visits>3</nb_visits> <segment>actions==3</segment> </row> <row> diff --git a/tests/PHPUnit/System/expected/test_ImportLogs__VisitorInterest.getNumberOfVisitsPerVisitDuration_month.xml b/tests/PHPUnit/System/expected/test_ImportLogs__VisitorInterest.getNumberOfVisitsPerVisitDuration_month.xml index 9ba7d990dc..d367771a01 100644 --- a/tests/PHPUnit/System/expected/test_ImportLogs__VisitorInterest.getNumberOfVisitsPerVisitDuration_month.xml +++ b/tests/PHPUnit/System/expected/test_ImportLogs__VisitorInterest.getNumberOfVisitsPerVisitDuration_month.xml @@ -2,7 +2,7 @@ <result> <row> <label>0-10s</label> - <nb_visits>41</nb_visits> + <nb_visits>40</nb_visits> <segment>visitDuration>=0;visitDuration<=10</segment> </row> <row> diff --git a/tests/PHPUnit/System/expected/test_ImportLogs__VisitorInterest.getNumberOfVisitsPerVisitDuration_range.xml b/tests/PHPUnit/System/expected/test_ImportLogs__VisitorInterest.getNumberOfVisitsPerVisitDuration_range.xml index 468107d5a2..5a0ee59989 100644 --- a/tests/PHPUnit/System/expected/test_ImportLogs__VisitorInterest.getNumberOfVisitsPerVisitDuration_range.xml +++ b/tests/PHPUnit/System/expected/test_ImportLogs__VisitorInterest.getNumberOfVisitsPerVisitDuration_range.xml @@ -2,7 +2,7 @@ <result> <row> <label>0-10s</label> - <nb_visits>51</nb_visits> + <nb_visits>50</nb_visits> <segment>visitDuration>=0;visitDuration<=10</segment> </row> <row> diff --git a/tests/PHPUnit/System/expected/test_ImportLogs__VisitsSummary.getBounceCount_month.xml b/tests/PHPUnit/System/expected/test_ImportLogs__VisitsSummary.getBounceCount_month.xml index 962fbe983a..51a0bb8472 100644 --- a/tests/PHPUnit/System/expected/test_ImportLogs__VisitsSummary.getBounceCount_month.xml +++ b/tests/PHPUnit/System/expected/test_ImportLogs__VisitsSummary.getBounceCount_month.xml @@ -1,2 +1,2 @@ <?xml version="1.0" encoding="utf-8" ?> -<result>38</result>
\ No newline at end of file +<result>37</result>
\ No newline at end of file diff --git a/tests/PHPUnit/System/expected/test_ImportLogs__VisitsSummary.getVisitsConverted_month.xml b/tests/PHPUnit/System/expected/test_ImportLogs__VisitsSummary.getVisitsConverted_month.xml index a59088da03..f24432d1a4 100644 --- a/tests/PHPUnit/System/expected/test_ImportLogs__VisitsSummary.getVisitsConverted_month.xml +++ b/tests/PHPUnit/System/expected/test_ImportLogs__VisitsSummary.getVisitsConverted_month.xml @@ -1,2 +1,2 @@ <?xml version="1.0" encoding="utf-8" ?> -<result>40</result>
\ No newline at end of file +<result>39</result>
\ No newline at end of file diff --git a/tests/PHPUnit/System/expected/test_ImportLogs__VisitsSummary.getVisits_month.xml b/tests/PHPUnit/System/expected/test_ImportLogs__VisitsSummary.getVisits_month.xml index 1e4ba1a5cb..4ca6db758a 100644 --- a/tests/PHPUnit/System/expected/test_ImportLogs__VisitsSummary.getVisits_month.xml +++ b/tests/PHPUnit/System/expected/test_ImportLogs__VisitsSummary.getVisits_month.xml @@ -1,2 +1,2 @@ <?xml version="1.0" encoding="utf-8" ?> -<result>44</result>
\ No newline at end of file +<result>43</result>
\ No newline at end of file diff --git a/tests/PHPUnit/System/expected/test_ImportLogs__VisitsSummary.get_month.xml b/tests/PHPUnit/System/expected/test_ImportLogs__VisitsSummary.get_month.xml index a10316cbc6..a3f0e24e7c 100644 --- a/tests/PHPUnit/System/expected/test_ImportLogs__VisitsSummary.get_month.xml +++ b/tests/PHPUnit/System/expected/test_ImportLogs__VisitsSummary.get_month.xml @@ -2,10 +2,10 @@ <result> <nb_uniq_visitors>42</nb_uniq_visitors> <nb_users>3</nb_users> - <nb_visits>44</nb_visits> + <nb_visits>43</nb_visits> <nb_actions>51</nb_actions> - <nb_visits_converted>40</nb_visits_converted> - <bounce_count>38</bounce_count> + <nb_visits_converted>39</nb_visits_converted> + <bounce_count>37</bounce_count> <sum_visit_length>553</sum_visit_length> <max_actions>3</max_actions> <bounce_rate>86%</bounce_rate> diff --git a/tests/PHPUnit/System/expected/test_ImportLogs_siteIdThree_TrackedUsingLogReplayWithFixedSiteId__Live.getLastVisitsDetails_range.xml b/tests/PHPUnit/System/expected/test_ImportLogs_siteIdThree_TrackedUsingLogReplayWithFixedSiteId__Live.getLastVisitsDetails_range.xml index 4b67d22c23..f3f467dc7a 100644 --- a/tests/PHPUnit/System/expected/test_ImportLogs_siteIdThree_TrackedUsingLogReplayWithFixedSiteId__Live.getLastVisitsDetails_range.xml +++ b/tests/PHPUnit/System/expected/test_ImportLogs_siteIdThree_TrackedUsingLogReplayWithFixedSiteId__Live.getLastVisitsDetails_range.xml @@ -520,7 +520,7 @@ <referrerName>Google</referrerName> <referrerKeyword>Keyword not defined</referrerKeyword> <referrerKeywordPosition>1</referrerKeywordPosition> - <referrerUrl>http://www.google.com/url?sa=t&rct=j&q=&esrc=s&source=web&cd=1&ved=0CCcQFjAA&url=http%3A%2F%2Fpiwik.org%2F&ei=8vwgU8TYDZTI2wWTi4CQCA&usg=AFQjCNF_MGJRqKPvaKuUokHtZ3VvNG9ALw&bvm=bv.62922401,d.b2I</referrerUrl> + <referrerUrl>http://www.google.com/url?rct=j&q=&esrc=s&source=web&cd=1&url=http%3A%2F%2Fpiwik.org%2F</referrerUrl> <referrerSearchEngineUrl>http://google.com</referrerSearchEngineUrl> <referrerSearchEngineIcon>plugins/Morpheus/icons/dist/searchEngines/google.com.png</referrerSearchEngineIcon> <referrerSocialNetworkUrl /> @@ -948,7 +948,7 @@ <referrerName>Google</referrerName> <referrerKeyword>Keyword not defined</referrerKeyword> <referrerKeywordPosition>2</referrerKeywordPosition> - <referrerUrl>https://www.google.co.jp/url?sa=t&rct=j&q=&esrc=s&source=web&cd=2&ved=0CDAQFjAB&url=https%3A%2F%2Fpiwik.org%2Flog-analytics%2F&ei=rogdU5OuK43pkgXZmYGICA&usg=AFQjCNH4nR8bKYaliCj2egiJ0H_CX4sFJg&bvm=bv.62578216,d.dGI</referrerUrl> + <referrerUrl>https://www.google.co.jp/url?rct=j&q=&esrc=s&source=web&cd=2&url=https%3A%2F%2Fpiwik.org%2Flog-analytics%2F</referrerUrl> <referrerSearchEngineUrl>http://google.com</referrerSearchEngineUrl> <referrerSearchEngineIcon>plugins/Morpheus/icons/dist/searchEngines/google.com.png</referrerSearchEngineIcon> <referrerSocialNetworkUrl /> @@ -1414,7 +1414,7 @@ <referrerName>Google</referrerName> <referrerKeyword>Keyword not defined</referrerKeyword> <referrerKeywordPosition>1</referrerKeywordPosition> - <referrerUrl>http://www.google.ru/url?sa=t&rct=j&q=&esrc=s&source=web&cd=1&ved=0CCoQFjAA&url=http%3A%2F%2Fpiwik.org%2F&ei=ffwgU57VGuf44QT3-oCQCw&usg=AFQjCNF_MGJRqKPvaKuUokHtZ3VvNG9ALw&bvm=bv.62922401,d.bGE&cad=rjt</referrerUrl> + <referrerUrl>http://www.google.ru/url?rct=j&q=&esrc=s&source=web&cd=1&url=http%3A%2F%2Fpiwik.org%2F&cad=rjt</referrerUrl> <referrerSearchEngineUrl>http://google.com</referrerSearchEngineUrl> <referrerSearchEngineIcon>plugins/Morpheus/icons/dist/searchEngines/google.com.png</referrerSearchEngineIcon> <referrerSocialNetworkUrl /> diff --git a/tests/PHPUnit/System/expected/test_ImportLogs_withEnhancedAndLast7__MultiSites.getAll_month.xml b/tests/PHPUnit/System/expected/test_ImportLogs_withEnhancedAndLast7__MultiSites.getAll_month.xml index 9014e713e1..1a70f3db7c 100644 --- a/tests/PHPUnit/System/expected/test_ImportLogs_withEnhancedAndLast7__MultiSites.getAll_month.xml +++ b/tests/PHPUnit/System/expected/test_ImportLogs_withEnhancedAndLast7__MultiSites.getAll_month.xml @@ -3,11 +3,11 @@ <result date="2012-08"> <row> <label>Piwik test</label> - <nb_visits>44</nb_visits> + <nb_visits>43</nb_visits> <nb_actions>51</nb_actions> <nb_pageviews>45</nb_pageviews> - <revenue>200</revenue> - <nb_conversions>40</nb_conversions> + <revenue>195</revenue> + <nb_conversions>39</nb_conversions> <visits_evolution>100%</visits_evolution> <actions_evolution>100%</actions_evolution> <pageviews_evolution>100%</pageviews_evolution> @@ -61,8 +61,8 @@ <visits_evolution>-97.7%</visits_evolution> <actions_evolution>-80.4%</actions_evolution> <pageviews_evolution>-77.8%</pageviews_evolution> - <revenue_evolution>-97.5%</revenue_evolution> - <nb_conversions_evolution>-97.5%</nb_conversions_evolution> + <revenue_evolution>-97.4%</revenue_evolution> + <nb_conversions_evolution>-97.4%</nb_conversions_evolution> <idsite>1</idsite> <group /> <main_url>http://piwik.net</main_url> diff --git a/tests/PHPUnit/System/expected/test_OneVisitorTwoVisits__DevicesDetection.getType_day.xml b/tests/PHPUnit/System/expected/test_OneVisitorTwoVisits__DevicesDetection.getType_day.xml index 0deebc6539..7c63d0f381 100644 --- a/tests/PHPUnit/System/expected/test_OneVisitorTwoVisits__DevicesDetection.getType_day.xml +++ b/tests/PHPUnit/System/expected/test_OneVisitorTwoVisits__DevicesDetection.getType_day.xml @@ -92,4 +92,10 @@ <segment>deviceType==tv</segment> <logo>plugins/Morpheus/icons/dist/devices/tv.png</logo> </row> + <row> + <label>Wearable</label> + <nb_visits>0</nb_visits> + <segment>deviceType==wearable</segment> + <logo>plugins/Morpheus/icons/dist/devices/wearable.png</logo> + </row> </result>
\ No newline at end of file diff --git a/tests/PHPUnit/System/expected/test_OneVisitorTwoVisits_withCookieSupport__DevicesDetection.getType_day.xml b/tests/PHPUnit/System/expected/test_OneVisitorTwoVisits_withCookieSupport__DevicesDetection.getType_day.xml index 7c638ab0f2..774e0c714b 100644 --- a/tests/PHPUnit/System/expected/test_OneVisitorTwoVisits_withCookieSupport__DevicesDetection.getType_day.xml +++ b/tests/PHPUnit/System/expected/test_OneVisitorTwoVisits_withCookieSupport__DevicesDetection.getType_day.xml @@ -93,4 +93,10 @@ <segment>deviceType==tv</segment> <logo>plugins/Morpheus/icons/dist/devices/tv.png</logo> </row> + <row> + <label>Wearable</label> + <nb_visits>0</nb_visits> + <segment>deviceType==wearable</segment> + <logo>plugins/Morpheus/icons/dist/devices/wearable.png</logo> + </row> </result>
\ No newline at end of file diff --git a/tests/PHPUnit/System/expected/test_OneVisitor_NoKeywordSpecified__Live.getLastVisitsDetails_day.xml b/tests/PHPUnit/System/expected/test_OneVisitor_NoKeywordSpecified__Live.getLastVisitsDetails_day.xml index 86d99c41c8..ebb4f49bce 100644 --- a/tests/PHPUnit/System/expected/test_OneVisitor_NoKeywordSpecified__Live.getLastVisitsDetails_day.xml +++ b/tests/PHPUnit/System/expected/test_OneVisitor_NoKeywordSpecified__Live.getLastVisitsDetails_day.xml @@ -59,7 +59,7 @@ <referrerName>Google</referrerName> <referrerKeyword><>&\"the pdo extension is required for this adapter but the extension is not loaded</referrerKeyword> <referrerKeywordPosition>4</referrerKeywordPosition> - <referrerUrl>http://www.google.com.vn/url?sa=t&rct=j&q=%3C%3E%26%5C%22the%20pdo%20extension%20is%20required%20for%20this%20adapter%20but%20the%20extension%20is%20not%20loaded&source=web&cd=4&ved=0FjAD&url=http%3A%2F%2Fforum.piwik.org%2Fread.php%3F2%2C1011&ei=y-HHAQ&usg=AFQjCN2-nt5_GgDeg&cad=rja</referrerUrl> + <referrerUrl>http://www.google.com.vn/url?rct=j&q=%3C%3E%26%5C%22the%20pdo%20extension%20is%20required%20for%20this%20adapter%20but%20the%20extension%20is%20not%20loaded&source=web&cd=4&url=http%3A%2F%2Fforum.piwik.org%2Fread.php%3F2%2C1011&cad=rja</referrerUrl> <referrerSearchEngineUrl>http://google.com</referrerSearchEngineUrl> <referrerSearchEngineIcon>plugins/Morpheus/icons/dist/searchEngines/google.com.png</referrerSearchEngineIcon> <referrerSocialNetworkUrl /> @@ -198,7 +198,7 @@ <referrerName>Google</referrerName> <referrerKeyword>Mot clef indéfini</referrerKeyword> <referrerKeywordPosition>1</referrerKeywordPosition> - <referrerUrl>http://www.google.com/url?sa=t&rct=j&q=&esrc=s&source=web&cd=1&ved=0CC&url=http%3A%2F%2Fpiwik.org%2F&ei=&usg=</referrerUrl> + <referrerUrl>http://www.google.com/url?rct=j&q=&esrc=s&source=web&cd=1&url=http%3A%2F%2Fpiwik.org%2F</referrerUrl> <referrerSearchEngineUrl>http://google.com</referrerSearchEngineUrl> <referrerSearchEngineIcon>plugins/Morpheus/icons/dist/searchEngines/google.com.png</referrerSearchEngineIcon> <referrerSocialNetworkUrl /> diff --git a/tests/PHPUnit/System/expected/test_PiwikTracker_trackForceUsingVisitId_insteadOfHeuristics_alsoTestsCampaignTracking__Live.getLastVisitsDetails_day.xml b/tests/PHPUnit/System/expected/test_PiwikTracker_trackForceUsingVisitId_insteadOfHeuristics_alsoTestsCampaignTracking__Live.getLastVisitsDetails_day.xml index 49ccd6b0d8..d611cbf3c1 100644 --- a/tests/PHPUnit/System/expected/test_PiwikTracker_trackForceUsingVisitId_insteadOfHeuristics_alsoTestsCampaignTracking__Live.getLastVisitsDetails_day.xml +++ b/tests/PHPUnit/System/expected/test_PiwikTracker_trackForceUsingVisitId_insteadOfHeuristics_alsoTestsCampaignTracking__Live.getLastVisitsDetails_day.xml @@ -707,7 +707,7 @@ <referrerName>adwords (text)</referrerName> <referrerKeyword>(adwords) www.example.com</referrerKeyword> <referrerKeywordPosition /> - <referrerUrl>http://googleads.g.doubleclick.net/pagead/ads?lient=ca-pub-x&output=html&h=15&slotname=4299800108&adk=2258396486&w=728&lmt=1381746604&flash=11.9.900.117&url=http%3A%2F%2Fwww.example.com%2Fphotofilters%2F%26section_id%3D%26p%3D4&dt=1381746604865&bpp=5&bdt=83&shv=r20131008&cbv=r20130906&saldr=sa&correlator=1381746604888&frm=20&ga_vid=1273315809.1372079408&ga_sid=1381744659&ga_hid=2064025848&ga_fc=1&u_tz=120&u_his=17&u_java=1&u_h=864&u_w=1536&u_ah=826&u_aw=1536&u_cd=24&u_nplug=0&u_nmime=0&dff=times%20new%20roman&dfs=12&adx=404&ady=159&biw=1536&bih=770&oid=3&ref=http%3A%2F%2Fwww.example.com%2Fphotofilters%2F%26section_id%3D%26p%3D3&vis=0&fu=0&ifi=1&pfi=0&dtd=51&xpc=Pn2WpF35Mu&p=http%3A//www.example.com&rl_rc=false&adsense_enabled=true&ad_type=text&ui=rc:0&oe=utf8&height=15&width=728&format=fpkc_al_lp&kw_type=radlink&prev_fmts=728x15_0ads_al&rt=ChBSW8euAAeWTgrCYs_kAEUQEhBQaG90byBCYWNrZ3JvdW5kGgjieib00mVdpSgBUhMIy7OEnY-WugIVoZDCCh0qUgC-&hl=en&kw0=Photo+Shop+Image&kw1=Photo+Background&kw2=Photo+to+Painting&kw3=Photo+Digital&okw=Photo+Background</referrerUrl> + <referrerUrl>http://googleads.g.doubleclick.net/pagead/ads?lient=ca-pub-x&output=html&h=15&slotname=4299800108&adk=2258396486&w=728&lmt=1381746604&flash=11.9.900.117&url=http%3A%2F%2Fwww.example.com%2Fphotofilters%2F%26section_id%3D%26p%3D4&dt=1381746604865&bpp=5&bdt=83&shv=r20131008&cbv=r20130906&saldr=sa&correlator=1381746604888&frm=20&ga_vid=1273315809.1372079408&ga_sid=1381744659&ga_hid=2064025848&ga_fc=1&u_tz=120&u_his=17&u_java=1&u_h=864&u_w=1536&u_ah=826&u_aw=1536&u_cd=24&u_nplug=0&u_nmime=0&dff=times%20new%20roman&dfs=12&adx=404&ady=159&biw=1536&bih=770&oid=3&ref=http%3A%2F%2Fwww.example.com%2Fphotofilters%2F%26section_id%3D%26p%3D3&vis=0&fu=0&ifi=1&pfi=0&dtd=51&xpc=Pn2WpF35Mu&p=http%3A//www.example.com&rl_rc=false&adsense_enabled=true&ad_type=text&ui=rc:0&oe=utf8&height=15&width=728&format=fpkc_al_lp&kw_type=radlink&prev_fmts=728x15_0ads_al&rt=ChBSW8euAAeWTgrCYs_kAEUQEhBQaG90byBCYWNrZ3JvdW5kGgjieib00mVdpSgBUhMIy7OEnY-WugIVoZDCCh0qUgC-&hl=en&kw0=Photo+Shop+Image&kw1=Photo+Background&kw2=Photo+to+Painting&kw3=Photo</referrerUrl> <referrerSearchEngineUrl /> <referrerSearchEngineIcon /> <referrerSocialNetworkUrl /> @@ -829,7 +829,7 @@ <referrerName>adwords (text_image)</referrerName> <referrerKeyword>(adwords) example.com</referrerKeyword> <referrerKeywordPosition /> - <referrerUrl>http://googleads.g.doubleclick.net/pagead/ads?client=ca-pub-x&output=html&h=15&slotname=2973049897&adk=3777420323&w=728&lmt=1381755030&flash=11.9.900.117&url=http%3A%2F%2Fexample.com%2F&dt=1381755030169&bpp=8&bdt=2592&shv=r20131008&cbv=r20130906&saldr=sa&correlator=1381755030200&frm=20&ga_vid=1659309719.1381755030&ga_sid=1381755030&ga_hid=1569070879&ga_fc=0&u_tz=660&u_his=3&u_java=1&u_h=768&u_w=1366&u_ah=728&u_aw=1366&u_cd=24&u_nplug=0&u_nmime=0&dff=times%20new%20roman&dfs=13&adx=311&ady=107&biw=1349&bih=673&oid=2&ref=http%3A%2F%2Fwww.google.com.au%2Furl%3Fsa%3Dt%26rct%3Dj%26q%3D%26esrc%3Ds%26frm%3D1%26source%3Dweb%26cd%3D10%26ved%3D0CGcQFjAJ%26url%3Dhttp%253A%252F%252Fexample.com%252F%26ei%3DXNtbUvrJPKXOiAfw1IH4Bw%26usg%3DAFQjCNE66zRf2zaUw8FKf0JWxiM1FiXHVg&vis=1&fu=0&ifi=1&pfi=32&dtd=122&xpc=tBekiCZTWM&p=http%3A//example.com&rl_rc=true&adsense_enabled=true&ad_type=text_image&oe=utf8&height=15&width=728&format=fp_al_lp&kw_type=radlink&prev_fmts=728x15_0ads_al&rt=ChBSW-iYAADltAqmmOfZAA2SEg1BbmltYXRlZCBUZXh0Ggj019wBciBqgSgBUhMI8OHhzq6WugIVhJOmCh2NYQBO&hl=en&kw0=Animated+Text&kw1=Animated+GIF&kw2=Animated+Graphics&kw3=Fonts&okw=Animated+Text</referrerUrl> + <referrerUrl>http://googleads.g.doubleclick.net/pagead/ads?client=ca-pub-x&output=html&h=15&slotname=2973049897&adk=3777420323&w=728&lmt=1381755030&flash=11.9.900.117&url=http%3A%2F%2Fexample.com%2F&dt=1381755030169&bpp=8&bdt=2592&shv=r20131008&cbv=r20130906&saldr=sa&correlator=1381755030200&frm=20&ga_vid=1659309719.1381755030&ga_sid=1381755030&ga_hid=1569070879&ga_fc=0&u_tz=660&u_his=3&u_java=1&u_h=768&u_w=1366&u_ah=728&u_aw=1366&u_cd=24&u_nplug=0&u_nmime=0&dff=times%20new%20roman&dfs=13&adx=311&ady=107&biw=1349&bih=673&oid=2&ref=http%3A%2F%2Fwww.google.com.au%2Furl%3Fsa%3Dt%26rct%3Dj%26q%3D%26esrc%3Ds%26frm%3D1%26source%3Dweb%26cd%3D10%26ved%3D0CGcQFjAJ%26url%3Dhttp%253A%252F%252Fexample.com%252F%26ei%3DXNtbUvrJPKXOiAfw1IH4Bw%26usg%3DAFQjCNE66zRf2zaUw8FKf0JWxiM1FiXHVg&vis=1&fu=0&ifi=1&pfi=32&dtd=122&xpc=tBekiCZTWM&p=http%3A//example.com&rl_rc=true&adsense_enabled=true&ad_type=text_image&oe=utf8&height=15&width=728&format=fp_al_lp&kw_type=radlink&prev_fmts=728x15_0ads_al&rt=ChBSW-iYAADltAqmmOfZAA2SEg1BbmltYXRlZCBUZXh0Ggj</referrerUrl> <referrerSearchEngineUrl /> <referrerSearchEngineIcon /> <referrerSocialNetworkUrl /> @@ -951,7 +951,7 @@ <referrerName>adwords campaign</referrerName> <referrerKeyword>nintendo consoles second hand</referrerKeyword> <referrerKeywordPosition /> - <referrerUrl>http://www.google.co.nz/aclk?sa=L&ai=uYmFyiZgAf0oO0J&num=3&sig=EpOCR4xQ&ved=ENEM&adurl=http://pixel.everesttech.net/3163/cq%3Fev_sid%3D3%26ev_cmpid%3D33%26ev_ln%3Dused%2520wii%2520consoles%26ev_crx%528386%26ev_mt%3Db%26ev_n%3Dg%26ev_ltx%3D%26ev_pl%3D%26ev_pos%3D1s2%26url%3Dhttp%253A//au.shopping.com/used%2520wii%2520consoles/products%253Flinkin_id%253D8077872&rct=j&q=nintendo+consoles+second+hand</referrerUrl> + <referrerUrl>http://www.google.co.nz/aclk?ai=uYmFyiZgAf0oO0J&num=3&sig=EpOCR4xQ&adurl=http://pixel.everesttech.net/3163/cq%3Fev_sid%3D3%26ev_cmpid%3D33%26ev_ln%3Dused%2520wii%2520consoles%26ev_crx%528386%26ev_mt%3Db%26ev_n%3Dg%26ev_ltx%3D%26ev_pl%3D%26ev_pos%3D1s2%26url%3Dhttp%253A//au.shopping.com/used%2520wii%2520consoles/products%253Flinkin_id%253D8077872&rct=j&q=nintendo+consoles+second+hand</referrerUrl> <referrerSearchEngineUrl /> <referrerSearchEngineIcon /> <referrerSocialNetworkUrl /> diff --git a/tests/PHPUnit/System/expected/test_apiGetReportMetadata__API.getSegmentsMetadata.xml b/tests/PHPUnit/System/expected/test_apiGetReportMetadata__API.getSegmentsMetadata.xml index d9884a28d7..d0776af521 100644 --- a/tests/PHPUnit/System/expected/test_apiGetReportMetadata__API.getSegmentsMetadata.xml +++ b/tests/PHPUnit/System/expected/test_apiGetReportMetadata__API.getSegmentsMetadata.xml @@ -106,7 +106,7 @@ <category>Visitors</category> <name>Device brand</name> <segment>deviceBrand</segment> - <acceptedValues>3Q, 4Good, Ace, Acer, Advan, Advance, AGM, Ainol, Airness, Airties, AIS, Aiwa, Akai, Alba, Alcatel, Aligator, AllCall, AllDocube, Allview, Allwinner, Altech UEC, altron, Amazon, AMGOO, Amoi, ANS, Apple, Archos, Arian Space, Ark, Arnova, ARRIS, Ask, Assistant, Asus, Atom, Audiovox, AVH, Avvio, Axxion, Azumi Mobile, BangOlufsen, Barnes & Noble, BBK, BDF, Becker, Beeline, Beetel, BenQ, BenQ-Siemens, Bezkam, BGH, Bird, Bitel, Black Fox, Blackview, Blaupunkt, Blu, Bluboo, Bluegood, Bmobile, bogo, Boway, bq, Bravis, Brondi, Bush, CAGI, Capitel, Captiva, Carrefour, Casio, Casper, Cat, Celkon, Changhong, Cherry Mobile, China Mobile, Chuwi, Clarmin, CnM, Coby Kyros, Comio, Compal, Compaq, ComTrade Tesla, Concord, ConCorde, Condor, Coolpad, Cowon, CreNova, Crescent, Cricket, Crius Mea, Crosscall, Cube, CUBOT, CVTE, Cyrus, Daewoo, Danew, Datang, Datsun, Dbtel, Dell, Denver, Desay, DeWalt, DEXP, Dialog, Dicam, Digi, Digicel, Digiland, Digma, Divisat, DMM, DNS, DoCoMo, Doogee, Doov, Dopod, Doro, Dune HD, E-Boda, E-tel, Easypix, EBEST, Echo Mobiles, ECS, EE, EKO, Eks Mobility, Elenberg, Elephone, Energizer, Energy Sistem, Ergo, Ericsson, Ericy, Essential, Essentielb, Eton, eTouch, Etuline, Eurostar, Evercoss, Evertek, Evolio, Evolveo, EvroMedia, Explay, Extrem, Ezio, Ezze, Fairphone, Famoco, Fengxiang, FiGO, FinePower, Fly, FNB, Fondi, FORME, Forstar, Foxconn, Freetel, Fujitsu, G-TiDE, Garmin-Asus, Gateway, Gemini, General Mobile, Geotel, Ghia, Ghong, Gigabyte, Gigaset, Ginzzu, Gionee, Globex, GOCLEVER, Goly, GoMobile, Google, Gradiente, Grape, Grundig, Hafury, Haier, HannSpree, Hasee, Hi-Level, Highscreen, Hisense, Hoffmann, Homtom, Hoozo, Hosin, HP, HTC, Huawei, Humax, Hyrican, Hyundai, i-Joy, i-mate, i-mobile, iBall, iBerry, IconBIT, iHunt, Ikea, iKoMo, iLA, IMO Mobile, Impression, iNew, Infinix, InFocus, Inkti, InnJoo, Innostream, Inoi, INQ, Insignia, Intek, Intex, Inverto, iOcean, iPro, Irbis, iRola, iRulu, iTel, iView, iZotron, JAY-Tech, Jiayu, Jolla, Just5, K-Touch, Kaan, Kaiomy, Kalley, Kanji, Karbonn, KATV1, Kazam, KDDI, Kempler & Strauss, Keneksi, Kiano, Kingsun, Kivi, Kocaso, Kodak, Kogan, Komu, Konka, Konrow, Koobee, KOPO, Koridy, KRONO, Krüger&Matz, KT-Tech, Kumai, Kyocera, LAIQ, Land Rover, Landvo, Lanix, Lark, Lava, LCT, Leagoo, Ledstar, LeEco, Lemhoov, Lenco, Lenovo, Leotec, Le Pan, Lephone, Lexand, Lexibook, LG, Lingwin, Loewe, Logicom, Lumus, Luna, LYF, M.T.T., M4tel, Majestic, Mann, Manta Multimedia, Masstel, Maxcom, Maxwest, Maze, Mecer, Mecool, Mediacom, MediaTek, Medion, MEEG, MegaFon, Meitu, Meizu, Memup, Metz, MEU, MicroMax, Microsoft, Mio, Miray, Mitsubishi, MIXC, MLLED, Mobicel, Mobiistar, Mobiola, Mobistel, Modecom, Mofut, Motorola, Movic, Mpman, MSI, MTC, MTN, MYFON, MyPhone, Myria, Mystery, MyWigo, National, Navon, NEC, Neffos, Netgear, NeuImage, Newgen, NewsMy, NEXBOX, Nexian, Nextbit, NextBook, NGM, NG Optics, Nikon, Nintendo, NOA, Noain, Nobby, Noblex, Nokia, Nomi, Nous, NUU Mobile, Nuvo, Nvidia, NYX Mobile, O+, O2, Obi, Odys, Onda, OnePlus, OPPO, Opsson, Orange, Ordissimo, Ouki, Oukitel, OUYA, Overmax, Oysters, Palm, Panacom, Panasonic, Pantech, PCBOX, PCD, PCD Argentina, PEAQ, Pentagram, Philips, phoneOne, Pioneer, Pixus, Ployer, Plum, Point of View, Polaroid, PolyPad, Polytron, Pomp, Positivo, PPTV, Prestigio, Primepad, Proline, ProScan, PULID, Q-Touch, Qilive, QMobile, Qtek, Quantum, Quechua, Qumo, R-TV, Ramos, RCA Tablets, Readboy, Rikomagic, RIM, Rinno, Ritmix, Ritzviva, Riviera, Roadrover, Rokit, Roku, Rombica, Ross&Moor, Rover, RoverPad, RT Project, RugGear, Runbo, Safaricom, Sagem, Samsung, Sanei, Santin, Sanyo, Savio, Sega, Selevision, Selfix, Sencor, Sendo, Senseit, Senwa, SFR, Sharp, Shift Phones, Shuttle, Siemens, Sigma, Silent Circle, Simbans, Sky, Skyworth, Smart, Smartfren, Smartisan, Softbank, Sonim, Sony, Sony Ericsson, Spectrum, Spice, Star, Starway, STF Mobile, STK, Stonex, Storex, Sumvision, SunVan, Sunvell, SuperSonic, Supra, SWISSMOBILITY, Symphony, Syrox, T-Mobile, TB Touch, TCL, TechniSat, TechnoTrend, TechPad, Teclast, Tecno Mobile, Telefunken, Telego, Telenor, Telit, Tesco, Tesla, teXet, ThL, Thomson, TIANYU, Timovi, TiPhone, Tolino, Tooky, Top House, Toplux, Toshiba, Touchmate, TrekStor, Trevi, True, Tunisie Telecom, Turbo, Turbo-X, TVC, U.S. Cellular, Ugoos, Uhappy, Ulefone, Umax, UMIDIGI, Unihertz, Unimax, Uniscope, Unknown, Unnecto, Unonu, Unowhy, UTOK, UTStarcom, Vastking, Venso, Verizon, Vernee, Vertex, Vertu, Verykool, Vesta, Vestel, VGO TEL, Videocon, Videoweb, ViewSonic, Vinga, Vinsoc, Vitelcom, Vivax, Vivo, Vizio, VK Mobile, Vodafone, Vonino, Vorago, Voto, Voxtel, Vsun, Vulcan, Walton, Web TV, Weimei, WellcoM, Wexler, Wieppo, Wiko, Wileyfox, Wink, Wolder, Wolfgang, Wonu, Woo, Woxter, X-TIGI, X-View, Xiaolajiao, Xiaomi, Xion, Xolo, Xoro, Yandex, Yarvik, Yes, Yezz, Yota, Ytone, Yu, Yuandao, Yusun, Yxtel, Zeemi, Zen, Zenek, Zonda, Zopo, ZTE, Zuum, Zync, ZYQ, öwn</acceptedValues> + <acceptedValues>3Q, 4Good, Ace, Acer, Advan, Advance, AGM, Ainol, Airness, Airties, AIS, Aiwa, Akai, Alba, Alcatel, Aligator, AllCall, AllDocube, Allview, Allwinner, Altech UEC, altron, Amazon, AMGOO, Amoi, ANS, Apple, Archos, Arian Space, Ark, ArmPhone, Arnova, ARRIS, Ask, Assistant, Asus, Atom, Audiovox, AVH, Avvio, Axxion, Azumi Mobile, BangOlufsen, Barnes & Noble, BBK, BDF, Becker, Beeline, Beetel, BenQ, BenQ-Siemens, Bezkam, BGH, Bird, Bitel, Black Fox, Blackview, Blaupunkt, Blu, Bluboo, Bluegood, Bmobile, bogo, Boway, bq, Bravis, Brondi, Bush, CAGI, Capitel, Captiva, Carrefour, Casio, Casper, Cat, Celkon, Changhong, Cherry Mobile, China Mobile, Chuwi, Clarmin, CnM, Coby Kyros, Comio, Compal, Compaq, ComTrade Tesla, Concord, ConCorde, Condor, Coolpad, Cowon, CreNova, Crescent, Cricket, Crius Mea, Crosscall, Cube, CUBOT, CVTE, Cyrus, Daewoo, Danew, Datang, Datsun, Dbtel, Dell, Denver, Desay, DeWalt, DEXP, Dialog, Dicam, Digi, Digicel, Digiland, Digma, Divisat, DMM, DNS, DoCoMo, Doogee, Doov, Dopod, Doro, Dune HD, E-Boda, E-tel, Easypix, EBEST, Echo Mobiles, ECS, EE, EKO, Eks Mobility, Element, Elenberg, Elephone, Energizer, Energy Sistem, Ergo, Ericsson, Ericy, Essential, Essentielb, Eton, eTouch, Etuline, Eurostar, Evercoss, Evertek, Evolio, Evolveo, EvroMedia, Explay, Extrem, Ezio, Ezze, Fairphone, Famoco, Fengxiang, FiGO, FinePower, Fly, FNB, Fondi, FORME, Forstar, Foxconn, Freetel, Fujitsu, G-TiDE, Garmin-Asus, Gateway, Gemini, General Mobile, Geotel, Ghia, Ghong, Gigabyte, Gigaset, Ginzzu, Gionee, Globex, GOCLEVER, Goly, Gome, GoMobile, Google, Gradiente, Grape, Grundig, Hafury, Haier, HannSpree, Hasee, Hi-Level, Highscreen, Hisense, Hoffmann, Homtom, Hoozo, Hosin, HP, HTC, Huadoo, Huawei, Humax, Hyrican, Hyundai, i-Joy, i-mate, i-mobile, iBall, iBerry, IconBIT, iGet, iHunt, Ikea, iKoMo, iLA, IMO Mobile, Impression, iNew, Infinix, InFocus, Inkti, InnJoo, Innostream, Inoi, INQ, Insignia, Intek, Intex, Inverto, iOcean, iPro, Irbis, iRola, iRulu, iTel, iVA, iView, iZotron, JAY-Tech, JFone, Jiayu, Jolla, Just5, K-Touch, Kaan, Kaiomy, Kalley, Kanji, Karbonn, KATV1, Kazam, KDDI, Kempler & Strauss, Keneksi, Kiano, Kingsun, Kivi, Kocaso, Kodak, Kogan, Komu, Konka, Konrow, Koobee, KOPO, Koridy, KRONO, Krüger&Matz, KT-Tech, Kumai, Kyocera, LAIQ, Land Rover, Landvo, Lanix, Lark, Lava, LCT, Leagoo, Ledstar, LeEco, Lemhoov, Lenco, Lenovo, Leotec, Le Pan, Lephone, Lexand, Lexibook, LG, Lingwin, Loewe, Logicom, Lumus, Luna, LYF, M.T.T., M4tel, Majestic, Mann, Manta Multimedia, Masstel, Maxcom, Maxwest, Maze, Mecer, Mecool, Mediacom, MediaTek, Medion, MEEG, MegaFon, Meitu, Meizu, Memup, Metz, MEU, MicroMax, Microsoft, Mio, Miray, Mitsubishi, MIXC, MLLED, Mobicel, Mobiistar, Mobiola, Mobistel, Modecom, Mofut, Motorola, Movic, Mpman, MSI, MTC, MTN, MYFON, MyPhone, Myria, Mystery, MyWigo, National, Navon, NEC, Neffos, Netgear, NeuImage, Newgen, NewsMy, NEXBOX, Nexian, Nextbit, NextBook, NGM, NG Optics, Nikon, Nintendo, NOA, Noain, Nobby, Noblex, Nokia, Nomi, Nous, NUU Mobile, Nuvo, Nvidia, NYX Mobile, O+, O2, Obi, Odys, Onda, OnePlus, OPPO, Opsson, Orange, Ordissimo, Ouki, Oukitel, OUYA, Overmax, Oysters, Palm, Panacom, Panasonic, Pantech, PCBOX, PCD, PCD Argentina, PEAQ, Pentagram, Phicomm, Philips, phoneOne, Pioneer, Pixus, Ployer, Plum, Point of View, Polaroid, PolyPad, Polytron, Pomp, Positivo, PPTV, Prestigio, Primepad, Proline, ProScan, Protruly, PULID, Q-Touch, Qilive, QMobile, Qtek, Quantum, Quechua, Qumo, R-TV, Ramos, Razer, RCA Tablets, Readboy, Rikomagic, RIM, Rinno, Ritmix, Ritzviva, Riviera, Roadrover, Rokit, Roku, Rombica, Ross&Moor, Rover, RoverPad, RT Project, RugGear, Runbo, Ryte, Safaricom, Sagem, Samsung, Sanei, Santin, Sanyo, Savio, Sega, Selevision, Selfix, Sencor, Sendo, Senseit, Senwa, SFR, Sharp, Shift Phones, Shuttle, Siemens, Sigma, Silent Circle, Simbans, Sky, Skyworth, Smart, Smartfren, Smartisan, Softbank, Sonim, Sony, Sony Ericsson, Soyes, Spectrum, Spice, Star, Starway, STF Mobile, STK, Stonex, Storex, Sumvision, SunVan, Sunvell, SuperSonic, Supra, SWISSMOBILITY, Symphony, Syrox, T-Mobile, TB Touch, TCL, TechniSat, TechnoTrend, TechPad, Teclast, Tecno Mobile, Telefunken, Telego, Telenor, Telit, Tesco, Tesla, teXet, ThL, Thomson, TIANYU, Timovi, TiPhone, Tolino, Tooky, Top House, Toplux, Toshiba, Touchmate, TrekStor, Trevi, True, Tunisie Telecom, Turbo, Turbo-X, TVC, U.S. Cellular, Ugoos, Uhans, Uhappy, Ulefone, Umax, UMIDIGI, Unihertz, Unimax, Uniscope, Unknown, Unnecto, Unonu, Unowhy, UTOK, UTStarcom, Vastking, Venso, Verizon, Vernee, Vertex, Vertu, Verykool, Vesta, Vestel, VGO TEL, Videocon, Videoweb, ViewSonic, Vinga, Vinsoc, Vitelcom, Vivax, Vivo, Vizio, VK Mobile, Vodafone, Vonino, Vontar, Vorago, Vorke, Voto, Voxtel, Voyo, Vsun, Vulcan, Walton, Web TV, Weimei, WellcoM, Wexler, Wieppo, Wigor, Wiko, Wileyfox, Wink, Wolder, Wolfgang, Wonu, Woo, Woxter, X-TIGI, X-View, Xiaolajiao, Xiaomi, Xion, Xolo, Xoro, Yandex, Yarvik, Yes, Yezz, Yota, Ytone, Yu, Yuandao, Yusun, Yxtel, Zeemi, Zen, Zenek, Zfiner, Zidoo, Zonda, Zopo, ZTE, Zuum, Zync, ZYQ, öwn</acceptedValues> </row> <row> <type>dimension</type> @@ -120,7 +120,7 @@ <category>Visitors</category> <name>Device type</name> <segment>deviceType</segment> - <acceptedValues>desktop, smartphone, tablet, feature phone, console, tv, car browser, smart display, camera, portable media player, phablet, smart speaker</acceptedValues> + <acceptedValues>desktop, smartphone, tablet, feature phone, console, tv, car browser, smart display, camera, portable media player, phablet, smart speaker, wearable</acceptedValues> </row> <row> <type>dimension</type> diff --git a/tests/PHPUnit/System/expected/test_csvExport__Live.getLastVisitsDetails_day.csv b/tests/PHPUnit/System/expected/test_csvExport__Live.getLastVisitsDetails_day.csv Binary files differindex 842df3498b..d069caa210 100644 --- a/tests/PHPUnit/System/expected/test_csvExport__Live.getLastVisitsDetails_day.csv +++ b/tests/PHPUnit/System/expected/test_csvExport__Live.getLastVisitsDetails_day.csv diff --git a/tests/PHPUnit/System/expected/test_periodIsRange_dateIsLastN_MetadataAndNormalAPI__Live.getLastVisits.xml b/tests/PHPUnit/System/expected/test_periodIsRange_dateIsLastN_MetadataAndNormalAPI__Live.getLastVisits.xml index 4ec551d90a..cdc49204a4 100644 --- a/tests/PHPUnit/System/expected/test_periodIsRange_dateIsLastN_MetadataAndNormalAPI__Live.getLastVisits.xml +++ b/tests/PHPUnit/System/expected/test_periodIsRange_dateIsLastN_MetadataAndNormalAPI__Live.getLastVisits.xml @@ -399,7 +399,7 @@ <referrerName>Google</referrerName> <referrerKeyword>this keyword should be ranked</referrerKeyword> <referrerKeywordPosition>1</referrerKeywordPosition> - <referrerUrl>http://www.google.com/url?sa=t&source=web&cd=1&ved=0CB4QFjAA&url=http://piwik.org/&rct=j&q=this keyword should be ranked&ei=V8WfTePkKKLfiALrpZWGAw&usg=AFQjCNF_MGJRqKPvaKuUokHtZ3VvNG9ALw&sig2=BvKAdCtNixsmfNWXjsNyMw</referrerUrl> + <referrerUrl>http://www.google.com/url?source=web&cd=1&url=http://piwik.org/&rct=j&q=this keyword should be ranked&sig2=BvKAdCtNixsmfNWXjsNyMw</referrerUrl> <referrerSearchEngineUrl>http://google.com</referrerSearchEngineUrl> <referrerSearchEngineIcon>plugins/Morpheus/icons/dist/searchEngines/google.com.png</referrerSearchEngineIcon> <referrerSocialNetworkUrl /> diff --git a/tests/PHPUnit/System/expected/test_periodIsRange_dateIsLastN_MetadataAndNormalAPI__Live.getLastVisitsDetails_range.xml b/tests/PHPUnit/System/expected/test_periodIsRange_dateIsLastN_MetadataAndNormalAPI__Live.getLastVisitsDetails_range.xml index 4ec551d90a..cdc49204a4 100644 --- a/tests/PHPUnit/System/expected/test_periodIsRange_dateIsLastN_MetadataAndNormalAPI__Live.getLastVisitsDetails_range.xml +++ b/tests/PHPUnit/System/expected/test_periodIsRange_dateIsLastN_MetadataAndNormalAPI__Live.getLastVisitsDetails_range.xml @@ -399,7 +399,7 @@ <referrerName>Google</referrerName> <referrerKeyword>this keyword should be ranked</referrerKeyword> <referrerKeywordPosition>1</referrerKeywordPosition> - <referrerUrl>http://www.google.com/url?sa=t&source=web&cd=1&ved=0CB4QFjAA&url=http://piwik.org/&rct=j&q=this keyword should be ranked&ei=V8WfTePkKKLfiALrpZWGAw&usg=AFQjCNF_MGJRqKPvaKuUokHtZ3VvNG9ALw&sig2=BvKAdCtNixsmfNWXjsNyMw</referrerUrl> + <referrerUrl>http://www.google.com/url?source=web&cd=1&url=http://piwik.org/&rct=j&q=this keyword should be ranked&sig2=BvKAdCtNixsmfNWXjsNyMw</referrerUrl> <referrerSearchEngineUrl>http://google.com</referrerSearchEngineUrl> <referrerSearchEngineIcon>plugins/Morpheus/icons/dist/searchEngines/google.com.png</referrerSearchEngineIcon> <referrerSocialNetworkUrl /> diff --git a/tests/PHPUnit/System/expected/test_periodIsRange_dateIsLastN_MetadataAndNormalAPI_pagesegment__Live.getLastVisits.xml b/tests/PHPUnit/System/expected/test_periodIsRange_dateIsLastN_MetadataAndNormalAPI_pagesegment__Live.getLastVisits.xml index 4ec551d90a..cdc49204a4 100644 --- a/tests/PHPUnit/System/expected/test_periodIsRange_dateIsLastN_MetadataAndNormalAPI_pagesegment__Live.getLastVisits.xml +++ b/tests/PHPUnit/System/expected/test_periodIsRange_dateIsLastN_MetadataAndNormalAPI_pagesegment__Live.getLastVisits.xml @@ -399,7 +399,7 @@ <referrerName>Google</referrerName> <referrerKeyword>this keyword should be ranked</referrerKeyword> <referrerKeywordPosition>1</referrerKeywordPosition> - <referrerUrl>http://www.google.com/url?sa=t&source=web&cd=1&ved=0CB4QFjAA&url=http://piwik.org/&rct=j&q=this keyword should be ranked&ei=V8WfTePkKKLfiALrpZWGAw&usg=AFQjCNF_MGJRqKPvaKuUokHtZ3VvNG9ALw&sig2=BvKAdCtNixsmfNWXjsNyMw</referrerUrl> + <referrerUrl>http://www.google.com/url?source=web&cd=1&url=http://piwik.org/&rct=j&q=this keyword should be ranked&sig2=BvKAdCtNixsmfNWXjsNyMw</referrerUrl> <referrerSearchEngineUrl>http://google.com</referrerSearchEngineUrl> <referrerSearchEngineIcon>plugins/Morpheus/icons/dist/searchEngines/google.com.png</referrerSearchEngineIcon> <referrerSocialNetworkUrl /> diff --git a/tests/PHPUnit/System/expected/test_periodIsRange_dateIsLastN_MetadataAndNormalAPI_pagesegment__Live.getLastVisitsDetails_range.xml b/tests/PHPUnit/System/expected/test_periodIsRange_dateIsLastN_MetadataAndNormalAPI_pagesegment__Live.getLastVisitsDetails_range.xml index 4ec551d90a..cdc49204a4 100644 --- a/tests/PHPUnit/System/expected/test_periodIsRange_dateIsLastN_MetadataAndNormalAPI_pagesegment__Live.getLastVisitsDetails_range.xml +++ b/tests/PHPUnit/System/expected/test_periodIsRange_dateIsLastN_MetadataAndNormalAPI_pagesegment__Live.getLastVisitsDetails_range.xml @@ -399,7 +399,7 @@ <referrerName>Google</referrerName> <referrerKeyword>this keyword should be ranked</referrerKeyword> <referrerKeywordPosition>1</referrerKeywordPosition> - <referrerUrl>http://www.google.com/url?sa=t&source=web&cd=1&ved=0CB4QFjAA&url=http://piwik.org/&rct=j&q=this keyword should be ranked&ei=V8WfTePkKKLfiALrpZWGAw&usg=AFQjCNF_MGJRqKPvaKuUokHtZ3VvNG9ALw&sig2=BvKAdCtNixsmfNWXjsNyMw</referrerUrl> + <referrerUrl>http://www.google.com/url?source=web&cd=1&url=http://piwik.org/&rct=j&q=this keyword should be ranked&sig2=BvKAdCtNixsmfNWXjsNyMw</referrerUrl> <referrerSearchEngineUrl>http://google.com</referrerSearchEngineUrl> <referrerSearchEngineIcon>plugins/Morpheus/icons/dist/searchEngines/google.com.png</referrerSearchEngineIcon> <referrerSocialNetworkUrl /> diff --git a/tests/UI/expected-screenshots/EmptySite_emptySiteDashboard.png b/tests/UI/expected-screenshots/EmptySite_emptySiteDashboard.png index f80961ddab..a3692da1ab 100644 --- a/tests/UI/expected-screenshots/EmptySite_emptySiteDashboard.png +++ b/tests/UI/expected-screenshots/EmptySite_emptySiteDashboard.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:882eef814d870ca08780f93e4419b72a64a1d8a17a314402a590668b128f9263 -size 299912 +oid sha256:9f92837c2c03c051ff1c60a8b564a6c63eae319a9cee1ba6c3a66bbefe517c7d +size 301240 diff --git a/tests/UI/expected-screenshots/OneClickUpdate_login.png b/tests/UI/expected-screenshots/OneClickUpdate_login.png index 915bab1cb3..8e06f526d5 100644 --- a/tests/UI/expected-screenshots/OneClickUpdate_login.png +++ b/tests/UI/expected-screenshots/OneClickUpdate_login.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:bd758c0b8a5e888a1fa10a6294124a777300d4446310b9462159436d9b2f003a -size 267909 +oid sha256:512206d08d6f5acb4421b31bcef9cc7fe69d7f398e1f376aa97da8081de72b75 +size 268796 diff --git a/tests/UI/expected-screenshots/UIIntegrationTest_dashboard2.png b/tests/UI/expected-screenshots/UIIntegrationTest_dashboard2.png index c4163f0f00..b83a7fed58 100644 --- a/tests/UI/expected-screenshots/UIIntegrationTest_dashboard2.png +++ b/tests/UI/expected-screenshots/UIIntegrationTest_dashboard2.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:a55b55617bdf39b6f3fec23e4d7a6e73c53af24f54058ad72043d9302f7da6c1 -size 1565116 +oid sha256:b43df5917ef5025fb008519305627b58eb09ac5379d1adda4dfcd8479b1981e1 +size 1564993 diff --git a/tests/UI/expected-screenshots/UIIntegrationTest_visitors_devices.png b/tests/UI/expected-screenshots/UIIntegrationTest_visitors_devices.png index f467e34ab3..d8e355b991 100644 --- a/tests/UI/expected-screenshots/UIIntegrationTest_visitors_devices.png +++ b/tests/UI/expected-screenshots/UIIntegrationTest_visitors_devices.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:f87674538449d8d362a0d2f62c116782a0b3020a7b1c64af58f9c27088586fcf -size 86523 +oid sha256:9d8cfd5c706bc482828d00fa31fa3ce2afde5b8ad9b3132a81972fa43e75b9c5 +size 86469 diff --git a/tests/javascript/index.php b/tests/javascript/index.php index c634bc3f55..59b1c9d181 100644 --- a/tests/javascript/index.php +++ b/tests/javascript/index.php @@ -4299,6 +4299,7 @@ if ($mysql) { function resetTracker(track, token, replace) { + tracker.getRequestQueue().sendRequests(); // make sure to send any remaining queued requests tracker.clearTrackedContentImpressions(); tracker.clearEnableTrackOnlyVisibleContent(); tracker.setCustomData('token', token); @@ -4371,7 +4372,7 @@ if ($mysql) { tracker.trackAllContentImpressions(); strictEqual(tracker.getTrackedContentImpressions().length, 7, 'should mark 7 content blocks as tracked'); - wait(300); + wait(3000); var token2 = '2' + token; resetTracker(tracker, token2); @@ -4383,7 +4384,7 @@ if ($mysql) { tracker.trackContentImpressionsWithinNode(_e('click1')); strictEqual(tracker.getTrackedContentImpressions().length, 0, 'should not track anything as does not contain content block'); - wait(300); + wait(3000); var token3 = '3' + token; resetTracker(tracker, token3); @@ -4393,17 +4394,17 @@ if ($mysql) { tracker.trackContentImpression('Any://Name', 'AnyPiece?', 'http://www.example.com'); strictEqual(tracker.getTrackedContentImpressions().length, 0, 'manual impression call should not be marked as already tracked'); - wait(300); + wait(3000); var token4 = '4' + token; resetTracker(tracker, token4); tracker.trackContentInteraction(); // should not track anything as interaction and name is required tracker.trackContentInteraction('Clicki'); // should not track anything as interaction and name is required tracker.trackContentInteraction('Clicke', 'IntName'); // should use default for piece and ignore target as it is not set - wait(500); + wait(300); tracker.trackContentInteraction('Clicki', 'IntN:/ame', 'IntPiece?', 'http://int.example.com'); - wait(300); + wait(3000); setupContentTrackingFixture('trackingContent', document.body); @@ -4411,7 +4412,7 @@ if ($mysql) { resetTracker(tracker, token5); tracker.trackContentInteractionNode(_s('#ex5'), 'Clicki?iii'); - wait(300); + wait(3000); var token6 = '6' + token; resetTracker(tracker, token6); @@ -4420,6 +4421,8 @@ if ($mysql) { expected = [contentBlocks[7], contentBlocks[6], contentBlocks[5], contentBlocks[1], contentBlocks[4], contentBlocks[3], contentBlocks[2]]; propEqual(tracker.getTrackedContentImpressions().length, 7, 'should still track all impressions even if visible enabled'); + wait(3000); + var token7 = '7' + token; resetTracker(tracker, token7); tracker.enableTrackOnlyVisibleContent(false, 0); @@ -4431,8 +4434,7 @@ if ($mysql) { expected = [contentBlocks[6], contentBlocks[5]]; propEqual(tracker.getTrackedContentImpressions(), expected, 'should track the two visible ones'); - - wait(300); + wait(3000); var token8 = '8' + token; resetTracker(tracker, token8); @@ -4440,8 +4442,7 @@ if ($mysql) { expected = [contentBlocks[6], contentBlocks[5], contentBlocks[1]]; propEqual(tracker.getTrackedContentImpressions(), expected, 'should only track all visible impressions'); - - wait(300); + wait(3000); // test detection of content via interval var token9 = '9' + token; @@ -4496,6 +4497,7 @@ if ($mysql) { // trackAllContentImpressions() var results = fetchTrackedRequests(token); + equal( (/<span\>([0-9]+)\<\/span\>/.exec(results))[1], "7", "count trackAllContentImpressions requests. all content blocks should be tracked" ); var requests = results.match(/<span\>(.*?)\<\/span\>/g); @@ -4615,7 +4617,7 @@ if ($mysql) { equal( (/<span\>([0-9]+)\<\/span\>/.exec(results))[1], "6", "count automatically tracked requests, via scroll. " ); start(); - }, 7000); + }, 13000); expected = [ @@ -4733,6 +4735,7 @@ if ($mysql) { function resetTracker(track, token) { + tracker.getRequestQueue().sendRequests(); // make sure to send any remaining queued requests tracker.clearTrackedContentImpressions(); tracker.clearEnableTrackOnlyVisibleContent(); tracker.setCustomData('token', token); |