private function inferTrafficAttribution()
 {
     $ref = owa_coreAPI::getServerParam('HTTP_REFERER');
     $medium = 'direct';
     $source = '(none)';
     $search_terms = '(none)';
     $session_referer = '(none)';
     if ($ref) {
         $uri = owa_lib::parse_url($ref);
         // check for external referer
         $host = owa_coreAPI::getServerParam('HTTP_HOST');
         if ($host != $uri['host']) {
             $medium = 'referral';
             $source = owa_lib::stripWwwFromDomain($uri['host']);
             $engine = $this->isRefererSearchEngine($uri);
             $session_referer = $ref;
             if ($engine) {
                 $medium = 'organic-search';
                 $search_terms = $engine['t'];
             }
         }
     }
     owa_coreAPI::setState('s', 'referer', $session_referer);
     owa_coreAPI::setState('s', 'medium', $medium);
     owa_coreAPI::setState('s', 'source', $source);
     owa_coreAPI::setState('s', 'search_terms', $search_terms);
 }