Пример работы с api яндекс директ

← разместить еще код

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

Расшаренный код:

<?

$data = array(
    'token' => "xxxxxxxxxxxxxxx" /* токен */
);
$data['param'] = array("login");/* логин */

$data['method'] = "GetCampaignsList"; /* метод получения списка компаний */

$ch = curl_init();
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($data));
curl_setopt($ch, CURLOPT_TIMEOUT, 10); 
curl_setopt($ch, CURLOPT_URL, 'https://api-sandbox.direct.yandex.ru/v4/json/');
$result = curl_exec($ch);
$c = json_decode($result,true);  
/* список компаний */
foreach($c['data'] as $cItem){
	$arCompanies[$cItem['CampaignID']] = $cItem;
	$arCompaniesIDs[] = $cItem['CampaignID'];
}

/* интервал */
if(strlen($_GET['start'])==0 || strlen($_GET['end'])==0){
	$StartDate = '01.'.date('m').'.'.date('Y');
	$EndDate = date('d').'.'.date('m').'.'.date('Y');	
} else {
	$StartDate = $_GET['start'];
	$EndDate = $_GET['end'];	
}
$StartDate_api = substr($StartDate,6,4).'-'.substr($StartDate,3,2).'-'.substr($StartDate,0,2);
$EndDate_api = substr($EndDate,6,4).'-'.substr($EndDate,3,2).'-'.substr($EndDate,0,2);
$StartDate_unix = strtotime($StartDate.' 00:00');
$EndDate_unix = strtotime($EndDate.' 00:00');
$days_period = ($EndDate_unix - $StartDate_unix) / 3600 / 24 + 1;	/* количество дней в интервале */


$data['method'] = "GetSummaryStat"; 
// $data['param'] = array('CampaignIDS'=>$arCompaniesIDs,'StartDate'=>'2015-06-30','EndDate'=>'2015-07-02','Currency'=>'RUB');    
$data['param'] = array('CampaignIDS'=>$arCompaniesIDs,'StartDate'=>$StartDate_api,'EndDate'=>$EndDate_api);    
$ch = curl_init();
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($data));
curl_setopt($ch, CURLOPT_TIMEOUT, 10); 
curl_setopt($ch, CURLOPT_URL, 'https://api-sandbox.direct.yandex.ru/v4/json/'); 
$result = curl_exec($ch);
$c = json_decode($result,true);  
/* собираем статистику по стоимостям, кликам и показам */
if(!empty($c['data'])){
	foreach($c['data'] as $cItem){
		$arCompanies[$cItem['CampaignID']]['stat'][] = $cItem;
	}
}