Skip to content
Toggle navigation
Projects
Groups
Snippets
Help
Письменов Дмитрий Иванович
/
yourroomads
This project
Loading...
Sign in
Toggle navigation
Go to a project
Project
Repository
Settings
Activity
Graph
Charts
Create a new issue
Commits
Issue Boards
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Commit 5b6cc62d
authored
Jul 22, 2021
by
Евгений
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Улучшение #20444
Загрузка и синхронизация условий нацеливания на аудиторию
1 parent
8b8d77fc
Show whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
23 additions
and
19 deletions
app/Console/Commands/DictionaryCampaignsSyncByCampaign.php
app/Console/Kernel.php
app/Service/Requests/Direct/GetAudienceTargets.php
app/Console/Commands/DictionaryCampaignsSyncByCampaign.php
View file @
5b6cc62
...
@@ -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_modifier
s successful!'
);
$this
->
info
(
'goal_
audience_target
s successful!'
);
//грузим условия ретаргетинга и подбора аудитории которых по какой то причне нет в целевых.
//грузим условия ретаргетинга и подбора аудитории которых по какой то причне нет в целевых.
DB
::
insert
(
"
DB
::
insert
(
"
...
...
app/Console/Kernel.php
View file @
5b6cc62
...
@@ -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
);
...
...
app/Service/Requests/Direct/GetAudienceTargets.php
View file @
5b6cc62
...
@@ -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'
]))
{
...
...
Write
Preview
Markdown
is supported
Attach a file
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to post a comment