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