- Модуль: seo
- Путь к файлу: ~/bitrix/modules/seo/lib/analytics/services/accountvkontakte.php
- Класс: BitrixSeoAnalyticsServicesAccountVkontakte
- Вызов: AccountVkontakte::getExpenses
public function getExpenses($accountId, Date $dateFrom = null, Date $dateTo = null)
{
$result = new ResponseVkontakte();
$fields = [
'account_id' => $accountId,
'ids_type' => 'office',
'ids' => $accountId,
];
if($dateFrom && $dateTo)
{
$fields['period'] = 'day';
$fields['date_from'] = $dateFrom->format('Y-m-d');
$fields['date_to'] = $dateTo->format('Y-m-d');
}
else
{
$fields['period'] = 'overall';
$fields['date_from'] = '0';
$fields['date_to'] = '0';
}
$response = $this->getRequest()->send([
'method' => 'GET',
'endpoint' => 'ads.getStatistics',
'fields' => $fields,
]);
if($response->isSuccess())
{
$data = $response->getData();
if (isset($data[0]))
{
$data = $data[0];
}
$expenses = new Expenses();
foreach($data['stats'] as $stat)
{
$expenses->add([
'impressions' => $stat['impressions'],
'clicks' => $stat['clicks'],
'actions' => $stat['clicks'],
'spend' => $stat['spent'],
'currency' => static::CURRENCY_CODE,
]);
}
$result->setData(['expenses' => $expenses]);
}
else
{
$result->addErrors($response->getErrors());
}
return $result;
}