/** * @param \GoogleAnalyticsTracker\HitTypes\Page $page * @return mixed */ public function map($page) { if (!$page instanceof \GoogleAnalyticsTracker\HitTypes\Page) { throw new \UnexpectedValueException("The Page Mapper only accepts Page HitTypes"); } $data = array('t' => \GoogleAnalyticsTracker\HitTypes\Page::TYPE, 'dh' => $page->getDomain(), 'dp' => $page->getPage()); if ($page->hasTitle()) { $data['dt'] = $page->getTitle(); } $data = array_merge($data, parent::map($page)); return $data; }
*/ use GoogleAnalyticsTracker\GoogleAnalyticsTracker; use GoogleAnalyticsTracker\HitTypes\Event; use GoogleAnalyticsTracker\HitTypes\Page; require_once __DIR__ . "/../vendor/autoload.php"; require_once __DIR__ . "/FakeSender.php"; //Test event 1 $fakeSender = new FakeSender(); $googleAnalyticsTracker = new GoogleAnalyticsTracker('UA-12345-1', '1234-1234-1234-123455678', 'uid', 'dataSource', $fakeSender); //Event with dimension and metric $event = new Event("category", 'action', 'label', 1); $event->setCustomDimension(1, "dimension[1]"); $event->setCustomMetric(1, 1); $fakeSender->setExpects("v=1&tid=UA-12345-1&cid=1234-1234-1234-123455678&uid=uid&ds=dataSource&t=event&ea=action&ec=category&el=label&ev=1&cd1=dimension%5B1%5D&cm1=1"); $googleAnalyticsTracker->send($event); //Event with least amount of thins possible $event = new Event("category", 'action'); $fakeSender->setExpects("v=1&tid=UA-12345-1&cid=1234-1234-1234-123455678&uid=uid&ds=dataSource&t=event&ea=action&ec=category"); $googleAnalyticsTracker->send($event); //Page with multiple dimensions $page = new Page("domain", "/path", "title"); $page->setCustomDimension(5, "DimensionFive"); $page->setCustomDimension(9, "DimensionNine"); $fakeSender->setExpects("v=1&tid=UA-12345-1&cid=1234-1234-1234-123455678&uid=uid&ds=dataSource&t=pageview&dh=domain&dp=%2Fpath&dt=title&cd5=DimensionFive&cd9=DimensionNine"); $googleAnalyticsTracker->send($page); //Page with no title and multiple metrics $page = new Page("domain", "/path/longer"); $page->setCustomMetric(2, 4); $page->setCustomMetric(19, 8); $fakeSender->setExpects("v=1&tid=UA-12345-1&cid=1234-1234-1234-123455678&uid=uid&ds=dataSource&t=pageview&dh=domain&dp=%2Fpath%2Flonger&cm2=4&cm19=8"); $googleAnalyticsTracker->send($page);