Commit 5b6cc62d by Евгений

Улучшение #20444

Загрузка и синхронизация условий нацеливания на аудиторию
1 parent 8b8d77fc
...@@ -306,6 +306,9 @@ class DictionaryCampaignsSyncByCampaign extends Command ...@@ -306,6 +306,9 @@ class DictionaryCampaignsSyncByCampaign extends Command
$this->info('goal_retargetinglists successful!'); $this->info('goal_retargetinglists successful!');
//грузим условия нацеливания на аудиторию которых по какой то причне нет в целевых. //грузим условия нацеливания на аудиторию которых по какой то причне нет в целевых.
//грузим те, у которых есть ретаргетинг. Без него пока не рассмтариваем
//будут те, где он не указан дорабоатем. Это будет те, где есть interest
//таким бразом нацеливание перенесется только после того, как выгрузится ретаргетинг
DB::insert(" DB::insert("
INSERT INTO goal_audience_targets(dictionary_campaign_external_id, dictionary_campaign_id, INSERT INTO goal_audience_targets(dictionary_campaign_external_id, dictionary_campaign_id,
goal_ad_group_external_id, goal_ad_group_id, goal_retargetinglist_external_id, goal_retargetinglist_id, goal_ad_group_external_id, goal_ad_group_id, goal_retargetinglist_external_id, goal_retargetinglist_id,
...@@ -315,14 +318,14 @@ class DictionaryCampaignsSyncByCampaign extends Command ...@@ -315,14 +318,14 @@ class DictionaryCampaignsSyncByCampaign extends Command
INNER JOIN campaigns c on aut.campaign_id = c.id INNER JOIN campaigns c on aut.campaign_id = c.id
INNER JOIN dictionary_campaigns dc on dc.campaign_id = c.id INNER JOIN dictionary_campaigns dc on dc.campaign_id = c.id
INNER JOIN dictionaries d on dc.dictionary_id = d.id INNER JOIN dictionaries d on dc.dictionary_id = d.id
LEFT JOIN retargetinglists r on aut.retargetinglist_id = r.id INNER JOIN retargetinglists r on aut.retargetinglist_external_id = r.external_id
LEFT JOIN goal_retargetinglists gr on r.id = gr.retargetinglist_id AND d.token_id = gr.token_id INNER JOIN goal_retargetinglists gr on r.id = gr.retargetinglist_id AND d.token_id = gr.token_id
LEFT JOIN ad_groups ag on c.id = ag.campaign_id AND aut.ad_group_id = ag.id LEFT JOIN ad_groups ag on c.id = ag.campaign_id AND aut.ad_group_id = ag.id
LEFT JOIN goal_ad_groups gag on dc.id = gag.dictionary_campaign_id AND ag.id = gag.ad_group_id LEFT JOIN goal_ad_groups gag on dc.id = gag.dictionary_campaign_id AND ag.id = gag.ad_group_id
LEFT JOIN goal_audience_targets gaut on aut.id = gaut.audience_target_id and gaut.dictionary_campaign_id = dc.id LEFT JOIN goal_audience_targets gaut on aut.id = gaut.audience_target_id and gaut.dictionary_campaign_id = dc.id
WHERE gaut.audience_target_id is null WHERE gaut.audience_target_id is null
"); ");
$this->info('goal_bid_modifiers successful!'); $this->info('goal_audience_targets successful!');
//грузим условия ретаргетинга и подбора аудитории которых по какой то причне нет в целевых. //грузим условия ретаргетинга и подбора аудитории которых по какой то причне нет в целевых.
DB::insert(" DB::insert("
......
...@@ -71,6 +71,9 @@ class Kernel extends ConsoleKernel ...@@ -71,6 +71,9 @@ class Kernel extends ConsoleKernel
$schedule->command(CampaignsCheckChange::class)->hourlyAt(5); $schedule->command(CampaignsCheckChange::class)->hourlyAt(5);
$schedule->command(CampaignsLoadUpdated::class)->hourlyAt(10); $schedule->command(CampaignsLoadUpdated::class)->hourlyAt(10);
$schedule->command(CampaignsCheckUpdatedChildren::class)->hourlyAt(10); $schedule->command(CampaignsCheckUpdatedChildren::class)->hourlyAt(10);
//будет выгружено после того, как будут выгруены листы ретаргетинга и обновлено с учетом
//этого таблица целвых аудиториц нацеливания
$schedule->command(AudienceTargetsAdd::class)->hourlyAt(10);
$schedule->command(RetargetinglistsLoad::class)->hourlyAt(5); $schedule->command(RetargetinglistsLoad::class)->hourlyAt(5);
$schedule->command(RetargetinglistsUpdate::class)->hourlyAt(10); $schedule->command(RetargetinglistsUpdate::class)->hourlyAt(10);
...@@ -103,8 +106,6 @@ class Kernel extends ConsoleKernel ...@@ -103,8 +106,6 @@ class Kernel extends ConsoleKernel
$schedule->command(AdGroupsAdd::class)->hourlyAt(35); $schedule->command(AdGroupsAdd::class)->hourlyAt(35);
$schedule->command(AdGroupsUpdate::class)->hourlyAt(35); $schedule->command(AdGroupsUpdate::class)->hourlyAt(35);
$schedule->command(RetargetinglistsAdd::class)->hourlyAt(40); $schedule->command(RetargetinglistsAdd::class)->hourlyAt(40);
$schedule->command(AudienceTargetsAdd::class)->hourlyAt(45);
$schedule->command(BidModifiersDelete::class)->hourlyAt(30); $schedule->command(BidModifiersDelete::class)->hourlyAt(30);
$schedule->command(BidModifiersAdd::class)->hourlyAt(35); $schedule->command(BidModifiersAdd::class)->hourlyAt(35);
......
...@@ -134,14 +134,14 @@ class GetAudienceTargets extends DirectRequest ...@@ -134,14 +134,14 @@ class GetAudienceTargets extends DirectRequest
continue; continue;
} }
if ($retargetinglist_external_id) { // if ($retargetinglist_external_id) {
/* @var $retargetinglist Retargetinglist|null */ // /* @var $retargetinglist Retargetinglist|null */
$retargetinglist = $retargetinglists->get($retargetinglist_external_id); // $retargetinglist = $retargetinglists->get($retargetinglist_external_id);
//
if (!$retargetinglist) { // if (!$retargetinglist) {
continue; // continue;
} // }
} // }
$interest_external_id = (string)$audience_target['InterestId']; $interest_external_id = (string)$audience_target['InterestId'];
...@@ -151,9 +151,9 @@ class GetAudienceTargets extends DirectRequest ...@@ -151,9 +151,9 @@ class GetAudienceTargets extends DirectRequest
'ad_group_id' => $adGroup->getKey(), 'ad_group_id' => $adGroup->getKey(),
'campaign_external_id' => $campaign->external_id, 'campaign_external_id' => $campaign->external_id,
'campaign_id' => $campaign->getKey(), 'campaign_id' => $campaign->getKey(),
'retargetinglist_external_id' => $retargetinglist_external_id ? $retargetinglist->external_id : null, 'retargetinglist_external_id' => $retargetinglist_external_id ?? null,
'retargetinglist_id' => $retargetinglist_external_id ? $retargetinglist->getKey() : null, // 'retargetinglist_id' => $retargetinglist_external_id ? $retargetinglist->getKey() : null,
'interest_external_id' => $interest_external_id ? $interest_external_id : null, 'interest_external_id' => $interest_external_id ?? null,
'context_bid' => (string)$audience_target['ContextBid'], 'context_bid' => (string)$audience_target['ContextBid'],
'strategy_priority' => $audience_target['StrategyPriority'], 'strategy_priority' => $audience_target['StrategyPriority'],
]; ];
...@@ -191,9 +191,9 @@ class GetAudienceTargets extends DirectRequest ...@@ -191,9 +191,9 @@ class GetAudienceTargets extends DirectRequest
"ContextBid", "StrategyPriority", "ContextBid", "StrategyPriority",
], ],
'SelectionCriteria' => [ 'SelectionCriteria' => [
'States' => [ // 'States' => [
"ON", "SUSPENDED", // "ON", "SUSPENDED",
], // ],
] ]
]; ];
if (isset($filter['Ids'])) { if (isset($filter['Ids'])) {
......
Markdown is supported
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!