• Модуль: 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;
}