'ACCOUNT_ID', 'NAME' => 'NAME', ); public function getList() { $result = $this->getRequest()->send([ 'methodName' => 'analytics.account.list.full', ]); if ($result->isSuccess()) { $list = []; while ($item = $result->fetch()) { if ( ( isset($item['CLIENT_NAME']) || isset($item['NAME']) ) && isset($item['ID']) ) { $list[] = [ 'NAME' => !empty(trim($item['CLIENT_NAME'])) ? $item['CLIENT_NAME'] : $item['NAME'], 'ACCOUNT_ID' => $item['ID'], ]; } } $result->setData($list); } return $result; } public function getProfile() { $response = $this->getRequest()->send([ 'methodName' => 'analytics.profile', 'parameters' => [] ]); if ($response->isSuccess() && $data = $response->fetch()) { $result = [ 'ID' => $data['ID'], 'NAME' => $data['FIRST_NAME'] . ' ' . $data['LAST_NAME'], 'LINK' => 'https://ads.vk.com/hq/budget/transactions/', ]; $result['PICTURE'] = (Context::getCurrent()->getRequest()->isHttps() ? 'https' : 'http') . '://' . Context::getCurrent()->getServer()->getHttpHost() . '/bitrix/images/seo/integration/vklogo.svg'; return $result; } return null; } public function getExpenses($accountId, Date $dateFrom = null, Date $dateTo = null) { $result = new ResponseVkads(); $params = [ 'id' => $accountId, ]; if($dateFrom && $dateTo) { $params['period'] = 'day'; $params['date_from'] = $dateFrom->format('Y-m-d'); $params['date_to'] = $dateTo->format('Y-m-d'); } else { $params['period'] = 'summary'; $params['date_from'] = '0'; $params['date_to'] = '0'; } $response = $this->getRequest()->send([ 'methodName' => 'analytics.expenses.get', 'parameters' => $params, ]); if($response->isSuccess()) { $data = $response->getData(); $expenses = new Expenses(); $expenses->add([ 'impressions' => $data['shows'], 'clicks' => $data['clicks'], 'actions' => $data['clicks'], 'spend' => $data['spent'], 'currency' => static::CURRENCY_CODE, ]); $result->setData(['expenses' => $expenses]); } else { $result->addErrors($response->getErrors()); } return $result; } /** * @param $accountId * @param array $params * @param array $publicPageIds * @return Response * @throws \Bitrix\Main\SystemException */ public function updateAnalyticParams($accountId, array $params, array $publicPageIds = []) { return new ResponseVkads(); } }