我正在使用我的所有Google Analytics服务器端,但GA仅跟踪直接或推介,我不知道如何跟踪有机。这是一个直接或推荐的代码:
//Campaign is used for the referrals
//If not in session and there is a referrer, create campaign from referrer
//and add it to the tracker and to session.
if (!isset($_SESSION['campaign'])) {
if (isset($_SERVER['HTTP_REFERER']) &&
strpos($_SERVER['HTTP_REFERER'], parse_url($this->config['url']['base'], PHP_URL_HOST)) === FALSE) {
$campaign = GoogleAnalytics\Campaign::createFromReferrer($_SERVER['HTTP_REFERER']);
$this->tracker->setCampaign($campaign);
$_SESSION['campaign'] = serialize($campaign);
}
} else {
//If already in session, add it to the tracker
$this->tracker->setCampaign(unserialize($_SESSION['campaign']));
}
以上基本分析了引用者;如果来自其他来源,则创建推荐,如果不是,则创建推荐。然后,如果有推荐,它将存储在会话中。
现在,我如何识别有机物来源?我正在考虑制作一个可能的有机资源表,谷歌是这样做的吗?类似的东西:
protected $organic_sources = array('www.google.com', 'www.yahoo.com')
然后我会在创建广告系列之前检查其中的来源,如果在数组中我会将其创建为有机广告系列。这是最佳解决方案吗?关于如何识别有机交通的任何想法?
答案 0 :(得分:5)
是的,Google就是这样做的。我创建了一个小功能来识别有机流量。它是这样的:
/*
* Organic sources
*/
protected $organic_sources = array('www.google' => array('q='),
'daum.net/' => array('q='),
'eniro.se/' => array('search_word=', 'hitta:'),
'naver.com/' => array('query='),
'yahoo.com/' => array('p='),
'msn.com/' => array('q='),
'bing.com/' => array('q='),
'aol.com/' => array('query=', 'encquery='),
'lycos.com/' => array('query='),
'ask.com/' => array('q='),
'altavista.com/' => array('q='),
'search.netscape.com/' => array('query='),
'cnn.com/SEARCH/' => array('query='),
'about.com/' => array('terms='),
'mamma.com/' => array('query='),
'alltheweb.com/' => array('q='),
'voila.fr/' => array('rdata='),
'search.virgilio.it/' => array('qs='),
'baidu.com/' => array('wd='),
'alice.com/' => array('qs='),
'yandex.com/' => array('text='),
'najdi.org.mk/' => array('q='),
'aol.com/' => array('q='),
'mamma.com/' => array('query='),
'seznam.cz/' => array('q='),
'search.com/' => array('q='),
'wp.pl/' => array('szukai='),
'online.onetcenter.org/' => array('qt='),
'szukacz.pl/' => array('q='),
'yam.com/' => array('k='),
'pchome.com/' => array('q='),
'kvasir.no/' => array('q='),
'sesam.no/' => array('q='),
'ozu.es/' => array('q='),
'terra.com/' => array('query='),
'mynet.com/' => array('q='),
'ekolay.net/' => array('q='),
'rambler.ru/' => array('words=')
);
将上述内容放入您的课程中,然后添加此功能:
/*
* Check if source is organic
*
* @param string $referrer The referrer page
*
* @return true if organic, false if not
*/
public function isTrafficOrganic($referrer) {
//Go through the organic sources
foreach($this->organic_sources as $searchEngine => $queries) {
//If referrer is part of the search engine...
if (strpos($referrer, $searchEngine) !== false) {
//Check if query is also there
foreach ($queries as $query) {
if (strpos($referrer, $query) !== false) {
//If there, traffic is organic
return true;
}
}
}
}
return false;
}
然后您可以通过传递$_SERVER['HTTP_REFERER']
作为参数来调用上面的函数。希望它对某人有用。
答案 1 :(得分:1)
是Google如何做到这一点
基本上是 - 就GA而言,有机搜索访问是来自已知(通过url)搜索引擎的引用加上搜索参数(以获取搜索关键字)但没有utm或glcid参数(这将是将引用者转变为活动网址)。在客户端GA中,您甚至可以添加自己的一组搜索引擎,所以我会说它也应该适用于服务器端。