Статистика Google Analytics на вашем сайте. Часть вторая. Использование GAPI

    С момента публикации первого топика о создании хабраподобной статистики (которую, кстати, почему-то тут не обновляют) с импортированием данных из Google Analytics прошел ровно год.

    image

    Весь этот год все работало, статистика обновлялась, графики рисовались… пока все не сдохло. Как это и присуще гуглу, сдохло оно не сразу у всех, а потихоньку, в течение недели. При беглой диагностике проблемы выяснилось, что она заключается в гугловой авторизации. Учитывая, что скрипт авторизации мною был заимствован, разбираться в нем не было никакого желания, и тут до меня дошло — ведь Google выпустил API для аналитикса! Поэтому было решено не обрабатывать напильником существующую версию, а просто получить данные цивилизованно, посредством API, тем не менее, оставив при этом «структуру» и основные моменты предыдущей версии.

    Итак, для начала, в качестве справочной информации дам ссылок:

    Документация к API доступна здесь
    code.google.com/intl/ru_ALL/apis/analytics/docs/index.html

    В частности, нас будет интересовать класс для PHP
    code.google.com/p/gapi-google-analytics-php-interface

    А также страницы с описанием получаемых параметров
    code.google.com/intl/ru_ALL/apis/analytics/docs/gdata/gdataReferenceDimensionsMetrics.html

    Сразу скажу, что представленный здесь скрипт лишь показывает основные принципы работы с GAPI, и не обладает обширностью отчетов — представлены только несколько наиболее важных с моей точки зрения отчетов. Добавить любые другие по подобию и при наличии неплохой документации по API не должно составить никакого труда. Для тех, кто не использовал предыдущую версию, лучше ознакомиться с соответствующим топиком, чтобы понять основные принципы работы и построения графиков. В данной версии меняется лишь способ получения данных из GA. А далее все аналогично — точно так же формируем такие же текстовые файлики, точно так же строятся графики, и т.д.

    Основные настройки, как и ранее, указываются в файле config.php — в файле присутствуют комментарии, должно быть ясно, что и зачем.
    gapi.class.php — это класс для работы с API, берем его здесь
    ну и stat.php — скрипт, который, собственно, генерирует текстовые файлы CSV для построения диаграмм (там аналогично все прокомментировано, все очень просто)

    В xml-файлах содержатся настройки графиков. Об этом подробно расписано в прошлом топике. На всякий случай, привожу ссылки на описание настроек:
    www.amcharts.com/docs/v.1/bundle/settings/line_area
    www.amcharts.com/docs/v.1/bundle/settings/pie_donut

    Вот, собственно, и все. Обращу внимание, что stat.php — это скрипт, который именно импортирует данные, а index.php — это фактически обычная html-страница, отображающая графики. При выполнении stat.php не должно вываливаться никаких ошибок, только в этом случае можно считать, что все прошло нормально.
    Ну а в итоге, открыв index.php мы получим примерно такое

    Сам набор забираем здесь, версия 3.0:
    code.google.com/p/statga/downloads/list

    А еще, благодаря galo4kin, обновлена старая «ветка», без использования API. Назовем ее версия 2.1 (забирать там же, по ссылке выше) Изменения коснулись только ga.php

    UPDATE
    Исправлена сортировка в отчете посещаемости за последние 3 месяца. Забираем версию 3.1:
    code.google.com/p/statga/downloads/list
    Поделиться публикацией
    Похожие публикации
    Реклама помогает поддерживать и развивать наши сервисы

    Подробнее
    Реклама
    Комментарии 52
    • +1
      Спасибо. Допилю под себя и буду использовать )
      • +1
        Недавно пытался устанавливать Ваш скрипт — выдавало ошибку авторизации, думал у меня руки кривые :) Большое спасибо за новую грамотную версию через API!
        • +1
          Долго и упорно использовал код и предшествующей статьи.
          Боролся с переключением языков и не был рад.
          Здравствуй праздник на нашей улице!
          • 0
            Вот бы гугл сделал еще и кнопку 88х31 для вставки на сайте, с количеством посетителей в день.
            Мне очень нужна такая кнопка, правда.
            • 0
              Хм… Можно и самому попробовать реализовать.
              Через API вытягивать количество посетителей и через php накладывать на изображение счетчика :)
              • +2
                здесь реализовано
                • –2
                  Списибкииии! Давно искала такой плагинчик ;-)
                  На досуге попробую как нить реализовать :-D
                • 0
                  проблемка заключается в том, что гугл работает не в реальном времени, поэтому если вы хотите отображать количество, например, посетителей за текущие сутки, скорее всего это будет не совсем корректно… Хотя, может быть что-то изменилось за последнее время, не проверял…
                  • 0
                    да нет, он просто по умолчанию делает выборку с … по вчершний день, но открыть статистику за текущий день можно.
                    • 0
                      можно, но данные там появляются не мгновенно, по крайней мере так было раньше, полного реалтайма там нет (как например на каком-нить мейлу.ру счетчике, когда делая рефреш страницы вы постоянно видите все новые и новые увеличивающиеся значения). Сейчас проверил, ну что-то похоже, согласен, возможно обработка запускается через какой-то определенный промежуток времени
                    • 0
                      думали об этом, хотели отображать хотя бы за последние сутки, но у нас на выходных посетилово падает, поэтому в понедельник данные будут заниженные, а в субботу завышенные. думали еще о средних за неделю показателях, но в итоге пришли к тому, что просто оставили раздел с графиком, кому надо — посмотрит, а счетчик с циферками лирушный оставили
                  • 0
                    Ждём ответа от Яндекс.метрики!
                    • 0
                      Тоже хотел бы что они написали API для метрики.
                      Там присутсвуют некоторые интересные фичи.
                    • 0
                      Старая версия без использования API также обновлена и опять работает. Инфа в конце топика
                      • 0
                        По поводу amcharts — графики неплохие, но платить 85 Euro жаба душит :(
                        Установил себе для FireFox дополнение FireBug, отследил, что флешка с графиками пытается найти текстовый файл amcharts_key.txt.
                        Первый же запрос в гугл нашел то, что так долго мне не хватало ;)
                        Спасибо гуглу за хорошую индексацию ))
                        • 0
                          этот вопрос уже обсуждался в предыдущем топике
                        • 0
                          Хей, ребята. А встречал кто-нибудь приблуду, чтобы считать посетителей через GA, у которых отключен javascript? Вроде картинки, которая грузится в noscript и передает гуглу нужные данные?
                          • 0
                            Может пояснит кто, как всё таки авторизоваться через Gapi? В issues есть загадочный (для меня) комментарий «I was getting this same issue. I fixed it by going to https://www.google.com/a/example.com/UnlockCaptcha to unlock the specific account (where example.com should obviously be changed).» Пояснит кто-нибудь?
                            • 0
                              А что у Вас не получается? Указанная Вами проблема связана с появлением капчи, в случае нескольких неудачных попыток авторизации. Решается заходом через браузер под данной учёткой на гугл (введя капчу).
                            • 0
                              при обращении к файлу stat.php получаю:
                              Parse error: syntax error, unexpected T_CONST, expecting T_OLD_FUNCTION or T_FUNCTION or T_VAR or '}' in /gapi.class.php on line 29
                              • 0
                                php версия какая?
                              • 0
                                Установил версию 3.0: распаковал ее в папку stats, сделал права 777
                                изменил настройки на свои:
                                $u="*******";
                                $p="******";
                                $id="******";
                                $path="/domains/****/public_html/stats/";

                                Пробую запускать stat.php, загружается пустая страница — ошибок нет,
                                но .csv файлы не создаются.

                                Подскажите пожалуйста в чем может быть дело?
                                • 0
                                  в stat.php error_reporting(15); есть? не комментировали?

                                  Закиньте на сервак файлик с
                                  <?
                                  phpinfo();
                                  ?>

                                  и ссылку на него (можно в личку). тяжело в слепую понять что у вас там происходит
                                  • 0
                                    аналогично
                                    • 0
                                      пишите в личку, попробуем разобраться по возможности
                                • 0
                                  Работало-работало, а тут в один прекрасный день перестало. Ничего не пойму. Поставил новую версию, а stat.php не робит — ошибка скрипт.
                                  • 0
                                    Поподробнее
                                    Из Ваших слов не понятно ничего
                                  • +2
                                    С наступлением НГ что-то опять сломалось.
                                    График «Количество посетителей за последний месяц» после 31 декабря ничего не показывает.
                                    Заглянул в visitors_3.csv — там что-то не то с сортировкой. Выглядит так:
                                    01.01.2010;362;1293;444
                                    02.01.2010;540;2139;659
                                    02.12.2009;484;1994;610
                                    03.12.2009;556;2293;678

                                    31.12.2009;556;2293;678

                                    В итоге данные за первые числа января отображаются в начале графика. Зачем гугл их так отсортировал?
                                    • 0
                                      Хаха, мы с вами в одно время начали разбираться с графиком))
                                      Я пока не понял, но чувствую придется еще скриптом переписывать 2010 в конец
                                      • 0
                                        у меня кстати статистика всегда показывалась на 2 дня раньше… т.е. сейчас обновил и последнее число 1 января, а у вас второе в принципе как и должно быть
                                        • +1
                                          Исправлено!
                                          Забираем новую версию по ссылке в конце топика.

                                          Тем кому интересны различия, могут сравнить старый и новый файлы stat.php, изменения внесены только в одну строку.
                                          • +1
                                            Для тех кто не хочет качать весь файл — 45 строка stat.php — pastebin.ru/309508
                                          • 0
                                            тоже столкнулся с проблемой. собственно, сами задали сортировку по месяцу и дню, а надо по году, месяцу и дню
                                          • 0
                                            а есть версия с получением Источников переходов?
                                            • 0
                                              Не могу понять, как работать с сегментами при помощи этой библиотеки, можете подсказать?
                                              • 0
                                                Установил. Пришлось немножко попотеть.

                                                Думаю, есть смысл написать FaQ по наиболее частым ошибкам.
                                                • 0
                                                  потею уже третий час, так что FAQ было бы очень актуально :)
                                                  • 0
                                                    да там нечего в FAQ писать-то…

                                                    напишите мне в ЛС, в чем проблема, разберемся
                                                    • 0
                                                      тоже написал
                                                      FAQ в пару строк не помешал бы
                                                • 0
                                                  я вообще не нашел где посмотреть гугл id в новом интерфейсе Гугла
                                                  • 0
                                                    я так понимаю это UA-xxxxxxxx-x?
                                                    • 0
                                                      Нет, это не тот идшник
                                                      Раньше он легко брался из любого урла аналитикса.
                                                      Сейчас вот первый раз заглянул в новый интерфейс… в общем, времени пока нет разобраться что к чему, попробуйте сделать так:

                                                      урл в новом интерфейсе имеет вид
                                                      www.google.com/analytics/web/#home/a1111111w2222222p3333333/

                                                      так вот этот id совпадает с 3333333, т.е. то значение, которое идет после p
                                                      • 0
                                                        Спасибо, нашел.
                                                        Еще он есть в настройках профиля сайта слева вверху.

                                                        Но я всеравно пока что получаю «Fatal error: Uncaught exception 'Exception' with message 'GAPI: Failed to authenticate user. Error: „Reque...“ :(
                                                        Сижу, читаю API. Пока что еще не узнавал, что такое curl и пречее :) про что пишут в обсуждении gapi-google-analytics-php-interface.
                                                        • 0
                                                          Размещение ID'шника:http://i31.fastpic.ru/big/2011/1110/2c/968a428aaba5adcbef1089b558811d2c.jpg
                                                          • 0
                                                            Спасибо.
                                                            Ошибки, скорее всего потому, что не установлен curl. В данном случае — это соответствующее расширение для php. Если оно не прикручено — работать не будет.
                                                            • 0
                                                              Я пытался настроить сURL на локальном Денвере. Не получилось. Но я в тонкой настройке — нуб. Потратил час безрезультатно. Сначала хотел прикрутить к установленному в Денвере php5 библиотеку libcurl.dll просто раскомментировав ;extension=php_curl.dll в php.ini — но не заработало. Скачал чистый php с всеми библиотеками, но подружить с Апачем не удалось.

                                                              На удаленном сервере cURL — endabled.

                                                              Но из коробки не заработало: open_basedir restriction in effect. File(/home/localhost/google/stats/visitors.csv) is not within the allowed path(s): (/home/mysite:/usr/lib/php:/usr/local/lib/php:/tmp) in /home/svarka/public_html/stg/stat.php on line 37
                                                              • +1
                                                                УРА! Я, нуб, настроил! Посылаю тебе, автор, лучи добра!

                                                                Для таких же нубов как я:
                                                                1) cURL обязательно должен быть включен, без него работать не будет.
                                                                2) я подкрутил скрипт чтоб файлы city.csv, country.csv, visitors.csv, visitors_3.csv открывались в режиме 'x+' а не 'w' — потомучто в проекте их нет, и stat.php матерится из за этого.
                                                                3) установите permissions проекта при аплоаде всех файлов и родительского каталога в «777»
                                                                4) не забывайте указать директорию в конце конфига.
                                                  • 0
                                                    Подскажите кто-нибудь, как перекрытие текста пофиксить?
                                                    i30.fastpic.ru/big/2011/1111/25/c89006ef27e14d9bb09b56d18bb25c25.jpg
                                                    • 0
                                                      У меня еще вопросик появился, оказывается что не у моего дизайнера ни у заказчика не отображаются диаграммы, наверное что-то с Флешем, как сделать отображение другим методом каким то?

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