home *** CD-ROM | disk | FTP | other *** search
/ Ice Age Fan CD 1 / CD1_Scrat.iso / flash / data / game.swf / scripts / com / google / analytics / campaign / CampaignManager.as < prev    next >
Encoding:
Text File  |  2012-07-04  |  10.0 KB  |  332 lines

  1. package com.google.analytics.campaign
  2. {
  3.    import com.google.analytics.core.Buffer;
  4.    import com.google.analytics.core.OrganicReferrer;
  5.    import com.google.analytics.debug.DebugConfiguration;
  6.    import com.google.analytics.debug.VisualDebugMode;
  7.    import com.google.analytics.utils.Protocols;
  8.    import com.google.analytics.utils.URL;
  9.    import com.google.analytics.utils.Variables;
  10.    import com.google.analytics.v4.Configuration;
  11.    
  12.    public class CampaignManager
  13.    {
  14.       public static const trackingDelimiter:String = "|";
  15.       
  16.       private var _config:Configuration;
  17.       
  18.       private var _domainHash:Number;
  19.       
  20.       private var _debug:DebugConfiguration;
  21.       
  22.       private var _timeStamp:Number;
  23.       
  24.       private var _referrer:String;
  25.       
  26.       private var _buffer:Buffer;
  27.       
  28.       public function CampaignManager(param1:Configuration, param2:DebugConfiguration, param3:Buffer, param4:Number, param5:String, param6:Number)
  29.       {
  30.          super();
  31.          _config = param1;
  32.          _debug = param2;
  33.          _buffer = param3;
  34.          _domainHash = param4;
  35.          _referrer = param5;
  36.          _timeStamp = param6;
  37.       }
  38.       
  39.       public static function isInvalidReferrer(param1:String) : Boolean
  40.       {
  41.          var _loc2_:URL = null;
  42.          if(param1 == "" || param1 == "-" || param1 == "0")
  43.          {
  44.             return true;
  45.          }
  46.          if(param1.indexOf("://") > -1)
  47.          {
  48.             _loc2_ = new URL(param1);
  49.             if(_loc2_.protocol == Protocols.file || _loc2_.protocol == Protocols.none)
  50.             {
  51.                return true;
  52.             }
  53.          }
  54.          return false;
  55.       }
  56.       
  57.       public static function isFromGoogleCSE(param1:String, param2:Configuration) : Boolean
  58.       {
  59.          var _loc3_:URL = new URL(param1);
  60.          if(_loc3_.hostName.indexOf(param2.google) > -1)
  61.          {
  62.             if(_loc3_.search.indexOf(param2.googleSearchParam + "=") > -1)
  63.             {
  64.                if(_loc3_.path == "/" + param2.googleCsePath)
  65.                {
  66.                   return true;
  67.                }
  68.             }
  69.          }
  70.          return false;
  71.       }
  72.       
  73.       public function getCampaignInformation(param1:String, param2:Boolean) : CampaignInfo
  74.       {
  75.          var _loc4_:CampaignTracker = null;
  76.          var _loc8_:CampaignTracker = null;
  77.          var _loc9_:int = 0;
  78.          var _loc3_:CampaignInfo = new CampaignInfo();
  79.          var _loc5_:* = false;
  80.          var _loc6_:Boolean = false;
  81.          var _loc7_:int = 0;
  82.          if(_config.allowLinker && _buffer.isGenuine())
  83.          {
  84.             if(!_buffer.hasUTMZ())
  85.             {
  86.                return _loc3_;
  87.             }
  88.          }
  89.          _loc4_ = getTrackerFromSearchString(param1);
  90.          if(isValid(_loc4_))
  91.          {
  92.             _loc6_ = hasNoOverride(param1);
  93.             if((_loc6_) && !_buffer.hasUTMZ())
  94.             {
  95.                return _loc3_;
  96.             }
  97.          }
  98.          if(!isValid(_loc4_))
  99.          {
  100.             _loc4_ = getOrganicCampaign();
  101.             if(!_buffer.hasUTMZ() && isIgnoredKeyword(_loc4_))
  102.             {
  103.                return _loc3_;
  104.             }
  105.          }
  106.          if(!isValid(_loc4_) && param2)
  107.          {
  108.             _loc4_ = getReferrerCampaign();
  109.             if(!_buffer.hasUTMZ() && isIgnoredReferral(_loc4_))
  110.             {
  111.                return _loc3_;
  112.             }
  113.          }
  114.          if(!isValid(_loc4_))
  115.          {
  116.             if(!_buffer.hasUTMZ() && param2)
  117.             {
  118.                _loc4_ = getDirectCampaign();
  119.             }
  120.          }
  121.          if(!isValid(_loc4_))
  122.          {
  123.             return _loc3_;
  124.          }
  125.          if(_buffer.hasUTMZ() && !_buffer.utmz.isEmpty())
  126.          {
  127.             _loc8_ = new CampaignTracker();
  128.             _loc8_.fromTrackerString(_buffer.utmz.campaignTracking);
  129.             _loc5_ = _loc8_.toTrackerString() == _loc4_.toTrackerString();
  130.             _loc7_ = _buffer.utmz.responseCount;
  131.          }
  132.          if(!_loc5_ || param2)
  133.          {
  134.             _loc9_ = _buffer.utma.sessionCount;
  135.             _loc7_++;
  136.             if(_loc9_ == 0)
  137.             {
  138.                _loc9_ = 1;
  139.             }
  140.             _buffer.utmz.domainHash = _domainHash;
  141.             _buffer.utmz.campaignCreation = _timeStamp;
  142.             _buffer.utmz.campaignSessions = _loc9_;
  143.             _buffer.utmz.responseCount = _loc7_;
  144.             _buffer.utmz.campaignTracking = _loc4_.toTrackerString();
  145.             _debug.info(_buffer.utmz.toString(),VisualDebugMode.geek);
  146.             _loc3_ = new CampaignInfo(false,true);
  147.          }
  148.          else
  149.          {
  150.             _loc3_ = new CampaignInfo(false,false);
  151.          }
  152.          return _loc3_;
  153.       }
  154.       
  155.       public function hasNoOverride(param1:String) : Boolean
  156.       {
  157.          var _loc2_:CampaignKey = _config.campaignKey;
  158.          if(param1 == "")
  159.          {
  160.             return false;
  161.          }
  162.          var _loc3_:Variables = new Variables(param1);
  163.          var _loc4_:String = "";
  164.          if(_loc3_.hasOwnProperty(_loc2_.UCNO))
  165.          {
  166.             _loc4_ = _loc3_[_loc2_.UCNO];
  167.             switch(_loc4_)
  168.             {
  169.                case "1":
  170.                   return true;
  171.                case "":
  172.                case "0":
  173.             }
  174.             return false;
  175.          }
  176.          return false;
  177.       }
  178.       
  179.       public function getTrackerFromSearchString(param1:String) : CampaignTracker
  180.       {
  181.          var _loc2_:CampaignTracker = getOrganicCampaign();
  182.          var _loc3_:CampaignTracker = new CampaignTracker();
  183.          var _loc4_:CampaignKey = _config.campaignKey;
  184.          if(param1 == "")
  185.          {
  186.             return _loc3_;
  187.          }
  188.          var _loc5_:Variables = new Variables(param1);
  189.          if(_loc5_.hasOwnProperty(_loc4_.UCID))
  190.          {
  191.             _loc3_.id = _loc5_[_loc4_.UCID];
  192.          }
  193.          if(_loc5_.hasOwnProperty(_loc4_.UCSR))
  194.          {
  195.             _loc3_.source = _loc5_[_loc4_.UCSR];
  196.          }
  197.          if(_loc5_.hasOwnProperty(_loc4_.UGCLID))
  198.          {
  199.             _loc3_.clickId = _loc5_[_loc4_.UGCLID];
  200.          }
  201.          if(_loc5_.hasOwnProperty(_loc4_.UCCN))
  202.          {
  203.             _loc3_.name = _loc5_[_loc4_.UCCN];
  204.          }
  205.          else
  206.          {
  207.             _loc3_.name = "(not set)";
  208.          }
  209.          if(_loc5_.hasOwnProperty(_loc4_.UCMD))
  210.          {
  211.             _loc3_.medium = _loc5_[_loc4_.UCMD];
  212.          }
  213.          else
  214.          {
  215.             _loc3_.medium = "(not set)";
  216.          }
  217.          if(_loc5_.hasOwnProperty(_loc4_.UCTR))
  218.          {
  219.             _loc3_.term = _loc5_[_loc4_.UCTR];
  220.          }
  221.          else if(Boolean(_loc2_) && _loc2_.term != "")
  222.          {
  223.             _loc3_.term = _loc2_.term;
  224.          }
  225.          if(_loc5_.hasOwnProperty(_loc4_.UCCT))
  226.          {
  227.             _loc3_.content = _loc5_[_loc4_.UCCT];
  228.          }
  229.          return _loc3_;
  230.       }
  231.       
  232.       public function getOrganicCampaign() : CampaignTracker
  233.       {
  234.          var _loc1_:CampaignTracker = null;
  235.          var _loc4_:Array = null;
  236.          var _loc5_:OrganicReferrer = null;
  237.          var _loc6_:String = null;
  238.          if(isInvalidReferrer(_referrer) || isFromGoogleCSE(_referrer,_config))
  239.          {
  240.             return _loc1_;
  241.          }
  242.          var _loc2_:URL = new URL(_referrer);
  243.          var _loc3_:String = "";
  244.          if(_loc2_.hostName != "")
  245.          {
  246.             if(_loc2_.hostName.indexOf(".") > -1)
  247.             {
  248.                _loc4_ = _loc2_.hostName.split(".");
  249.                switch(_loc4_.length)
  250.                {
  251.                   case 2:
  252.                      _loc3_ = _loc4_[0];
  253.                      break;
  254.                   case 3:
  255.                      _loc3_ = _loc4_[1];
  256.                }
  257.             }
  258.          }
  259.          if(_config.organic.match(_loc3_))
  260.          {
  261.             _loc5_ = _config.organic.getReferrerByName(_loc3_);
  262.             _loc6_ = _config.organic.getKeywordValue(_loc5_,_loc2_.search);
  263.             _loc1_ = new CampaignTracker();
  264.             _loc1_.source = _loc5_.engine;
  265.             _loc1_.name = "(organic)";
  266.             _loc1_.medium = "organic";
  267.             _loc1_.term = _loc6_;
  268.          }
  269.          return _loc1_;
  270.       }
  271.       
  272.       public function getDirectCampaign() : CampaignTracker
  273.       {
  274.          var _loc1_:CampaignTracker = new CampaignTracker();
  275.          _loc1_.source = "(direct)";
  276.          _loc1_.name = "(direct)";
  277.          _loc1_.medium = "(none)";
  278.          return _loc1_;
  279.       }
  280.       
  281.       public function isIgnoredKeyword(param1:CampaignTracker) : Boolean
  282.       {
  283.          if(Boolean(param1) && param1.medium == "organic")
  284.          {
  285.             return _config.organic.isIgnoredKeyword(param1.term);
  286.          }
  287.          return false;
  288.       }
  289.       
  290.       public function isIgnoredReferral(param1:CampaignTracker) : Boolean
  291.       {
  292.          if(Boolean(param1) && param1.medium == "referral")
  293.          {
  294.             return _config.organic.isIgnoredReferral(param1.source);
  295.          }
  296.          return false;
  297.       }
  298.       
  299.       public function isValid(param1:CampaignTracker) : Boolean
  300.       {
  301.          if(Boolean(param1) && param1.isValid())
  302.          {
  303.             return true;
  304.          }
  305.          return false;
  306.       }
  307.       
  308.       public function getReferrerCampaign() : CampaignTracker
  309.       {
  310.          var _loc1_:CampaignTracker = null;
  311.          if(isInvalidReferrer(_referrer) || isFromGoogleCSE(_referrer,_config))
  312.          {
  313.             return _loc1_;
  314.          }
  315.          var _loc2_:URL = new URL(_referrer);
  316.          var _loc3_:String = _loc2_.hostName;
  317.          var _loc4_:String = _loc2_.path;
  318.          if(_loc3_.indexOf("www.") == 0)
  319.          {
  320.             _loc3_ = _loc3_.substr(4);
  321.          }
  322.          _loc1_ = new CampaignTracker();
  323.          _loc1_.source = _loc3_;
  324.          _loc1_.name = "(referral)";
  325.          _loc1_.medium = "referral";
  326.          _loc1_.content = _loc4_;
  327.          return _loc1_;
  328.       }
  329.    }
  330. }
  331.  
  332.