/** * @link http://code.google.com/p/gaforflash/source/browse/trunk/src/com/google/analytics/v4/Tracker.as#1503 * * @return \UnitedPrototype\GoogleAnalytics\Internals\ParameterHolder */ protected function buildParameters() { $p = parent::buildParameters(); $x10 = new X10(); $x10->clearKey(self::X10_EVENT_PROJECT_ID); $x10->clearValue(self::X10_EVENT_PROJECT_ID); // Object / Category $x10->setKey(self::X10_EVENT_PROJECT_ID, X10::OBJECT_KEY_NUM, $this->event->getCategory()); // Event Type / Action $x10->setKey(self::X10_EVENT_PROJECT_ID, X10::TYPE_KEY_NUM, $this->event->getAction()); if ($this->event->getLabel() !== null) { // Event Description / Label $x10->setKey(self::X10_EVENT_PROJECT_ID, X10::LABEL_KEY_NUM, $this->event->getLabel()); } if ($this->event->getValue() !== null) { $x10->setValue(self::X10_EVENT_PROJECT_ID, X10::VALUE_VALUE_NUM, $this->event->getValue()); } $p->utme .= $x10->renderUrlString(); if ($this->event->getNoninteraction()) { $p->utmni = 1; } if (isset($this->page)) { $p->utmp = $this->page->getPath(); $p->utmdt = $this->page->getTitle(); if ($this->page->getCharset() !== null) { $p->utmcs = $this->page->getCharset(); } if ($this->page->getReferrer() !== null) { $p->utmr = $this->page->getReferrer(); } } return $p; }
/** * @link http://code.google.com/p/gaforflash/source/browse/trunk/src/com/google/analytics/v4/Tracker.as#1503 * * @return \UnitedPrototype\GoogleAnalytics\Internals\ParameterHolder */ protected function buildParameters() { $p = parent::buildParameters(); $x10 = new X10(); $x10->clearKey(self::X10_EVENT_PROJECT_ID); $x10->clearValue(self::X10_EVENT_PROJECT_ID); // Object / Category $x10->setKey(self::X10_EVENT_PROJECT_ID, self::X10_EVENT_OBJECT_KEY_NUM, $this->event->getCategory()); // Event Type / Action $x10->setKey(self::X10_EVENT_PROJECT_ID, self::X10_EVENT_TYPE_KEY_NUM, $this->event->getAction()); if ($this->event->getLabel() !== null) { // Event Description / Label $x10->setKey(self::X10_EVENT_PROJECT_ID, self::X10_EVENT_LABEL_KEY_NUM, $this->event->getLabel()); } if ($this->event->getValue() !== null) { $x10->setValue(self::X10_EVENT_PROJECT_ID, self::X10_EVENT_VALUE_VALUE_NUM, $this->event->getValue()); } $p->utme .= $x10->renderUrlString(); if ($this->event->getNoninteraction()) { $p->utmni = 1; } return $p; }
/** * Equivalent of _trackEvent() in GA Javascript client. * * @link http://code.google.com/apis/analytics/docs/gaJS/gaJSApiEventTracking.html#_gat.GA_EventTracker_._trackEvent * @param \UnitedPrototype\GoogleAnalytics\Event $event * @param \UnitedPrototype\GoogleAnalytics\Session $session * @param \UnitedPrototype\GoogleAnalytics\Visitor $visitor */ public function trackEvent(Event $event, Session $session, Visitor $visitor) { // Ensure that all required parameters are set $event->validate(); $request = new EventRequest(static::$config); $request->setEvent($event); $request->setSession($session); $request->setVisitor($visitor); $request->setTracker($this); $request->fire(); }
function leechgate_track_ga($config) { try { // prepare GA structures $tracker = new GoogleAnalytics\Tracker($config['gaid'], $config['normalized_host']); $visitor = new GoogleAnalytics\Visitor(); $visitor->fromServerVar($_SERVER); if ($config['utma_cookie']) { $visitor->fromUtma($config['utma_cookie']); } $session = new GoogleAnalytics\Session(); $event = new GoogleAnalytics\Event($config['normalized_host'], $config['product'], $config['product_version']); $event->setNoninteraction(true); // track it! $tracker->trackEvent($event, $session, $visitor); } catch (Exception $e) { $fe = fopen('php://stderr', 'w'); fwrite($fe, "Caught exception in leechgate_track_ga: " . $e->getMessage() . "\n"); fclose($fe); } }