- Модуль: seo
- Путь к файлу: ~/bitrix/modules/seo/lib/analytics/services/accountvkontakte.php
- Класс: BitrixSeoAnalyticsServicesAccountVkontakte
- Вызов: AccountVkontakte::updateAnalyticParams
public function updateAnalyticParams($accountId, array $params, array $publicPageIds = [])
{
$result = new ResponseVkontakte();
if(empty($params))
{
return $result;
}
$result = $this->getAdsLayout($accountId);
if(!$result->isSuccess() || empty($result->getData()))
{
return $result;
}
$data = [];
$ads = $result->getData();
$groupIDs = $postIDs = [];
foreach($ads as $ad)
{
if(isset($ad['group_id']) && in_array($ad['group_id'], $publicPageIds))
{
$groupIDs[] = $ad['group_id'];
}
if(isset($ad['post_id']))
{
$postIDs[] = $ad['post_id'];
}
if(!empty($params['url_tags']) && isset($ad['link_domain']) && !empty($ad['link_domain']) && !empty($ad['link_url']))
{
$url = new Uri($ad['link_url']);
$url->addParams($params['url_tags']);
$data[] = [
'ad_id' => $ad['id'],
'link_url' => $url->getUri(),
];
}
if(count($data) == self::MAX_ADS_EDIT)
{
$editAdsResult = $this->editAds($accountId, $data);
if(!$editAdsResult->isSuccess())
{
$result->addErrors($editAdsResult->getErrors());
}
$data = [];
}
}
if(!empty($data))
{
$editAdsResult = $this->editAds($accountId, $data);
if(!$editAdsResult->isSuccess())
{
$result->addErrors($editAdsResult->getErrors());
}
}
//edit groups
if(!empty($groupIDs))
{
$result = $this->editGroupAnalyticParams($groupIDs, $params);
if(!$result->isSuccess())
{
return $result;
}
}
//edit posts
if(!empty($postIDs))
{
$result = $this->editPostAnalyticParams($postIDs, $params);
}
return $result;
}