Как получить данные о доходе в РСЯ через API

Как получить данные о доходе в РСЯ через API

Если Вы зарабатываете в РСЯ (Рекламная сеть Яндекса), то наверняка озадачивались вопросом удобного способа получения информации о заработанных средствах. Разумеется, прочитать баланс на счету можно в личном кабинете (авторизовавшись). Но что делать, если нет интернета или нет возможности авторизоваться в кабинете для просмотра баланса (чужой компьютер и т.д.)? Сегодня я расскажу Вам, как получить доход от РСЯ с помощью 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>';

Для удобства можно обернуть все в модуль/плагин для сайта и смотреть из админки в удобном виде: