<?
$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;
}
}