Обновил статистику на всех сайтах на Google Analytics

По-сколько делаю ребилд всех сайтов и закрепляю для всех доменов окончательную тематику, завтра будет опубликована ссылка на навигатор по всех сайтах и проектах.



Когда то давно делал гистограмму посещаемости на основе LiveInternet, но это уже не актуально как на меня. И самая статистика LI тоже, есть же Google и куча его сервисов.

Код:

$ga_email = ''; // email
$ga_key = getcwd().'/key.p12'; // ключ API

function getService() {
	global $ga_email, $ga_key;
	require_once getcwd().'/Google/autoload.php';

	$config = new Google_Config();
	$config->setClassConfig('Google_Cache_File', array('directory' => getcwd().'/tmp/'));
	$client = new Google_Client($config);
	$client->setApplicationName("HelloAnalytics");
	$analytics = new Google_Service_Analytics($client);

	$key = file_get_contents($ga_key);
	$cred = new Google_Auth_AssertionCredentials(
		$ga_email,
		array(Google_Service_Analytics::ANALYTICS_READONLY),
		$key
	);
	$client->setAssertionCredentials($cred);
	if($client->getAuth()->isAccessTokenExpired()) {
		$client->getAuth()->refreshTokenWithAssertion($cred);
	}

	return $analytics;
}

$analytics = getService();

function curl_get_file_contents($URL) {
    $c = curl_init();
    curl_setopt($c, CURLOPT_RETURNTRANSFER, 1);
    curl_setopt($c, CURLOPT_URL, $URL);
    $contents = curl_exec($c);
    curl_close($c);

    if ($contents) return $contents;
        else return FALSE;
}

function cut_str($start, $stop, $str) {
	$spos = strpos($str, $start);
	$spos = $spos + strlen($start);
	$text = substr($str, $spos);
	$end_pos = strpos($text, $stop);
	$text = substr($text, 0, $end_pos);
	return $text;
}
$epic = array();
$sites = array("114741265");
$sites_name = array("ABCVG");

if (isset($_POST['month'])) {
	$keys = "month";
	$title = "Добыча посещаемости за месяц";
	$start = "30daysAgo";
	$end = "yesterday";	
} elseif (isset($_POST['week'])) {
	$keys = "week";
	$title = "Добыча посещаемости за неделю";
	$start = "7daysAgo";
	$end = "yesterday";
} elseif (isset($_POST['day'])) {
	$keys = "day";
	$title = "Добыча посещаемости за день";
	$start = "yesterday";
	$end = "yesterday";	
} elseif (isset($_POST['online'])) {
	$keys = "online";
	$title = "Сейчас онлайн?";
	$start = "today";
	$end = "today";		
} elseif (isset($_POST['today'])) {
	$keys = "today";
	$title = "Посетителей и просмотров за сегодня";
	$start = "today";
	$end = "today";		
} else {
	$keys = "today";
	$title = "Посетителей и просмотров за сегодня";
	$start = "today";
	$end = "today";		
}

foreach ($sites as $key => $value) {
	//$FILE = curl_get_file_contents("http://counter.yadro.ru/values?site=".$value);
	//$hits = cut_str('LI_'.$keys.'_hit = ', ';', $FILE);
	//$vis = cut_str('LI_'.$keys.'_vis = ', ';', $FILE);	
	$results = $analytics->data_ga->get(
    'ga:'.$value,
    $start,
    $end,
    'ga:users,ga:hits',
    array(
        'start-index'   => '1',
		'max-results'   => '1'
        )
    );

	if (count($results->getRows()) > 0) {
		foreach ($results->getRows() as $row) {
			$vis = $row[0]; 
			$hits = $row[1]; 
		}
	} else {
			$vis = 0; 
			$hits = 0; 		
	}
	$epic[$key] = $sites_name[$key]."|".$hits."|".$vis;
}
$plusv = 0;
$plush = 0;
echo "<!DOCTYPE html>
<html>
<head>
<meta charset=\"utf-8\">
<title>Добыча посещаемости сайтов Vova1234</title>
<script src=\"https://www.google.com/jsapi\"></script>
<script>
	google.load(\"visualization\", \"1\", {packages:[\"corechart\"]});
	google.setOnLoadCallback(drawChart);
	function drawChart() {
		var data = google.visualization.arrayToDataTable([
			['Год', 'V', 'H'],";
			foreach ($epic as $key => $value) {
				$arr = explode("|", $value);
				echo "['".$arr[0]."', ".$arr[1].", ".$arr[2]."],";
				$plusv += $arr[1];
				$plush += $arr[2];
			}
		echo "]);
		var options = {
			title: '".$title."',
			hAxis: {title: 'Сайты'},
			vAxis: {title: 'Просмотры/Посетители'}
		};
		var chart = new google.visualization.ColumnChart(document.getElementById('graph'));
		chart.draw(data, options);
	}
</script>
</head>
<body>
<form method=\"post\">
<input type=\"submit\" name=\"month\" class=\"button\" value=\"за месяц\">
<input type=\"submit\" name=\"week\" class=\"button\" value=\"за неделю\">
<input type=\"submit\" name=\"day\" class=\"button\" value=\"за день\">
<input type=\"submit\" name=\"today\" class=\"button\" value=\"сегодня\">
<input type=\"submit\" name=\"online\" class=\"button\" value=\"сколько онлайн?\">
</form>
<div id=\"graph\" style=\"width: 1300px; height: 600px;\"></div>
<div>Охват аудитории: <b>".number_format($plusv)."</b> просмотров на <b>".number_format($plush)."</b> посетителей.</div>
</body>
</html>";


А шаги в Google Console делаем такие:





Вот создали:


Автозагрузился ключ:


Его кидаем в папку с скриптом.

Находим такую строчку:
testlolabcvg@abcvg-network.iam.gserviceaccount.com




Пишем в коде:
$ga_email = 'testlolabcvg@abcvg-network.iam.gserviceaccount.com'; // email


Не забываем поставить здесь галочку:


Чтобы писало такое:


Идем в Google Analytics. РЕСУРС -> Управление пользователями.
Добавляем:


Получаем профит
http://vova1234.com/visitors.php

Чем больше будет комментариев в блоге тем больше буду писать про то как работать с Google API и прочее, все зависит от вас.

0 комментариев

Оставить комментарий




Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.