Пользователь
0,0
рейтинг
14 октября 2009 в 10:51

Разработка → Статистика 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
Android @Andex
карма
59,5
рейтинг 0,0
Реклама помогает поддерживать и развивать наши сервисы

Подробнее
Реклама

Самое читаемое Разработка

Комментарии (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
        пишите в личку, попробуем разобраться по возможности
        • +1
          спасибо!
        • 0
          вот что получилось в итоге bruneta.ru/node/12717
          • 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
    У меня еще вопросик появился, оказывается что не у моего дизайнера ни у заказчика не отображаются диаграммы, наверное что-то с Флешем, как сделать отображение другим методом каким то?

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