Если Вы зарабатываете в РСЯ (Рекламная сеть Яндекса), то наверняка озадачивались вопросом удобного способа получения информации о заработанных средствах. Разумеется, прочитать баланс на счету можно в личном кабинете (авторизовавшись). Но что делать, если нет интернета или нет возможности авторизоваться в кабинете для просмотра баланса (чужой компьютер и т.д.)? Сегодня я расскажу Вам, как получить доход от РСЯ с помощью PHP.
Получаем доход от РСЯ по API
Яндекс упрощает нам получение информации о текущем доходе в РСЯ, поскольку у Рекламной сети Яндекса имеется API — можно получить подробную статистику о работе с Яндексом для последующей обработки данных, анализа доходов и т.д.
Мы воспользуемся сегодня такой возможностью что-бы сделать простой информер на PHP, информирующий о доходах вебмастера за текущий день, вчерашний день и текущий месяц в РСЯ.
Этот информер можно использовать по-разному, например, выводить информацию о текущих доходах в РСЯ в админке с помощью виджета, присылать ежедневно такую информацию по СМС на свой номер телефона и т.д. Вы спросите зачем? Ну а какому вебмастеру не интересно, сколько денег он заработал сегодня? Правильно, никакому 🙂
Регистрация приложения
Для взаимодействия с API нам нужно получить токен (специальный ключ). Процедура следующая:
Авторизуемся в Яндексе, идем по ссылке «Создание приложение» — https://oauth.yandex.ru/client/new
Заполняем поля. Название: Доход в РСЯ (произвольно), Описание: Получение дохода в РСЯ (произвольно), в разделе Права выбираем: Партнерский интерфейс Яндекса, ставим галочку — «Использование API партнерского интерфейса Яндекса«. У вас должно получиться примерно следующая картина:
Опускаемся вниз на этой странице, там где Callback URL нажимаем «Подставить URL для разработки«. Жмем Сохранить.
На следующей странице нам предоставят ID и пароль приложения (похожее на):
ID: 85354e298448e7cra714edfc323758d5
Пароль: 09d4d44e76a321264586304b98f4335f1
Запоминаем их, в частности ID, и переходим к следующему этапу.
Получение токена
Осталось совсем чуть-чуть, перейдите по ссылке в браузере вида:
https://oauth.yandex.ru/authorize?response_type=token&client_id=85354e298448e7cra714edfc323758d5
где 85354e298448e7cra714edfc323758d5 — это ID приложения полученного на предыдущем шаге. Получим извещение, что приложение запрашивает доступ к вашим данным, жмем Разрешить.
На экране увидим ключ, типа:
AQGCCAP8zAAAdARJ-i-lOgVEV11CZe5E07A3vDC
Это и есть токен. Можете закрыть окно, все настройки на стороне Яндекса закончены.
Скрипт на PHP для получения дохода в РСЯ
API РСЯ работает просто: вы посылаете специальный запрос на специальный адрес, в ответ получаете необходимые вам данные (что запросили, то вам и выслали). Ответы могут приходить в JSON и XML. Какие запросы можно посылать и как их оформлять — я не буду детально на этом останавливаться, все описано в документации к API.
Наша задача — получить информацию о доходах вебмастера в РСЯ за определенный период.
Чтобы получить такую информацию посредством API от РСЯ, нам необходимо сформировать и отправить специальный запрос. Для облегчения жизни сделал простую функцию, которая получает данные и возвращает массив.
<?php function rcya_query($token, $arFields = array()){ $string = ''; foreach($arFields as $k=>$v){ $string .= $v.'&'; } $request_url = 'https://partner2.yandex.ru/api/statistics2/get.json?lang=ru&pretty=1&'.$string; $headers = array('Authorization: OAuth '.$token); $ch = curl_init(); curl_setopt ($ch, CURLOPT_URL,$request_url); curl_setopt ($ch, CURLOPT_USERAGENT, "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1.6) Gecko/20070725 Firefox/2.0.0.6"); curl_setopt ($ch, CURLOPT_TIMEOUT, 60); curl_setopt ($ch, CURLOPT_FOLLOWLOCATION, 1); curl_setopt ($ch, CURLOPT_HEADER, 0); curl_setopt ($ch, CURLOPT_RETURNTRANSFER, 1); curl_setopt ($ch, CURLOPT_HTTPHEADER, $headers); $request = curl_exec ($ch); curl_close($ch); $arRequest = json_decode($request, true); return $arRequest; }
Небольшой пример использования:
<?php $result = rcya_query( 'AQGCCAP8zAAAdARJ-i-lOgVEV11CZe5E07A3vDC', // тот самый токен, что мы получили выше array( //массив с параметрами запроса 'dimension_field=date|day', 'period=thismonth', //период - текущий месяц 'entity_field=page_level', 'field=partner_wo_nds', 'filter=["page_id","=","'.rg_ya_getParam('page_id').'"]', 'field=fillrate' ) ); foreach($result['data']['points'] as $k => $item){ if($item['dimensions']['date'][0] == date("Y-m-").(date("d")-1)){ $day_price['yesterday'] = $item['measures'][0]['partner_wo_nds']; } if($item['dimensions']['date'][0] == date("Y-m-d")){ $day_price['today'] = $item['measures'][0]['partner_wo_nds']; } } echo 'Доход за сегодня: '.$day_price['today'].' руб.<br>'; echo 'Доход за вчера: '.$day_price['yesterday'].' руб.<br>'; echo 'Доход за текущий месяц: '.$result['data']['totals'][2][0]['partner_wo_nds'].' руб.<br>';
Для удобства можно обернуть все в модуль/плагин для сайта и смотреть из админки в удобном виде: