3namespace Bitrix\Seo\Analytics\Services;
5use Bitrix\Main\Context;
8use Bitrix\Main\Type\DateTime;
9use Bitrix\Seo\Analytics\Internals\Expenses;
10use Bitrix\Main\Type\Date;
11use Bitrix\Seo\Analytics\Internals\ExpensesCollection;
12use Bitrix\Seo\Retargeting\Response;
13use Bitrix\Seo\Retargeting\Services\ResponseVkads;
30 'methodName' =>
'analytics.account.list.full',
35 while ($item =
$result->fetch())
39 isset($item[
'CLIENT_NAME'])
40 || isset($item[
'NAME'])
46 'NAME' => !empty(trim($item[
'CLIENT_NAME'])) ? $item[
'CLIENT_NAME'] : $item[
'NAME'],
47 'ACCOUNT_ID' => $item[
'ID'],
60 'methodName' =>
'analytics.profile',
68 'NAME' =>
$data[
'FIRST_NAME'] .
' ' .
$data[
'LAST_NAME'],
69 'LINK' =>
'https://ads.vk.com/hq/budget/transactions/',
72 $result[
'PICTURE'] = (Context::getCurrent()->getRequest()->isHttps() ?
'https' :
'http')
74 . Context::getCurrent()->getServer()->getHttpHost() .
'/bitrix/images/seo/integration/vklogo.svg';
89 if($dateFrom && $dateTo)
92 $params[
'date_from'] = $dateFrom->format(
'Y-m-d');
93 $params[
'date_to'] = $dateTo->format(
'Y-m-d');
102 'methodName' =>
'analytics.expenses.get',
110 'impressions' =>
$data[
'shows'],
111 'clicks' =>
$data[
'clicks'],
112 'actions' =>
$data[
'clicks'],
113 'spend' =>
$data[
'spent'],
114 'currency' => static::CURRENCY_CODE,
116 $result->setData([
'expenses' => $expenses]);
150 if ($dateFrom && $dateTo)
157 $params[
'date_from'] = (
new DateTime())->add(
'-1 year')->format(
'Y-m-d');
162 'methodName' =>
'analytics.banners.expenses.get',
164 'streamTimeout' => static::LOAD_DAILY_EXPENSES_TIMEOUT,
165 'listenHttpErrors' =>
true,
170 $innerErrors = implode(
',',
$response->getErrorMessages());
177 if (!is_array($responseData) || !is_array($responseData[
'banners']))
179 $result->setData([
'expenses' =>
new ExpensesCollection()]);
184 $bannersList = $responseData[
'banners'];
185 $campaigns = $responseData[
'campaigns'];
186 $groups = $responseData[
'groups'];
188 $expensesCollection =
new ExpensesCollection();
189 foreach ($bannersList as $banner)
191 if (!isset($banner[
'rows']))
197 foreach ($banner[
'rows'] as $row)
199 if (isset($row[
'base']))
201 $expensesCollection->addItem(
203 'date' =>
new Date($row[
'date'],
'Y-m-d'),
205 'impressions' => $row[
'base'][
'shows'],
206 'clicks' => $row[
'base'][
'clicks'],
207 'actions' => $row[
'base'][
'clicks'],
208 'spend' => $row[
'base'][
'spent'],
209 'currency' => static::CURRENCY_CODE,
211 'campaignId' => $banner[
'campaign_id'],
212 'campaignName' => $campaigns[$banner[
'campaign_id']][
'name'] ??
'',
213 'groupId' => $banner[
'ad_group_id'],
214 'groupName' =>
$groups[$banner[
'ad_group_id']][
'name'] ??
'',
215 'adId' => $banner[
'banner_id'],
216 'adName' => $banner[
'banner_name'],
218 'utmMedium' => $banner[
'utm_medium'] ??
'',
219 'utmSource' => $banner[
'utm_source'] ??
'',
220 'utmCampaign' => $banner[
'utm_campaign'] ??
'',
221 'utmContent' => $banner[
'utm_content'] ??
'',
228 $result->setData([
'expenses' => $expensesCollection]);
getDailyExpensesReport(?string $accountId, ?Date $dateFrom, ?Date $dateTo)
buildErrorMessage(string $error)
updateAnalyticParams($accountId, array $params, array $publicPageIds=[])
getExpenses($accountId, Date $dateFrom=null, Date $dateTo=null)
</td ></tr ></table ></td ></tr >< tr >< td class="bx-popup-label bx-width30"><?=GetMessage("PAGE_NEW_TAGS")?> array( $site)
while($arParentIBlockProperty=$dbParentIBlockProperty->Fetch()) $errorMessage
if($inWords) echo htmlspecialcharsbx(Number2Word_Rus(roundEx($totalVatSum $params['CURRENCY']