• Модуль: seo
  • Путь к файлу: ~/bitrix/modules/seo/lib/retargeting/services/audiencevkontakte.php
  • Класс: BitrixSeoRetargetingServicesAudienceVkontakte
  • Вызов: AudienceVkontakte::processLookalikeAudienceAgent
static function processLookalikeAudienceAgent($clientId, $accountId, $audienceRequestId, $audienceSize)
{
	$service = AdsAudience::getService();
	$service->setClientId($clientId);

	$audience = new static($accountId);
	$audience->setService($service);

	$result = $audience->getRequest()->send(array(
		'methodName' => 'retargeting.audience.lookalike.request.get',
		'parameters' => array(
			'accountId' => $accountId,
			'requestId' => $audienceRequestId,
		)
	));
	if (!$result->isSuccess())
	{
		return '';
	}

	$data = $result->getData();
	$audienceRequest = array_filter($data['items'],
		function ($item) use ($audienceRequestId)
		{
			return $audienceRequestId == $item['id'];
		}
	);

	if (empty($audienceRequest))
	{
		return '';
	}

	$audienceRequest = array_shift($audienceRequest);

	if ($audienceRequest['status'] == 'search_in_progress') // not processed yet
	{
		return $audience->getLookalikeAudienceAgentName($audienceRequestId, $audienceSize);
	}
	if ($audienceRequest['status'] == 'search_done') // processing complete
	{
		$audience->getRequest()->send(array(
			'methodName' => 'retargeting.audience.lookalike.add',
			'parameters' => array(
				'accountId' => $accountId,
				'requestId' => $audienceRequestId,
				'level' => $audienceSize
			)
		));
	}
	return '';
}