Статистика Google Analytics на вашем сайте

    Помню, как-то проскакивала пара записей (здесь и здесь) по поводу импортирования данных из Google Analytics для отображения сводных диаграмм на сайте, в общем, как на хабре. Прочитав вышеупомянутые топики и не обратив особого внимания тогда, я о них успешно «забыл» и пошел себе дальше. И вот сейчас, появилась необходимость реализовать нечто подобное на одном из своих проектов.

    image

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

    UPDATE:
    Добавил еще одну версию, подробности и линк под катом.


    Скачать можно отсюда.

    Новую версию забирать здесь.
    В config.php добавлена переменная $id, которая соответствует id в Google Analytics. Данный id используется в URL каждого из отчетов.
    Т.е., можно либо в конфиге указать свой id в этой версии, либо подкорректировать переменные $url в предыдущей, указав в строке запроса необходимый id.
    Спасибо Orenlab за замечание.

    UPDATE 2:

    Следующая версия здесь.
    В ga.php из запроса убран www.askapache.com
    Без этой переменной все работает так же нормально. Зачем оно было надо — остается догадываться. Просмотрел гугловые заголовки — ничего подобного не увидел.
    Спасибо AlexSpaizNet за замечание.

    UPDATE 3:
    Добавлена версия 1.0
    Забирать отсюда
    Это первый и последний релиз скрипта в том виде и с теми функциями, которые сейчас есть. С его помощью можно без особых сложностей подогнать все под свои нужды и использовать.

    Измениения таковы:
    — Немного перестроен парсер. К сожалению, возникли определенные трудности при работе с установленным в GA английским, поэтому:
    ВНИМАНИЕ! Для правильной работы в настройках Google Analytics обязательно должен быть установлен русский язык

    — Добавлены графики по посещениям
    — Функция stripos заменена на strpos, так как stripos не работает в неокторых версиях PHP
    — Решена проблема с кэшированием настроек и данных для графиков. Теперь при каждом рефреше вам должны отображаться обновленные данные
    — index.html заменен на index.php
    — в config.php появилась переменная $path — в качестве ее значения необходимо указать полный пусть к директории, в который будут писаться файлы
    — также добавлена переменаая $debug — если она установлена как true, будет создаваться файл log.txt, в который будут сваливаться потоком, все отчеты, полученные от Google Analytics (т.е. именно те данные, который отдал гугл, еще до того как мы их пропарсили)

    Список всех версий — здесь

    UPDATE 4:
    В связи с последними изменениями в GA вышла версия 2.0b
    Забирать как обычно отсюда

    Чтобы было понятно, что к чему и что поменялось, вкратце распишу изменения.

    Итак, во-первых гугл поменял формат дат в отчетах, теперь вместо 25.10.2008 это выглядит как 25 октября 2008 г.
    Кроме того, что-то поменялось в определении языка, используемому в отчетах. Сейчас через скрипт я всегда получаю англ язык, через броузер, нормально забирая отчет, получаю тот, который должен быть. С чем это связано пока не разобрался.
    Итак, собственно к изменениям.

    1) Решено было перейти на другой тип отчетов — TSV, как оказалось, под этим загадочным названием скрывается текстовый файл с разделителями табуляции. Это позволило нам вообще не зависеть от языка.

    итак, во всех переменных $url в stat.php fmt=2 изменен на fmt=3

    2) так как теперь у нас другой разделить в текстовых файлах — в обработках меняем "," на "\t"
    эти строки выглядят примерно как
    $line=explode("\t",$lines[$i]);

    3) поскольку дату мы получаем уже в другом виде, форматнуть ее так как раньше уже не получится, посему камментим строки после
    //форматируем дату

    4) ну и собственно в анл языке принято тысячную долю отделять запятой, которую мы удаляем для того, чтобы amcharts нормально рисовал график

    //убираем символ разделителя тысячи
    $line[1]=str_replace(chr(194).chr(160),"",$line[1]);
    $line[1]=str_replace(",","",$line[1]);
    $line[2]=str_replace(chr(194).chr(160),"",$line[2]);
    $line[2]=str_replace(",","",$line[2]);

    Вроде все… с проблемами с русским разберемся в ближайшее время.

    UPDATE 5:
    Появилась версия 2.0.1
    Забираем
    Теперь нормально работает русский язык.
    Изменения внесены в файл ga.php, добавлен один кукис — $aFoundCookies[1][]=«AnalyticsUserLocale=ru»;

    Ну и по форматированию даты небольшие изменения сделаны в stat.php (но это не обязательно...)

    Вкратце опишу главные нюансы, настройку и принцип работы.
    (руководство по установке ниже)

    Итак, наверно всем известно, что есть возможность получить из GA отчет в одном из форматов (PDF, XML, CSV и что-то еще). Таким образом, это самый простой способ экспорта данных. Однако, скачать отчет возможно лишь только после авторизации, и никаких внешних ссылок для скачивания отчета без авторизации недоступно. Правда, есть возможность отправки отчета на мыло (читал, что некоторые таким образом экспортили данные, т.е. отчет отправлялся в мыло, потом по крону запускался скрипт, который забирал почту, и парсил полученный отчет, но, имхо, это бред). В общем, для получения нам необходимо сэмулировать логин в систему и получить после этого данные. Для этого используем скрипт ga.php (который, кстати, писан не мною, а найден несколько месяцев назад в дебрях форума серча, за что спасибо разработчику, т.к. это сэкономило время на разбор гугловой аутентификации).
    Для реализации задачи нам бы подошли форматы либо XML, либо CSV. Уж не знаю, что меня в тот момент дернуло, но я остановился на последнем, т.е. это обычный текстовый файл, который нам необходимо определенным образом пропарсить для импорта данных и построения графиков.

    Парсит полученные данные у нас скрипт stat.php (он и является основным запускаемым скриптом, который подгружает в себя ga.php и, короче говоря, генерирует резалтные файлы на диске для создания диаграмм)
    Я попытался максимально прокомментировать код, чтобы было понятно, что куда и зачем, и можно было без особых сложностей добавить нужный отчет. Я же взял, на свое усмотрение, нужные мне 6 отчетов: Посещаемость с начала существования ресурса (дата указывается в настройках), Посещаемость за последние три месяца, Источники переходов, География посетителей, используемые браузеры и ОС за последние 30 дней.

    Все настройки указываются в config.php

    Кстати, на сайте, для которого мне необходимо было сделать отображение статистики, код google analytics был установлен только несколько месяцев назад, но хотелось показать рост посещаемости с самого начала существования, т.е. за два с лишним года в данном случае. Поэтому была добавлена возможность «приклеить» к данным, полученным из GA, информацию о посещаемости за время предшествующее установке гуглового счетчика. по умолчанию — это статичный файл default.csv, сформированным необходимым образом (в архиве есть пример всех csv-файлов, включая этот). Откуда брать для него данные — решать вам, в моем случае на сайте было установлено аж 4 счетчика вроде рамблера, мейлру и т.п. (чьи показания, кстати, разнятся ооочень существенно). Если надобности использования подобной схемы нет, просто укажите имя переменной, указывающей имя данного файла как false.

    Для отображения диаграмм заюзаны amCharts. Это платный продукт, стоимостью 85 евро за односайтовую лицензию. Однако, доступна и бесплатная версия, которая отличается лишь тем, что на диаграммах выводится ненавязчивая ссылка на сайт разработчика.
    Настройки каждой из диаграмм указываются в соответствующих xml-файлах, которые хорошо прокомментированы, и я думаю, разобраться, что там к чему не составит большого труда. Я же для представления взял цветовую гамму, аналогичную графикам на хабре.
    Данные для построения диаграмм подгружаются из сгенерированных нами выше csv файлов, специально подготовленных для использования в amCharts.

    В конечном итоге мы получаем примерно следующее.

    Теперь можно загнать скрипт в крон, и несколько раз в сутки обновлять статистику, например так:

    0 */8 * * * /usr/local/bin/php /home/username/public_html/stats/stat.php

    С удовольствием выслушаю замечания и пожелания!

    PS. Установка
    Файл config.default.php переименовываем в config.php
    Редактируем его, указывая, как мнимум, следующие настройки:

    1. Ваша учетная запись в Google Analytics
    id берем после логина через броузер и перехода на главную страницу с отчетами:
    www.google.com/analytics/reporting/?reset=1&id=xxxxxxx&scid=xxxxxxx

    //учетная запись GA
    $u="user";
    $p="password";
    $id="1234567";


    2. Устанавливаем временную зону, если время сервера не совпадает с тем, что вам нужно
    //устанавливаем временную зону, во избежание недоразумений, если время на сервере отличается от необходимого
    putenv('TZ=Europe/Kiev');

    Если совпадает — просто камментим или удаляем эти строки

    3. Указываем начальную дату в формате YYYYMMDD
    $datestart="20080101";

    это дата, начиная с которой у вас будет рисоваться первый график, т.е. начало всей статистики

    Все остальное можно не трогать, если все же хочется — остальные настройки прокомментированы

    Далее заливаем все это в директорию на сервере
    ВНИМАНИЕ! У вас должны быть права для записи в эту диреторию из PHP

    Запрашиваем файл stat.php — он генерирует кучку .csv-файлов — это данные для графиков
    Для отображения графиков, запрашиваем index.php

    В свою очередь, stat.php можно засунуть в крон или любой другой планировщик задач и запускать несокльо раз в сутки для автоматического обновления графиков.

    Удачи! Спасибо всем за проявленный интерес!

    Внимание! Новая версия доступна здесь
    Поделиться публикацией
    AdBlock похитил этот баннер, но баннеры не зубы — отрастут

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

    Комментарии 142

      +2
      Спасибо большое! Давно хотел заняться этим вопросом!
        +5
          +1
          видел этот наборчик, но мне он показался излишне перегруженным. Хотелось чего-то вкрай простого
            0
            Fatal error: Call to undefined function curl_init() in C:\WebServer\Apache\htdocs\pluser\stat\ga.php on line 14?
            widows server
              0
              Не установлен необходимый модуль cURL для php
              ua2.php.net/manual/ru/book.curl.php
                0
                Ай спасибки :-)
                Очень вкусно :-)
                Всё пашет теперь.
          0
          спасибо за обстоятельный топик :)
            0
            @DeadLy — site-stats — мне например показалось крайне не юзабельно.

            Ну а автору болльшой такой респект =).
              +1
              Да и кстати — teethgrinder.co.uk/open-flash-chart/
              Это первая версия. Уже есть и вторая но ссылку я как то потерял в дебрях своего делишеса…
              +1
              Спасибо, я использовал до этого немного потяжелее вариант, но вполне работоспособный (пример у меня на сайте). Там все немного посложнее, да и повозиться пришлось сильно, выложу вечером из дома для сравнения. Ваш пример действительно прост и понятен, единственное допишите, что в файле stat.php в URL для парсинга нужно id поставить свой (во всех отчетах в Google Analytics в адресной строке браузера он есть.)
                0
                ой, действительно! совсем об этом забыл, сейчас обновлю
                  0
                  Добавил версию, в которой можно указать id в config.php
                0
                Спасибо, пошел прикручивать.
                  +1
                  $sPostData = «Email=». $sUsername. "&Passwd=". $sPassword. "&GA3T=5AS_gBsvDHI&nui=15&fpui=3"
                  . "&askapache=http://www.askapache.com/"
                  . "&service=analytics&ifr=true&rm=hide&itmpl=true&hl=en_US&alwf=true&"
                  . ";continue=https://www.google.com/analytics/reporting/?scid&null=Sign in";

                  Кто мне объяснит что там делает www.askapache.com/?
                    0
                    Честно говоря, тоже обратил на это внимание. Сейчас попробуем его просто убрать оттуда.
                      0
                      Убрал askapache из запроса.
                      Обновленная версия доступна для скачивания.

                      AlexSpaizNet, спасибо, что обратили на это внимание
                      +1
                      У вас в коде жестко прописал Id проекта…
                      надо бы в конфиг вынести…
                      А так — огромное спасибо работает
                      Только покуда не понял как первый график строиться
                        0
                        id в конфиг вынес, спасибо
                        По первому графику распишу подробно чуть позже
                        +1
                        В config.inc добавлена переменная $id

                        Исправьте ошибочку. Я нашел только config.php ;)
                          0
                          поправил, спасибо
                          0
                          Спрошу сейчас глупость, но у меня не получается заставить скрипт работать, а очень хочется )))
                          Данные не подхватываются. Что бы я не подставлял в config.php в значения $u, $p и $id, в результате на графике все-равно выводится сайт из примера… Даже когда эти значения пустые. Что я делаю не так, не могу понять.
                          Пробовал использовать и версию, где в stat.php id вписывается напрямую, в url. Тот же результат. Образумьте, плиз! :)
                            0
                            Видимо просто данные не обновляются, попробуйте удалить все эти csv-файлы и запустить скрипт — появятся ли новые? Вы скрипт как запускаете? попробуйте исправаить в самом верху stat.php
                            error_reporting(0) на error_reporting(15)
                            и запустить скрипт в адресной строке броузера и посомтрим какие он ошибки вывалит
                              0
                              Вы скрипт как запускаете?

                              Хмм… Создал папку /stats/, кинул туда все исходники. Дальше набираю адрес_сайта/stats/ и вуаля — график рисуется.
                                0
                                а что делать если страница запрашивает пароль для входа?
                                  0
                                  а Вы вообще в конфиге всё указали?
                                0
                                Банальный кэш браузера.

                                1. index.html переименовываем в index.php
                                2. рандомайзим все имена csv файлов so.addVariable(«data_file», escape(«visitors.csv?q=»));
                                0
                                попробуйте удалить все эти csv-файлы и запустить скрипт — появятся ли новые?

                                Нет, не появляются.
                                посомтрим какие он ошибки вывалит

                                Вывалил много нотисов и чуть-чуть варнингов ))) Спасибо, уже что-то. Поковыряюсь и о результатах сообщу.
                                  0
                                  Но, кстати, тем не менее, график формируется, но увы, все тот же, «примерный» ((
                                    0
                                    Прописал обратно свои данные в config.php. Теперь ошибки совсем другие:

                                    Warning: fopen(visitors.csv) [function.fopen]: failed to open stream: Permission denied in /usr/local/www/vhosts/***.**/httpdocs/stats/stat.php on line 23
                                    Warning: fputs(): supplied argument is not a valid stream resource in /usr/local/www/vhosts/***.**/httpdocs/stats/stat.php on line 28
                                    Warning: fclose(): supplied argument is not a valid stream resource in /usr/local/www/vhosts/***.**/httpdocs/stats/stat.php on line 29


                                    И так для каждого *.csv-файла.
                                      0
                                      так, давайте сначала
                                      Вы запускаете адрес_сайта/stats.stat.php
                                      он вам вываливает кучу варнингов о том, что не может записать файлы.
                                      Права есть у вас для записи в эту директорию?

                                      Когда вы запрашиваете адрес_сайта/stats/ Вы фактически запрашиваете адрес_сайта/stats/index.html
                                      Это статичный файл, который показывает графики. Сами же флэшевые графики, тоже статичны, для отображения берут эти csv-файлы с данными и по ним строят диаграммы.
                                        0
                                        Права поставил. Данные прописал и перепроверил. CSV-файлы стали создаваться. Нет ни нотисов, ни варнингов. Однако графики не обновляются. Кажется, я скоро сдамся (((
                                          0
                                          Насчет данных, чтобы быть точно уверенным:
                                          $u=«username@gmail.com»;
                                          $p=«mYpaSsWorD»;
                                          $id=«8-ми значный номер»; // Я беру id из url — _http://google.com/analytics/reporting/?reset=1&id=********&scid=5561403
                                          Все верно?
                                            +1
                                            Вроде бы да. Идшники, кстати, ни на что не влияют почему-то, у меня для разных акков аналитикса данные строятся с одним и тем же ид в запросах…
                                            Может быть кэш броузера? Попробуйте вычистить кэш, или запросить каждый из csv-файлов, т. е.
                                            адрес_сайта/stats/visitors.csv и т. д. и ctrl+r их
                                            Вы на локальной машине все это делаете или нет? Если не получится — стукните в личку, я думаю разберемся в чем проблема…
                                              0
                                              Правда у меня id — 8-мизначный
                                                0
                                                странно у меня id 7-и значный, но всёравно ничего неработает :(
                                                  0
                                                  тьфу, меня запутали, 7-значный конечно.
                                                  А у Вас как не работает? Права на запись файлов в соответствующей директории есть? В настройках GA выбран русский язык?
                                                    0
                                                    что я сделал:
                                                    1. создал папку /stat/
                                                    2. туда всё закачал дал права папке самой 777 и всем файлам внутри.
                                                    3. открыл config.php — сделал:

                                                    $u=«aleksandr@****.lv»;
                                                    $p="*****";
                                                    $id=«9362388»;

                                                    4. закачал файл. ввёл: /stat/stat.php — и по логике он должен был парсить?
                                                    В этоге — ничего. Все файлы удалил старых показателей. Мои не появляются. Ещё вопрос: в GA.php надо было что-то менять?

                                                      0
                                                      всё заработало. очень странно. после коммента нажал F5 раз… половина подгрузилась. нажал ещё раз. вторая подгрузилась. очень странно. :))

                                                      Кстате у меня есть ключ на AmChart где его вводить?
                                                        0
                                                        нет, в ga.php изменений быть не должно никаких (я ж надеюсь у Вас имя файла в нижнем регистре?)
                                                        В stat.php в самом вреху измените error_reporting(0) на error_reporting(15)
                                                        Оно вывалит ошибки — давайте посмотрим.
                                                        Только укажите какой версией скрипта вы пользуетесь.
                                                          0
                                                          я сдела reporting(5)

                                                          кстате интересно как сделать чтобы во втором графике он выводил не Абсолютно уникальные посетители, а просто Посещения?
                                                            0
                                                            добавить/изменить соответствующий отчет. Сегодня-завтра его также добавлю. Как лучше, добавить к этим двум? или отдельным графиком?
                                                              0
                                                              отдельным лучше :)
                                                                0
                                                                и всё таки, где вписать ключ?
                                                                  0
                                                                  в логе сервера есть строка 'File does not exist: /home/www/site1/public_html/stats/ampie/amcharts_key.txt '
                                                                  подозреваю, что там и должен быть ключ
                                                                    0
                                                                    вы гениальны! благодарю! осталось интегрировать в сайт. результаты покажу :)
                                                    0
                                                    Спасибо, вроде все работает. Действительно, браузер накрепко кэшировал данные графиков, просто нажать F5 не помогало — пришлось лезть в настройки и удалять полностью кэш. Все это верно для Оперы, не знаю как в остальных браузерах.

                                                    Результат можно посмотреть здесь. Скромно, но приятно :)
                                                    Автору еще раз спасибо!
                                                      +1
                                                      Вот и хорошо
                                                      Полистал мануал по amChart, воде бы там есть описание проблемы с кэшем. На днях попробую избавиться от этого недостатка. Мониторьте новые версии. Отпишусь в топике об обновлении.
                                              0
                                              права на файлы 0777 поставь

                                              p.s

                                              Вот заценяйте :)

                                              ashdoda.net/modules.php?name=Info&file=analytics

                                              Единственное что — все файлы данных и настроек в корень пришлось кинуть… что то я не поспал сегодня… не получается с папки все это запустить =)
                                                0
                                                В Израиле рулит Опера?
                                                  0
                                                  Сам в шоке. Обычно здесь все и везде от билл гейтса…
                                              0
                                              Fatal error: Call to undefined function: stripos() in /var/www/***/***/stats/stat.php on line 17
                                                0
                                                Попробуйте заменить stripos на strpos
                                                Какая версия PHP?
                                                  –3
                                                  версия PHP/4.4.8

                                                  пробовал поменять, получилось вот что:

                                                  Notice: Undefined offset: 1 in /var/www/***/***/stats/stat.php on line 36

                                                  Notice: Undefined offset: 2 in /var/www/***/***/stats/stat.php on line 37

                                                  Notice: Undefined offset: 2 in /var/www/***/***/stats/stat.php on line 37

                                                  Warning: fopen(visitors.csv) [function.fopen]: failed to open stream: Permission denied in /var/www/***/***/stats/stat.php on line 23

                                                  Warning: fputs(): supplied argument is not a valid stream resource in /var/www/***/***/stats/stat.php on line 28

                                                  Warning: fclose(): supplied argument is not a valid stream resource in /var/www/***/***/stats/stat.php on line 29

                                                  Warning: Cannot modify header information — headers already sent by (output started at /var/www/***/***/stats/stat.php:36) in /var/www/***/***/stats/ga.php on line 5

                                                  Notice: Undefined offset: 1 in /var/www/***/***/stats/stat.php on line 36

                                                  Notice: Undefined offset: 2 in /var/www/***/***/stats/stat.php on line 37

                                                  Notice: Undefined offset: 2 in /var/www/***/***/stats/stat.php on line 37

                                                  Warning: fopen(visitors_3.csv) [function.fopen]: failed to open stream: Permission denied in /var/www/***/***/stats/stat.php on line 23

                                                  Warning: fputs(): supplied argument is not a valid stream resource in /var/www/***/***/stats/stat.php on line 28

                                                  Warning: fclose(): supplied argument is not a valid stream resource in /var/www/***/***/stats/stat.php on line 29

                                                  Warning: Cannot modify header information — headers already sent by (output started at /var/www/***/***/stats/stat.php:36) in /var/www/***/***/stats/ga.php on line 5

                                                  Notice: Undefined offset: 2 in /var/www/***/***/stats/stat.php on line 54

                                                  Notice: Undefined offset: 2 in /var/www/***/***/stats/stat.php on line 54

                                                  Warning: fopen(country.csv) [function.fopen]: failed to open stream: Permission denied in /var/www/***/***/stats/stat.php on line 23

                                                  Warning: fputs(): supplied argument is not a valid stream resource in /var/www/***/***/stats/stat.php on line 28

                                                  Warning: fclose(): supplied argument is not a valid stream resource in /var/www/***/***/stats/stat.php on line 29

                                                  Warning: Cannot modify header information — headers already sent by (output started at /var/www/***/***/stats/stat.php:36) in /var/www/***/***/stats/ga.php on line 5

                                                  Warning: fopen(referrers.csv) [function.fopen]: failed to open stream: Permission denied in /var/www/***/***/stats/stat.php on line 73

                                                  Warning: fputs(): supplied argument is not a valid stream resource in /var/www/***/***/stats/stat.php on line 77

                                                  Warning: fclose(): supplied argument is not a valid stream resource in /var/www/***/***/stats/stat.php on line 78

                                                  Warning: Cannot modify header information — headers already sent by (output started at /var/www/***/***/stats/stat.php:36) in /var/www/***/***/stats/ga.php on line 5

                                                  Notice: Undefined offset: 2 in /var/www/***/***/stats/stat.php on line 54

                                                  Notice: Undefined offset: 2 in /var/www/***/***/stats/stat.php on line 54

                                                  Warning: fopen(browsers.csv) [function.fopen]: failed to open stream: Permission denied in /var/www/***/***/stats/stat.php on line 23

                                                  Warning: fputs(): supplied argument is not a valid stream resource in /var/www/***/***/stats/stat.php on line 28

                                                  Warning: fclose(): supplied argument is not a valid stream resource in /var/www/***/***/stats/stat.php on line 29

                                                  Warning: Cannot modify header information — headers already sent by (output started at /var/www/***/***/stats/stat.php:36) in /var/www/***/***/stats/ga.php on line 5

                                                  Notice: Undefined offset: 2 in /var/www/***/***/stats/stat.php on line 54

                                                  Notice: Undefined offset: 2 in /var/www/***/***/stats/stat.php on line 54

                                                  Warning: fopen(os.csv) [function.fopen]: failed to open stream: Permission denied in /var/www/***/***/stats/stat.php on line 23

                                                  Warning: fputs(): supplied argument is not a valid stream resource in /var/www/***/***/stats/stat.php on line 28

                                                  Warning: fclose(): supplied argument is not a valid stream resource in /var/www/***/***/stats/stat.php on line 29
                                                    0
                                                    ого, кстати, а у вас в аналитиксе какой язык выбран? русский? судя по всему не парсится нормально полученный от аналитикса отчет
                                                      0
                                                      стоит русский
                                                        0
                                                        Пошу прощение. Все-таки был английский — ошибка исправлена.
                                                        Думаю, что все это безобразие ошибок выскакивало именно из-за не русского по-умолчанию.
                                                          0
                                                          ОК, как я уже говорил, поддержку английского также добавлю сегодня-завтра. Ну в конечном итоге получилось?
                                                            0
                                                            да, получилось :)
                                                            спасибо вам!
                                                            хочу использовать на своем ресурсе как дополнительную информацию для рекламодателей.
                                                          0
                                                          какую версию скрипта юзаете? попробуем диагностировать проблему.
                                                          кстати, прав для записи файлов в соответствующей директории у вас также нет, попробуйте дать 777 права директории в том числе (на там до этого дело все еще не доходит)
                                                            0
                                                            проставил 777
                                                            повторюсь, проблема была решена указанием русского по-умолчанию.
                                                • НЛО прилетело и опубликовало эту надпись здесь
                                                    +1
                                                    Кстати — тут это не сказано но…
                                                    Чтобы скрипт работал надо НЕЗАБЫТЬ поставить в настройках аналитикса что язык Ваш — русский.

                                                    Специально завел новый гугл акк для выставления на сайты — а он и не работает…
                                                    Оказалось что по дефолту аналитикс по нерусски болтает
                                                      0
                                                      хммм, интересно, посмотрю
                                                        +1
                                                        понял почему это происходит, до завтра сделаю, чтобы и для англ и для русского языков работало. Спасибо
                                                      0
                                                      на php4.4.4 пришлось добавить в начало stats.php следующее:

                                                      function stripos($haystack, $needle){
                                                      return strpos($haystack, stristr( $haystack, $needle ));
                                                      }

                                                      а так stripos() он не знает и выдает fatal error
                                                        +1
                                                        Для тех, кто не хочет использовать чужие решения, но кому все же лень разбираться в гугловой аутентификации.

                                                        $request = new Curl();
                                                        $loginAction = "https://www.google.com/accounts/ServiceLoginBoxAuth";
                                                        $request->setMethod(HTTP_REQUEST_METHOD_POST);
                                                        $request->setURL($loginAction);
                                                        $request->addPostData('continue', 'http://www.google.com/analytics/home/?et=reset&hl=en-US');
                                                        $request->addPostData('service', 'analytics');
                                                        $request->addPostData('nui', '1');
                                                        $request->addPostData('hl', 'en-US');
                                                        $request->addPostData('GA3T', 'ouVrvynQwUs');
                                                        $request->addPostData('Email', $email);
                                                        $request->addPostData('Passwd', $pass);
                                                        $request->sendRequest();
                                                        $headers = $request->getResponseHeader();
                                                        $cookies = $request->getResponseCookies();
                                                        $response = $request->getResponseBody();
                                                        foreach($cookies as $c)
                                                        $request->addCookie($c['name'], $c['value']);
                                                        // Views
                                                        $request->setMethod(HTTP_REQUEST_METHOD_GET);
                                                        $request->setURL('https://www.google.com/analytics/reporting/export?fmt=1&id='.$id.'&pdr=20080710-'.date('Ymd',time()-60*60*49).'&cmp=average&&rpt=PageviewsReport');
                                                        $request->sendRequest();
                                                        $cache['views'] = $request->getResponseBody();
                                                        //Visitors
                                                        $request->setMethod(HTTP_REQUEST_METHOD_GET);
                                                        $request->setURL('https://www.google.com/analytics/reporting/export?fmt=1&id='.$id.'&pdr=20080710-'.date('Ymd',time()-60*60*49).'&cmp=average&&rpt=VisitorsOverviewReport');
                                                        $request->sendRequest();
                                                        $cache['visitors'] = $request->getResponseBody();
                                                          0
                                                          Ура… Дождался 3-й апдейт, спасибо!
                                                            0
                                                            Подскажите, как вставить график, который покажет города определенной страны (как на хабре)? Если кто-то остался в теме
                                                              0
                                                              Присоединяюсь к вопросу. Планируется ли, в дальнейшем, такая возможность?
                                                              0
                                                              У всех перестал работать? Если да, выложу обновление
                                                                0
                                                                блин, а я подумал, что только у меня не работает, причем только графики, груглые диаграммы подтягивает нормально
                                                                +1
                                                                Кстати, чтобы убрать копирайты amcharts.com на флешке, вставьте в папку path( в жс написаны папки) файл amcharts_key.txt и содержимое файла AMCHART-LNKS-4242-4403-4345-1258

                                                                и все :)
                                                                  0
                                                                  у меня в самой флешке убрались на когда гружу на странице то они высвечиваються все равно, что не так?
                                                                    0
                                                                    уже решил это ) спасиб
                                                                      0
                                                                      Всё немного интереснее) Файлы, которые можно скачать на amcharts.com в разделе загрузок просто не имеют функции проверки ключа в коде, поэтому хоть обкидайте их ключами — копирайт останется (единственная проверка в них — наличие вхождения amcharts.com в url страницы). Так что для того чтобы использовать amcharts без копирайтов и при этом не мучится с декомпиляцией и повторным компилированием флешки, нам нужно найти сайт с полной версией amcharts, тобеж с той, которая честно проверяет ключик. Первое что пришло мне на ум — яндекс метрика. Скачал и раскомпилировал флешку чартов оттуда и тут же наткнулся на простейший алгоритм проверки:

                                                                      function checkKey(serial)
                                                                      {
                                                                      serial = com.amcharts.Utils.stripSymbols(serial, " ");
                                                                      serial = com.amcharts.Utils.stripSymbols(serial, "\n");
                                                                      serial = com.amcharts.Utils.stripSymbols(serial, "\r");
                                                                      serial = com.amcharts.Utils.stripSymbols(serial, "\r\n");
                                                                      arr = serial.split("-");
                                                                      if (_url.split("/")[2].substr(-12) == "amcharts.com")
                                                                      {
                                                                      }
                                                                      else if (Number(arr[2]) + Number(arr[3]) != 8645 || Number(arr[2].substr(1, 1)) - Number(arr[3].substr(2, 1)) != 2)
                                                                      {
                                                                      attachMovie("copyright_mc", "copyright_mc", 1001);
                                                                      } // end else if
                                                                      }


                                                                      Как видите тут выбор из двух условий. Либо сумма первых двух чисел в серийнике дает 8645, либо при вычитании из первой цифры первого числа второй цифры второго числа должно получится 2.

                                                                      Соответственно серийники ниже подойдут к флешкам яндекс метрики:
                                                                        0
                                                                        Виноват, нажал ctrl+enter случайно(

                                                                        Серийники:

                                                                        0-0-3-11
                                                                        0-0-8653-1
                                                                      +1
                                                                      Если кому нужно, могу дать нуленые
                                                                        0
                                                                        Дай. :)
                                                                          0
                                                                          брал тут rapidshare.com/files/100249186/CHARTS.rar
                                                                          Не мое: «Что за нуль и какого плана была защита понятия не имею. нашлось в кэше гугла тут portaliz.com»
                                                                          0
                                                                          нуленые старые
                                                                          0
                                                                          Необходимо обновление. Данные показывает, но пропали числа на графиках: динамика роста, показатели посещаемости.

                                                                            0
                                                                            завтра гляну что там изменилось
                                                                            0
                                                                            И еще одна странность — значения в диаграмме «Источники траффика» стали на английском, хотя в настройках аналитикса все на русском.
                                                                              0
                                                                              Сегодня гугла начала отдавать csv на английском и только на английском.
                                                                              :(
                                                                              И никак не переубеждается
                                                                                0
                                                                                у меня на некоторых проектах ваще не отдается инфа, на некоторых англ, на некоторых русская… короче. подождем…
                                                                                0
                                                                                На хабре статистику не обновили.
                                                                                  0
                                                                                  Вышла версия 2.0b
                                                                                  Все подробности в топике под UPDATE 4
                                                                                    +1
                                                                                    Для тех, кто хочет русские даты и для тех, кто дружит с setlocale() и strftime()
                                                                                    в parse() вставить после блока //убираем символ разделителя тысячи
                                                                                    // форматируем дату
                                                                                    if ( $period == "month") {
                                                                                    $range = explode( "-", $line[0] );
                                                                                    $range[0] = strftime( "%d %B %Y", strtotime( $range[0] ) );
                                                                                    $range[1] = strftime( "%d %B %Y", strtotime( $range[1] ) );
                                                                                    $line[0] = sprintf( "%s - %s", $range[0], $range[1] );
                                                                                    } else {
                                                                                    $line[0] = strftime( "%d %B %Y", strtotime( $line[0] ) );
                                                                                    }
                                                                                    // для тех, у кого локаль в cp1251...
                                                                                    //$line[0] = iconv( 'CP1251', 'UTF-8', $line[0] );
                                                                                      0
                                                                                      Кстати, с русским я все-таки разобрался, скоро будет обновление

                                                                                      А вот за strftime и strtotime спасибо, как-то я о них не подумал

                                                                                      Тем не менее, мне все равно не понятно, чем руководствуется гугл при выборе формата даты…
                                                                                      в некоторых случаях я вижу что-то вроде 01.01.2008 — 31.01.2008, в других — Jan 01, 2008 — Jan 31, 2008
                                                                                      +1
                                                                                      Итак, версия 2.0.1 с поддержкой русского доступна для скачивания
                                                                                        0
                                                                                        блин, хоть убейте у меня ничего не работает :(
                                                                                        файлы *.csv не создаются, если в папке лежат старые файлы, то чужие данные отображаются. :/
                                                                                          +1
                                                                                          ошибки отдаются какие-либо?
                                                                                            0
                                                                                            ничего
                                                                                              +1
                                                                                              Для error_reporting в самом начале stat.php какое значение выставлено?
                                                                                              Попробуйте в конфиге включить debug=true и посмотреть создается ли log.txt
                                                                                              В конфиге путь к директории правильно прописан?
                                                                                              При выполнении не создается ли в директории файлик error_log?
                                                                                                0
                                                                                                error_reporting(15);
                                                                                                log.txt не создается
                                                                                                Путь вроде бы прописал верно.
                                                                                                Файл error_log не создается

                                                                                                Пробовал и в денвере, и у хостера, результат — одинаковый.
                                                                                                Если в папке лежат чужие данные, *.csv, то они прекрасно отображаются. Если же эти файлы удалить, то ничего не работает. :/
                                                                                                  +1
                                                                                                  эммм, такой тупой вопрос, а Вы вообще stat.php запускаете? Или что Вы делаете для того, чтобы csv-файлы появились?
                                                                                                    0
                                                                                                    запускаю index.php
                                                                                                      +1
                                                                                                      ну понятно…
                                                                                                      для того, чтобы сгенерить csv-файлы, необходимо запустить stat.php
                                                                                                      А index.php — это просто страничка с самими графиками
                                                                                                        0
                                                                                                        сенькс.
                                                                                                        Еще вопрос, а нельзя посмотреть статистику по посещению отдельной конкретной страницы на сайте, в аналитиксе это сделать можно. Можно ли каким-либо оборазом изменить настройки, чтоб смотртеь статистику посещения этой страницы, не создавая отдельного профиля на аналитексе.
                                                                                                          +1
                                                                                                          ну если аналитикс может вам выдать подобный отчет, то теоритически его можно получить и пропарсить. Правда, вряд ли скрипт в таком виде и без соответствующей модификации, сможет это сделать…

                                                                                                          Если Вы знакомы пхп — для вас это не должно составить труда. Это скрипт — лишь пример того, каким образом можно получить данные из ГА и нарисовать графики.
                                                                                        0
                                                                                        не знаю, где в моем случае собака зарыта…
                                                                                        буду благодарен за любые советы, 3-й день пытаюсь заставить работать…

                                                                                        Установил версию statga 2.0.1
                                                                                        Хостин PHP 5.2.5
                                                                                        Конфиг настроил как требуется (логин, пароль, временная зона, $datestart, $path)
                                                                                        на папку stat и все файлы в ней установил права 777
                                                                                        $debug=true;
                                                                                        в stat.php — error_reporting(15);
                                                                                        при вызове site.ru/stat/stat.php долго думает, а затем отображает страницу с незагруженными диаграммами «Error loading file: vitors.csv?1225898029&1225908777515»
                                                                                        Ошибок php никаких не выводит. CSV как следствие не генерятся
                                                                                        Судя по тому, что файл log.txt создается и заполняется «звездочками» сделал вывод, что полный путь к директории со скриптом в конфиге указал все-таки верно
                                                                                        Сам файл log.txt содержит:

                                                                                        ********************

                                                                                        ********************

                                                                                        и т.д…

                                                                                          0
                                                                                          еще разок, что происходит после запуска stat.php? после того как заканчивает долго думать? Дело в том, что сами диаграммки выводятся через index.php, как вы можете получить это открыв stat.php — не представляю…

                                                                                          PS. сегодня, кстати, гугл в очередной раз сменил формат отчетов… ну ивообще изменился GA, поэтому смею предположить, что возможны проблемы с работой данного скрипта
                                                                                            0
                                                                                            нет, я, наверное, все-таки ошибся — просто долго думает и… ничего…
                                                                                            log.txt исправно пополняется звездочками…
                                                                                              0
                                                                                              Ну если после выполнения чистая страница — значит скрипт отработал без ошибок. Все, что я могу предположить — это неудачная аутентификация, проверьте еще раз тщательно правильно ли указаны данные для доступа к GA (в качестве логина e-mail прописан?)
                                                                                                0
                                                                                                создал второго пользователя, дал доступ на просмотр отчетов, указал его данные в конфиге, — та же самая беда…
                                                                                                у хостера есть такая сноска

                                                                                                «У нас используется технология безопасности, в соответствии с которой по умолчанию мы закрываем все исходящие соединения с сервера. Это позволяет в сотни раз повысить безопасность ресурса, т.к. хакер даже при обнаружении дыры в вашем скрипте не всегда имеет возможность воспользоваться ею в своих целях.
                                                                                                Если вам необходим доступ к какому-то серверу в интернете со своего ресурса — свяжитесь с нашей поддержкой — мы откроем вам доступ. ...»

                                                                                                думаю вот, может для корректной работы скрипта нужно разрешить ему ходить на
                                                                                                amcharts.com
                                                                                                и
                                                                                                www.google.com/analytics ??

                                                                                                На последний вроде открыли, но воз и ныне там…
                                                                                          0
                                                                                          ну с этого и надо было начинать…
                                                                                          amcharts.com — не нужен доступ… нужен на www.google.com как минимум, причем через стандартные порты https. Уточните, работает ли cURL в PHP без каких-либо ограничений?
                                                                                            0
                                                                                            хостеры ответили
                                                                                            «они [создатели скрипта] могут дать все ip-адреса которые соответствуют google.com?
                                                                                            либо мы можем жестко прописать на какой-то ip адреса это имя?»

                                                                                            ping google.com выдает 209.85.171.99

                                                                                            как быть...?
                                                                                              0
                                                                                              а у меня ping google.com выдает 72.14.207.99, а gmodules.com — 72.14.247.99 и т.д.
                                                                                              Короче, я к чему — я Вам, конечно же, не смогу предоставить ипы, которые надо разблочить. По идее должен быть разблочен только google.com, но судя по тому, что ваши и мои ипы на google.com разные — точно так же может оказаться что 209.85.171.99 совсем не тот адрес, куда ломится скрипт, когда запускается на сервере. Пусть они со стороны сервера проверяют, куда ссылается google.com и открывают доступ к этому IP. (но это все до того, как гуглу в очередной раз стукнет изменить что-то на своих серверах и ип вдруг станет другой...)
                                                                                                0
                                                                                                хостер меня уже тихо ненавидит.
                                                                                                самое что интересное — скрипт не отдает никаких видимых ошибок. В логе пишутся звездочки… и все…
                                                                                                Кстати, пробовал как ниже в комментарии

                                                                                                «Попробуйте для $url1 и $url1_1 в stat.php подставить значения, которые вы указываете в конфиге, и полученный урл просто открыть в браузере. Отдаст оно вам отчет или опять выкинет ошибку?»

                                                                                                Т.е. я авторизовался, подставил значения, открыл через браузер — предлагает сохранять файлы .tsv с нужными данными. Т.е. все работает, значит в любом случае — хостинг
                                                                                                  0
                                                                                                  судя по всему, да
                                                                                              0
                                                                                              У меня все работает(графики строятся), только выносится ошибка

                                                                                              Notice: Undefined offset: 2 in /home/freela/public_html/statga_orig/stat.php on line 91

                                                                                              Notice: Undefined offset: 2 in /home/freela/public_html/statga_orig/stat.php on line 91

                                                                                              Warning: Cannot modify header information — headers already sent by (output started at /home/freela/public_html/statga_orig/stat.php:91) in /home/freela/public_html/statga_orig/ga.php on line 5

                                                                                              Warning: Cannot modify header information — headers already sent by (output started at /home/freela/public_html/statga_orig/stat.php:91) in /home/freela/public_html/statga_orig/ga.php on line 5
                                                                                                0
                                                                                                значит не все строится как должно… смотрите при обработке какого именно отчета выкидываются эти ошибки, включайте debug=true и смотрите, какие данные мы получаем из ga и что пытаемся парсить.
                                                                                                –1
                                                                                                прошу помощи. поставил ваш скрипт, но вываливается ошибка:
                                                                                                <code>
                                                                                                
                                                                                                Warning: fopen() [function.fopen]: open_basedir restriction in effect. File(/home/localhost/stat/log.txt) is not within the allowed path(s): (/home/lilumi:/usr/lib/php:/usr/local/lib/php:/tmp) in /home/lilumi/public_html/site22/stat/stat.php on line 100
                                                                                                </code>

                                                                                                и далее, много ошибок других, но думаю связанные с этой. Как можно это обойти?
                                                                                                  0
                                                                                                  упс. сорри за горизонтальный скролл. А хабра не позволяет редактировать коментарии
                                                                                                    0
                                                                                                    $path в config.php неправильно установлена. Точнее, Вы просто и не меняли это значение
                                                                                                    0
                                                                                                    точно. извиняюсь — сам недосмотрел.
                                                                                                    а сейчас вылезла вот такая ошибка:
                                                                                                    Notice: Undefined offset: 1 in /home/lilumi/public_html/site22/stat/stat.php on line 37
                                                                                                    Notice: Undefined offset: 2 in /home/lilumi/public_html/site22/stat/stat.php on line 39
                                                                                                    

                                                                                                    в аналитиксе стоит русский язык, еще раз перепроверял.
                                                                                                      0
                                                                                                      дайте ссылку на log.txt, который у вас генерится при включенном $debug=true
                                                                                                      (в последней версии уже не принципиально какой язык выставлен, я писал выше)
                                                                                                        0
                                                                                                          0
                                                                                                          Не пробовали смотреть, что в этом файле?

                                                                                                          первые два отчета:

                                                                                                          Google Analytics
                                                                                                          Обнаружена ошибка
                                                                                                          Повторите попытку.
                                                                                                          Благодарим Вас за терпение.

                                                                                                          вместо отчета гугл отдает страницу с вышеописанной ошибкой. Ждите, попробуйте через часок-другой… все остальные отчеты вроде бы генерятся нормально. CSV-файлы появились в директории? Графки хоть какие-нибудь строятся?
                                                                                                            0
                                                                                                            пробовал, смотрел. но из выражение «обнаружена ошибка» нельзя никак понять как ее устранить, поэтому и обратился к вам, в надежде что ошибка возникает из за какой-то ошибки в скрипте.

                                                                                                            графики строятся, кроме visits и visitors — как раз самые интересные.
                                                                                                            Подождать то подожду, но может посмотрите у себя, может ошибка на стороне скрипта?
                                                                                                      0
                                                                                                      Попробуйте для $url1 и $url1_1 в stat.php подставить значения, которые вы указываете в конфиге, и полученный урл просто открыть в браузере. Отдаст оно вам отчет или опять выкинет ошибку?

                                                                                                      Можно попробовать также другой гугловый акк.

                                                                                                      Вообще, у ГА бывают подобные приколы, я сам с этим сталкивался… Было дело, на одном из ресурсов два дня периодически отдавалась подобная ошибка, я уж думал что-то изменилось в самих отчетах, но времени заняться не было. Потом попустило, пошел наконец-то посмотрел логи, а там аналогичная ситуация.

                                                                                                      Еще можно попробовать ради интереса поставить период поменьше, т.е. для переменной $datestart поставиь значение что-то вроде 20081001 (т.е. начиная с октября этого года). Попробуйте так, посмотрим, что получится.
                                                                                                        0
                                                                                                        очень забавная штучка ;)
                                                                                                        +1
                                                                                                          +1
                                                                                                          Спасибо.
                                                                                                            +1
                                                                                                            Есть такой нюанс, если сходу ошибиться с паролем, то система обратиться к гуглу с неправильным паролем столько раз, сколько отчетов экспортируется. В дефалтном варианте это 8 раз. После этого гугл естественно будет ребовать от вас ввода каптчи, чтобы убедиться, что вы не подбираете пароли. А возвращать в этом случае он будет временный редирект (Temporary redirect). Его вы в логе и увидите, при этот stat.php будет вывалить нутисы про Undefined index'ы. В этом случае, надо подождать минут 20, а потом повторно запросить статистику, и все будет хорошо :)
                                                                                                              0
                                                                                                              Если хотите, чтобы графики по посещениям—просмотрам и посетителям—просмотрам были объеденены, то подробности смотрите в моем блоге.

                                                                                                              Выглядеть это будет так:
                                                                                                                0
                                                                                                                А как это сделать на ASP.NET?
                                                                                                                  0
                                                                                                                  Товарисчи а как данные отображать на инглише?
                                                                                                                    0
                                                                                                                    в настройка GA выставлен английский?
                                                                                                                      0
                                                                                                                      да, у меня вообще все на инглише… в конфигах тож прописал en вместо ru
                                                                                                                        0
                                                                                                                        ну попробуйте скопипастить урлы отчетов именно из вашего английского интерфейса в скрипт, может быть там какие-то параметры передаются… в общем, надо разбираться…
                                                                                                                          0
                                                                                                                          с инглишом разобрался, поменял вручную в xml файлах. теперь вопрос, как генерировать custom sections? я скопировал ссылки экспорта которые мне нужны. Мне их надо прописывать в stat? у вас есть icq или gtalk? было бы легче общаться)
                                                                                                                    0
                                                                                                                    если статистика собирается по разным отчетам за раз — зачем нужно перед каждым отчетом коннектиться?

                                                                                                                    логична ф-ю GA разбить на 2:

                                                                                                                    GA_connect($user, $password){

                                                                                                                    return $cookies;
                                                                                                                    }
                                                                                                                    и вторую
                                                                                                                    GA_getinfo($cookies, $url){
                                                                                                                    … создаем файлы с данными
                                                                                                                    }

                                                                                                                    а потом уже в stat.php
                                                                                                                    один раз коннектимся вначале — получая кукисы
                                                                                                                    $cookies = GA_connect($u, $p);

                                                                                                                    а потом для каждого отчета:

                                                                                                                    $var = GA_getinfo($cookies, $url);

                                                                                                                    сделал — вроде пошустрей стало.
                                                                                                                      +1
                                                                                                                      Использовал сей продукт со дня опубликования. Все было здорово. Но… дня 4 назад он перестал работать.

                                                                                                                      Функция GA() стала отдавать документ содержащий «Moved Temporarily. The document has moved here.»
                                                                                                                      Очевидно поломалась авторизация, т.к. по хрефу из «here» гугл показывает страницу с формой логина в analytics.

                                                                                                                      Посему есть 2 вопроса:
                                                                                                                      1- к общественности: есть у кого либо похожие траблы?
                                                                                                                      2- к автору продукта: если виноват таки гугл, нет ли желания и возможности внести соответствующие изменения?
                                                                                                                        0
                                                                                                                        1- Вы правы, поломалась авторизация
                                                                                                                        2- Желание есть. В течение ближайшей недели займусь. Если у кого-то получится раньше — сообщайте
                                                                                                                          0
                                                                                                                          Та же ситуация сложилась уже 4го октября (не получилось отписать ранее). Посидел, покапал, не получилось.
                                                                                                                          Будем копать глубже и рассчитывать на помощь автора.
                                                                                                                            0
                                                                                                                            завтра постараюсь выложить новую версию. обломался разбираться чего там поломалось в гугловой авторизации, решил пойти более элегантным путем. подробности позднее
                                                                                                                              0
                                                                                                                              Готова новая версия!

                                                                                                                              habrahabr.ru/blogs/webdev/72335/
                                                                                                                                +2
                                                                                                                                Старая версия тоже работает, если:
                                                                                                                                1. заменить $sPostData

                                                                                                                                $sPostData = «et=reset&».
                                                                                                                                «service=analytics&».
                                                                                                                                «nui=1&».
                                                                                                                                «hl=ru-RU&».
                                                                                                                                «GALX=X1s9INbpiU0&».
                                                                                                                                «Email=».$sUsername."&".
                                                                                                                                «Passwd=».$sPassword."&".
                                                                                                                                «PersistentCookie=yes&».
                                                                                                                                «rmShown=1»;

                                                                                                                                2. в последующем блоке curl_setopt добавить
                                                                                                                                curl_setopt ($rCurl, CURLOPT_COOKIE, «GALX=X1s9INbpiU0»);

                                                                                                                                Решение для тех, кто не хочет ставить новую версию =)
                                                                                                                                  0
                                                                                                                                  Сейчас обновлю 2.x ветку :) Спасибо
                                                                                                                                  0
                                                                                                                                  Спасибо.

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

                                                                                                                        Самое читаемое