INT 21h

Hi, I am Vladimir Smagin, SysAdmin and Kaptain. Telegram Email / GIT / RSS / GPG

Получение статистики из Яндекс.Метрики

№ 3845 В разделах: Programming Sysadmin от November 9th, 2011,
В подшивках: ,

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

Теперь нужно получить ваш токен:

$yandex_get_token_url="https://oauth.yandex.ru/token";

$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $yandex_get_token_url);
curl_setopt ($ch, CURLOPT_POST, 1);
curl_setopt ($ch, CURLOPT_POSTFIELDS,
     'grant_type=password&username=MYUSERNAME&password=MYPASSWORD&
     client_id=CLIENT_ID&client_secret=CLIENT_SECRET');
curl_setopt ($ch, CURLOPT_RETURNTRANSFER, 1);
$token = curl_exec ($ch);
curl_close ($ch);

Замените имя пользователя, пароль, id клиента и пароль клиента на ваши собственные. Ответ от сервера будет получен в формате JSON. Его очень легко раскодировать в богоугодный вид:

$token_o = json_decode($token);
$token = $token_o->access_token;

Теперь этот токен можно использовать для получения вашей статистики!

$today=date("Ymd");
$metrika_url = "http://api-metrika.yandex.ru/stat/traffic/summary.json?id=COUNTERID&
    pretty=1&date1=$today&date2=$today&oauth_token=$token";

Замените COUNTERID на id вашего счетчика. Далее все просто получаем JSON по сгенерированному URL и декодируем его в обычный объект.

$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $metrika_url);
curl_setopt ($ch, CURLOPT_RETURNTRANSFER, 1);
$metrika = curl_exec ($ch);
curl_close ($ch);

$metrika_o = json_decode($metrika);
echo "Статистика посещений сайта blindage.org:\n\n";
echo "\tПосетителей: ".$metrika_o->totals->visits."\n";
echo "\tИз них новых: ".$metrika_o->totals->new_visitors."\n";
echo "\tПросмотров: ".$metrika_o->totals->page_views."\n";

Ответ от скрипта легко заворачивается в email сообщение и отправляется вам на почту:

php5 selectel.php | mail -s "Отчет о работе сервера за `date +%d-%m-%Y`" "21h@blindage.org"

Получилось вот такое крутое письмо. При желании туда можно добавить не только статистику по посещениям, но и информацию из раздела для вебмастеров.

Всего 1 комментарий »

One response to “Получение статистики из Яндекс.Метрики”

  1. Rei-chan says:

    Правда прикольная штука, надо будет такое сотворить.

Leave a Reply

Your email address will not be published. Required fields are marked *

*

Облачная платформа
Яндекс.Метрика

Fortune cookie: Today's spam: Gain length and massive thickness - women really do think about about pens size