Googly Analitycs с новым API. Работает.
34
Привет уважаемое сообщество LiveStreet. Мы от студии DevArt, решили сделать небольшой новогодний подарок любителям LS и Google. В своё время (примерно 12 октября) компания Google сменила API, и работать перестала. Тема замялась. А жаль :). Мы нашли способ заставить эту красотищу работать.
Живой пример можете лицезреть вот .
В новой версии есть несколько оговорок… Особенно как же достать злополучный ID? Старлеи то разберутся, а вот у новичков точно могут возникнуть проблемы. Вот инструкция:
В конфиг файле (config.php) у вас есть стандартные параметры типа username, password, и есть id. Вот охоту за ним мы и устроим. Что бы получить ID, надо зайти в google analitycs, дальше как показано на скриншоте найти строчку Изменить и клацнуть туда.

Как показано на втором скриншоте — ваш id находится тут :).

Теперь погорим о настройке, параметрах и как же это чудо вставить в LS?!
Ну, о мелочах типа регистрации в ГА, я говорить не стану, это как бы по дефолту быть должно.
И так:
1.Загружаем в корень папки js и stat. На stat права ставим 777 (755 на американских хостах как правило).
2.Заполняем файл config.php и на все файлы формата .csv даём права на запись. (особые извращенцы могут в настройках каждого отчёта заставить генерироваться xml).
3.Теперь о том что может статистика? Он может выводить статистку о:
Тенденция роста,
Посещения просмотры,
Браузеры,
ОС.
По сути можно заставить сделать импорт чего угодно из ГА, но мы сделали именно эти пункты, кто хочет дополнить — пожалуйста.
Далее. Что бы проверить работу статистики запустите index.php из папки после выполнения вышеуказанных инструкций. Если всё работает, самое время идти на сайт. Создавайте страницу, и туда импортируйте статистику:
По сути это всё. Надеюсь вам помогло.
Скачать можно
Живой пример можете лицезреть вот .
В новой версии есть несколько оговорок… Особенно как же достать злополучный ID? Старлеи то разберутся, а вот у новичков точно могут возникнуть проблемы. Вот инструкция:
В конфиг файле (config.php) у вас есть стандартные параметры типа username, password, и есть id. Вот охоту за ним мы и устроим. Что бы получить ID, надо зайти в google analitycs, дальше как показано на скриншоте найти строчку Изменить и клацнуть туда.

Как показано на втором скриншоте — ваш id находится тут :).

Теперь погорим о настройке, параметрах и как же это чудо вставить в LS?!
Ну, о мелочах типа регистрации в ГА, я говорить не стану, это как бы по дефолту быть должно.
И так:
1.Загружаем в корень папки js и stat. На stat права ставим 777 (755 на американских хостах как правило).
2.Заполняем файл config.php и на все файлы формата .csv даём права на запись. (особые извращенцы могут в настройках каждого отчёта заставить генерироваться xml).
3.Теперь о том что может статистика? Он может выводить статистку о:
Тенденция роста,
Посещения просмотры,
Браузеры,
ОС.
По сути можно заставить сделать импорт чего угодно из ГА, но мы сделали именно эти пункты, кто хочет дополнить — пожалуйста.
Далее. Что бы проверить работу статистики запустите index.php из папки после выполнения вышеуказанных инструкций. Если всё работает, самое время идти на сайт. Создавайте страницу, и туда импортируйте статистику:
<script type="text/javascript" src="/stat/swfobject.js"></script>
<div id="visitors">Тенденция роста аудитории</div>
<script type="text/javascript" src="/js/visitors.js"></script>
<div id="visitors_3">Посетители</div>
<script type="text/javascript" src="/js/visitors_3.js"></script>
<div id="country">Страны</div>
<script type="text/javascript" src="/js/country.js"></script>
<div id="city">Города</div>
<script type="text/javascript" src="/js/city.js"></script>
<div id="os">Операционные системы</div>
<script type="text/javascript" src="/js/os.js"></script>
По сути это всё. Надеюсь вам помогло.
Скачать можно
- +13
- 21 декабря 2009, 06:29
- Devil
Ну ессесно, там же мои данные были (просто чем-то файлы заполонить надо было .csv). Обратитесь к stat/stat.php в случае если автоматическое обновление при заходе не происходит
При обращении к возвращается ошибка:
Fatal error: Uncaught exception 'Exception' with message 'GAPI: Failed to request report data. Error: «Invalid value for ids parameter: ga: ХХ-ХХХХХХХ-Х»' in /var/www/vhosts/mysite.ru/httpdocs/stat/gapi.class.php:218 Stack trace: #0 /var/www/vhosts/mysite.ru/httpdocs/stat/stat.php(14): gapi->requestReportData('ХХ-ХХХХХХХ-Х', Array, Array, 'year', NULL, '2009-07-01', '2009-11-30', 1, 1000) #1 {main} thrown in /var/www/vhosts/mysite.ru/httpdocs/stat/gapi.class.php on line 218
Fatal error: Uncaught exception 'Exception' with message 'GAPI: Failed to request report data. Error: «Invalid value for ids parameter: ga: ХХ-ХХХХХХХ-Х»' in /var/www/vhosts/mysite.ru/httpdocs/stat/gapi.class.php:218 Stack trace: #0 /var/www/vhosts/mysite.ru/httpdocs/stat/stat.php(14): gapi->requestReportData('ХХ-ХХХХХХХ-Х', Array, Array, 'year', NULL, '2009-07-01', '2009-11-30', 1, 1000) #1 {main} thrown in /var/www/vhosts/mysite.ru/httpdocs/stat/gapi.class.php on line 218
А вы всё сделали по инструкции? Подключили аналитикс, вставили код, файлам дали права на запись? Конкретнее объясните что работает не так, или не работает в общем, я же не телепат, верно?
Все сделано строго по инструкциям, аналитикс подключен, код вставлен, файлам выставлены нужные права.
Статистика на странице не отображается.
При попытке зайти в stat.php выдается ошибка:
При обращении к возвращается ошибка:
Fatal error: Uncaught exception 'Exception' with message 'GAPI: Failed to request report data. Error: «Invalid value for ids parameter: ga: ХХ-ХХХХХХХ-Х»' in /var/www/vhosts/mysite.ru/httpdocs/stat/gapi.class.php:218 Stack trace: #0 /var/www/vhosts/mysite.ru/httpdocs/stat/stat.php(14): gapi->requestReportData('ХХ-ХХХХХХХ-Х', Array, Array, 'year', NULL, '2009-07-01', '2009-11-30', 1, 1000) #1 {main} thrown in /var/www/vhosts/mysite.ru/httpdocs/stat/gapi.class.php on line 218
Статистика на странице не отображается.
При попытке зайти в stat.php выдается ошибка:
При обращении к возвращается ошибка:
Fatal error: Uncaught exception 'Exception' with message 'GAPI: Failed to request report data. Error: «Invalid value for ids parameter: ga: ХХ-ХХХХХХХ-Х»' in /var/www/vhosts/mysite.ru/httpdocs/stat/gapi.class.php:218 Stack trace: #0 /var/www/vhosts/mysite.ru/httpdocs/stat/stat.php(14): gapi->requestReportData('ХХ-ХХХХХХХ-Х', Array, Array, 'year', NULL, '2009-07-01', '2009-11-30', 1, 1000) #1 {main} thrown in /var/www/vhosts/mysite.ru/httpdocs/stat/gapi.class.php on line 218
У меня так и показывает чужую стату.
config несколько раз проверил.
Не помогло… Я что-то кроме пустой страницы должен увидеть?
config несколько раз проверил.
Обратитесь к stat/stat.php
Не помогло… Я что-то кроме пустой страницы должен увидеть?
В конфиге у тебя прописан полный путь /var/www/vhosts/mysite.ru/httpdocs/stat/
?
У меня был /httpdocs/stat/ Прописал полностью и все нормально.
?
У меня был /httpdocs/stat/ Прописал полностью и все нормально.
Прописывал варианты:
/var/www/vhosts/mysite.ru/httpdocs/stat/
/www/vhosts/mysite.ru/httpdocs/stat/
/vhosts/mysite.ru/httpdocs/stat/
/mysite.ru/httpdocs/stat/
/httpdocs/stat/
/stat/
Результат один:
При обращении к возвращается ошибка:
Fatal error: Uncaught exception 'Exception' with message 'GAPI: Failed to request report data. Error: «Invalid value for ids parameter: ga: ХХ-ХХХХХХХ-Х»' in /var/www/vhosts/mysite.ru/httpdocs/stat/gapi.class.php:218 Stack trace: #0 /var/www/vhosts/mysite.ru/httpdocs/stat/stat.php(14): gapi->requestReportData('ХХ-ХХХХХХХ-Х', Array, Array, 'year', NULL, '2009-07-01', '2009-11-30', 1, 1000) #1 {main} thrown in /var/www/vhosts/mysite.ru/httpdocs/stat/gapi.class.php on line 218
/var/www/vhosts/mysite.ru/httpdocs/stat/
/www/vhosts/mysite.ru/httpdocs/stat/
/vhosts/mysite.ru/httpdocs/stat/
/mysite.ru/httpdocs/stat/
/httpdocs/stat/
/stat/
Результат один:
При обращении к возвращается ошибка:
Fatal error: Uncaught exception 'Exception' with message 'GAPI: Failed to request report data. Error: «Invalid value for ids parameter: ga: ХХ-ХХХХХХХ-Х»' in /var/www/vhosts/mysite.ru/httpdocs/stat/gapi.class.php:218 Stack trace: #0 /var/www/vhosts/mysite.ru/httpdocs/stat/stat.php(14): gapi->requestReportData('ХХ-ХХХХХХХ-Х', Array, Array, 'year', NULL, '2009-07-01', '2009-11-30', 1, 1000) #1 {main} thrown in /var/www/vhosts/mysite.ru/httpdocs/stat/gapi.class.php on line 218
Ну, тут пара вариантов, либо просто уменьшить количество городов которые должны выводится в файле config.php, либо увеличить размер диаграммы в нужном .js файле :-)
// <![CDATA[
var so = new SWFObject("/stat/ampie.swf", "ampie_chart", "550", "550", "8", "#FFFFFF");
so.addVariable("path", "/stat/amline/");
so.addVariable("settings_file", escape("/stat/country_settings.xml?<?php echo mktime();?>"));
so.addVariable("data_file", escape("/stat/city.csv?<?php echo mktime();?>"));
so.addVariable("preloader_color", "#BBBBBB");
so.write("city");
// ]]>«550», «550» — вот они :) Их можно увеличивать :)
Что то сегодня выполнил ..../stat/stat.php — показывает статистику от 31.12.2009 хотя вроде как должен показать за 2.01.2010. Кто подскажет в чем трабла?
В stat.php 45 строку:
Поменять на это:
$ga->requestReportData($id,array('day','month','year'),array('visitors','visits','pageviews'),'month',null,$date3MonthStart, $date3MonthFinish,1,1000);
Поменять на это:
$ga->requestReportData($id,array('day','month','year'),array('visitors','visits','pageviews'),array('year','month'),null,$date3MonthStart, $date3MonthFinish,1,1000);
Проблема с трехмесячной статистикой решена:
из этого архива распакуйте в stat все, вроме вашего config.php и обновите статистику stat/stat.php
из этого архива распакуйте в stat все, вроме вашего config.php и обновите статистику stat/stat.php
Спасибо! Однако, проблемка с автообновлением осталась :(
«Статистика по ссылке устаревшая до тех пор, пока не выполнить »
«Статистика по ссылке устаревшая до тех пор, пока не выполнить »
С ОС и браузерами там вроде просто. Добавил несколько новых отчетов — Браузеры, ОС, источники трафика, рефераллы, время на сайте.
В конфиг.пхп нужно добавить после $cityCSV=«city.csv»; это
в stat.php добавляем следующие строки
В конфиг.пхп нужно добавить после $cityCSV=«city.csv»; это
$browsersCSV="browsers.csv";
$operatingsystemCSV="os.csv";
$referrersCSV="referrers.csv";
$timeOnSiteCSV="timeonsite.csv";
$sourceCSV="source.csv";в stat.php добавляем следующие строки
//////Длительность пребывания на сайте для всех посетителей
$ga->requestReportData($id,array('day','month'),array('timeOnSite','visits'),'month',null,$date1MonthStart, $date1MonthFinish,1,30);
//переменная для записи резалта
$output="";
//получаем и обрабатываем результаты
foreach($ga->getResults() as $result)
{
$d=$result; //день
$visits=$result->getVisits(); //посетители
$timeOnSite=$result->getTimeOnSite(); //посещения
$timeOnSite=$timeOnSite/$visits;
$timeOnSite=round($timeOnSite);
#$timeOnSite=date ("i:s", $timeOnSite);
//приводим дату к удобочитаемому виду ,мменяем пробелы на точки
$d=str_replace(" ",".",$d);
//формируем строку
$output.=$d.";".$timeOnSite."\n";
}
//пишем в файл
$fp=fopen($path.$timeOnSiteCSV,"w");
fputs($fp,trim($output));
fclose($fp);
//////получаем БРАУЗЕРЫ за последний месяц
$ga->requestReportData($id,array('browser'),array('visits'),'-visits',null,$date1MonthStart, $date1MonthFinish,1,5);
//переменная для записи резалта
$output="";
//получаем общее число браузеров
$total_visits=$ga->getVisits();
//получаем и обрабатываем результаты
foreach($ga->getResults() as $result)
{
$browser=$result->getBrowser(); //Браузеры
$visits=$result->getVisits(); //кол-во посещений
//формируем строку
$output.=$browser.";".$visits."\n";
}
//пишем в файл
$fp=fopen($path.$browsersCSV,"w");
fputs($fp,trim($output));
fclose($fp);
//////получаем Операционные системы за последний месяц
$ga->requestReportData($id,array('operatingSystem'),array('visits'),'-visits',null,$date1MonthStart, $date1MonthFinish,1,4);
//переменная для записи резалта
$output="";
//получаем общее число браузеров
$total_visits=$ga->getVisits();
//получаем и обрабатываем результаты
foreach($ga->getResults() as $result)
{
$operatingsystem=$result->getOperatingSystem(); //Браузеры
$visits=$result->getVisits(); //кол-во посещений
$operatingsystem=str_replace("(not set)","не определено",$operatingsystem);
//формируем строку
$output.=$operatingsystem.";".$visits."\n";
}
//пишем в файл
$fp=fopen($path.$operatingsystemCSV,"w");
fputs($fp,trim($output));
fclose($fp);
//////получаем Источники трафика системы за последний месяц
$ga->requestReportData($id,array('medium'),array('visits'),'-visits',null,$date1MonthStart, $date1MonthFinish,1,6);
//переменная для записи резалта
$output="";
//получаем общее число браузеров
$total_visits=$ga->getVisits();
//получаем и обрабатываем результаты
foreach($ga->getResults() as $result)
{
$medium=$result->getMedium(); //Источники трафика
$visits=$result->getVisits(); //кол-во посещений
$medium=str_replace("(none)","Прямой трафик",$medium);
$medium=str_replace("organic","Поисковые системы",$medium);
$medium=str_replace("referral","Сайты - источники переходов",$medium);
//формируем строку
$output.=$medium.";".$visits."\n";
}
//пишем в файл
$fp=fopen($path.$referrersCSV,"w");
fputs($fp,trim($output));
fclose($fp);
//////получаем сайты с которых ходили
$ga->requestReportData($id,array('source'),array('visits'),'-visits',null,$date1MonthStart, $date1MonthFinish,1,8);
//переменная для записи резалта
$output="";
//получаем общее число браузеров
$total_visits=$ga->getVisits();
//получаем и обрабатываем результаты
foreach($ga->getResults() as $result)
{
$source=$result->getSource(); //Источники трафика
$visits=$result->getVisits(); //кол-во посещений
$source=str_replace("(direct)","Прямой трафик",$source);
//формируем строку
$output.=$source.";".$visits."\n";
}
//пишем в файл
$fp=fopen($path.$sourceCSV,"w");
fputs($fp,trim($output));
fclose($fp);
в statistics.html добавить соответственно:
в папке stat создать соответствующие файлы:
browsers_settings.xml, timeonsite.xml,os_settings.xml, referrers_settings.xml, source.xml — по аналогии с существующими, т.е. если это график amline — файл создавать на основе visitors_settings.xml, если удельные веса — ampie, то на основе country_settings.xml и т.д.
Для отображение длительности пребывания на сайте нужно скачать график amxy.swf и положить в папку stat с остальными
У меня только трабла возникла с копирайтами:
1.Есть файл amcharts_key.txt с ключом. Если файл statistics.html, которыей инклюдю в другом пхп скрипте, вылазиют копирайты, хотя непосредственно в самом statistics.html не отображаются. Куда только этот файл не ложил — если инклюдишь — все-равно вылазиют.
2. Копирайты вылазиют также на графике «длительность пребывания на сайте». Победить тоже пока не могу.
<div id="timeonsite" align="center" style="padding-bottom:80px">
<strong>Для просмотра сожержимого, установите последнюю версию <a href="http://get.adobe.com/flashplayer/">Adobe Flash Player</a></strong>
</div>
<script type="text/javascript">
// <![CDATA[
var so = new SWFObject("/stat/amxy.swf", "amxy", "600", "400", "8", "#FFFFFF");
so.addVariable("path", "./amxy/");
so.addVariable("settings_file", escape("/stat/timeonsite.xml?<?php echo mktime();?>"));
so.addVariable("data_file", escape("/stat/timeonsite.csv?<?php echo mktime();?>"));
so.addVariable("loading_data", "Загрузка стат. графиков");
so.addVariable("preloader_color", "#BBBBBB");
so.write("timeonsite");
// ]]>
</script>
<script type="text/javascript">
// <![CDATA[
var so = new SWFObject("/stat/ampie.swf", "ampie_chart", "640", "400", "8", "#FFFFFF");
so.addVariable("path", "./ampie/");
so.addVariable("settings_file", escape("/stat/browsers_settings.xml?<?php echo mktime();?>"));
so.addVariable("data_file", escape("/stat/browsers.csv?<?php echo mktime();?>"));
so.addVariable("loading_data", "Загрузка стат. графиков");
so.addVariable("preloader_color", "#BBBBBB");
so.write("browsers");
// ]]>
</script>
<div id="os" align="center" style="padding-bottom:80px">
<strong>Для просмотра сожержимого, установите последнюю версию <a href="http://get.adobe.com/flashplayer/">Adobe Flash Player</a></strong>
</div>
<script type="text/javascript">
// <![CDATA[
var so = new SWFObject("/stat/ampie.swf", "ampie_chart", "640", "400", "8", "#FFFFFF");
so.addVariable("path", "./ampie/");
so.addVariable("settings_file", escape("/stat/os_settings.xml?<?php echo mktime();?>"));
so.addVariable("data_file", escape("/stat/os.csv?<?php echo mktime();?>"));
so.addVariable("loading_data", "Загрузка стат. графиков");
so.addVariable("preloader_color", "#BBBBBB");
so.write("os");
// ]]>
</script>
<div id="referrers" align="center" style="padding-bottom:80px">
<strong>Для просмотра сожержимого, установите последнюю версию <a href="http://get.adobe.com/flashplayer/">Adobe Flash Player</a></strong>
</div>
<script type="text/javascript">
// <![CDATA[
var so = new SWFObject("/stat/ampie.swf", "ampie_chart", "640", "400", "8", "#FFFFFF");
so.addVariable("path", "./ampie/");
so.addVariable("settings_file", escape("/stat/referrers_settings.xml?<?php echo mktime();?>"));
so.addVariable("data_file", escape("/stat/referrers.csv?<?php echo mktime();?>"));
so.addVariable("loading_data", "Загрузка стат. графиков");
so.addVariable("preloader_color", "#BBBBBB");
so.write("referrers");
// ]]>
</script>
<div id="source" align="center" style="padding-bottom:80px">
<strong>Для просмотра сожержимого, установите последнюю версию <a href="http://get.adobe.com/flashplayer/">Adobe Flash Player</a></strong>
</div>
<script type="text/javascript">
// <![CDATA[
var so = new SWFObject("/stat/ampie.swf", "ampie_chart", "640", "400", "8", "#FFFFFF");
so.addVariable("path", "./ampie/");
so.addVariable("settings_file", escape("/stat/source.xml?<?php echo mktime();?>"));
so.addVariable("data_file", escape("/stat/source.csv?<?php echo mktime();?>"));
so.addVariable("loading_data", "Загрузка стат. графиков");
so.addVariable("preloader_color", "#BBBBBB");
so.write("source");
// ]]>
</script>в папке stat создать соответствующие файлы:
browsers_settings.xml, timeonsite.xml,os_settings.xml, referrers_settings.xml, source.xml — по аналогии с существующими, т.е. если это график amline — файл создавать на основе visitors_settings.xml, если удельные веса — ampie, то на основе country_settings.xml и т.д.
Для отображение длительности пребывания на сайте нужно скачать график amxy.swf и положить в папку stat с остальными
У меня только трабла возникла с копирайтами:
1.Есть файл amcharts_key.txt с ключом. Если файл statistics.html, которыей инклюдю в другом пхп скрипте, вылазиют копирайты, хотя непосредственно в самом statistics.html не отображаются. Куда только этот файл не ложил — если инклюдишь — все-равно вылазиют.
2. Копирайты вылазиют также на графике «длительность пребывания на сайте». Победить тоже пока не могу.
Помогите, пожалуйста. Сделал все по инструкции, права дал, при выполнении site.ru/stat/stat.php никаких ошибок не выдает (готово и пустая страница), но на site.ru/stat/ выводится чужая статистика еще за 2009 год. Куда еще можно посмотреть?
впишите свои данные config.php от Google Analytics, если не сделали этого ранее.
потом заново запускайте site.ru/stat/stat.php
потом заново запускайте site.ru/stat/stat.php
Можно прибить файлики *.csv, заново запустить stat.php. получатся новые файлики с данными 100% использующие данные из config.php.
Финальный выстрел — права.
chmod -R 777 stat/
А вообще посмотрите логи ошибок nginx или apache, ведь если ошибки авторизации в гугле или нет прав на запись в папке, все увидите.
chmod -R 777 stat/
А вообще посмотрите логи ошибок nginx или apache, ведь если ошибки авторизации в гугле или нет прав на запись в папке, все увидите.
Права на stat и все, что в ней 777, я не обманывал, когда говорил, что все по инструкции (:
Почему не работает — загадка ):
Почему не работает — загадка ):
Может кто сталкивался и знает в чем тут загвоздка. Рассматриваемый ресурс городской и ориентирован на один конкретный город. В отчетах Google Analytics неправильно указывается город пользователи которого составляют львиную долю заходов. Почему я решил что не правильно? В Яндекс Метрике хоть и не указывается город, но правильно показана область в которой находится тот город по идеи пользователи которого составляют основную массу пользователей сайта. А то что отображается в Google Analytics находится совсем в другой области. Посмотрел у конкурентов, также использующих Google Analytics, у них все нормально.
Попробовал принудительно в файле выставить city.csv выставить название нужного города. На сайте стало отображаться как и хотел, но файл city.csv как я понимаю постоянно обновляемый. После выполнения site.ru/stat/stat.php все вернулось как и было.
Можно ли еще как то принудительно выставить название города?
Можно ли еще как то принудительно выставить название города?
Комментарии (86)
RSS свернуть / развернуть