- Модуль: seo
- Путь к файлу: ~/bitrix/modules/seo/lib/adv/yandexstat.php
- Класс: BitrixSeoAdvYandexStatTable
- Вызов: YandexStatTable::processStatsResult
static function processStatsResult($campaignId, array $result, YandexDirect $directEngine)
{
if($result['Stat'])
{
$bannerIds = array();
foreach($result['Stat'] as $statEntry)
{
$bannerIds[] = $statEntry['BannerID'];
}
if(count($bannerIds) > 0)
{
$dbRes = YandexBannerTable::getList(array(
'filter' => array(
'=XML_ID' => array_values(array_unique($bannerIds)),
'=ENGINE_ID' => $directEngine->getId()
),
'select' => array(
'ID', 'XML_ID'
)
));
$bannerList = array();
while($bannerData = $dbRes->fetch())
{
$bannerList[$bannerData['XML_ID']] = $bannerData['ID'];
}
if(count($bannerList) > 0)
{
foreach($result['Stat'] as $statEntry)
{
if(array_key_exists($statEntry['BannerID'], $bannerList))
{
$statFields = array(
'CAMPAIGN_ID' => $campaignId,
'BANNER_ID' => $bannerList[$statEntry['BannerID']],
'DATE_DAY' => new Date($statEntry['StatDate'], 'Y-m-d'),
'CURRENCY' => $result['Currency'],
'SUM' => $statEntry['Sum'],
'SUM_SEARCH' => $statEntry['SumSearch'],
'SUM_CONTEXT' => $statEntry['SumContext'],
'CLICKS' => $statEntry['Clicks'],
'CLICKS_SEARCH' => $statEntry['ClicksSearch'],
'CLICKS_CONTEXT' => $statEntry['ClicksContext'],
'SHOWS' => $statEntry['Shows'],
'SHOWS_SEARCH' => $statEntry['ShowsSearch'],
'SHOWS_CONTEXT' => $statEntry['ShowsContext'],
);
$statCheckRes = static::getList(array(
'filter' => array(
'BANNER_ID' => $statFields['BANNER_ID'],
'DATE_DAY' => $statFields['DATE_DAY'],
),
'select' => array('ID')
));
$statCheck = $statCheckRes->fetch();
if(!$statCheck)
{
static::add($statFields);
}
}
}
}
}
}
}